|
|
@@ -10,7 +10,7 @@ |
|
|
|
<view class="createTimes" |
|
|
|
>剩余次数:{{ userInfoModulesPinia.createTimes }}次</view |
|
|
|
> |
|
|
|
<view class="loginOut">退出登录</view> |
|
|
|
<view class="loginOut" @click="loginOut">退出登录</view> |
|
|
|
</view> |
|
|
|
<!-- 展示图 --> |
|
|
|
<view class="showImgBox imgContenBox" |
|
|
@@ -36,7 +36,10 @@ |
|
|
|
<image :src="qrCode" mode="scaleToFill" /> |
|
|
|
</view> |
|
|
|
<text>打开微信扫码登录小程序</text> |
|
|
|
<view class="orangeBtn" style="margin-top: 100rpx">取 消</view> |
|
|
|
<text style="margin-top: 30rpx" v-show="payCount != 90" |
|
|
|
>{{ payCount }}秒后过期</text |
|
|
|
> |
|
|
|
<view class="orangeBtn" style="margin-top: 60rpx">取 消</view> |
|
|
|
</view> |
|
|
|
</u-overlay> |
|
|
|
</view> |
|
|
@@ -154,6 +157,10 @@ async function getQRCode() { |
|
|
|
if (res.data && res.data.tmpUserId) { |
|
|
|
uni.setStorageSync("UserId", res.data.tmpUserId); |
|
|
|
qrCode.value = res.data.qrCodeUrl; |
|
|
|
getUser(); |
|
|
|
payCountTimer.value = setInterval(() => { |
|
|
|
payCount.value--; |
|
|
|
}, 1000); |
|
|
|
} else if (res.code == 1013) { |
|
|
|
uni.showToast({ |
|
|
|
title: "请勿重复操作", |
|
|
@@ -176,22 +183,25 @@ async function getQRCode() { |
|
|
|
|
|
|
|
//#region 获取用户信息 |
|
|
|
|
|
|
|
const timer = ref(null); //轮询用户信息 |
|
|
|
const payMask = ref(false); //支付状态遮罩层 |
|
|
|
const payCount = ref(90); //支付倒计时数 |
|
|
|
const payCountTimer = ref(null); //支付倒计时 |
|
|
|
// 获取登录信息 |
|
|
|
async function getUser() { |
|
|
|
// 如果二维码框隐藏,不再执行 |
|
|
|
if (showQrCode.value == false) { |
|
|
|
return; |
|
|
|
} |
|
|
|
try { |
|
|
|
const res = await getUserApi(uni.getStorageSync("UserId")); |
|
|
|
// 如果接口200就说明已登录 |
|
|
|
if (res.code == 200 && res.data) { |
|
|
|
// 查询支付状态 0:待支付,2:支付中,3:已支付 |
|
|
|
if (res.data.payStatus == 3) { |
|
|
|
clearInterval(payCountTimer.value); |
|
|
|
payCountTimer.value = null; |
|
|
|
uni.hideLoading(); |
|
|
|
payMask.value = false; |
|
|
|
clearInterval(timer.value); |
|
|
|
timer.value = null; |
|
|
|
uni.setStorageSync("token", res.data.token); |
|
|
|
uni.setStorageSync("createTimes", res.data.createTimes); |
|
|
|
uni.setStorageSync("phone", res.data.phone); |
|
|
@@ -200,30 +210,37 @@ async function getUser() { |
|
|
|
userInfoModulesPinia.createTimes = res.data.createTimes; |
|
|
|
showQrCode.value = false; |
|
|
|
uni.showToast({ |
|
|
|
title: "登录成功!", |
|
|
|
title: "支付成功!", |
|
|
|
icon: "success", |
|
|
|
mask: true, |
|
|
|
}); |
|
|
|
createing(); |
|
|
|
// 成功直接照相 |
|
|
|
// toCamera(); |
|
|
|
} else if (res.data.payStatus == 0) { |
|
|
|
payMask.value = true; |
|
|
|
payCount.value--; |
|
|
|
// clearInterval(payCountTimer.value); |
|
|
|
// payCountTimer.value = null; |
|
|
|
// payCountTimer.value = setInterval(() => { |
|
|
|
// }, 1000); |
|
|
|
uni.showLoading({ |
|
|
|
title: `待支付,${payCount.value}s后过期...`, |
|
|
|
mask: true, |
|
|
|
title: `待支付...`, |
|
|
|
}); |
|
|
|
if (showQrCode.value == false) { |
|
|
|
payMask.value = false; |
|
|
|
uni.hideLoading(); |
|
|
|
return; |
|
|
|
} |
|
|
|
getUser(); |
|
|
|
} else if (res.data.payStatus == 2) { |
|
|
|
payMask.value = true; |
|
|
|
payCount.value--; |
|
|
|
uni.showLoading({ |
|
|
|
title: `支付中,${payCount.value}s后过期...`, |
|
|
|
mask: true, |
|
|
|
title: `支付中...`, |
|
|
|
}); |
|
|
|
if (showQrCode.value == false) { |
|
|
|
payMask.value = false; |
|
|
|
uni.hideLoading(); |
|
|
|
return; |
|
|
|
} |
|
|
|
getUser(); |
|
|
|
} |
|
|
|
} else { |
|
|
|
getUser(); |
|
|
|
} |
|
|
|
} catch (err) { |
|
|
|
console.log(err); |
|
|
@@ -235,16 +252,13 @@ watch( |
|
|
|
() => { |
|
|
|
if (showQrCode.value == true) { |
|
|
|
getQRCode(); |
|
|
|
timer.value = setInterval(() => { |
|
|
|
if (uni.getStorageSync("UserId") && qrCode.value) { |
|
|
|
getUser(); |
|
|
|
} |
|
|
|
}, 1000); |
|
|
|
} else if (showQrCode.value == false) { |
|
|
|
// uni.setStorageSync("UserId", null); |
|
|
|
uni.hideLoading(); |
|
|
|
qrCode.value = null; |
|
|
|
clearInterval(timer.value); |
|
|
|
timer.value = null; |
|
|
|
payMask.value = false; |
|
|
|
clearInterval(payCountTimer.value); |
|
|
|
payCountTimer.value = null; |
|
|
|
payCount.value = 90; |
|
|
|
} |
|
|
|
} |
|
|
|
); |
|
|
@@ -255,22 +269,18 @@ watch( |
|
|
|
if (payCount.value <= 0) { |
|
|
|
uni.hideLoading(); |
|
|
|
showQrCode.value = false; |
|
|
|
payMask.value = false; |
|
|
|
// clearInterval(payCountTimer.value); |
|
|
|
// payCountTimer.value = null; |
|
|
|
payCount.value = 90; |
|
|
|
} |
|
|
|
} |
|
|
|
); |
|
|
|
onUnload(() => { |
|
|
|
clearInterval(timer.value); |
|
|
|
timer.value = null; |
|
|
|
uni.hideLoading(); |
|
|
|
clearInterval(payCountTimer.value); |
|
|
|
payCountTimer.value = null; |
|
|
|
// uni.setStorageSync("UserId", null); |
|
|
|
}); |
|
|
|
//#endregion --------------------- |
|
|
|
|
|
|
|
//#region |
|
|
|
//#region 路由跳转 |
|
|
|
function toCamera() { |
|
|
|
const url = styleData.value.coverImg; |
|
|
|
uni.navigateTo({ |
|
|
@@ -279,6 +289,24 @@ function toCamera() { |
|
|
|
} |
|
|
|
//#endregion --------------------- |
|
|
|
|
|
|
|
//#region 退出登录 |
|
|
|
function loginOut() { |
|
|
|
uni.showModal({ |
|
|
|
title: "提示", |
|
|
|
content: "是否退出登录?", |
|
|
|
success: function (res) { |
|
|
|
if (res.confirm) { |
|
|
|
console.log("用户点击确定"); |
|
|
|
userInfoModulesPinia.clearStorage(); |
|
|
|
uni.navigateTo({ url: "/pages/login/index" }); |
|
|
|
} else if (res.cancel) { |
|
|
|
console.log("用户点击取消"); |
|
|
|
} |
|
|
|
}, |
|
|
|
}); |
|
|
|
} |
|
|
|
//#endregion --------------------- |
|
|
|
|
|
|
|
//#region |
|
|
|
|
|
|
|
//#endregion --------------------- |
|
|
|