181 lines
3.5 KiB
TypeScript
181 lines
3.5 KiB
TypeScript
import { cancelOrder, OrderInfo, queryOrderList } from "../../service/shop-api";
|
|
import message from "../../utils/message";
|
|
|
|
type TabType = {
|
|
// tab标题
|
|
title: string
|
|
// 标识
|
|
name: string
|
|
// 查询状态值
|
|
status: number
|
|
// 当前查询的页码
|
|
page: number
|
|
// 是否已经查询结束
|
|
end: boolean
|
|
// 订单列表
|
|
orders: OrderInfo[]
|
|
}
|
|
function createTab(title: string, name: string, status: number) {
|
|
const tab: TabType = {
|
|
title,
|
|
name,
|
|
status,
|
|
page: 1,
|
|
end: false,
|
|
orders: []
|
|
}
|
|
return tab;
|
|
}
|
|
// pages/order/index.ts
|
|
Page({
|
|
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
tabActive: 'all',
|
|
statusEnums: {
|
|
1: '待确认',
|
|
2: '已确认',
|
|
3: '已取消',
|
|
4: '已完成',
|
|
0: '已删除'
|
|
},
|
|
tabs: [
|
|
createTab('全部', 'all', 0),
|
|
createTab('待确认', 'not-confirm', 1),
|
|
createTab('已确认', 'confirm', 2),
|
|
createTab('已取消', 'cancel', 3),
|
|
createTab('已完成', 'finish', 4),
|
|
// {
|
|
// title: '待确认',
|
|
// name: 'not-confirm',
|
|
// status: 1,
|
|
// orders: []
|
|
// },
|
|
// {
|
|
// title: '已确认',
|
|
// name: 'confirm',
|
|
// status: 2,
|
|
// orders: []
|
|
// },
|
|
// {
|
|
// title: '已取消',
|
|
// name: 'cancel',
|
|
// status: 3,
|
|
// orders: []
|
|
// },
|
|
// {
|
|
// title: '已完成',
|
|
// name: 'finish',
|
|
// status: 3,
|
|
// orders: []
|
|
// }
|
|
]
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad() {
|
|
this.loadOrderList('all');
|
|
},
|
|
onTabChange(e: any) {
|
|
const tabActive = e.detail.name
|
|
// TODO 是否重新加载 -- 缓存
|
|
this.loadOrderList(tabActive)
|
|
this.setData({ tabActive })
|
|
},
|
|
showOrderDetail(e: TapEvent){
|
|
const id = e.currentTarget.id
|
|
|
|
wx.navigateTo({
|
|
url: `/pages/order/detail?id=${id}`
|
|
})
|
|
},
|
|
async cancelOrder(e: TapEvent) {
|
|
try {
|
|
if ((await message.confirm('确定要取消订单?'))) {
|
|
await cancelOrder(e.target.dataset.id)
|
|
message.toast('取消订单成功');
|
|
this.loadOrderList(this.data.tabActive)
|
|
}
|
|
} catch (e) { }
|
|
},
|
|
async deleteOrder(e: TapEvent) {
|
|
try {
|
|
if ((await message.confirm('确定要删除订单?'))) {
|
|
console.log('shanchu')
|
|
await cancelOrder(e.target.dataset.id)
|
|
message.toast('取消删除成功');
|
|
this.loadOrderList(this.data.tabActive)
|
|
}
|
|
} catch (e) { }
|
|
},
|
|
loadOrderList(active: string) {
|
|
// 1、找到当前选中的tab
|
|
const tab = this.data.tabs.find(s => s.name == active);
|
|
if (tab) {
|
|
queryOrderList(tab.status).then(ret => {
|
|
if (ret.records && ret.records.length > 0) {
|
|
if (tab.page === 1) {
|
|
tab.orders = ret.records
|
|
} else tab.orders.push(...ret.records)
|
|
// 更新数据
|
|
this.setData({
|
|
tabs: this.data.tabs
|
|
})
|
|
}
|
|
})
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage() {
|
|
|
|
}
|
|
}) |