forked from zhongyuanhaiju/uniapp
263 lines
5.9 KiB
JavaScript
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);
|
|
}
|
|
}
|
|
}
|