From 363b620a08b4830c22ec58f4db09ea849b7ba55b Mon Sep 17 00:00:00 2001 From: yindongqi Date: Fri, 11 Apr 2025 14:46:07 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=AE=A2=E5=8D=95):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=8A=9F=E8=83=BD=E5=B9=B6=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E8=AF=A6=E6=83=85=E6=98=BE=E7=A4=BA=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在订单页面添加支付按钮,并实现支付逻辑 - 根据订单支付状态调整订单详情页面的显示内容 - 修复购物车栏底部位置,提升用户体验 --- pages/components/pages/orders/detail.vue | 7 ++- pages/menu/menu.vue | 2 +- pages/order/order.vue | 80 +++++++++++++++++++++--- 3 files changed, 78 insertions(+), 11 deletions(-) diff --git a/pages/components/pages/orders/detail.vue b/pages/components/pages/orders/detail.vue index d89bdfb..ceb38f7 100644 --- a/pages/components/pages/orders/detail.vue +++ b/pages/components/pages/orders/detail.vue @@ -24,11 +24,14 @@ - + + 订单未支付 + + {{ order.numberId }} - + diff --git a/pages/menu/menu.vue b/pages/menu/menu.vue index 26a857d..cb46c52 100644 --- a/pages/menu/menu.vue +++ b/pages/menu/menu.vue @@ -1194,7 +1194,7 @@ .cart-bar { position: fixed; - bottom: 140rpx; + bottom: 30rpx; left: 0; width: calc(100% - 80rpx); height: 100rpx; diff --git a/pages/order/order.vue b/pages/order/order.vue index af8a972..03ae629 100644 --- a/pages/order/order.vue +++ b/pages/order/order.vue @@ -74,7 +74,15 @@ + + + 支付 + { // tab栏切换 const change = (e) => { - console.log('e;',e.type) - console.log('e.index;',e.index) + console.log("e;", e.type); + console.log("e.index;", e.index); type.value = e.type; getOrders(true); current.value = e.index; @@ -213,6 +226,56 @@ const detail = (id) => { }); }; +const handlePay = async (item) => { + // uni.showLoading({ title: "加载中" }); + + try { + // 调用支付接口 + let from = "routine"; + // #ifdef H5 + from = "h5"; + if (isWeixin()) { + from = "wechat"; + } + // #endif + + let data = await payUnify({ + uni: item.orderId, + from: from, + paytype: "weixin", + }); + + if (!data) { + // uni.hideLoading(); + return; + } + + if (data.trade_type === "JSAPI") { + // #ifdef MP-WEIXIN + uni.requestPayment({ + provider: "wxpay", + timeStamp: data.data.timeStamp, + nonceStr: data.data.nonceStr, + package: data.data.package, + signType: "MD5", + paySign: data.data.paySign, + success: function () { + uni.showToast({ title: "支付成功" }); + getOrders(true); // 刷新订单列表 + }, + fail: function (err) { + console.log("支付失败:", err); + // uni.hideLoading(); + }, + }); + // #endif + } + } catch (error) { + console.error("支付异常:", error); + // uni.hideLoading(); + } +}; + const handleInvoice = async (item) => { if (item.invoiceStatus === "UNREQUESTED") { // 申请发票 @@ -226,8 +289,8 @@ const handleInvoice = async (item) => { // 下载发票 if (item.invoiceAddress) { uni.showLoading({ - title: '加载中', - mask: true + title: "加载中", + mask: true, }); uni.downloadFile({ url: item.invoiceAddress, @@ -244,11 +307,11 @@ const handleInvoice = async (item) => { fail: (err) => { uni.hideLoading(); uni.showToast({ - title: '发票下载失败', - icon: 'none' + title: "发票下载失败", + icon: "none", }); - console.error('下载发票失败:', err); - } + console.error("下载发票失败:", err); + }, }); } } @@ -435,6 +498,7 @@ const receive = async (order) => { font-weight: 600; text-align: right; white-space: nowrap; + padding-right: 20rpx; /* line-height: 194rpx; */ }