Fix(订单列表):【商城小程序】待付款订单—立即付款,应直接跳出输入支付密码弹窗而不是订单详情页面

This commit is contained in:
linxi
2024-09-12 11:15:24 +08:00
parent 024eedaabb
commit db4dc959d4
2 changed files with 63 additions and 11 deletions
@@ -100,7 +100,7 @@
} }
</script> </script>
<style lang="scss"> <style lang="scss" scoped>
input { input {
display: none; display: none;
} }
+62 -10
View File
@@ -130,7 +130,7 @@
<template v-if="order._status._type == 0"> <template v-if="order._status._type == 0">
<view class="bnt cancelBnt v12-dark-text v12-dark-border" @click="cancelOrder(order)">取消订单</view> <view class="bnt cancelBnt v12-dark-text v12-dark-border" @click="cancelOrder(order)">取消订单</view>
<view class="bnt cancelBnt v12-dark-text v12-dark-border" @click="addressTap(order)">修改地址</view> <view class="bnt cancelBnt v12-dark-text v12-dark-border" @click="addressTap(order)">修改地址</view>
<view class="bnt bg-color-lightred v12-white v12-primary-text v12-primary-border v12-radius-40" @click="goOrderDetails(order)">立即付款</view> <view class="bnt bg-color-lightred v12-white v12-primary-text v12-primary-border v12-radius-40" @click="subscribePay(order)">立即付款</view>
</template> </template>
<template v-if="(order._status._type == 1 || order._status._type == 9) && order.isTickets==0"> <template v-if="(order._status._type == 1 || order._status._type == 9) && order.isTickets==0">
<view class="bnt bg-color-lightred v12-white v12-primary-text v12-primary-border v12-radius-40" @click="goOrderDetails(order)">查看详情</view> <view class="bnt bg-color-lightred v12-white v12-primary-text v12-primary-border v12-radius-40" @click="goOrderDetails(order)">查看详情</view>
@@ -159,9 +159,14 @@
</view> </view>
</view> </view>
<u-modal :show="showExtend" title="确认延长收货时间?" content='每笔订单只能延长一次哦' showCancelButton <u-modal
@cancel="showExtend=false" @confirm="doneDelay"></u-modal> :show="showExtend"
title="确认延长收货时间?"
content='每笔订单只能延长一次哦'
showCancelButton
@cancel="showExtend=false"
@confirm="doneDelay">
</u-modal>
<view class="noCart" v-if="orderList.length === 0 && page > 1"> <view class="noCart" v-if="orderList.length === 0 && page > 1">
<view class="pictrue"> <view class="pictrue">
<image :src="webUrl+'/20240102232734472795.png'"/> <image :src="webUrl+'/20240102232734472795.png'"/>
@@ -169,11 +174,20 @@
</view> </view>
<Loading :loaded="loaded" :loading="loading"></Loading> <Loading :loaded="loaded" :loading="loading"></Loading>
<Payment v-model="pay" :types="payType" @checked="toPay" :balance="userInfo.nowMoney"></Payment> <Payment v-model="pay" :types="payType" @checked="toPay" :balance="userInfo.nowMoney"></Payment>
<passkeyborad
:money="orderInfo.payPrice"
showMoney
:show="isShowPayPwdPop"
ref='payPwdPop'
@close="pwdPopClose"
@finish="pwdPopFinish"
></passkeyborad>
</view> </view>
</template> </template>
<script> <script>
import passkeyborad from '@/components/yzc-paykeyboard/yzc-paykeyboard'
import {getOrderData, getOrderList, orderDelay, editAddress} from "@/api/order"; import {getOrderData, getOrderList, orderDelay, editAddress} from "@/api/order";
import {cancelOrderHandle, payOrderHandle, takeOrderHandle} from "@/libs/order"; import {cancelOrderHandle, payOrderHandle, takeOrderHandle, yuePayOrderHandle} from "@/libs/order";
import Loading from "@/components/Loading"; import Loading from "@/components/Loading";
import Payment from "@/components/Payment"; import Payment from "@/components/Payment";
import {mapGetters} from "vuex"; import {mapGetters} from "vuex";
@@ -184,6 +198,7 @@ export default {
mixins: [pageListenMixins], mixins: [pageListenMixins],
data() { data() {
return { return {
isShowPayPwdPop: false,
inputStyle: { inputStyle: {
height: '64rpx', height: '64rpx',
}, },
@@ -223,18 +238,19 @@ export default {
pay: false, pay: false,
payType: ["yue", "weixin"], payType: ["yue", "weixin"],
from: this.$deviceType, from: this.$deviceType,
orderInfo: {},
showExtend: false, showExtend: false,
delayId: null, delayId: null,
pageKeyId: Object.freeze('userOrderIndex'), pageKeyId: Object.freeze('userOrderIndex'),
keyword: '', keyword: '',
_orderId: '', _orderId: '',
addressId: '' addressId: '',
}; };
}, },
components: { components: {
Loading, Loading,
Payment Payment,
passkeyborad
}, },
computed: mapGetters(["userInfo"]), computed: mapGetters(["userInfo"]),
onShow: function () { onShow: function () {
@@ -288,6 +304,30 @@ export default {
} }
}, },
methods: { methods: {
async toYuePay(payPwd) {
const that = this;
//网络请求
await yuePayOrderHandle(this.orderInfo.orderId, "yue", that.from, payPwd);
that.changeType();
this.payPassword = "";
},
pwdPopClose() {
this.isShowPayPwdPop = false;
},
pwdPopFinish(payPwd) {
this.payPassword = payPwd;
this.toYuePay(payPwd);
this.isShowPayPwdPop = false;
},
subscribePay(order) {
this.orderInfo = order
uni.requestSubscribeMessage({
tmplIds: ['7O3wKw7_D4t7yfSOlvecKuOQP8QEPY88uBx2FJg43HE', 'TSmTnGibZ8IxWCiRWOvLxha6-0u7tE-V1-WbDCiPkKU', '9Q6xLHe6HyjkU5Zn5k_2zxYPf2y4MxVyUbOSW8pcZRU'],
complete: () => this.pay = true
})
},
addressTap(order) { addressTap(order) {
this._orderId = order.orderId this._orderId = order.orderId
this.$yrouter.push({ this.$yrouter.push({
@@ -459,6 +499,9 @@ export default {
this.page++; this.page++;
this.loaded = res.data.length < this.limit; this.loaded = res.data.length < this.limit;
this.loading = false; this.loading = false;
}).finally(() => {
this.loading = false;
// console.log('???',this.loading);
}); });
}, },
tapShowMore(order, index) { tapShowMore(order, index) {
@@ -512,7 +555,7 @@ export default {
}); });
}, },
paymentTap: function (order) { paymentTap: function (order) {
var that = this; const that = this;
if ( if (
!(order.combinationId > 0 || order.bargainId > 0 || order.seckillId > 0) !(order.combinationId > 0 || order.bargainId > 0 || order.seckillId > 0)
) { ) {
@@ -533,7 +576,16 @@ export default {
}); });
}; };
}, },
toPay() { toPay(type) {
const that = this;
console.log(type, "支付方式");
//余额支付需要输入支付密码
if (type == "yue") {
this.isShowPayPwdPop = true;
return;
} else {
payOrderHandle(this.orderInfo.orderId, type, that.from);
}
}, },
toDelay(id) { toDelay(id) {