uniapp/pages_promotion/giftcard/public/js/payment.js

263 lines
5.9 KiB
JavaScript

export default {
data() {
return {
isIphoneX: false,
orderCreateData: {
buyer_message: '',
},
orderPaymentData: {
},
isSub: false,
tempData: null,
canLocalDelicery: true,
// 选择自提、配送防重判断
judge:true,
goodsOpen: true,
min:1,
modifyFlag: false,
};
},
methods: {
/**
* 支付弹窗关闭
*/
payClose(){
this.$util.redirectTo('/pages_promotion/giftcard/order_list', {}, 'redirectTo');
},
// 显示弹出层
openPopup(ref) {
this.$refs[ref].open();
},
// 关闭弹出层
closePopup(ref) {
if (this.tempData) {
Object.assign(this.orderCreateData, this.tempData);
Object.assign(this.orderPaymentData, this.tempData);
this.tempData = null;
this.$forceUpdate();
}
this.$refs[ref].close();
},
// 获取订单初始化数据
getOrderPaymentData() {
this.orderCreateData = uni.getStorageSync('giftcardOrderCreateData');
var pay_flag = uni.getStorageSync("pay_flag"); // 支付中标识,防止返回时,提示,跳转错误
if (!this.orderCreateData) {
if (pay_flag == 1) {
uni.removeStorageSync("pay_flag");
} else {
this.$util.showToast({
title: '未获取到创建订单所需数据!'
});
setTimeout(() => {
this.$util.redirectTo('/pages/index/index');
}, 1500);
}
return;
}
this.$api.sendRequest({
url: '/giftcard/api/ordercreate/calculate',
data: this.orderCreateData,
success: res => {
if (res.code >= 0) {
this.orderPaymentData = res.data;
this.orderPaymentData.timestamp = res.timestamp;
this.handlePaymentData();
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
} else {
this.$util.showToast({
title: '未获取到创建订单所需数据!'
});
setTimeout(() => {
this.$util.redirectTo('/pages/index/index');
}, 1500);
}
},
fail: res => {
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
}
})
},
cartNumChange(num){
this.modifyFlag = true;
this.orderCreateData.num = num;
Object.assign(this.orderPaymentData, this.orderCreateData);
this.orderCalculate();
},
// 处理结算订单数据
handlePaymentData() {
this.orderCreateData.buyer_message = '';
var data = this.orderPaymentData;
Object.assign(this.orderPaymentData, this.orderCreateData);
this.orderCalculate();
},
// 转化时间字符串
getTimeStr(val) {
var h = parseInt(val / 3600).toString();
var m = parseInt((val % 3600) / 60).toString();
if (m.length == 1) {
m = '0' + m;
}
if (h.length == 1) {
h = '0' + h;
}
return h + ':' + m;
},
// 订单计算
orderCalculate() {
var data = this.$util.deepClone(this.orderCreateData);
this.$api.sendRequest({
url: '/giftcard/api/ordercreate/calculate',
data,
success: res => {
if (res.code >= 0) {
this.orderPaymentData = res.data;
this.createBtn();
this.modifyFlag = false;
this.$forceUpdate();
} else {
this.$util.showToast({
title: res.message
});
}
},
})
},
/**
* 订单创建验证
*/
createBtn(){
return true;
},
// 订单创建
orderCreate() {
if (this.verify()) {
if (this.isSub) return;
this.isSub = true;
uni.setStorageSync('paySource', 'giftcard');
var data = this.$util.deepClone(this.orderCreateData);
this.$api.sendRequest({
url: '/giftcard/api/ordercreate/create',
data,
success: res => {
uni.hideLoading();
if (res.code >= 0) {
if (parseFloat(this.orderPaymentData.pay_money) > 0) {
let orderCreateData = uni.getStorageSync('giftcardOrderCreateData');
orderCreateData.out_trade_no = res.data;
uni.setStorageSync('giftcardOrderCreateData', orderCreateData);
this.$refs.choosePaymentPopup.getPayInfo(res.data);
this.isSub = false;
} else {
this.$util.redirectTo('/pages_promotion/giftcard/order_list');
}
} else {
this.isSub = false;
if (res.data.error_code == 10 || res.data.error_code == 12) {
uni.showModal({
title: '订单未创建',
content: res.message,
confirmText: '去设置',
success: res => {
if (res.confirm) {
this.selectAddress();
}
}
})
} else {
this.$util.showToast({
title: res.message
});
}
}
},
fail: res => {
uni.hideLoading();
this.isSub = false;
}
})
}
},
// 订单验证
verify() {
return true;
},
imageError(index) {
this.orderPaymentData.order_goods_list[index].sku_image = this.$util.getDefaultImage().goods;
this.$forceUpdate();
},
navigateTo(id) {
this.$util.redirectTo('/pages_promotion/giftcard/detail', {
id
});
},
// 显示选择支付方式弹框
openChoosePayment() {
this.orderCreate();
},
openPopup(ref) {
this.tempData = this.$util.deepClone(this.orderCreateData);
this.$refs[ref].open();
},
closePopup(ref) {
this.orderCreateData = this.$util.deepClone(this.tempData);
this.$refs[ref].close();
this.tempData = null;
},
/**
* 保存留言
*/
saveBuyerMessage(){
this.orderCalculate();
this.$refs.buyerMessagePopup.close();
},
},
onShow() {
if (uni.getStorageSync('addressBack')) {
uni.removeStorageSync('addressBack');
}
// 判断登录
if (!uni.getStorageSync('token')) {
this.$util.redirectTo('/pages_tool/login/login');
} else {
this.getOrderPaymentData();
}
this.judge = true;
this.isIphoneX = this.$util.uniappIsIPhoneX()
},
onHide() {
if (this.$refs.loadingCover) this.$refs.loadingCover.show();
},
onLoad(){
},
computed: {
},
watch: {
},
filters: {
// 金额格式化输出
moneyFormat(money) {
return parseFloat(money).toFixed(2);
}
}
}