// pages/cart/paymentPage/index.js
|
import Toast from 'tdesign-miniprogram/toast/index';
|
|
const app = getApp()
|
import {
|
getPublicImage
|
} from '../../../assets/js/middleGround/tool';
|
|
Page({
|
|
/**
|
* 页面的初始数据
|
*/
|
data: {
|
loading: true,
|
hidden: true,
|
myOrderOrderNumber: [],
|
orderNumber: null,
|
navBarHeight: '',
|
barHeight: '',
|
selectedIds: '',
|
purchasedIds: [],
|
productList: [],
|
price: '',
|
payPrice: '',
|
orderGoods: '',
|
isPaySuccess: false,
|
isPayComplete: false,
|
type: '',
|
onNorderSaleMethod: '',
|
ImmediatelyReceive: '',
|
integral: 0,
|
defaultVal: false,
|
deductioRate: 0,
|
currentBalance: 0,
|
showIntegral: false
|
|
},
|
|
/**
|
* 生命周期函数--监听页面加载
|
*/
|
onLoad(options) {
|
wx.setNavigationBarTitle({
|
title: '提交订单'
|
});
|
const systInfo = wx.getSystemInfoSync();
|
const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息
|
const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度
|
this.setData({
|
orderNumber: options.orderNumber,
|
navBarHeight: navBarHeight,
|
barHeight: systInfo.statusBarHeight,
|
selectedIds: options.selectedIds,
|
onNorderSaleMethod: options.onNorderSaleMethod
|
})
|
console.log(this.data.onNorderSaleMethod, 'options');
|
this.getIntegral()
|
this.getOrderByOrderNumData()
|
this.getDataList()
|
},
|
getIntegral() {
|
app.MG.store
|
.getUserWallet({
|
type: 'integral'
|
})
|
.then((res) => {
|
this.setData({
|
integral: res.balance,
|
deductioRate: res.exchangeRate
|
});
|
})
|
},
|
/**
|
* 生命周期函数--监听页面初次渲染完成
|
*/
|
onReady() {
|
|
},
|
|
/**
|
* 生命周期函数--监听页面显示
|
*/
|
onShow() {
|
|
},
|
|
/**
|
* 生命周期函数--监听页面隐藏
|
*/
|
onHide() {
|
|
},
|
|
/**
|
* 生命周期函数--监听页面卸载
|
*/
|
onUnload() {
|
|
},
|
|
/**
|
* 页面相关事件处理函数--监听用户下拉动作
|
*/
|
onPullDownRefresh() {
|
|
},
|
|
/**
|
* 页面上拉触底事件的处理函数
|
*/
|
onReachBottom() {
|
|
},
|
|
/**
|
* 用户点击右上角分享
|
*/
|
onShareAppMessage() {
|
|
},
|
goBack() {
|
wx.navigateBack();
|
},
|
|
// 金额显示.00格式
|
numFormat(value) {
|
if (!value) return "0.00";
|
value = Number(value).toFixed(2);
|
var intPart = Math.trunc(value); // 获取整数部分
|
var intPartFormat = intPart
|
.toString()
|
.replace(/(\d)(?=(?:\d{3})+$)/g, "$1,"); // 将整数部分逢三一断
|
var floatPart = ".00"; // 预定义小数部分
|
var value2Array = value.split(".");
|
// =2表示数据有小数位
|
if (value2Array.length === 2) {
|
floatPart = value2Array[1].toString(); // 拿到小数部分
|
if (floatPart.length === 1) {
|
return `${intPartFormat}.${floatPart}0`;
|
}
|
return `${intPartFormat}.${floatPart}`;
|
}
|
return intPartFormat + floatPart;
|
},
|
getOrderByOrderNumData() {
|
console.log(this.data.orderNumber, 'this.data.orderNumber');
|
let query = {
|
orderNum: this.data.orderNumber,
|
fields: {
|
content: [],
|
subtitle: [],
|
}
|
}
|
app.MG.store.getOrderByOrderNum(query).then(res => {
|
this.setData({
|
orderGoods: res.orderNumber
|
})
|
this.setData({
|
price: res.payPrice.toFixed(2),
|
payPrice: res.payPrice.toFixed(2),
|
ImmediatelyReceive: res.payPrice
|
})
|
res.saleMethodLinks.forEach(item => {
|
const type = item.orderSaleMethod.type == 'createProductItemSaleMethod' ? 'item' : 'product';
|
item.type = type; // 将type设置为item对象的属性,而不是使用setData
|
item.paymentIcon = getPublicImage(item.orderSaleMethod.product.icon)
|
item.payPrice = this.numFormat(item.payPrice)
|
})
|
this.setData({
|
productList: res.saleMethodLinks,
|
loading: false,
|
hidden: false,
|
})
|
|
})
|
},
|
getDataList() {
|
let data = {
|
start: 0,
|
size: 999,
|
filterList: [{
|
field: 'State',
|
value: 'WaitPay'
|
}],
|
sort: {
|
type: 'Desc',
|
field: 'CreateDate'
|
}
|
}
|
app.MG.store.getUserOrderList(data).then((res) => {
|
|
res.datas.forEach((item) => {
|
this.data.myOrderOrderNumber.push(item.saleMethodLinks[0].orderSaleMethod.id)
|
console.log(this.data.myOrderOrderNumber);
|
})
|
})
|
},
|
|
handleChange(e) {
|
this.setData({
|
defaultVal: e.detail.value,
|
});
|
console.log(this.data.defaultVal)
|
if (this.data.defaultVal) {
|
let useBalance = Math.floor(this.data.payPrice * this.data.deductioRate);
|
if (useBalance >= this.data.integral) {
|
this.setData({
|
currentBalance: this.data.integral,
|
});
|
} else {
|
this.setData({
|
currentBalance: useBalance,
|
});
|
}
|
const data = {
|
orderNumber: this.data.orderNumber,
|
payMethod: "Wallet",
|
type: "integral",
|
payValue: this.data.currentBalance
|
}
|
app.MG.store.newOrderPay(data).then(res => {
|
if (res) {
|
this.setData({
|
payId: res.payList[0].id,
|
payPrice: res.payPrice,
|
deduct: (this.data.currentBalance / 100).toFixed(2),
|
integral: this.data.integral - this.data.currentBalance,
|
showIntegral: true
|
});
|
console.log(this.data.price, this.data.payPrice, 123)
|
}
|
})
|
} else {
|
const data = {
|
orderNumber: this.data.orderNumber,
|
payId: this.data.payId,
|
}
|
app.MG.store.delOrderPay(data).then(res => {
|
console.log(res, "取消用积分")
|
if (res) {
|
this.setData({
|
payPrice: res.payPrice,
|
showIntegral: false
|
});
|
this.getIntegral()
|
}
|
})
|
}
|
},
|
|
|
confirmOrderGet() {
|
if (this.data.myOrderOrderNumber.includes(parseInt(this.data.onNorderSaleMethod))) {
|
Toast({
|
context: this,
|
selector: '#t-toast',
|
message: '已经在订单中',
|
theme: 'warning',
|
direction: 'column',
|
});
|
} else {
|
var that = this;
|
let query = {
|
orderNum: this.data.orderGoods
|
}
|
app.MG.store.confirmOrder(query).then(res => {
|
console.log(res.orderNumber, 'res');
|
if (res.orderNumber) {
|
let resOrderNum = {
|
orderNum: res.orderNumber,
|
platform: "WeChatAppCustom"
|
};
|
console.log(resOrderNum, 'resOrderNum');
|
// 用户未绑定微信 报500
|
app.MG.store.makeWeChatPay(resOrderNum).then(payRes => {
|
console.log(payRes, 'payRes');
|
if (payRes) {
|
const payVal = JSON.parse(payRes);
|
console.log(payVal);
|
wx.requestPayment({
|
"appId": payVal.appId,
|
"timeStamp": payVal.timeStamp,
|
"nonceStr": payVal.nonceStr,
|
"package": payVal.package,
|
"signType": payVal.signType,
|
"paySign": payVal.paySign,
|
success: function (res) {
|
console.log('支付成功');
|
if (res.errMsg == 'requestPayment:ok') {
|
that.setData({
|
isPaySuccess: true
|
})
|
}
|
},
|
fail: function (res) {
|
console.log('支付失败');
|
},
|
// 无论支付成功失败都会调用
|
"complete": function (res) {
|
if (res.errMsg == 'requestPayment:ok') {
|
that.setData({
|
isPayComplete: true
|
})
|
}
|
if (that.data.isPaySuccess && that.data.isPayComplete) {
|
that.navToBack()
|
}
|
}
|
});
|
} else {
|
Toast({
|
context: this,
|
selector: '#t-toast',
|
message: '支付失败',
|
theme: 'warning',
|
direction: 'column',
|
});
|
}
|
|
})
|
}
|
})
|
}
|
|
},
|
// 页面返回
|
navToBack() {
|
this.getOrderByOrderNumData()
|
// 返回
|
wx.navigateBack()
|
},
|
onReceive() {
|
let query = {
|
orderNum: this.data.orderGoods
|
}
|
app.MG.store.confirmOrder(query).then(res => {
|
Toast({
|
context: this,
|
selector: '#t-toast',
|
message: '领取成功',
|
theme: 'success',
|
direction: 'column',
|
});
|
wx.navigateBack()
|
})
|
}
|
})
|