/** * 首页 */ 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; } );