fix: 修复扫码支付完成回调无响应问题

This commit is contained in:
YeMingfei666 2025-04-22 09:49:57 +08:00
parent 65c1aef7bf
commit 22b98fd697
3 changed files with 36 additions and 5 deletions

View File

@ -207,7 +207,12 @@
</div> </div>
</div> </div>
<!-- 扫码 --> <!-- 扫码 -->
<scanPay ref="refScanPay" :order="orderInfo" @confirm="refScanPayConfirm"></scanPay> <scanPay
ref="refScanPay"
:order="orderInfo"
@confirm="refScanPayConfirm"
@paysuccess="paysuccess"
></scanPay>
<!-- 打折 --> <!-- 打折 -->
<discount ref="refDiscount" @confirm="discountConfirm"></discount> <discount ref="refDiscount" @confirm="discountConfirm"></discount>
<!-- 优惠券 --> <!-- 优惠券 -->
@ -591,12 +596,16 @@ async function payOrder(payType, isScan, guazhangren) {
} }
if (res) { if (res) {
clearTimeout(payTimer);
ElMessage.success("支付成功");
emits("paysuccess");
loading.close(); loading.close();
paysuccess();
} }
} }
function paysuccess() {
clearTimeout(payTimer);
ElMessage.success("支付成功");
emits("paysuccess");
}
// //
const discountAmount = computed(() => { const discountAmount = computed(() => {
const money = carts.goodsTotal - productCouponDiscountAmount.value; const money = carts.goodsTotal - productCouponDiscountAmount.value;

View File

@ -139,9 +139,20 @@ export default {
shopId: localStorage.getItem("shopId"), shopId: localStorage.getItem("shopId"),
orderId: this.order.id, orderId: this.order.id,
}); });
console.log(res);
// if (res == "done") {
// ElMessage({
// message: "",
// type: "success",
// });
// }
if (res != "unpaid") { if (res != "unpaid") {
console.log("已支付或取消");
this.close();
this.clear(); this.clear();
this.$emit("paySuccess"); if (res == "done") {
this.$emit("paysuccess");
}
} }
}, },
startGetOrderInfo() { startGetOrderInfo() {

View File

@ -859,7 +859,10 @@ function resetOldOrder() {
originAmount: 0, originAmount: 0,
}); });
} }
function refresh() { function refresh() {
console.log("index refresh");
carts.clearHistory();
resetOldOrder(); resetOldOrder();
showOrder.value = false; showOrder.value = false;
user.value = {}; user.value = {};
@ -871,6 +874,14 @@ function refresh() {
// router.go(0); // router.go(0);
// }, 1500); // }, 1500);
} }
watch(
() => carts.oldOrder.id,
(newval, oldval) => {
if (!newval && carts.isEmpty) {
showOrder.value = false;
}
}
);
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>