dm-wechat-mini/pages/order/index/index.js
2025-03-28 13:34:22 +08:00

292 lines
7.3 KiB
JavaScript

import userApi from '../../../api/user';
import shopApi from '../../../api/shop';
const app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
scrollViewHeight:0,
tabIndex:0,
orderList:[],
merchantOrderList:[],
couponList:[],
orderStatus:userApi.order.status,
orderStatusKV:userApi.order.statusKV,
merchantPayOrderStatus:shopApi.merchantPayOrderStatus,
merchantPayOrderStatusKV:shopApi.merchantPayOrderStatusKV,
merchantOrderStatus:shopApi.merchantOrderStatus,
merchantOrderStatusKV:shopApi.merchantOrderStatusKV,
productDeliverType:shopApi.product.deliveryTimeType,
productDeliverTypeKV:shopApi.product.deliveryTimeTypeKV,
refreshTriggered:{
tab1:false,tab2:false,tab3:false
},
pager:{
tab1:{limit:10,loading:false,loadAll:false,pageIndex:0},
tab2:{limit:10,loading:false,loadAll:false,pageIndex:0},
tab3:{limit:10,loading:false,loadAll:false,pageIndex:0}
}
},
changeTab(event){
const tabIndex = event.currentTarget.dataset.index;
this.setData({tabIndex})
},
goToDetail(event){
const orderId = event.currentTarget.dataset.id;
wx.navigateTo({
url: `/pages/order/detail/index?id=${orderId}`,
})
},
goToShopDetail(event){
const item = event.currentTarget.dataset.item;
wx.navigateTo({
url: `/pages/shop/detail/index?id=${item.merchant_id}`,
})
},
navToProductOrderDetail(event){
const id = event.currentTarget.dataset.id;
wx.navigateTo({
url: `/pages/order/detail-group/index?id=${id}`,
})
},
orderAgain(event){
const order = event.currentTarget.dataset.item;
const orderConfirm = this.selectComponent("#merchantOrderConfirm");
orderConfirm.preOrder({
id:order.merchant_product_id,
name:order.product_name,
tags:order.product_tags
});
},
orderCreated(){
//创建成功之后刷新 order 列表,成功之后会跳转,不用刷新
this.refreshList();
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
app.globalData.needRefreshOrderList = false;
this.loadOrderList();
this.loadMerchantOrderList();
this.loadMerchantPayOrderList();
},
refreshList(){
if(this.data.tabIndex==0){
this.data.pager.tab1.pageIndex = 0;
this.data.pager.tab1.loadAll = false;
this.setData({
pager:this.data.pager
});
this.loadOrderList();
}else if(this.data.tabIndex==1){
this.data.pager.tab2.pageIndex = 0;
this.data.pager.tab2.loadAll = false;
this.setData({
pager:this.data.pager
});
this.loadMerchantPayOrderList();
}else if(this.data.tabIndex==2){
this.data.pager.tab3.pageIndex = 0;
this.data.pager.tab3.loadAll = false;
this.setData({
pager:this.data.pager
});
this.loadMerchantOrderList();
}
},
loadMore(){
if(this.data.tabIndex==0){
this.loadOrderList()
}else if(this.data.tabIndex==1){
this.loadMerchantPayOrderList();
}else if(this.data.tabIndex==2){
this.loadMerchantOrderList();
}
},
loadOrderList(){
//代取快递列表
if(this.data.pager.tab1.loading||this.data.pager.tab1.loadAll){
return;
}
this.data.pager.tab1.loading = true;
this.setData({
pager:this.data.pager
});
userApi.order.list({
skip:this.data.pager.tab1.pageIndex*this.data.pager.tab1.limit,
limit:this.data.pager.tab1.limit
}).then((data)=>{
if(this.data.pager.tab1.pageIndex==0){
this.data.orderList = data.items;
}else{
this.data.orderList = this.data.orderList.concat(data.items);
}
this.data.pager.tab1.loading = false;
this.data.pager.tab1.pageIndex++;
if(data.items.length<this.data.pager.tab1.limit){
this.data.pager.tab1.loadAll = true;
}
this.setData({
orderList:this.data.orderList,
refreshTriggered:{
tab1:false
},
pager:this.data.pager
})
}).catch((res)=>{
console.log('res',res);
this.setData({
"pager.tab1.loading":false,
"pager.tab1.loadAll":true,
refreshTriggered:{
tab1:false
}
})
});
},
loadMerchantPayOrderList(){
return;
//消费买单列表
if(this.data.pager.tab2.loading||this.data.pager.tab2.loadAll){
return;
}
this.data.pager.tab2.loading = true;
this.setData({
pager:this.data.pager
});
shopApi.orderList({
skip:this.data.pager.tab2.pageIndex*this.data.pager.tab2.limit,
limit:this.data.pager.tab2.limit
}).then((data)=>{
if(this.data.pager.tab2.pageIndex==0){
this.data.merchantOrderList = data.items;
}else{
this.data.merchantOrderList = this.data.merchantOrderList.concat(data.items);
}
this.data.pager.tab2.loading = false;
this.data.pager.tab2.pageIndex++;
if(data.items.length<this.data.pager.tab2.limit){
this.data.pager.tab2.loadAll = true;
}
this.setData({
merchantOrderList:this.data.merchantOrderList,
refreshTriggered:{
tab2:false
},
pager:this.data.pager
})
})
},
loadMerchantOrderList(){
//代金券列表
if(this.data.pager.tab3.loading||this.data.pager.tab3.loadAll){
return;
}
this.data.pager.tab3.loading = true;
this.setData({
pager:this.data.pager
});
userApi.order.merchantList({
skip:this.data.pager.tab3.pageIndex*this.data.pager.tab3.limit,
limit:this.data.pager.tab3.limit
}).then((data)=>{
data.items.map((item)=>{
if(item.product_tags){
item.product_tags = item.product_tags.split(',');
}
});
if(this.data.pager.tab3.pageIndex==0){
this.data.couponList = data.items;
}else{
this.data.couponList = this.data.couponList.concat(data.items);
}
this.data.pager.tab3.loading = false;
this.data.pager.tab3.pageIndex++;
if(data.length<this.data.pager.tab3.limit){
this.data.pager.tab3.loadAll = true;
}
this.setData({
couponList:this.data.couponList,
refreshTriggered:{
tab3:false
},
pager:this.data.pager
})
}).catch((res)=>{
this.setData({
"pager.tab3.loading":false,
"pager.tab3.loadAll":true,
refreshTriggered:{
tab3:false
}
})
});
},
pay(event){
const item = event.currentTarget.dataset.item;
const orderConfirm = this.selectComponent("#merchantOrderConfirm");
orderConfirm.createPayment(item.orderid||item.order_id,true);
},
paySuccess(){
this.refreshList();
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
if(app.globalData.needRefreshOrderList){
this.refreshList();
app.globalData.needRefreshOrderList = false;
}
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})