From c3086cda662e2b908cf96b6b3ff599713eb924d6 Mon Sep 17 00:00:00 2001 From: litian <C21AF165> Date: 星期一, 02 九月 2024 16:59:16 +0800 Subject: [PATCH] gongneng --- pages/cart/paymentPage/index.js | 209 ++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 163 insertions(+), 46 deletions(-) diff --git a/pages/cart/paymentPage/index.js b/pages/cart/paymentPage/index.js index 06298eb..2b42ac5 100644 --- a/pages/cart/paymentPage/index.js +++ b/pages/cart/paymentPage/index.js @@ -1,10 +1,11 @@ // pages/cart/paymentPage/index.js import Toast from 'tdesign-miniprogram/toast/index'; + const app = getApp() import { getPublicImage } from '../../../assets/js/middleGround/tool'; -import drawQrcode from './js/weapp.qrcode' + Page({ /** @@ -20,18 +21,29 @@ selectedIds: '', purchasedIds: [], productList: [], + price: '', payPrice: '', orderGoods: '', isPaySuccess: false, isPayComplete: false, type: '', - onNorderSaleMethod: '' + 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; // 瀵艰埅鏍忛珮搴� @@ -43,10 +55,22 @@ 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 + }); + }) + }, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚 */ @@ -99,7 +123,26 @@ 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 = { @@ -107,32 +150,25 @@ fields: { content: [], subtitle: [], - - } } app.MG.store.getOrderByOrderNum(query).then(res => { - console.log(res, 'res'); this.setData({ orderGoods: res.orderNumber }) - console.log(this.data.orderGoods, 'res.orderNumber'); - - console.log(res.payPrice); this.setData({ - payPrice: res.payPrice.toFixed(2) + price: res.payPrice, + payPrice: res.payPrice.toFixed(2), + ImmediatelyReceive: res.payPrice }) res.saleMethodLinks.forEach(item => { - console.log(item.type, 'item.type'); - const type = item.orderSaleMethod.type == 'createProductItemSaleMethod' ? 'item' : 'product'; item.type = type; // 灏唗ype璁剧疆涓篿tem瀵硅薄鐨勫睘鎬э紝鑰屼笉鏄娇鐢╯etData item.paymentIcon = getPublicImage(item.orderSaleMethod.product.icon) - console.log(item.type, 'item'); + item.payPrice = this.numFormat(item.payPrice) }) this.setData({ productList: res.saleMethodLinks, - // type: item.orderSaleMethod.type == 'createProductItemSaleMethod' ? 'item' : 'product' loading: false, hidden: false, }) @@ -153,12 +189,66 @@ } } 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.price - this.data.payPrice).toFixed(2), + integral: this.data.integral - this.data.currentBalance, + showIntegral: true + }); + } + }) + } 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({ @@ -184,37 +274,49 @@ // 鐢ㄦ埛鏈粦瀹氬井淇� 鎶�500 app.MG.store.makeWeChatPay(resOrderNum).then(payRes => { console.log(payRes, 'payRes'); - const payVal = JSON.parse(payRes); - 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 - }) + 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() + } } - }, - 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', + }); + } + }) } }) @@ -223,8 +325,23 @@ }, // 椤甸潰杩斿洖 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() + }) + } }) \ No newline at end of file -- Gitblit v1.9.1