116 lines
2.5 KiB
JavaScript
116 lines
2.5 KiB
JavaScript
const app = getApp()
|
|
const util = require('../../../utils/util')
|
|
const QRCode = require('../../../utils/qrcode.js')
|
|
|
|
Page({
|
|
data: {
|
|
orders: [],
|
|
status: '',
|
|
loading: false,
|
|
page: 1,
|
|
pageSize: 20,
|
|
hasMore: true,
|
|
showOrderModal: false,
|
|
currentOrder: null
|
|
},
|
|
|
|
onLoad() {
|
|
this.fetchOrders()
|
|
},
|
|
|
|
onPullDownRefresh() {
|
|
this.setData({ page: 1, hasMore: true })
|
|
this.fetchOrders().then(() => {
|
|
wx.stopPullDownRefresh()
|
|
})
|
|
},
|
|
|
|
onReachBottom() {
|
|
if (this.data.hasMore && !this.data.loading) {
|
|
this.loadMore()
|
|
}
|
|
},
|
|
|
|
getStatusText(status) {
|
|
return util.getOrderStatusText(status)
|
|
},
|
|
|
|
async fetchOrders() {
|
|
this.setData({ loading: true })
|
|
|
|
try {
|
|
const params = {
|
|
page: this.data.page,
|
|
pageSize: this.data.pageSize
|
|
}
|
|
if (this.data.status !== '') {
|
|
params.status = this.data.status
|
|
}
|
|
|
|
const res = await app.request('/api/points/orders', params)
|
|
|
|
const orders = (res.data.list || []).map(order => ({
|
|
...order,
|
|
createdAt: util.formatDate(order.createdAt)
|
|
}))
|
|
|
|
this.setData({
|
|
orders: this.data.page === 1 ? orders : [...this.data.orders, ...orders],
|
|
hasMore: orders.length >= this.data.pageSize
|
|
})
|
|
} catch (e) {
|
|
console.error('获取订单列表失败:', e)
|
|
} finally {
|
|
this.setData({ loading: false })
|
|
}
|
|
},
|
|
|
|
loadMore() {
|
|
this.setData({ page: this.data.page + 1 })
|
|
this.fetchOrders()
|
|
},
|
|
|
|
setStatus(e) {
|
|
const status = e.currentTarget.dataset.status
|
|
this.setData({ status, page: 1, hasMore: true })
|
|
this.fetchOrders()
|
|
},
|
|
|
|
async viewOrder(e) {
|
|
const order = e.currentTarget.dataset.order
|
|
|
|
wx.showLoading({ title: '加载中...' })
|
|
|
|
try {
|
|
const res = await app.request(`/api/points/orders/${order.id}`)
|
|
|
|
wx.hideLoading()
|
|
|
|
this.setData({
|
|
currentOrder: res.data,
|
|
showOrderModal: true
|
|
})
|
|
|
|
// 如果待核销,生成二维码
|
|
if (res.data.status === 0) {
|
|
setTimeout(() => {
|
|
new QRCode('orderQrcode', {
|
|
text: res.data.exchangeCode,
|
|
width: 200,
|
|
height: 200,
|
|
colorDark: '#000000',
|
|
colorLight: '#ffffff'
|
|
})
|
|
}, 100)
|
|
}
|
|
} catch (e) {
|
|
wx.hideLoading()
|
|
console.error('获取订单详情失败:', e)
|
|
}
|
|
},
|
|
|
|
closeOrderModal() {
|
|
this.setData({ showOrderModal: false })
|
|
}
|
|
})
|