|
|
@@ -58,6 +58,8 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import { silentLogin } from '@/api/auth'
|
|
|
+
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
@@ -100,6 +102,17 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
+ // 请求前确保 token 可用,避免扫码冷启动时出现 401
|
|
|
+ async ensureTokenReady() {
|
|
|
+ const token = uni.getStorageSync('token')
|
|
|
+ if (token) return true
|
|
|
+ try {
|
|
|
+ await silentLogin()
|
|
|
+ return !!uni.getStorageSync('token')
|
|
|
+ } catch (e) {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ },
|
|
|
// 扫码获取红包信息
|
|
|
async scanRedBag() {
|
|
|
if (!this.bianhao) {
|
|
|
@@ -112,6 +125,15 @@ export default {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ const loginReady = await this.ensureTokenReady()
|
|
|
+ if (!loginReady) {
|
|
|
+ uni.showToast({
|
|
|
+ title: '登录状态失效,请稍后重试',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
try {
|
|
|
const res = await this.$u.api.scanRedBagAjax(this.bianhao);
|
|
|
if (res.code === 200 || res.code === 0) {
|
|
|
@@ -150,6 +172,15 @@ export default {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ const loginReady = await this.ensureTokenReady()
|
|
|
+ if (!loginReady) {
|
|
|
+ uni.showToast({
|
|
|
+ title: '登录状态失效,请稍后重试',
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
// 显示领取中提示
|
|
|
uni.showLoading({
|
|
|
title: '领取中...'
|
|
|
@@ -367,4 +398,4 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-</style>
|
|
|
+</style>
|