From 1e78f76be153e70e9a0a77438cb247b2005b68da Mon Sep 17 00:00:00 2001 From: lifizer <913626195@qq.com> Date: Wed, 20 May 2026 14:12:49 +0800 Subject: [PATCH] =?UTF-8?q?Fix(=E8=AE=A2=E5=8D=95):[#5293]=E5=BE=85?= =?UTF-8?q?=E4=BB=98=E6=AC=BE=E7=9A=84=E6=B4=BB=E5=8A=A8=E5=95=86=E5=93=81?= =?UTF-8?q?=EF=BC=8C=E7=82=B9=E5=87=BB=E7=AB=8B=E5=8D=B3=E4=BB=98=E6=AC=BE?= =?UTF-8?q?=E5=B9=B6=E4=BB=98=E6=AC=BE=E5=90=8E=EF=BC=8C=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=9C=AA=E5=87=BA=E7=8E=B0=E5=B7=B2=E8=8E=B7=E5=BE=97=E6=8A=BD?= =?UTF-8?q?=E5=A5=96=E7=A0=81=E7=9A=84=E5=BC=B9=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/css/style.less | 188 +++ mixins/orderPaySuccessToCheckDrawStatus.js | 72 + pages/order/MyOrder/index.vue | 56 +- pages/order/OrderSubmission/index.vue | 26 +- pagesOrder/order/OrderDetails/index.vue | 1424 +++++++++----------- 5 files changed, 921 insertions(+), 845 deletions(-) create mode 100644 mixins/orderPaySuccessToCheckDrawStatus.js diff --git a/assets/css/style.less b/assets/css/style.less index 1cf7285..a8fc99a 100644 --- a/assets/css/style.less +++ b/assets/css/style.less @@ -8231,3 +8231,191 @@ rich-text { font-size: 28rpx; } } + +.draw-ticket-mask { + position: fixed; + inset: 0; + z-index: 1000; + background: rgba(0, 0, 0, 0.45); + display: flex; + align-items: center; + justify-content: center; + padding: 24rpx; + box-sizing: border-box; +} +.draw-ticket-popup { + width: 100%; + max-width: 640rpx; + background: #fff; + border-radius: 40rpx; + padding: 50rpx 40rpx 60rpx; + position: relative; + box-sizing: border-box; + + .draw-ticket-close { + position: absolute; + top: 30rpx; + right: 30rpx; + width: 40rpx; + height: 40rpx; + border: 4rpx solid #333; + border-radius: 50%; + color: #333; + text-align: center; + font-weight: bold; + z-index: 10; + display: flex; + align-items: center; + justify-content: center; + } + + .draw-ticket-icon { + display: flex; + justify-content: center; + margin-top: 20rpx; + } + + .ticket-icon-box { + width: 100rpx; + height: 70rpx; + border-radius: 10rpx; + position: relative; + box-sizing: border-box; + } + + .ticket-icon-check { + width: 100%; + height: 100%; + } + + .draw-ticket-title { + font-size: 56rpx; + color: #222; + font-weight: 800; + text-align: center; + margin-top: 24rpx; + letter-spacing: 2rpx; + } + + .ticket-card-container { + margin-top: 50rpx; + position: relative; + display: flex; + flex-direction: column; + align-items: center; + } + + .ticket-badge { + background-color: #fff9eb; + border: 6rpx solid #111; + border-radius: 40rpx; + padding: 12rpx 40rpx; + font-size: 46rpx; + font-weight: 800; + color: #222; + position: relative; + z-index: 2; + margin-bottom: -36rpx; + letter-spacing: 2rpx; + } + + .ticket-badge-arrow { + position: absolute; + bottom: -22rpx; + left: 50%; + transform: translateX(-50%); + width: 0; + height: 0; + border-left: 22rpx solid transparent; + border-right: 22rpx solid transparent; + border-top: 22rpx solid #111; + + &::after { + content: ''; + position: absolute; + top: -26rpx; + left: -16rpx; + border-left: 16rpx solid transparent; + border-right: 16rpx solid transparent; + border-top: 16rpx solid #fff9eb; + } + } + + .ticket-card { + width: 100%; + background: #c23326; + border-radius: 36rpx; + padding: 70rpx 36rpx 40rpx; + box-sizing: border-box; + text-align: center; + position: relative; + } + + .ticket-card-subtitle { + display: flex; + justify-content: center; + } + + .ticket-card-subtitle-text { + color: #fff; + font-size: 34rpx; + font-weight: 700; + border: 2rpx solid #fff; + border-radius: 40rpx; + padding: 8rpx 50rpx; + letter-spacing: 4rpx; + } + + .ticket-card-code-box { + background: #fff; + border-radius: 20rpx; + margin-top: 36rpx; + padding: 36rpx 0; + } + + .ticket-card-code { + color: #c23326; + font-size: 72rpx; + font-weight: 800; + letter-spacing: 8rpx; + } + + .ticket-card-time { + color: #fff; + font-size: 30rpx; + margin-top: 36rpx; + text-align: left; + } + + .draw-ticket-actions { + margin-top: 60rpx; + display: flex; + justify-content: space-between; + align-items: center; + gap: 20rpx; + + .action-btn { + flex: 1; + height: 86rpx; + border-radius: 44rpx; + font-size: 32rpx; + font-weight: 600; + display: flex; + align-items: center; + justify-content: center; + box-sizing: border-box; + white-space: nowrap; + + &.home-btn { + color: #c23326; + border: 2rpx solid #c23326; + background: #fff; + } + + &.primary { + color: #fff; + background: #c23326; + } + } + } +} diff --git a/mixins/orderPaySuccessToCheckDrawStatus.js b/mixins/orderPaySuccessToCheckDrawStatus.js new file mode 100644 index 0000000..7df37a9 --- /dev/null +++ b/mixins/orderPaySuccessToCheckDrawStatus.js @@ -0,0 +1,72 @@ +import { getDrawTicketByOrder } from '@/api/lottery' +export const orderPaySuccessToCheckDrawStatus = { + data(){ + return { + drawTicketPopup: { + show: false, + ticketCode: '', + drawTime: '' + } + } + }, + methods: { + setDrawTicketPopupFromQuery(ticketData = '') { + const drawTicketData = ticketData || this.$yroute.query.drawTicketData + if (!drawTicketData) { + return + } + let result = {} + try { + result = typeof drawTicketData === 'string' ? JSON.parse(decodeURIComponent(drawTicketData)) : drawTicketData + console.log(result) + } catch (e) { + result = {} + } + const hasTicket = Number(result.hasTicket || 0) === 1 + const howPopup = Number(result.showPopup || 0) === 1 + if (!hasTicket || !howPopup) { + return + } + this.drawTicketPopup = { + show: true, + ticketCode: result.ticketCode || result.code || '', + drawTime: result.drawTime || '' + } + }, + closeDrawTicketPopup() { + this.drawTicketPopup.show = false + }, + goHomeFromPopup() { + this.drawTicketPopup.show = false + uni.switchTab({ + url: '/pages/home/index' + }) + }, + goTicketsFromPopup() { + this.drawTicketPopup.show = false + uni.navigateTo({ + url: '/pkg-video/views/county-my-tickets' + }) + }, + buildOrderDetailQuery(orderId, drawTicketResult = {}) { + return { + id: orderId, + drawTicketData: encodeURIComponent(JSON.stringify(drawTicketResult || {})) + } + }, + async afterPaySuccess(orderId, fallback) { + if (!orderId) { + fallback && fallback() + return + } + try { + const res = await getDrawTicketByOrder(orderId) + const result = (res && res.data) || {} + fallback && fallback(result) + return + } catch (e) { + } + fallback && fallback({}) + } + } +} \ No newline at end of file diff --git a/pages/order/MyOrder/index.vue b/pages/order/MyOrder/index.vue index 195a41a..8345232 100644 --- a/pages/order/MyOrder/index.vue +++ b/pages/order/MyOrder/index.vue @@ -602,6 +602,40 @@ @update:show="showDatePicker = false" @input="handleDateSelected" > + + + × + + + + + + 支付成功 + + + 恭喜获得抽奖码! + + + + + 您的专属抽奖码 + + + {{ drawTicketPopup.ticketCode }} + + 开奖时间:{{ (drawTicketPopup.drawTime) }} + + + + 返回首页 + 查看我的抽奖码 + + + diff --git a/pagesOrder/order/OrderDetails/index.vue b/pagesOrder/order/OrderDetails/index.vue index 9901dfc..a2fb978 100644 --- a/pagesOrder/order/OrderDetails/index.vue +++ b/pagesOrder/order/OrderDetails/index.vue @@ -1,599 +1,624 @@ - - - - - - 待使用 - 待核销 - {{ getStatus(orderInfo) }} - - 您已下单成功,请联系商家确认具体的入住时间 - - - {{ orderInfo._status._msg }} - 驳回原因: {{ orderInfo.refundRejectReason }} - - - 需支付{{ orderInfo.payPrice }}元, - - 剩余订单将自动取消 - - - - - {{ orderInfo.oldRealName }} - {{ orderInfo.oldUserPhone }} - 原地址 - - - {{ orderInfo.oldUserAddress }} - - - - {{ orderInfo.realName }} - {{ orderInfo.userPhone }} - 新地址 - - - {{ orderInfo.userAddress }} - - - - - {{ orderInfo.oldRealName }} - {{ orderInfo.oldUserPhone }} - - - {{ orderInfo.oldUserAddress }} - - - - - {{ orderInfo.realName }} - {{ orderInfo.userPhone }} - - - {{ orderInfo.userAddress }} - 修改地址 - - - - + + + + + + 修改地址正在审核中,请耐心等待 + v-if="isGroup && orderInfo._status._type === 2" + class="state v12-primary-text v12-font-32 v12-font-bold" + >待使用 修改地址审核未通过,商家将按原地址发货,预计{{ getTime(orderInfo.isFastPost) }}发货 - (驳回原因:{{ orderInfo.addressUpdateReason }}) - - - - - - - {{ delivery.deliveryName }}:{{ delivery.deliveryId }} - - 复制 - - - - - - - - {{ logistics[index] && logistics[index].Traces && logistics[index].Traces.length > 0 ? logistics[index] && logistics[index].Traces[logistics[index].Traces.length - 1].acceptStation : '暂无轨迹信息'}} + v-else-if="orderInfo.isTickets === 1 && orderInfo._status._type === 2" + class="state v12-primary-text v12-font-32 v12-font-bold" + >待核销 + {{ getStatus(orderInfo) }} + + 您已下单成功,请联系商家确认具体的入住时间 - - - - - - {{ logistics[index] && logistics[index].Traces && logistics[index].Traces.length > 0 ? logistics[index] && logistics[index].Traces[logistics[index].Traces.length - 1].acceptTime : '' }} - - {{ delivery.estimatedTime }} + {{ orderInfo._status._msg }} + 驳回原因: {{ orderInfo.refundRejectReason }} + + + 需支付{{ orderInfo.payPrice }}元, + + 剩余订单将自动取消 + + + + + {{ orderInfo.oldRealName }} + {{ orderInfo.oldUserPhone }} + 原地址 + + + {{ orderInfo.oldUserAddress }} + + + + {{ orderInfo.realName }} + {{ orderInfo.userPhone }} + 新地址 + + + {{ orderInfo.userAddress }} + + + + + {{ orderInfo.oldRealName }} + {{ orderInfo.oldUserPhone }} + + + {{ orderInfo.oldUserAddress }} + + + + + {{ orderInfo.realName }} + {{ orderInfo.userPhone }} + + + {{ orderInfo.userAddress }} + 修改地址 + + + + + 修改地址正在审核中,请耐心等待 + 修改地址审核未通过,商家将按原地址发货,预计{{ getTime(orderInfo.isFastPost) }}发货 + (驳回原因:{{ orderInfo.addressUpdateReason }}) - - - - - - - 核销码:{{ orderInfo.verifyCode }} - - - 商家电话 - 商家微信 - - - - + - 核销信息 - - - - - - - - - {{ orderInfo.verifyCode }} - - - - 核销时间 - - - 每日: - {{ system_store.dayTime }} - - - - - 使用说明 - - 可将二维码出示给店员扫描或提供数字核销码 - - - - - 自提地址信息 - - 查看位置 - - - - - - {{ system_store.name }} - {{ system_store.phone }} - - - {{ system_store.address }} - - - - - - - - - - - - - - {{ cart.productInfo.storeName }} - - - {{ cart.productInfo.attrInfo.sku || '' }} - - - {{ orderInfo.drawOrderInfo.prizeAttrName || '' }} - - - - - - ¥ - - {{ cart.truePrice }} - - - x{{ cart.cartNum }} - - - - - - - - - - 盲盒礼物 - - - 待收货后展示商品信息 - - - - - - - 商品总价 - - - ¥ - - {{ force2Decimal(orderInfo.totalPrice) }} - - - - - - 运费 - - - ¥ - - {{ force2Decimal(orderInfo.payPostage) }} + + {{ delivery.deliveryName }}:{{ delivery.deliveryId }} + + 复制 + + + + + + + {{ logistics[index] && logistics[index].Traces && logistics[index].Traces.length > 0 ? logistics[index] && logistics[index].Traces[logistics[index].Traces.length - 1].acceptStation : '暂无轨迹信息'}} + + + - - - 满减优惠 - - - - - ¥ - - {{ force2Decimal(orderInfo.couponPrice) }} - - - - - - 商品折扣 - - - - - ¥ - - {{ force2Decimal(orderInfo.discountPrice) }} - - - - - - 积分抵扣 - - - - - ¥ - - {{ force2Decimal(orderInfo.deductionPrice) }} - - - - - - - 实付款 - - - ¥ - - {{ force2Decimal(orderInfo.payPrice) }} - + + {{ logistics[index] && logistics[index].Traces && logistics[index].Traces.length > 0 ? logistics[index] && logistics[index].Traces[logistics[index].Traces.length - 1].acceptTime : '' }} + + + {{ delivery.estimatedTime }} - - - - 抽奖码: - {{ orderInfo.drawOrderInfo.ticketCode }} - + + - + + + 核销码:{{ orderInfo.verifyCode }} + + + 商家电话 + 商家微信 + + + + + 核销信息 + + + + + + + + + {{ orderInfo.verifyCode }} + + + + 核销时间 + + + 每日: + {{ system_store.dayTime }} + + + + + 使用说明 + + 可将二维码出示给店员扫描或提供数字核销码 + + + + + 自提地址信息 + + 查看位置 + + + + + + {{ system_store.name }} + {{ system_store.phone }} + + + {{ system_store.address }} + + + - - - - 订单编号 - - {{ orderInfo.orderId }} - - 复制 - - - - - - 下单时间 - - {{ orderInfo.createTime }} - - - - 订单类型 - {{ orderTypeName }} - - - 支付状态 - {{ orderInfo.paid ? "已支付" : "未支付" }} - - - 支付方式 - {{ orderInfo._status._payType }} - - - 买家备注: - {{ orderInfo.mark }} - - - 来源订单: - - {{ orderInfo.drawOrderInfo.sourceOrderId }} - - 复制 - - - - - - - - - 配送方式: - 发货 - - - 快递公司: - {{ orderInfo.deliveryName || "" }} - - - 快递号: - {{ orderInfo.deliveryId || "" }} + + + + + + + + + + {{ cart.productInfo.storeName }} + + + {{ cart.productInfo.attrInfo.sku || '' }} + + + {{ orderInfo.drawOrderInfo.prizeAttrName || '' }} + + + + + + ¥ + + {{ cart.truePrice }} + + + x{{ cart.cartNum }} + + + + + + + + + + 盲盒礼物 + + + 待收货后展示商品信息 + + + + + + + 商品总价 + + + ¥ + + {{ force2Decimal(orderInfo.totalPrice) }} + + + + + + 运费 + + + ¥ + + {{ force2Decimal(orderInfo.payPostage) }} + + + + + + 满减优惠 + + + - + ¥ + + {{ force2Decimal(orderInfo.couponPrice) }} + + + + + + 商品折扣 + + + - + ¥ + + {{ force2Decimal(orderInfo.discountPrice) }} + + + + + + 积分抵扣 + + + - + ¥ + + {{ force2Decimal(orderInfo.deductionPrice) }} + + + + + + + 实付款 + + + ¥ + + {{ force2Decimal(orderInfo.payPrice) }} + + + + + + + + 抽奖码: + {{ orderInfo.drawOrderInfo.ticketCode }} + + - - - 配送方式: - 送货 + + + + 订单编号 + + {{ orderInfo.orderId }} + + 复制 + + + - - 配送人: - {{ orderInfo.deliveryName || "" }} + + 下单时间 + + {{ orderInfo.createTime }} + - - 配送电话: - - {{ orderInfo.deliveryId || "" }} - 拨打 + + 订单类型 + {{ orderTypeName }} + + + 支付状态 + {{ orderInfo.paid ? "已支付" : "未支付" }} + + + 支付方式 + {{ orderInfo._status._payType }} + + + 买家备注: + {{ orderInfo.mark }} + + + 来源订单: + + {{ orderInfo.drawOrderInfo.sourceOrderId }} + + 复制 + - - - - - 收货人: - {{ orderInfo.realName }} - - - 联系电话: - {{ orderInfo.userPhone }} - - - 收货地址: - {{ orderInfo.userAddress }} - - - - - - - 支付金额: + + + + + 配送方式: + 发货 + + + 快递公司: + {{ orderInfo.deliveryName || "" }} + + + 快递号: + {{ orderInfo.deliveryId || "" }} + + + + + + 配送方式: + 送货 + + + 配送人: + {{ orderInfo.deliveryName || "" }} + + + 配送电话: + + {{ orderInfo.deliveryId || "" }} + 拨打 + + - ¥{{ force2Decimal(orderInfo.totalPrice) }} - - 优惠券抵扣: - -¥{{ force2Decimal(orderInfo.couponPrice) }} + + + + 收货人: + {{ orderInfo.realName }} + + + 联系电话: + {{ orderInfo.userPhone }} + + + 收货地址: + {{ orderInfo.userAddress }} + - - 积分抵扣: - -¥{{ force2Decimal(orderInfo.deductionPrice) }} + + + + + 支付金额: + + ¥{{ force2Decimal(orderInfo.totalPrice) }} + + + 优惠券抵扣: + -¥{{ force2Decimal(orderInfo.couponPrice) }} + + + 积分抵扣: + -¥{{ force2Decimal(orderInfo.deductionPrice) }} + + + 运费: + ¥{{ force2Decimal(orderInfo.payPostage) }} + + + 实付款: + ¥{{ force2Decimal(orderInfo.payPrice) }} + - - 运费: - ¥{{ force2Decimal(orderInfo.payPostage) }} + + + + + {{ `已领取${orderInfo.giftCardInfo.receiveNum}/${orderInfo.giftCardInfo.giftNum}份礼包` }} + + {{ `剩余${orderInfo.giftCardInfo.refundNum}份已退回` }} + + + {{ receive.userNickname }} + {{ receive.receiveStatus ? '已领取' : '未领取' }} + - - 实付款: - ¥{{ force2Decimal(orderInfo.payPrice) }} + + + + + 联系商家 + + + + 共{{ orderInfo.totalNum }}件商品 + + + 实付款 + + + ¥ + + + {{ force2Decimal(orderInfo.payPrice) }} + + + 立即付款 + + + + + + + 联系客服 + 联系商家 + 催发货 + 修改地址 + + 申请退款 + + + + + 联系客服 + + + + 更多 + + 延长收货 + 申请退款 + + + 确认收货 + + + + + + 联系商家 + + + 更多 + + 申请退款 + + + 再买一单 + 立即评价 + + + + + + 联系商家 + + + + + 联系商家 + 再买一单 + + + + + 联系商家 + + + 再买一单 + 立即评价 + + + + + + 联系客服 + 删除订单 + + + + 查看拼团 + + + + + + + + + - - - - {{ `已领取${orderInfo.giftCardInfo.receiveNum}/${orderInfo.giftCardInfo.giftNum}份礼包` }} - - {{ `剩余${orderInfo.giftCardInfo.refundNum}份已退回` }} - - - {{ receive.userNickname }} - {{ receive.receiveStatus ? '已领取' : '未领取' }} - - - - - - - 联系商家 - - - - 共{{ orderInfo.totalNum }}件商品 - - - 实付款 - - - ¥ - - - {{ force2Decimal(orderInfo.payPrice) }} - - - 立即付款 - - - - - - - 联系客服 - 联系商家 - 催发货 - 修改地址 - - 申请退款 - - - - - 联系客服 - - - - 更多 - - 延长收货 - 申请退款 - - - 确认收货 - - - - - - 联系商家 - - - 更多 - - 申请退款 - - - 再买一单 - 立即评价 - - - - - - 联系商家 - - - - - 联系商家 - 再买一单 - - - - - 联系商家 - - - 再买一单 - 立即评价 - - - - - - 联系客服 - 删除订单 - - - - 查看拼团 - - - - - - - - - - × @@ -623,7 +648,6 @@ - @@ -639,6 +663,7 @@ import {cancelOrderHandle, delOrderHandle, payOrderHandle, takeOrderHandle, yueP import { pageListenMixins } from '@/mixins/pageListenMixins' // import {postCartAdd} from "@/api/store"; import settings from '@/config/baseSetting.js' +import { orderPaySuccessToCheckDrawStatus } from '@/mixins/orderPaySuccessToCheckDrawStatus.js' const STATUS = [ "待付款", @@ -662,7 +687,7 @@ export default { DataFormat, passkeyborad }, - mixins: [pageListenMixins], + mixins: [pageListenMixins, orderPaySuccessToCheckDrawStatus], data: function () { return { showMoreDeliver: false, @@ -693,14 +718,7 @@ export default { isGroup: false, key: "", loading: true, - addressEditOrderId: "", - drawTicketPopupHandled: false, - drawTicketPopup: { - show: false, - orderId: '', - ticketCode: '', - drawTime: '' - } + addressEditOrderId: "" }; }, computed: { @@ -770,36 +788,6 @@ export default { }, methods: { copyClipboard, - setDrawTicketPopupFromQuery() { - if (this.drawTicketPopupHandled) { - return - } - this.drawTicketPopupHandled = true - const drawTicketData = this.$yroute.query.drawTicketData - if (!drawTicketData) { - return - } - let result = {} - try { - result = JSON.parse(decodeURIComponent(drawTicketData)) - } catch (e) { - result = {} - } - const hasTicket = Number(result.hasTicket || 0) === 1 - const howPopup = Number(result.showPopup || 0) === 1 - if (!hasTicket || !howPopup) { - return - } - this.drawTicketPopup = { - show: true, - orderId: this.id || this.$yroute.query.id || '', - ticketCode: result.ticketCode || result.code || '', - drawTime: result.drawTime || '' - } - }, - closeDrawTicketPopup() { - this.drawTicketPopup.show = false - }, formatDrawTime(time) { if (!time) return '--' const date = new Date(String(time).replace(/-/g, '/')) @@ -811,18 +799,6 @@ export default { const mm = String(date.getMinutes()).padStart(2, '0') return `${y}年${m}月${d}日 ${hh}:${mm}` }, - goHomeFromPopup() { - this.drawTicketPopup.show = false - uni.switchTab({ - url: '/pages/home/index' - }) - }, - goTicketsFromPopup() { - this.drawTicketPopup.show = false - uni.navigateTo({ - url: '/pkg-video/views/county-my-tickets' - }) - }, getTime(type) { const timeMap = { 1:"48小时内", @@ -1121,11 +1097,15 @@ export default { }); }, async toYuePay(payPwd) { - var that = this; - //网络请求 - await yuePayOrderHandle(this.orderInfo.orderId, "yue", that.from, payPwd); - that.getDetail(); - this.payPassword = ""; + const orderId = this.orderInfo.orderId + // 网络请求 + await yuePayOrderHandle(orderId, "yue", this.from, payPwd).then(() => { + this.afterPaySuccess(orderId, (drawTicketResult) => { + this.setDrawTicketPopupFromQuery(drawTicketResult) + }) + }) + this.getDetail() + this.payPassword = "" }, pwdPopClose() { this.isShowPayPwdPop = false; @@ -1290,19 +1270,20 @@ export default { }) }, async toPay(type) { - var that = this; - console.log(type, "支付方式"); - - //余额支付需要输入支付密码 + // 余额支付需要输入支付密码 if (type == "yue") { - this.isShowPayPwdPop = true; - return; + this.isShowPayPwdPop = true + return } else { - await payOrderHandle(this.orderInfo.orderId, type, that.from); - that.getDetail(); + const orderId = this.orderInfo.orderId + // 网络请求 + await payOrderHandle(orderId, type, this.from).then(() => { + this.afterPaySuccess(orderId, (drawTicketResult) => { + this.setDrawTicketPopupFromQuery(drawTicketResult) + }) + }) + this.getDetail() } - - } } }; @@ -1560,193 +1541,4 @@ export default { align-items: center; justify-content: space-between; } - -.draw-ticket-mask { - position: fixed; - inset: 0; - z-index: 1000; - background: rgba(0, 0, 0, 0.45); - display: flex; - align-items: center; - justify-content: center; - padding: 24rpx; - box-sizing: border-box; -} - -.draw-ticket-popup { - width: 100%; - max-width: 640rpx; - background: #fff; - border-radius: 40rpx; - padding: 50rpx 40rpx 60rpx; - position: relative; - box-sizing: border-box; -} - -.draw-ticket-close { - position: absolute; - top: 30rpx; - right: 30rpx; - width: 40rpx; - height: 40rpx; - border: 4rpx solid #333; - border-radius: 50%; - color: #333; - text-align: center; - font-weight: bold; - z-index: 10; - display: flex; - align-items: center; - justify-content: center; -} - -.draw-ticket-icon { - display: flex; - justify-content: center; - margin-top: 20rpx; -} - -.ticket-icon-box { - width: 100rpx; - height: 70rpx; - border-radius: 10rpx; - position: relative; - box-sizing: border-box; -} - -.ticket-icon-check { - width: 100%; - height: 100%; -} - -.draw-ticket-title { - font-size: 56rpx; - color: #222; - font-weight: 800; - text-align: center; - margin-top: 24rpx; - letter-spacing: 2rpx; -} - -.ticket-card-container { - margin-top: 50rpx; - position: relative; - display: flex; - flex-direction: column; - align-items: center; -} - -.ticket-badge { - background-color: #fff9eb; - border: 6rpx solid #111; - border-radius: 40rpx; - padding: 12rpx 40rpx; - font-size: 46rpx; - font-weight: 800; - color: #222; - position: relative; - z-index: 2; - margin-bottom: -36rpx; - letter-spacing: 2rpx; -} - -.ticket-badge-arrow { - position: absolute; - bottom: -22rpx; - left: 50%; - transform: translateX(-50%); - width: 0; - height: 0; - border-left: 22rpx solid transparent; - border-right: 22rpx solid transparent; - border-top: 22rpx solid #111; -} - -.ticket-badge-arrow::after { - content: ''; - position: absolute; - top: -26rpx; - left: -16rpx; - border-left: 16rpx solid transparent; - border-right: 16rpx solid transparent; - border-top: 16rpx solid #fff9eb; -} - -.ticket-card { - width: 100%; - background: #c23326; - border-radius: 36rpx; - padding: 70rpx 36rpx 40rpx; - box-sizing: border-box; - text-align: center; - position: relative; -} - -.ticket-card-subtitle { - display: flex; - justify-content: center; -} - -.ticket-card-subtitle-text { - color: #fff; - font-size: 34rpx; - font-weight: 700; - border: 2rpx solid #fff; - border-radius: 40rpx; - padding: 8rpx 50rpx; - letter-spacing: 4rpx; -} - -.ticket-card-code-box { - background: #fff; - border-radius: 20rpx; - margin-top: 36rpx; - padding: 36rpx 0; -} - -.ticket-card-code { - color: #c23326; - font-size: 72rpx; - font-weight: 800; - letter-spacing: 8rpx; -} - -.ticket-card-time { - color: #fff; - font-size: 30rpx; - margin-top: 36rpx; - text-align: left; -} - -.draw-ticket-actions { - margin-top: 60rpx; - display: flex; - justify-content: space-between; - align-items: center; - gap: 20rpx; -} - -.action-btn { - flex: 1; - height: 86rpx; - border-radius: 44rpx; - font-size: 32rpx; - font-weight: 600; - display: flex; - align-items: center; - justify-content: center; - box-sizing: border-box; - white-space: nowrap; -} - -.action-btn.home-btn { - color: #c23326; - border: 2rpx solid #c23326; - background: #fff; -} - -.action-btn.primary { - color: #fff; - background: #c23326; -}