From 3ec10b0c2654e1243e42a5ad563d088ac89c87fe Mon Sep 17 00:00:00 2001 From: litian <C21AF165> Date: 星期五, 27 九月 2024 14:06:56 +0800 Subject: [PATCH] zf --- pages/cart/paymentPage/index.js | 319 ++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 245 insertions(+), 74 deletions(-) diff --git a/pages/cart/paymentPage/index.js b/pages/cart/paymentPage/index.js index 6742356..a9e402d 100644 --- a/pages/cart/paymentPage/index.js +++ b/pages/cart/paymentPage/index.js @@ -1,29 +1,48 @@ // 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' +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: '', + 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; // 瀵艰埅鏍忛珮搴� @@ -31,12 +50,25 @@ orderNumber: options.orderNumber, navBarHeight: navBarHeight, barHeight: systInfo.statusBarHeight, - selectedIds: options.selectedIds + selectedIds: options.selectedIds, + onNorderSaleMethod: options.onNorderSaleMethod }) - console.log('鎺ユ敹鍒扮殑璁㈠崟鍙�:', this.data.orderNumber); + this.getIntegral() this.getOrderByOrderNumData() + this.getDataList() }, - + getIntegral() { + app.MG.store + .getUserWallet({ + type: 'integral' + }) + .then((res) => { + this.setData({ + integral: res.balance, + deductioRate: res.exchangeRate + }); + }) + }, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚 */ @@ -89,96 +121,235 @@ 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() { let query = { orderNum: this.data.orderNumber, fields: { content: [], subtitle: [], - - } } app.MG.store.getOrderByOrderNum(query).then(res => { - console.log(res, 'res'); this.setData({ - orderGoods: res.orderNumber + orderGoods: res.orderNumber, + price: res.totalPrice.toFixed(2), + payPrice: res.payPrice.toFixed(2), }) - console.log(this.data.orderGoods, 'res.orderNumber'); - - console.log(res.payPrice); - this.setData({ - payPrice: res.payPrice.toFixed(2) - }) + if (Number(this.data.payPrice) < Number(this.data.price)) { + this.handleChange() + } res.saleMethodLinks.forEach(item => { - + const type = item.orderSaleMethod.type == 'createProductItemSaleMethod' ? 'item' : 'product'; + item.type = type; // 灏唗ype璁剧疆涓篿tem瀵硅薄鐨勫睘鎬э紝鑰屼笉鏄娇鐢╯etData item.paymentIcon = getPublicImage(item.orderSaleMethod.product.icon) - console.log(item.orderSaleMethod.type); + if (item.orderSaleMethod.product.cmsTypeRefCode == 'jsek_digitalTextbooks') { + item.typeTxt = '鏁板瓧鏁欐潗' + item.productType = "鏁板瓧鏁欐潗" + } else if (item.orderSaleMethod.product.cmsTypeRefCode == 'jsek_digitalCourses') { + item.typeTxt = '鏁板瓧璇剧▼' + item.productType = "鏁板瓧璇剧▼" + } else { + item.typeTxt = '鐢靛瓙涔�' + item.productType = "鍥句功鏈嶅姟-鐢靛瓙涔�" - this.setData({ - productList: res.saleMethodLinks, - type: item.orderSaleMethod.type == 'createProductItemSaleMethod' ? 'item' : 'product' - }) - + if (item.orderSaleMethod.type == 'createProductItemSaleMethod') { + item.typeTxt = '浜戝涔�' + item.productType = "鍥句功鏈嶅姟-浜戝涔�" + } + } + }) + 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) + }) + }) + }, + + handleChange(e) { + if (e) { + this.setData({ + defaultVal: e.detail.value, + }); + } else { + this.setData({ + defaultVal: true, + }); + } + + if (this.data.defaultVal) { + let useBalance = Math.round(Number(this.data.payPrice) * Number(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.toFixed(2), + deduct: (this.data.currentBalance / 100).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 => { + if (res) { + this.setData({ + payPrice: res.payPrice.toFixed(2), + showIntegral: false + }); + this.getIntegral() + } + }) + } + }, + + confirmOrderGet() { - var that = this; + 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 => { + if (res.orderNumber) { + let resOrderNum = { + orderNum: res.orderNumber, + platform: "WeChatAppCustom" + }; + // 鐢ㄦ埛鏈粦瀹氬井淇� 鎶�500 + app.MG.store.makeWeChatPay(resOrderNum).then(payRes => { + if (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) { + 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 => { - console.log(res.orderNumber, 'res'); - if (res.orderNumber) { - const resOrderNum = { - orderNum: res.orderNumber, - }; - - // 鐢ㄦ埛鏈粦瀹氬井淇� 鎶�500 - app.MG.store.makeWeChatPay(resOrderNum).then(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 - }) - } - }, - 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() - } - } - }); - }) - } - + Toast({ + context: this, + selector: '#t-toast', + message: '棰嗗彇鎴愬姛', + theme: 'success', + direction: 'column', + }); + wx.navigateBack() }) - // 璋冨彇寰俊浜岀淮鐮佹敮浠� - }, - // 椤甸潰杩斿洖 - navToBack() { - - // 杩斿洖 - wx.navigateBack() - }, + } }) \ No newline at end of file -- Gitblit v1.9.1