refactor(tickets): 前端适配门票一次一单API

- createTicketOrder 去掉 quantity 参数
- toTicketOrder 去掉 quantity 映射
- 购票页循环创建 N 笔独立订单,提示逐笔支付
This commit is contained in:
gqt
2026-07-13 17:57:46 +08:00
parent f85c3300be
commit 9b38518426
2 changed files with 12 additions and 7 deletions
@@ -33,8 +33,7 @@ const toTicketAccount = (backendAccount = {}) => ({
const toTicketOrder = (backendData = {}) => ({
order: toOrderBrief(backendData.order),
product: toTicketProduct(backendData.product),
quantity: toNumber(backendData.quantity)
product: toTicketProduct(backendData.product)
})
export const ticketApi = {
@@ -49,11 +48,10 @@ export const ticketApi = {
data: toPageQuery(params)
}).then(toTicketAccount)
},
createTicketOrder(quantity) {
createTicketOrder() {
return request({
url: '/api/tickets/orders',
method: 'POST',
data: { quantity }
method: 'POST'
}).then(toTicketOrder)
}
}
@@ -65,8 +65,15 @@ const submit = async () => {
if (isSubmitting.value || !product.value?.is_active) return
isSubmitting.value = true
try {
const data = await ticketApi.createTicketOrder(quantity.value)
uni.navigateTo({ url: `/pages/comprehensive/pay/index?order_id=${data.order.id}` })
const orderIds = []
for (let i = 0; i < quantity.value; i++) {
const data = await ticketApi.createTicketOrder()
orderIds.push(data.order.id)
}
if (orderIds.length > 1) {
uni.showToast({ title: `已创建${orderIds.length}笔订单,请逐笔完成支付`, icon: 'none', duration: 2000 })
}
uni.navigateTo({ url: `/pages/comprehensive/pay/index?order_id=${orderIds[0]}` })
} finally {
isSubmitting.value = false
}