From 825a052533067b1cad644f7c15dbab797d37ccb1 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 6 Oct 2025 20:45:29 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E3=80=90antd=E3=80=91=E3=80=90ele?= =?UTF-8?q?=E3=80=91=E3=80=90pay=20=E6=94=AF=E4=BB=98=E3=80=91pay/cashier?= =?UTF-8?q?=20=E8=BF=81=E7=A7=BB=20antd=E3=80=81ele=20=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/views/pay/cashier/data.ts | 2 ++ apps/web-antd/src/views/pay/cashier/index.vue | 22 ++++++++++--------- apps/web-ele/src/views/pay/cashier/data.ts | 2 ++ apps/web-ele/src/views/pay/cashier/index.vue | 22 ++++++++++--------- 4 files changed, 28 insertions(+), 20 deletions(-) diff --git a/apps/web-antd/src/views/pay/cashier/data.ts b/apps/web-antd/src/views/pay/cashier/data.ts index 0918a6f10..eb0cec957 100644 --- a/apps/web-antd/src/views/pay/cashier/data.ts +++ b/apps/web-antd/src/views/pay/cashier/data.ts @@ -40,6 +40,7 @@ export const channelsAlipay = [ code: 'alipay_bar', }, ]; + export const channelsWechat = [ { name: '微信公众号支付', @@ -67,6 +68,7 @@ export const channelsWechat = [ code: 'wx_bar', }, ]; + export const channelsMock = [ { name: '钱包支付', diff --git a/apps/web-antd/src/views/pay/cashier/index.vue b/apps/web-antd/src/views/pay/cashier/index.vue index 31662f438..dcbac0a63 100644 --- a/apps/web-antd/src/views/pay/cashier/index.vue +++ b/apps/web-antd/src/views/pay/cashier/index.vue @@ -28,22 +28,21 @@ import { channelsAlipay, channelsMock, channelsWechat } from './data'; defineOptions({ name: 'PayCashier' }); -const [Modal, modalApi] = useVbenModal({ - showConfirmButton: false, - destroyOnClose: true, -}); - const route = useRoute(); -const { push } = useRouter(); // 路由 +const { push } = useRouter(); const { closeCurrentTab } = useTabs(); const id = ref(); // 支付单号 const title = ref('支付订单'); const returnUrl = ref(); // 支付完的回调地址 - const payOrder = ref(); const interval = ref(undefined); // 定时任务,轮询是否完成支付 +const [Modal, modalApi] = useVbenModal({ + showConfirmButton: false, + destroyOnClose: true, +}); + /** 展示形式:二维码 */ const qrCode = ref({ url: '', @@ -87,9 +86,11 @@ async function getDetail() { goReturnUrl('close'); return; } + // 2. 正常展示支付信息 payOrder.value = res; } +/** 处理支付 */ function handlePay(channelCode: string) { switch (channelCode) { // 条形码支付,需要特殊处理 @@ -129,6 +130,7 @@ function handlePay(channelCode: string) { } } +/** 提交支付 */ async function submit(channelCode: string) { try { const submitParam = { @@ -165,9 +167,7 @@ async function submit(channelCode: string) { // 打开轮询任务 createQueryInterval(); - } finally { - // message.success('支付成功!') - } + } finally {} } /** 构建提交支付的额外参数 */ @@ -291,10 +291,12 @@ function goReturnUrl(payResult: string) { } } +/** 页面加载时,获取支付信息 */ onMounted(async () => { await getDetail(); }); +/** 页面卸载时,清理定时任务 */ onBeforeUnmount(() => { clearQueryInterval(); }); diff --git a/apps/web-ele/src/views/pay/cashier/data.ts b/apps/web-ele/src/views/pay/cashier/data.ts index 0918a6f10..eb0cec957 100644 --- a/apps/web-ele/src/views/pay/cashier/data.ts +++ b/apps/web-ele/src/views/pay/cashier/data.ts @@ -40,6 +40,7 @@ export const channelsAlipay = [ code: 'alipay_bar', }, ]; + export const channelsWechat = [ { name: '微信公众号支付', @@ -67,6 +68,7 @@ export const channelsWechat = [ code: 'wx_bar', }, ]; + export const channelsMock = [ { name: '钱包支付', diff --git a/apps/web-ele/src/views/pay/cashier/index.vue b/apps/web-ele/src/views/pay/cashier/index.vue index 7a338652f..9eec0d73d 100644 --- a/apps/web-ele/src/views/pay/cashier/index.vue +++ b/apps/web-ele/src/views/pay/cashier/index.vue @@ -28,22 +28,21 @@ import { channelsAlipay, channelsMock, channelsWechat } from './data'; defineOptions({ name: 'PayCashier' }); -const [Modal, modalApi] = useVbenModal({ - showConfirmButton: false, - destroyOnClose: true, -}); - const route = useRoute(); -const { push } = useRouter(); // 路由 +const { push } = useRouter(); const { closeCurrentTab } = useTabs(); const id = ref(); // 支付单号 const title = ref('支付订单'); const returnUrl = ref(); // 支付完的回调地址 - const payOrder = ref(); const interval = ref(undefined); // 定时任务,轮询是否完成支付 +const [Modal, modalApi] = useVbenModal({ + showConfirmButton: false, + destroyOnClose: true, +}); + /** 展示形式:二维码 */ const qrCode = ref({ url: '', @@ -87,9 +86,11 @@ async function getDetail() { goReturnUrl('close'); return; } + // 2. 正常展示支付信息 payOrder.value = res; } +/** 处理支付 */ function handlePay(channelCode: string) { switch (channelCode) { // 条形码支付,需要特殊处理 @@ -129,6 +130,7 @@ function handlePay(channelCode: string) { } } +/** 提交支付 */ async function submit(channelCode: string) { try { const submitParam = { @@ -165,9 +167,7 @@ async function submit(channelCode: string) { // 打开轮询任务 createQueryInterval(); - } finally { - // message.success('支付成功!') - } + } finally {} } /** 构建提交支付的额外参数 */ @@ -291,10 +291,12 @@ function goReturnUrl(payResult: string) { } } +/** 页面加载时,获取支付信息 */ onMounted(async () => { await getDetail(); }); +/** 页面卸载时,清理定时任务 */ onBeforeUnmount(() => { clearQueryInterval(); });