From 2a949d1b1f6f7aa77fd093a994e52403e79f8387 Mon Sep 17 00:00:00 2001 From: kele <1184860403@qq.com> Date: Fri, 20 Oct 2023 18:57:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E8=B4=A7=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/order/detail.vue | 16 ++++++----- pages/order/list.vue | 64 ++++++++++++++++++++++++++++++++++-------- 2 files changed, 62 insertions(+), 18 deletions(-) diff --git a/pages/order/detail.vue b/pages/order/detail.vue index 70abbd3e..d0fa5cde 100644 --- a/pages/order/detail.vue +++ b/pages/order/detail.vue @@ -401,11 +401,14 @@ // todo: // 1.怎么检测是否开启了发货组件功能?如果没有开启的话就不能在这里return出去 // 2.如果开启了走mpConfirm方法,需要在App.vue的show方法中拿到确认收货结果 - if (sheep.$platform.name === 'WechatMiniProgram' && !ignore) { - if (!isEmpty(state.orderInfo.wechat_extra_data) && tradeManaged.value === 1) { - mpConfirm(orderId); - return; - } + let isOpenBusinessView = true; + if ( + sheep.$platform.name === 'WechatMiniProgram' && + !isEmpty(state.orderInfo.wechat_extra_data) && + isOpenBusinessView && + !ignore + ) { + mpConfirm(orderId); return; } @@ -426,8 +429,7 @@ wx.openBusinessView({ businessType: 'weappOrderConfirm', extraData: { - // merchant_id: '1481069012', - // merchant_trade_no: state.orderInfo.wechat_extra_data.merchant_trade_no, + merchant_trade_no: state.orderInfo.wechat_extra_data.merchant_trade_no, transaction_id: state.orderInfo.wechat_extra_data.transaction_id, }, success(response) { diff --git a/pages/order/list.vue b/pages/order/list.vue index da5a5644..7e57bb1f 100644 --- a/pages/order/list.vue +++ b/pages/order/list.vue @@ -157,7 +157,7 @@ @@ -239,6 +239,7 @@ import { formatOrderColor } from '@/sheep/hooks/useGoods'; import sheep from '@/sheep'; import _ from 'lodash'; + import { isEmpty } from 'lodash'; const pagination = { data: [], @@ -329,21 +330,62 @@ } // 确认收货 - async function onConfirm(orderId) { - uni.showModal({ - title: '提示', - content: '请确认包裹全部到达后再确认收货', - success: async function (res) { - if (res.confirm) { - const { error, data } = await sheep.$api.order.confirm(orderId); - if (error === 0) { - let index = state.pagination.data.findIndex((order) => order.id === orderId); - state.pagination.data[index] = data; + async function onConfirm(order, ignore = false) { + // 需开启确认收货组件 + // todo: + // 1.怎么检测是否开启了发货组件功能?如果没有开启的话就不能在这里return出去 + // 2.如果开启了走mpConfirm方法,需要在App.vue的show方法中拿到确认收货结果 + let isOpenBusinessView = true; + if ( + sheep.$platform.name === 'WechatMiniProgram' && + !isEmpty(order.wechat_extra_data) && + isOpenBusinessView && + !ignore + ) { + mpConfirm(order); + return; + } + + // 正常的确认收货流程 + + const { error } = await sheep.$api.order.confirm(order.id); + if (error === 0) { + state.pagination = pagination; + getOrderList(); + } + } + + // #ifdef MP-WEIXIN + // 小程序确认收货组件 + function mpConfirm(order) { + if (!wx.openBusinessView) { + sheep.$helper.toast(`请升级微信版本`); + return; + } + wx.openBusinessView({ + businessType: 'weappOrderConfirm', + extraData: { + merchant_id: '1481069012', + merchant_trade_no: order.wechat_extra_data.merchant_trade_no, + transaction_id: order.wechat_extra_data.transaction_id, + }, + success(response) { + console.log('success:', response); + if (response.errMsg === 'openBusinessView:ok') { + if (response.extraData.status === 'success') { + onConfirm(order, true); } } }, + fail(error) { + console.log('error:', error); + }, + complete(result) { + console.log('result:', result); + }, }); } + // #endif // 查看物流 async function onExpress(orderId) {