/**
* 首页
*/
define(
"order/index-controller",
[
'mk7/controller',
'mk7/url',
'mk7/utils',
],
function(ctrl, url, utils) {
var $$ = Dom7;
var t7 = Template7;
var ctrl = new ctrl();
var pageURL = 'order/default/order-list';
ctrl.run = function () {
var me = this;
me.setPageTitle("订单列表");
me.tab = me.params.tab;
me.page = 0;
me.nodata = '';
me.loading = false;
me.pageCount = 1;
me.render({tab:me.tab});
me.loadPage()
}
ctrl.bindEvents = function () {
var me = this;
console.log("bindEvents");
me.tabEvent();
me.bindScrollEvent();
me.addEvent();
me.orderClickEvent();
}
ctrl.tabEvent = function() {
$$('.tab-cls').click(function(e) {
var url = $$(this).attr('data-href');
window.location.replace(url);
})
}
ctrl.handleNodata = function(){
var me = this;
me.nodata = '没有数据了';
var e = $$('.nodata');
if(0 == e.length) {
$$('#index .order-list').append('
'+me.nodata+'
');
}
me.app.detachInfiniteScroll('.infinite-scroll');
$$('#index .infinite-scroll-preloader').remove();
return;
}
ctrl.loadPage = function () {
var me = this;
me.loading = true;
if (me.page >= me.pageCount){
me.handleNodata();
return ;
}
var data = {status:me.tab}
data.page = me.page + 1;
data = me.csrf(data);
$$.ajax({
method : "GET",
url: url.to(pageURL),
data : data,
dataType : "json",
beforeSend : function(){
me.showIndicator();
},
success : function(e){
if(true == e.success){
if(utils.isDefined(e.page)){
me.page = parseInt(e.page);
}
if(utils.isDefined(e.page_count)){
me.pageCount = parseInt(e.page_count);
}
me.renderItems(e.items, true);
if (me.page >= me.pageCount){
me.handleNodata();
return ;
}
}
},
error : function(e){},
complete : function(e){
me.hideIndicator();
me.loading = false;
},
});
}
ctrl.bindScrollEvent = function() {
var me = this;
me.app.attachInfiniteScroll('#index .infinite-scroll');
$$('#index .infinite-scroll').on('infinite', function () {
// 如果正在加载,则退出
//console.log(me.loading);
if (me.loading) {
return;
}
if (me.nodata) {
return;
}
me.loadPage();
});
}
ctrl.renderItems = function(items, append){
var me = this;
var list = $$('#index .order-list');
var ele = $$('script#order-item-template');
var compiled = t7.compile(ele.html());
var doms = compiled({'list':items});
if( false == append){//填充还是重置数据
list.html('');
list.append(doms);
}
list.append(doms);
}
ctrl.addEvent = function() {
$$('#index .add-btn-cls').click(function(e) {
window.location.href = url.to('order/#submit');
})
}
ctrl.orderClickEvent = function() {
$$('#index').on('click', '.order-item', function(e){
var id = $$(this).attr('data-id')
window.location.href = url.to('order#order-details/'+id)
})
}
return ctrl;
}
);