323 lines
8.2 KiB
JavaScript
323 lines
8.2 KiB
JavaScript
|
var app = getApp();
|
||
|
var util = require('../../utils/util.js');
|
||
|
var canpay = true;
|
||
|
|
||
|
Page({
|
||
|
mixins: [require('../../mixin/globalMixin.js')],
|
||
|
data: {
|
||
|
tablebar: 4,
|
||
|
page: 1,
|
||
|
theme_type: '',
|
||
|
order_status: -1,
|
||
|
no_order: 0,
|
||
|
hide_tip: true,
|
||
|
order: [],
|
||
|
tip: '正在加载',
|
||
|
is_empty: false,
|
||
|
tabs: [
|
||
|
{ id: -1, name: '全部' },
|
||
|
{ id: 3, name: '待付款' },
|
||
|
{ id: 1, name: '待配送' },
|
||
|
{ id: 14, name: '配送中' },
|
||
|
{ id: 4, name: '待提货' },
|
||
|
{ id: 6, name: '已提货' }
|
||
|
],
|
||
|
hexiaoStatus: ['','','','待付款','待使用','','','','','','','已完成']
|
||
|
},
|
||
|
handlerGobackClick(delta) {
|
||
|
const pages = getCurrentPages();
|
||
|
if (pages.length >= 2) {
|
||
|
wx.navigateBack({
|
||
|
delta: delta
|
||
|
});
|
||
|
} else {
|
||
|
wx.switchTab({
|
||
|
url: '/eaterplanet_ecommerce/pages/index/index'
|
||
|
});
|
||
|
}
|
||
|
},
|
||
|
handlerGohomeClick(url) {
|
||
|
wx.switchTab({
|
||
|
url: '/eaterplanet_ecommerce/pages/index/index'
|
||
|
});
|
||
|
},
|
||
|
onLoad: function(options) {
|
||
|
let { order_status, is_show_tip, isfail } = options;
|
||
|
|
||
|
wx.showLoading();
|
||
|
|
||
|
if (order_status == undefined) {
|
||
|
order_status = -1;
|
||
|
}
|
||
|
this.setData({
|
||
|
order_status: order_status,
|
||
|
})
|
||
|
|
||
|
if (is_show_tip != undefined && is_show_tip == 1) {
|
||
|
wx.showToast({
|
||
|
title: '支付成功',
|
||
|
})
|
||
|
} else if (isfail != undefined && isfail == 1) {
|
||
|
wx.showToast({
|
||
|
title: '支付失败',
|
||
|
icon: 'none'
|
||
|
})
|
||
|
}
|
||
|
this.getData();
|
||
|
},
|
||
|
|
||
|
getData: function() {
|
||
|
this.setData({ isHideLoadMore: true })
|
||
|
this.data.no_order = 1
|
||
|
let that = this;
|
||
|
var token = wx.getStorageSync('token');
|
||
|
app.util.request({
|
||
|
'url': 'entry/wxapp/index',
|
||
|
'data': {
|
||
|
controller: 'order.orderlist',
|
||
|
token: token,
|
||
|
page: that.data.page,
|
||
|
order_status: that.data.order_status
|
||
|
},
|
||
|
dataType: 'json',
|
||
|
success: function(res) {
|
||
|
wx.hideLoading();
|
||
|
if (res.data.code == 0) {
|
||
|
let rushList = that.data.order.concat(res.data.data);
|
||
|
that.setData({
|
||
|
order: rushList,
|
||
|
hide_tip: true,
|
||
|
no_order: 0
|
||
|
});
|
||
|
} else {
|
||
|
if(that.data.page == 1 && that.data.order.length <= 0) that.setData({is_empty: true});
|
||
|
that.setData({
|
||
|
isHideLoadMore: true
|
||
|
})
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
|
||
|
},
|
||
|
|
||
|
goOrder: function(event) {
|
||
|
let id = event.currentTarget.dataset.type;
|
||
|
var pages_all = getCurrentPages();
|
||
|
let delivery = event.currentTarget.dataset.delivery || '';
|
||
|
let url = `/eaterplanet_ecommerce/pages/order/order?id=${id}&delivery=${delivery}`;
|
||
|
if (pages_all.length > 3) {
|
||
|
wx.redirectTo({ url })
|
||
|
} else {
|
||
|
wx.navigateTo({ url })
|
||
|
}
|
||
|
},
|
||
|
|
||
|
receivOrder: function(event) {
|
||
|
let id = event.currentTarget.dataset.type;
|
||
|
let delivery = event.currentTarget.dataset.delivery;
|
||
|
var token = wx.getStorageSync('token');
|
||
|
if (delivery == "pickup") content = "确认提货";
|
||
|
var that = this;
|
||
|
wx.showModal({
|
||
|
title: '提示',
|
||
|
content: '确认收货',
|
||
|
confirmColor: "#4facfe",
|
||
|
success(res) {
|
||
|
if (res.confirm) {
|
||
|
app.util.request({
|
||
|
'url': 'entry/wxapp/index',
|
||
|
'data': {
|
||
|
controller: 'order.receive_order',
|
||
|
token: token,
|
||
|
order_id: id
|
||
|
},
|
||
|
dataType: 'json',
|
||
|
success: function(res) {
|
||
|
if (res.data.code == 0) {
|
||
|
wx.showToast({
|
||
|
title: '收货成功',
|
||
|
icon: 'success',
|
||
|
duration: 1000
|
||
|
})
|
||
|
that.order(that.data.order_status);
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
|
||
|
},
|
||
|
cancelOrder: function(event) {
|
||
|
let id = event.currentTarget.dataset.type;
|
||
|
var token = wx.getStorageSync('token');
|
||
|
var that = this;
|
||
|
wx.showModal({
|
||
|
title: '取消支付',
|
||
|
content: '好不容易挑出来,确定要取消吗?',
|
||
|
confirmColor: "#4facfe",
|
||
|
success(res) {
|
||
|
if (res.confirm) {
|
||
|
app.util.request({
|
||
|
'url': 'entry/wxapp/index',
|
||
|
'data': {
|
||
|
controller: 'order.cancel_order',
|
||
|
token: token,
|
||
|
order_id: id
|
||
|
},
|
||
|
dataType: 'json',
|
||
|
success: function (res) {
|
||
|
wx.showToast({
|
||
|
title: '取消成功',
|
||
|
icon: 'success',
|
||
|
duration: 1000
|
||
|
})
|
||
|
that.order(that.data.order_status);
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
|
||
|
getOrder: function(event) {
|
||
|
this.setData({ is_empty: false })
|
||
|
wx.showLoading();
|
||
|
let starus = event.currentTarget.dataset.type;
|
||
|
this.order(starus);
|
||
|
},
|
||
|
|
||
|
order: function(starus) {
|
||
|
var that = this;
|
||
|
that.setData({
|
||
|
order_status: starus,
|
||
|
order: [],
|
||
|
no_order: 0,
|
||
|
page: 1
|
||
|
})
|
||
|
this.getData();
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 支付防抖
|
||
|
*/
|
||
|
preOrderPay: util.debounce(function(event) {
|
||
|
canpay&&this.orderPay(event);
|
||
|
}),
|
||
|
|
||
|
orderPay: function(event) {
|
||
|
canpay = false;
|
||
|
let that = this;
|
||
|
var token = wx.getStorageSync('token');
|
||
|
let id = event[0].currentTarget.dataset.type;
|
||
|
let delivery = event[0].currentTarget.dataset.delivery;
|
||
|
|
||
|
app.util.request({
|
||
|
'url': 'entry/wxapp/index',
|
||
|
'data': {
|
||
|
controller: 'car.wxpay',
|
||
|
token: token,
|
||
|
order_id: id,
|
||
|
scene: app.globalData.scene
|
||
|
},
|
||
|
dataType: 'json',
|
||
|
method: 'POST',
|
||
|
success: function(res) {
|
||
|
if(res.data.code ==0)
|
||
|
{
|
||
|
var is_pin = res.data.is_pin;
|
||
|
// 交易组件
|
||
|
if(res.data.isRequestOrderPayment==1) {
|
||
|
wx.requestOrderPayment({
|
||
|
orderInfo: res.data.order_info,
|
||
|
timeStamp: res.data.timeStamp,
|
||
|
nonceStr: res.data.nonceStr,
|
||
|
package: res.data.package,
|
||
|
signType: res.data.signType,
|
||
|
paySign: res.data.paySign,
|
||
|
success: function (wxres) {
|
||
|
wx.redirectTo({
|
||
|
url: '/eaterplanet_ecommerce/pages/order/order?id=' + id + '&is_show=1&delivery='+delivery
|
||
|
})
|
||
|
},
|
||
|
fail: function (res) {
|
||
|
console.log(res);
|
||
|
},
|
||
|
complete: ()=>{
|
||
|
canpay = true;
|
||
|
}
|
||
|
})
|
||
|
} else {
|
||
|
wx.requestPayment({
|
||
|
appId: res.data.appId,
|
||
|
timeStamp: res.data.timeStamp,
|
||
|
nonceStr: res.data.nonceStr,
|
||
|
package: res.data.package,
|
||
|
signType: res.data.signType,
|
||
|
paySign: res.data.paySign,
|
||
|
success: function (wxres) {
|
||
|
wx.redirectTo({
|
||
|
url: '/eaterplanet_ecommerce/pages/order/order?id=' + id + '&is_show=1&delivery='+delivery
|
||
|
})
|
||
|
},
|
||
|
fail: function (res) {
|
||
|
console.log(res);
|
||
|
},
|
||
|
complete: ()=>{
|
||
|
canpay = true;
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
} else if (res.data.code == 1) {
|
||
|
wx.showToast({
|
||
|
title: res.data.RETURN_MSG || '支付错误',
|
||
|
icon: 'none'
|
||
|
})
|
||
|
canpay = true;
|
||
|
} else if (res.data.code == 2) {
|
||
|
wx.showToast({
|
||
|
title: res.data.msg,
|
||
|
icon:'none'
|
||
|
})
|
||
|
canpay = true;
|
||
|
setTimeout(() => {
|
||
|
that.setData({
|
||
|
page: 1,
|
||
|
no_order: 0,
|
||
|
order: [],
|
||
|
tip: '正在加载',
|
||
|
is_empty: false
|
||
|
}, ()=>{
|
||
|
that.getData();
|
||
|
})
|
||
|
}, 1500);
|
||
|
}
|
||
|
},
|
||
|
fail: ()=>{
|
||
|
canpay = true;
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
|
||
|
onReachBottom: function() {
|
||
|
if (this.data.no_order == 1) return false;
|
||
|
this.data.page += 1;
|
||
|
this.getData();
|
||
|
this.setData({
|
||
|
isHideLoadMore: false
|
||
|
})
|
||
|
},
|
||
|
|
||
|
onPullDownRefresh: function () {
|
||
|
this.setData({
|
||
|
is_empty: false,
|
||
|
page: 1,
|
||
|
order: []
|
||
|
})
|
||
|
wx.showLoading();
|
||
|
this.getData();
|
||
|
wx.stopPullDownRefresh();
|
||
|
}
|
||
|
})
|