Fix(订单):[#5293]待付款的活动商品,点击立即付款并付款后,页面未出现已获得抽奖码的弹窗

This commit is contained in:
lifizer
2026-05-20 14:12:49 +08:00
parent f113bf75be
commit 1e78f76be1
5 changed files with 921 additions and 845 deletions
+50 -6
View File
@@ -602,6 +602,40 @@
@update:show="showDatePicker = false"
@input="handleDateSelected"
></DateRangePicker>
<view
v-if="drawTicketPopup.show"
class="draw-ticket-mask"
@touchmove.stop.prevent
>
<view class="draw-ticket-popup">
<view class="draw-ticket-close" @click="closeDrawTicketPopup">×</view>
<view class="draw-ticket-icon">
<view class="ticket-icon-box">
<image class="ticket-icon-check" :src="webUrl + '/home/gongxi.png'" mode="widthFix"></image>
</view>
</view>
<view class="draw-ticket-title">支付成功</view>
<view class="ticket-card-container">
<view class="ticket-badge">
<text>恭喜获得抽奖码!</text>
<view class="ticket-badge-arrow"></view>
</view>
<view class="ticket-card">
<view class="ticket-card-subtitle">
<text class="ticket-card-subtitle-text">您的专属抽奖码</text>
</view>
<view class="ticket-card-code-box">
<text class="ticket-card-code">{{ drawTicketPopup.ticketCode }}</text>
</view>
<view class="ticket-card-time">开奖时间:{{ (drawTicketPopup.drawTime) }}</view>
</view>
</view>
<view class="draw-ticket-actions">
<view class="action-btn home-btn" @click="goHomeFromPopup">返回首页</view>
<view class="action-btn primary" @click="goTicketsFromPopup">查看我的抽奖码</view>
</view>
</view>
</view>
</view>
</template>
<script>
@@ -626,10 +660,11 @@ import Payment from "@/components/Payment"
import { mapGetters } from "vuex"
import { pageListenMixins } from '@/mixins/pageListenMixins'
import settings from '@/config/baseSetting.js'
import { orderPaySuccessToCheckDrawStatus } from '@/mixins/orderPaySuccessToCheckDrawStatus.js'
export default {
name: "MyOrder",
mixins: [pageListenMixins],
mixins: [pageListenMixins, orderPaySuccessToCheckDrawStatus],
data() {
return {
giftItem: {},
@@ -1017,9 +1052,14 @@ export default {
})
},
async toYuePay(payPwd) {
const that = this;
//网络请求
await yuePayOrderHandle(this.orderInfo.orderId, "yue", that.from, payPwd);
const that = this
const orderId = this.orderInfo.orderId
// 网络请求
await yuePayOrderHandle(orderId, "yue", that.from, payPwd).then(() => {
this.afterPaySuccess(orderId, (drawTicketResult) => {
this.setDrawTicketPopupFromQuery(drawTicketResult)
})
});
that.changeType();
this.payPassword = "";
},
@@ -1379,13 +1419,17 @@ export default {
}
},
toPay(type) {
const that = this
// 余额支付需要输入支付密码
if (type == "yue") {
this.isShowPayPwdPop = true
return
} else {
payOrderHandle(this.orderInfo.orderId, type, that.from)
const orderId = this.orderInfo.orderId
payOrderHandle(orderId, type, this.from).then(() => {
this.afterPaySuccess(orderId, (drawTicketResult) => {
this.setDrawTicketPopupFromQuery(drawTicketResult)
})
})
}
},
toDelay(id) {
+3 -23
View File
@@ -331,6 +331,7 @@ import CouponsPopup from "@/components/CouponsPopup.vue"
import { getDrawTicketByOrder } from '@/api/lottery'
import { pageListenMixins } from '@/mixins/pageListenMixins'
import settings from '@/config/baseSetting.js'
import { orderPaySuccessToCheckDrawStatus } from '@/mixins/orderPaySuccessToCheckDrawStatus.js'
const NAME = "OrderSubmission"
const _isWeixin = isWeixin()
@@ -344,7 +345,7 @@ export default {
passkeyborad,
CouponsPopup
},
mixins: [pageListenMixins],
mixins: [pageListenMixins, orderPaySuccessToCheckDrawStatus],
props: {},
data: function () {
return {
@@ -847,28 +848,7 @@ export default {
this.computedPrice(1)
// this.couponId = uni.getStorageSync('couponId') || 0
// this.couponTitle = item.couponTitle
},
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({})
},
}
}
};
</script>