diff --git a/miniprogram/src/modules/comprehensive/api/request.js b/miniprogram/src/modules/comprehensive/api/request.js index da97125..a3640d0 100644 --- a/miniprogram/src/modules/comprehensive/api/request.js +++ b/miniprogram/src/modules/comprehensive/api/request.js @@ -86,10 +86,12 @@ export function request(options = {}) { } const error = normalizeError(res, `请求错误 ${res.statusCode}`) - uni.showToast({ - title: error.message, - icon: 'none' - }) + if (!options.silent) { + uni.showToast({ + title: error.message, + icon: 'none' + }) + } reject(error) }, fail: (err) => { diff --git a/miniprogram/src/modules/comprehensive/api/ticket.js b/miniprogram/src/modules/comprehensive/api/ticket.js index ba2f617..c6ecc2c 100644 --- a/miniprogram/src/modules/comprehensive/api/ticket.js +++ b/miniprogram/src/modules/comprehensive/api/ticket.js @@ -39,7 +39,8 @@ const toTicketOrder = (backendData = {}) => ({ export const ticketApi = { getTicketProduct() { return request({ - url: '/api/tickets/product' + url: '/api/tickets/product', + silent: true }).then(toTicketProduct) }, getTicketAccount(params = {}) { diff --git a/miniprogram/src/pages/comprehensive/courses/index.vue b/miniprogram/src/pages/comprehensive/courses/index.vue index f4c7464..e8c5c19 100644 --- a/miniprogram/src/pages/comprehensive/courses/index.vue +++ b/miniprogram/src/pages/comprehensive/courses/index.vue @@ -52,6 +52,25 @@ + + + 门票暂停购买 + 门票暂未开放购买,请稍后再来 + + + + + 我的门票 + + + + 订单号 {{ record.order_no }} + {{ record.status_label }} + + {{ formatDate(record.created_at) }} + + + 加载中... @@ -118,6 +137,7 @@ const isLoadingMore = ref(false) let loadRequestId = 0 const ticketProduct = ref(null) +const ticketPaused = ref(false) const ticketQty = ref(1) const ticketSubmitting = ref(false) const ticketRecords = ref([]) @@ -199,8 +219,11 @@ const loadTicketProduct = async () => { if (ticketProduct.value) return try { ticketProduct.value = await ticketApi.getTicketProduct() - } catch { - // ignore + ticketPaused.value = false + } catch (error) { + if (error?.code === 40400 || error?.statusCode === 404) { + ticketPaused.value = true + } } } @@ -262,6 +285,7 @@ const goDetail = (item) => { const refresh = async () => { if (activeTab.value === 'tickets') { ticketProduct.value = null + ticketPaused.value = false ticketRecords.value = [] await Promise.all([loadTicketProduct(), loadTicketRecords()]) } else { @@ -477,6 +501,25 @@ defineExpose({ refresh, loadMore }) margin-bottom: $spacing-md; } +.ticket-paused-card { + text-align: center; + padding: $spacing-xl $spacing-md; +} + +.ticket-paused-title { + display: block; + color: $text-color-main; + font-size: 34rpx; + font-weight: 900; +} + +.ticket-paused-desc { + display: block; + margin-top: $spacing-xs; + color: $text-color-muted; + font-size: 24rpx; +} + .product-head, .amount-row, .stepper-row { diff --git a/miniprogram/src/pages/comprehensive/pay/index.vue b/miniprogram/src/pages/comprehensive/pay/index.vue index 1f34279..c40362d 100644 --- a/miniprogram/src/pages/comprehensive/pay/index.vue +++ b/miniprogram/src/pages/comprehensive/pay/index.vue @@ -23,12 +23,24 @@ 支付方式 - + + + 余额支付 + 当前余额 ¥{{ balance.balance }} + + {{ payMethod === 'balance' ? '已选' : '' }} + + 微信支付 使用微信支付完成订单 - 已选 + {{ payMethod === 'wechat' ? '已选' : '' }} @@ -49,19 +61,28 @@