-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,151 @@ | ||
/** | ||
* 收藏页 -- 模型 | ||
* @author by Gavin 2016-7-28 | ||
*/ | ||
var $ = require('home:widget/ui/zepto/zepto.js'); | ||
var B = require('home:widget/ui/backbone/backbone.js'); | ||
|
||
var Model = B.Model.extend({ | ||
defaults: { | ||
collections: null, // 收藏数据 | ||
cateList: null, // 分类列表 | ||
editable: null, // 编辑按钮是否可点击 | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong. |
||
editStatus: false, // 当前商品的编辑状态 true 表示正在编辑,false表示不是编辑状态 | ||
checkedNum: 0, // 选中商品的数量 | ||
deleteList: null, // 删除商品列表 | ||
errMsg: '', // 错误信息 | ||
deleteStatus: null, // 删除商品返回状态 | ||
maxCount: 0, // 收藏商品的总数 | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong. |
||
isEnd: false // 翻页,是否到头了 | ||
}, | ||
|
||
// 错误码统一管理 | ||
ERROR_CODE: { | ||
0: '返回数据格式错误', | ||
1: '数据返回异常', | ||
2: '数据请求失败' | ||
}, | ||
|
||
This comment has been minimized.
Sorry, something went wrong. |
||
/** | ||
* 当页面初始化时,立即请求数据 | ||
*/ | ||
initialize: function () { | ||
This comment has been minimized.
Sorry, something went wrong.
leeleslie7
Contributor
|
||
this.getList(); | ||
}, | ||
|
||
/** | ||
* 获取收藏商品列表 | ||
* @param {opts} object | ||
* @param {opts.catid} number 分类ID | ||
* @param {opts.pn} number 起始页 | ||
* @param {opts.rn} number 结束页 | ||
*/ | ||
getList: function ( opts ) { | ||
var _opts = this.formatData( opts ); | ||
this.fetch({ | ||
url: '/collect/sku/getlist', | ||
data: _opts, | ||
datatype: 'JSON', | ||
timeout: 20000, | ||
success: function ( _, data ) { | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
Gavin-YYC
Author
Contributor
|
||
if ( data && data.ret === 0 ) { | ||
This comment has been minimized.
Sorry, something went wrong. |
||
if ( data.content && data.content.sku_list ) { | ||
var oldCollect = _.get('collections'); | ||
if ( oldCollect === null ) oldCollect = []; | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
shishuo119
|
||
_.set({ | ||
// 每次请求的数据都追加到原来的数组上 | ||
collections: oldCollect.concat(data.content.sku_list), | ||
editable: data.content.total > 0 ? true : false, | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong. |
||
cateList: data.content.cat_list, | ||
maxCount: data.content.total | ||
}); | ||
This comment has been minimized.
Sorry, something went wrong. |
||
_.setIsEnd(); // 是否滚动到头了 | ||
} else { | ||
_.set('errMsg', _.ERROR_CODE[0]); | ||
} | ||
} else { | ||
_.set('errMsg', _.ERROR_CODE[1]); | ||
} | ||
}, | ||
error: function ( _, err ) { | ||
_.set('errMsg', _.ERROR_CODE[2]); | ||
This comment has been minimized.
Sorry, something went wrong.
sunzhaoye
|
||
} | ||
}); | ||
}, | ||
|
||
/** | ||
* 滚动时请求数据,判断是否已经没有数据了 | ||
*/ | ||
setIsEnd: function () { | ||
var currentCount = this.get('collections').length; | ||
var maxCount = this.get('maxCount'); | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
Gavin-YYC
Author
Contributor
|
||
if ( currentCount >= maxCount ) { | ||
this.set('isEnd', true); | ||
} | ||
This comment has been minimized.
Sorry, something went wrong.
mingxuWang
Contributor
|
||
}, | ||
|
||
/** | ||
* 格式化数据 | ||
* @param from this.getList() | ||
*/ | ||
pn: 0, | ||
formatData: function ( opts ) { | ||
var defaults = { | ||
catid: '', | ||
pn: this.pn, | ||
rn: 12 | ||
}; | ||
var newOpt = $.extend({}, defaults, opts); | ||
return newOpt; | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong. |
||
}, | ||
|
||
/** | ||
* 切换商品编辑状态 | ||
*/ | ||
changeEditStatus: function () { | ||
this.set('editStatus', !this.get('editStatus')); | ||
}, | ||
|
||
/** | ||
* 更新选中收藏商品的数量,同时更新删除商品列表 | ||
* @param {action} string 'add' or 'sub' 编辑收藏品的动作 | ||
* @param {skuId} number 商品sku_id | ||
*/ | ||
updateNum: function ( action, skuId ) { | ||
if ( !action || !skuId ) return; | ||
var nowNum = +(this.get('checkedNum')); | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
Gavin-YYC
Author
Contributor
|
||
var deleteList = this.get('deleteList') || []; | ||
if ( action == 'add' ) { | ||
deleteList.push( skuId ); | ||
this.set({checkedNum: nowNum + 1, deleteList: deleteList}); | ||
} else if ( action == 'sub' ) { | ||
deleteList.splice(deleteList.indexOf(skuId), 1); | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong. |
||
this.set({checkedNum: nowNum - 1, deleteList: deleteList}); | ||
} | ||
}, | ||
|
||
This comment has been minimized.
Sorry, something went wrong.
shishuo119
|
||
/** | ||
* 批量删除收藏商品 | ||
*/ | ||
batchDelete: function () { | ||
var deleteList = this.get('deleteList'); | ||
this.fetch({ | ||
url: '/collect/sku/del', | ||
data: {sku_list: deleteList}, | ||
This comment has been minimized.
Sorry, something went wrong. |
||
datatype: 'json', | ||
timeout: 20000, | ||
success: function ( _, res ) { | ||
if ( res && res.ret === 0 ) { | ||
_.set('deleteStatus', res.content.status); | ||
} else { | ||
_.set('errMsg', that.ERROR_CODE[1]); | ||
} | ||
}, | ||
error: function ( _, err ) { | ||
_.set('errMsg', that.ERROR_CODE[2]); | ||
} | ||
}); | ||
} | ||
}); | ||
|
||
module.exports = Model; |
从上下文来看editable是一个布尔值,所以初始化的值有些问题,并且命名不够规范,应为editAble