Files
qipai/miniapp/pages/orders/list.js
T
2026-06-24 21:42:02 +08:00

54 lines
1.4 KiB
JavaScript

const { request, ensureLogin, cents } = require('../../utils/api.js')
Page({
data: {
loading: false,
errorMessage: '',
orders: [],
page: 1,
pageSize: 20,
total: 0,
},
onShow() {
this.loadOrders()
},
async loadOrders() {
this.setData({ loading: true, errorMessage: '' })
try {
await ensureLogin()
const response = await request(`/orders?page=${this.data.page}&pageSize=${this.data.pageSize}`)
this.setData({
orders: (response.data.items || []).map(formatOrder),
total: response.data.total || 0,
})
} catch (error) {
this.setData({ errorMessage: error.message || '订单加载失败' })
} finally {
this.setData({ loading: false })
}
},
openOrder(event) {
const orderId = event.currentTarget.dataset.orderId
if (!orderId) return
wx.navigateTo({ url: `/pages/orders/detail?orderId=${encodeURIComponent(orderId)}` })
},
})
function formatOrder(order) {
return {
...order,
totalText: cents(order.totalAmountCents),
paidText: cents(order.paidAmountCents),
timeText: `${formatTime(order.startAt)}${formatTime(order.endAt)}`,
}
}
function formatTime(value) {
const date = new Date(value)
const pad = (input) => String(input).padStart(2, '0')
return `${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}`
}