...
|
...
|
@@ -2,7 +2,7 @@ const loading = require('../../plugin/loading'), |
|
|
lazyLoad = require('yoho-jquery-lazyload');
|
|
|
|
|
|
require('../../common');
|
|
|
import {EventEmitter, bus} from './store';
|
|
|
import {EventEmitter, bus, api} from './store';
|
|
|
|
|
|
|
|
|
const LeaveMSGView = function(elem) {
|
...
|
...
|
@@ -12,7 +12,7 @@ const LeaveMSGView = function(elem) { |
|
|
this.bindEvents();
|
|
|
};
|
|
|
|
|
|
LeaveMSGView.prototype = $.extend(EventEmitter.prototype, {
|
|
|
LeaveMSGView.prototype = $.extend({}, EventEmitter.prototype, {
|
|
|
/**
|
|
|
* 绑定事件
|
|
|
* 1. 提交按钮事件
|
...
|
...
|
@@ -22,7 +22,7 @@ LeaveMSGView.prototype = $.extend(EventEmitter.prototype, { |
|
|
|
|
|
this.$elem
|
|
|
.on('click', '.chat-page-back', function() {
|
|
|
self.toggleView(true);
|
|
|
self.toggleHide(true);
|
|
|
})
|
|
|
.on('click.LeavseMSG.submit', '.leave-submit', function() {
|
|
|
self.submit();
|
...
|
...
|
@@ -103,87 +103,81 @@ class RatingView { |
|
|
}
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
订单列表view
|
|
|
*/
|
|
|
class OrderListView {
|
|
|
constructor() {
|
|
|
this.bindEvent();
|
|
|
this.order = {
|
|
|
page: 0,
|
|
|
end: false
|
|
|
};
|
|
|
this.$curContainer = $('#order-container').children('.orders:not(.hide)');
|
|
|
this.getOrder(this);
|
|
|
}
|
|
|
const OrderListView = function(elem) {
|
|
|
this.$elem = $(elem);
|
|
|
this.orderListT = require('service/chat/orders.hbs');
|
|
|
|
|
|
this.$localOrders = this.$elem.find('[data-tab=local]');
|
|
|
this.$globalOrders = this.$elem.find('[data-tab=global]');
|
|
|
|
|
|
this.bindEvents();
|
|
|
this.fetchOrders();
|
|
|
};
|
|
|
|
|
|
bindEvent() {
|
|
|
// 订单
|
|
|
$('body').on('touchstart', '.menu .order', function() {
|
|
|
$('#chat-main-wrap').hide();
|
|
|
$('#order-list-wrap').show();
|
|
|
OrderListView.prototype = $.extend({}, EventEmitter.prototype, {
|
|
|
bindEvents: function() {
|
|
|
const self = this;
|
|
|
|
|
|
this.$elem
|
|
|
.on('click.OrderListView.back', '.chat-page-back', function() {
|
|
|
self.toggleHide(true);
|
|
|
})
|
|
|
.on('click.OrderListView.select', '[data-action=select]', function() {
|
|
|
|
|
|
$('.order-back').on('click', function() {
|
|
|
$('#order-list-wrap').hide();
|
|
|
$('#chat-main-wrap').show();
|
|
|
});
|
|
|
});
|
|
|
}
|
|
|
|
|
|
getOrder(self, cb, option) {
|
|
|
var opt = {
|
|
|
type: 1,
|
|
|
page: self.order.page + 1
|
|
|
// 被通知显示,执行显示
|
|
|
this.on('show.OderListView', $.proxy(this.toggleHide, this, false));
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* method: 选择订单,然后关闭
|
|
|
*/
|
|
|
selectOrder: function() {
|
|
|
let $order = $(event.target).closest('.order-page');
|
|
|
|
|
|
// 订单数据
|
|
|
let data = {
|
|
|
imgSrc: $order.find('.thumb').attr('src'),
|
|
|
orderCode: $order.find('[data-id]'),
|
|
|
cost: $order.find('.sum-cost').text(),
|
|
|
createTime: $order.find('.js-create-time').val(),
|
|
|
orderStatus: $order.find('.order-status').text()
|
|
|
};
|
|
|
|
|
|
var show = option && !option.noLoadingMask;
|
|
|
|
|
|
if (this.inAjax) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
this.inAjax = true;
|
|
|
show && loading.showLoadingMask();
|
|
|
|
|
|
$.ajax({
|
|
|
type: 'GET',
|
|
|
url: '/service/getOrders',
|
|
|
data: opt,
|
|
|
success: function(data) {
|
|
|
var num;
|
|
|
|
|
|
if (data) {
|
|
|
self.order.page = opt.page;
|
|
|
|
|
|
if (opt.page === 1) {
|
|
|
self.$curContainer.html(data);
|
|
|
lazyLoad(self.$curContainer.find('.lazy'), {
|
|
|
try_again_css: 'order-failure'
|
|
|
});
|
|
|
} else {
|
|
|
num = self.$curContainer.children('.order').length;
|
|
|
self.$curContainer.append(data);
|
|
|
|
|
|
// lazyload
|
|
|
lazyLoad(self.$curContainer.children('.order:gt(' + (num - 1) + ')').find('.lazy'), {
|
|
|
try_again_css: 'order-failure'
|
|
|
});
|
|
|
}
|
|
|
|
|
|
window.rePosFooter(); // 重新计算底部位置
|
|
|
} else {
|
|
|
if (opt.page > 1) {
|
|
|
return;
|
|
|
}
|
|
|
self.$curContainer.html('<div class="no-order"><div class="icon"></div><span>你还没有订单!</span><a class="walk-way" href="//m.yohobuy.com/product/new">随便逛逛</a></div>');
|
|
|
self.order.end = true;
|
|
|
}
|
|
|
// 通知chat,订单列表已选择订单
|
|
|
this.trigger('selectOrder.OrderListView', [data]);
|
|
|
|
|
|
// 关闭
|
|
|
this.toggleHide(true);
|
|
|
},
|
|
|
|
|
|
this.inAjax = false;
|
|
|
show && loading.hideLoadingMask();
|
|
|
}
|
|
|
/**
|
|
|
* method: show/hide 订单列表
|
|
|
* @param boolean willHide;
|
|
|
* @return this
|
|
|
*/
|
|
|
toggleHide: function(willHide) {
|
|
|
this.$elem.toggleClass('chat-page-hide', willHide);
|
|
|
|
|
|
return this;
|
|
|
},
|
|
|
|
|
|
|
|
|
/**
|
|
|
* method: 获取订单
|
|
|
*/
|
|
|
fetchOrders: function() {
|
|
|
const self = this;
|
|
|
|
|
|
return api.fetchOrders().done(result => {
|
|
|
let html = self.orderListT({orders: result.data});
|
|
|
|
|
|
self.$localOrders.append(html);
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
|
|
|
OrderListView.prototype.constructer = OrderListView;
|
|
|
|
|
|
export {RatingView, LeaveMSGView, OrderListView}; |
|
|
export {RatingView, LeaveMSGView, OrderListView}; |
|
|
\ No newline at end of file |
...
|
...
|
|