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 @@