diff --git a/components/payment/payment.vue b/components/payment/payment.vue
index 0ce7480f..c6d50cb1 100644
--- a/components/payment/payment.vue
+++ b/components/payment/payment.vue
@@ -28,10 +28,10 @@
{{ propCurrencySymbol }}
{{ propPayPrice }}
-
+
-
+
{{ item.name }}
@@ -161,18 +161,19 @@
components: {
componentPopup,
},
- watch: {
+ watch: {
+ // 是否显示支付方式
propIsShowPayment(newVal, oldVal) {
if (newVal !== oldVal) {
let bool = true;
- if (this.propPaymentList.length === 1) {
+ if (this.payment_list.length === 1) {
bool = false;
this.setData({
- payment_id: this.propPaymentList[0].id,
+ payment_id: this.payment_list[0].id,
});
} else {
let self = this;
- self.propPaymentList.forEach((item) => {
+ self.payment_list.forEach((item) => {
let new_payment_id = Number(self.propPaymentId) === 0 ? self.propDefaultPaymentId : Number(self.propPaymentId);
if (item.id == new_payment_id) {
bool = false;
@@ -187,11 +188,25 @@
submit_disabled_status: bool,
});
}
+ },
+ // 支付方式是否改变
+ propPaymentList(value, old_value) {
+ this.setData({
+ payment_list: value,
+ });
},
+ },
+ // 页面被展示
+ created: function () {
+ this.setData({
+ payment_list: this.payment_list
+ });
},
data() {
return {
- theme_view: app.globalData.get_theme_value_view(),
+ theme_view: app.globalData.get_theme_value_view(),
+ // 支付方式列表
+ payment_list: [],
// 弹窗开关
is_show_payment_popup: false,
popup_view_pay_qrcode_is_show: false,
@@ -240,11 +255,17 @@
},
// 支付方法
- pay_handle(order_id, payment_id) {
- var self = this;
- this.propPaymentList.forEach((item) => {
+ pay_handle(order_id, payment_id, payment_list = []) {
+ // 没有指定支付方式则使用属性传过来的值
+ if((payment_list || null) != null && payment_list.length > 0) {
+ this.setData({
+ payment_list: payment_list
+ });
+ }
+ this.payment_list.forEach((item) => {
if (item.id == payment_id) {
- if (item.payment === 'WalletPay') {
+ if (item.payment === 'WalletPay') {
+ var self = this;
uni.showModal({
title: '温馨提示',
content: '操作后将立即扣除支付费用、确认继续吗?',
@@ -263,7 +284,8 @@
}
}
});
- },
+ },
+ // 支付处理
pay_handle_event(order_id, payment_id) {
// #ifdef H5
// 微信环境判断是否已有web_openid、不存在则不继续执行跳转到插件进行授权
@@ -273,9 +295,9 @@
// #endif
// 支付方式
var payment = null;
- for (var i in this.propPaymentList) {
- if (this.propPaymentList[i]['id'] == (payment_id || this.payment_id)) {
- payment = this.propPaymentList[i];
+ for (var i in this.payment_list) {
+ if (this.payment_list[i]['id'] == (payment_id || this.payment_id)) {
+ payment = this.payment_list[i];
}
}
if (payment == null) {
@@ -328,7 +350,7 @@
this.app_pay_handle(this, data, order_id);
// #endif
// #ifdef MP-WEIXIN || MP-ALIPAY || MP-BAIDU || MP-TOUTIAO
- this.common_pay_handle(this, data, order_id);
+ this.mp_pay_handle(this, data, order_id);
// #endif
// #ifdef MP-KUAISHOU
this.kuaishou_pay_handle(this, data, order_id);
@@ -444,8 +466,8 @@
},
});
},
- // 微信、支付宝、百度、头条、QQ
- common_pay_handle(self, data, order_id) {
+ // 小程序: 微信、支付宝、百度、头条、QQ
+ mp_pay_handle(self, data, order_id) {
uni.requestPayment({
// #ifdef MP-ALIPAY || MP-BAIDU || MP-TOUTIAO
orderInfo: data.data,
@@ -504,7 +526,7 @@
},
});
} else {
- self.common_pay_handle(self, data, order_id);
+ self.mp_pay_handle(self, data, order_id);
}
},
// h5支付处理
diff --git a/pages/buy/buy.vue b/pages/buy/buy.vue
index 6f84f4d0..53558b15 100644
--- a/pages/buy/buy.vue
+++ b/pages/buy/buy.vue
@@ -477,7 +477,14 @@
uni.stopPullDownRefresh();
uni.hideLoading();
if (res.data.code == 0) {
- var data = res.data.data;
+ var data = res.data.data;
+
+ // 基础数据
+ this.setData({
+ currency_symbol: data.currency_symbol || app.globalData.currency_symbol(),
+ payment_list: data.payment_list || [],
+ payment_id: data.default_payment_id || '',
+ });
// 订单是否已提交、直接进入支付页面
if ((data.is_order_submit || 0) == 1) {
@@ -520,16 +527,13 @@
};
// 设置数据
- this.setData({
- currency_symbol: data.currency_symbol || app.globalData.currency_symbol(),
+ this.setData({
goods_list: data.goods_list,
total_price: data.base.actual_price,
extension_data: data.extension_data || [],
data_list_loding_status: 3,
common_site_type: data.common_site_type || 0,
extraction_address: data.base.extraction_address || [],
- payment_list: data.payment_list || [],
- payment_id: data.default_payment_id || '',
buy_datetime_info: datetime,
plugins_coupon_data: data.plugins_coupon_data || null,
plugins_points_data: data.plugins_points_data || null,
@@ -538,7 +542,7 @@
});
// 可使用积分数量
- if(this.plugins_coupon_data != null && this.is_first == 1) {
+ if(this.plugins_points_data != null && this.is_first == 1) {
this.setData({
actual_use_integral: this.plugins_points_data.use_integral || ''
});
@@ -752,8 +756,8 @@
buy_submit_response_handle(data) {
this.setData({
to_appoint_page: this.to_appoint_page+'?order_ids=' + data.order_ids.join(','),
- });
- this.$refs.payment.pay_handle(data.order_ids.join(','), data.payment_id);
+ });
+ this.$refs.payment.pay_handle(data.order_ids.join(','), data.payment_id, this.payment_list);
},
// 支付方式选择