下单支付选择优化

master
gongfuxiang 2024-03-25 15:14:02 +08:00
parent 87a9f4a21b
commit f00a181dbd
1 changed files with 53 additions and 30 deletions

View File

@ -203,21 +203,23 @@
<!-- 支付方式 --> <!-- 支付方式 -->
<view v-if="total_price > 0 && common_order_is_booking != 1 && (payment_list.length > 0 || ((plugins_coin_data || null) != null && (plugins_coin_data.accounts_list || null) != null && plugins_coin_data.accounts_list.length > 0))" class="payment-list border-radius-main bg-white oh spacing-mb"> <view v-if="total_price > 0 && common_order_is_booking != 1 && (payment_list.length > 0 || ((plugins_coin_data || null) != null && (plugins_coin_data.accounts_list || null) != null && plugins_coin_data.accounts_list.length > 0))" class="payment-list border-radius-main bg-white oh spacing-mb">
<view v-if="payment_list.length > 0" class="padding-horizontal-main padding-top-main br-b-f9"> <view v-if="payment_list.length > 0" class="padding-horizontal-main padding-top-main br-b-f9">
<view v-for="(item, index) in payment_list" :key="index" class="item flex-row jc-sb align-c" :class="payment_list.length === index + 1 ? '' : 'br-b-f9'" :data-value="item.id" :data-index="index" data-type="1" @tap="payment_event"> <view v-for="(item, index) in payment_list" :key="index">
<view class="item-content pr flex-1 flex-width"> <view class="item flex-row jc-sb align-c" :data-value="item.id" :data-index="index" @tap="payment_event">
<image v-if="(item.logo || null) != null" class="icon margin-right-sm va-m" :src="item.logo" mode="widthFix"></image> <view class="item-content pr flex-1 flex-width">
<text class="va-m">{{ item.name }}</text> <image v-if="(item.logo || null) != null" class="icon margin-right-sm va-m" :src="item.logo" mode="widthFix"></image>
<text v-if="(item.tips || null) !== null" class="pay-tips">{{ item.tips }}</text> <text class="va-m">{{ item.name }}</text>
</view> <text v-if="(item.tips || null) !== null" class="pay-tips">{{ item.tips }}</text>
<view> </view>
<iconfont :name="payment_index === index ? 'icon-zhifu-yixuan cr-red' : 'icon-zhifu-weixuan'" size="36rpx"></iconfont> <view>
<iconfont :name="payment_index == index ? 'icon-zhifu-yixuan cr-red' : 'icon-zhifu-weixuan'" size="36rpx"></iconfont>
</view>
</view> </view>
</view> </view>
</view> </view>
<view v-if="(plugins_coin_data || null) != null && (plugins_coin_data.accounts_list || null) != null && plugins_coin_data.accounts_list.length > 0" class="padding-horizontal-main padding-bottom-main"> <view v-if="(plugins_coin_data || null) != null && (plugins_coin_data.accounts_list || null) != null && plugins_coin_data.accounts_list.length > 0" class="padding-horizontal-main padding-bottom-main">
<block v-for="(item, index) in plugins_coin_data.accounts_list"> <block v-for="(item, index) in plugins_coin_data.accounts_list" :key="index">
<block v-if="plugins_coin_more_control ? index < 3 : true"> <block v-if="plugins_coin_more_control ? index < 3 : true">
<view :key="index" class="item flex-row jc-sb align-c br-b-f9" :data-value="item.id" :data-index="index" data-type="2" @tap="coin_payment_event"> <view class="item flex-row jc-sb align-c br-b-f9" :data-value="item.id" :data-index="index" @tap="coin_payment_event">
<view class="item-content pr flex-row align-c"> <view class="item-content pr flex-row align-c">
<image v-if="(item.logo || null) != null" class="icon margin-right-sm va-m" :src="item.logo" mode="widthFix"></image> <image v-if="(item.logo || null) != null" class="icon margin-right-sm va-m" :src="item.logo" mode="widthFix"></image>
<view class="flex-col"> <view class="flex-col">
@ -229,7 +231,7 @@
</view> </view>
</view> </view>
<view> <view>
<iconfont :name="plugins_coin_choice_index === index ? 'icon-zhifu-yixuan cr-red' : 'icon-zhifu-weixuan'" size="36rpx"></iconfont> <iconfont :name="plugins_coin_index == index ? 'icon-zhifu-yixuan cr-red' : 'icon-zhifu-weixuan'" size="36rpx"></iconfont>
</view> </view>
</view> </view>
</block> </block>
@ -361,7 +363,9 @@
data_list_loding_msg: '', data_list_loding_msg: '',
params: null, params: null,
payment_list: [], payment_list: [],
payment_index: 0, payment_index: -1,
payment_id: 0,
payment_type: 'system-pay',
goods_list: [], goods_list: [],
address: null, address: null,
address_id: null, address_id: null,
@ -404,7 +408,7 @@
plugins_freightfee_choice_data: {}, plugins_freightfee_choice_data: {},
// //
plugins_coin_data: null, plugins_coin_data: null,
plugins_coin_choice_index: -1, plugins_coin_index: -1,
plugins_coin_more_control: true, plugins_coin_more_control: true,
// //
@ -534,7 +538,8 @@
}); });
var data = this.params; var data = this.params;
data['address_id'] = this.address_id; data['address_id'] = this.address_id;
data['payment_id'] = this.payment_id; data['payment_id'] = this.payment_id;
data['payment_type'] = this.payment_type;
data['site_model'] = this.site_model; data['site_model'] = this.site_model;
uni.request({ uni.request({
url: app.globalData.get_request_url('index', 'buy'), url: app.globalData.get_request_url('index', 'buy'),
@ -551,8 +556,21 @@
this.setData({ this.setData({
currency_symbol: data.currency_symbol || app.globalData.currency_symbol(), currency_symbol: data.currency_symbol || app.globalData.currency_symbol(),
payment_list: data.payment_list || [], payment_list: data.payment_list || [],
payment_id: data.default_payment_id || '', payment_id: data.default_payment_id || 0,
}); payment_type: data.default_payment_type || 'system-pay',
});
//
if(this.payment_list.length > 0 && parseInt(this.payment_id) > 0 && this.payment_type == 'system-pay') {
for(var i in this.payment_list) {
if(this.payment_id == this.payment_list[i]['id']) {
this.setData({
payment_index: i
});
break;
}
}
}
// //
if ((data.is_order_submit || 0) == 1) { if ((data.is_order_submit || 0) == 1) {
@ -773,7 +791,8 @@
// //
var data = this.params; var data = this.params;
data['address_id'] = this.address_id; data['address_id'] = this.address_id;
data['payment_id'] = this.payment_id; data['payment_id'] = this.payment_id;
data['payment_type'] = this.payment_type;
data['user_note'] = this.user_note_value; data['user_note'] = this.user_note_value;
data['site_model'] = this.site_model; data['site_model'] = this.site_model;
@ -883,22 +902,26 @@
// //
payment_event(e) { payment_event(e) {
if (e.currentTarget.dataset.type == '1') {
this.setData({
payment_index: e.currentTarget.dataset.index,
plugins_coin_choice_index: -1,
});
} else {
this.setData({
payment_index: -1,
plugins_coin_choice_index: e.currentTarget.dataset.index,
});
}
this.setData({ this.setData({
payment_id: e.currentTarget.dataset.value, payment_id: e.currentTarget.dataset.value,
payment_type: 'system-pay',
payment_index: e.currentTarget.dataset.index,
plugins_coin_index: -1,
}); });
this.init(); this.init();
}, },
//
coin_payment_event(e) {
this.setData({
payment_id: e.currentTarget.dataset.value,
payment_type: 'plugins-coin',
plugins_coin_index: e.currentTarget.dataset.index,
payment_index: -1,
});
this.init();
},
// //
change_coin_more_event() { change_coin_more_event() {
this.setData({ this.setData({