From d470e67ac1997882502b75cbfdaf359626cfaaa8 Mon Sep 17 00:00:00 2001 From: Liuyi <candymxq888@outlook.com> Date: 星期五, 20 十二月 2024 17:27:07 +0800 Subject: [PATCH] 测试修复小程序问题,添加水控机设备 --- pages/wxScanWater/index.vue | 81 +++++++++++++++++++++++++++++++++++----- 1 files changed, 70 insertions(+), 11 deletions(-) diff --git a/pages/wxScanWater/index.vue b/pages/wxScanWater/index.vue index a67a521..90e9170 100644 --- a/pages/wxScanWater/index.vue +++ b/pages/wxScanWater/index.vue @@ -1,6 +1,6 @@ <script setup> import{ ref ,onMounted} from 'vue' - import { wxPayApi,buyWaterApi,getPriceBySnApi,getVipInfoApi } from '../../api/index.js' + import { wxPayApi,buyWaterApi,getPriceBySnApi,getVipInfoApi,wxLoginApi } from '../../api/index.js' import { onLoad } from "@dcloudio/uni-app" //选中金额 const choosedMoney = ref(1) @@ -37,15 +37,16 @@ cardNumber:'', cardBalance:'', }) + //获取用户会员卡信息,判断是否有余额 async function setPayMethod(){ await getVipInfoApi().then((res) =>{ - console.log('获取会员卡返回响应-微信扫码取水页',res) + console.log('会员卡信息响应-微信扫码取水',res) if(res.code == 200 && res.data.id){ cardInfo.value.cardNumber = res.data.cardNumber cardInfo.value.cardBalance = res.data.balance }else{ - console.log('未绑定会员卡') payList.value.splice(1,1) + console.log('未绑定会员卡','支付方式',payList.value) } }) } @@ -60,7 +61,14 @@ payMethod.value = payList.value[index1].value console.log('index',index1,payMethod.value) } + let payState = ref(true) + let timerId async function submit(){ + if(payState.value){ + payState.value = false + timerId = setTimeout(() =>{ + payState.value = true + },20000) if(payMethod.value == 1){ //余额支付,比较金额大小 if(choosedMoney.value > Number(cardInfo.value.cardBalance)){ @@ -156,12 +164,19 @@ } }) } + }else{ + uni.showToast({ + title:'支付间隔20秒,请稍后!', + icon:'none' + }) + } } - const facilityCode = ref() + const facilityCode = ref('') onLoad((query) =>{ let url = decodeURIComponent(query.q) + // let url = 'https://www.huiwuyuntong.com/miniapp/paywater?facilitycode=1060003979' facilityCode.value = url.split('=')[1] - console.log('微信扫码取水','url',url,'facilityCode',facilityCode.value) + console.log('微信扫码取水','url',url,'设备SN',facilityCode.value) }) //设置水价 async function getWaterPrice(){ @@ -171,7 +186,7 @@ item.volume = ((index + 1) * res.data.yield).toFixed(1) }) choosedMoney.value = res.data.price - console.log('水价设置回调',res,'传参',facilityCode.value) + console.log('水价设置响应',res,'传参设备SN',facilityCode.value,'水价显示列表',choosedMoney.value) }) } function navTo(){ @@ -179,10 +194,54 @@ url:'/pages/index/index' }) } - onMounted(async() =>{ - await getWaterPrice() - await setPayMethod() - }) + + //用户通过微信外部扫描二维码进入页面,默认微信登录授权 + async function wxLogin() { + if (!uni.getStorageSync('openId') || !uni.getStorageSync('token')) { + try { + const res1 = await new Promise((resolve, reject) => { + wx.login({ + success: (result) => resolve(result), + fail: (error) => reject(error) + }); + }); + + uni.setStorageSync('code', res1.code); + + const res2 = await wxLoginApi({ code: res1.code }); + console.log('微信登录响应', res2); + + if (res2.code == 200) { + uni.setStorageSync('openId', res2.data.userId); + uni.setStorageSync('token', res2.data.token); + } else { + uni.showToast({ + title: '登录失败', + icon: 'none' + }); + throw new Error('登录失败'); // 抛出错误,以便在调用 wxLogin 的地方可以捕获 + } + } catch (error) { + uni.showToast({ + title: '微信登录失败,请退出重试!', + duration: 2000, + icon: 'fail' + }); + throw error; // 抛出错误,以便在调用 wxLogin 的地方可以捕获 + } + } + } + + onMounted(async () => { + try { + await wxLogin(); + await getWaterPrice(); + await setPayMethod(); + } catch (error) { + console.error('在登录或初始化过程中发生错误:', error); + // 可以在这里处理错误,比如显示错误消息给用户 + } + }); </script> <template> @@ -227,7 +286,7 @@ </view> </view> </view> - <view class="submit-btn" @click="submit()">确认支付</view> + <view :style="{opacity:payState ? 1 : 0.7}" class="submit-btn" @click="submit()">确认支付</view> </view> </view> </template> -- Gitblit v1.9.3