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() {
}
})