fix:修复bug

This commit is contained in:
2026-01-22 10:52:58 +08:00
parent b0daa7b59b
commit 6a1dff4b94
46 changed files with 3779 additions and 2522 deletions
+28 -17
View File
@@ -16,8 +16,10 @@
{{ $t('auth.getPhoneNumber') }}
</button>
<!-- 仅微信登录不授权手机号时使用 -->
<!-- <button class="btn outline" @click="onWeChatLogin">仅微信登录</button> -->
<!-- 手机号验证码登录 -->
<button class="btn outline" @click="goToPhoneLogin" v-if="isHTML5">
{{ $t('auth.phoneLogin') }}
</button>
<view class="agreement-box">
<checkbox-group @change="onAgreementChange">
@@ -41,22 +43,23 @@
import { wxLogin, getUserPhoneNumber, getUserInfo } from '../../util/index.js'
import { useI18n } from '@/utils/i18n.js'
const { t: $t } = useI18n()
const { t } = useI18n()
// 设置页面标题
onMounted(() => {
uni.setNavigationBarTitle({
title: $t('auth.loginTitle')
title: t('auth.loginTitle')
})
})
const isHTML5 = ref(false) // 是否是HTML5模式
const redirect = ref('/pages/index/index')
const isAgreed = ref(false) // 是否同意协议
// 勾选协议变化
const onAgreementChange = (e) => {
isAgreed.value = e.detail.value.includes('agreed')
console.log('协议勾选状态:', isAgreed.value, e.detail.value)
}
// 未勾选协议时点击登录按钮
@@ -79,10 +82,10 @@
// 未勾选,弹窗提示
uni.showModal({
title: $t('common.tips'),
content: $t('auth.pleaseAgreeToTerms'),
confirmText: $t('common.confirm'),
cancelText: $t('common.cancel'),
title: t('common.tips'),
content: t('auth.pleaseAgreeToTerms'),
confirmText: t('common.confirm'),
cancelText: t('common.cancel'),
success: (res) => {
if (res.confirm) {
// 用户点击同意,自动勾选
@@ -90,7 +93,7 @@
resolve()
} else {
// 用户点击取消
reject(new Error('需要同意协议才能登录'))
reject(new Error(t('auth.pleaseAgreeToTerms')))
}
}
})
@@ -119,18 +122,18 @@
await checkAgreement()
await wxLogin()
uni.showToast({ title: $t('auth.loginSuccess'), icon: 'success' })
uni.showToast({ title: t('auth.loginSuccess'), icon: 'success' })
await navigateAfterLogin()
} catch (error) {
if (error.message !== '需要同意协议才能登录') {
uni.showToast({ title: error.message || '登录失败', icon: 'none' })
if (error.message !== t('auth.pleaseAgreeToTerms')) {
uni.showToast({ title: error.message || t('auth.loginFailed'), icon: 'none' })
}
}
}
const onGetPhoneNumber = async (e) => {
if (!e || e.detail.errMsg !== 'getPhoneNumber:ok') {
uni.showToast({ title: $t('auth.phoneCancelled'), icon: 'none' })
uni.showToast({ title: t('auth.phoneCancelled'), icon: 'none' })
return
}
@@ -139,10 +142,10 @@
await wxLogin()
// 再用微信返回的临时 code 换取手机号
await getUserPhoneNumber(e.detail.code)
uni.showToast({ title: $t('auth.loginSuccess'), icon: 'success' })
uni.showToast({ title: t('auth.loginSuccess'), icon: 'success' })
await navigateAfterLogin()
} catch (error) {
uni.showToast({ title: error.message || $t('auth.loginFailed'), icon: 'none' })
uni.showToast({ title: error.message || t('auth.loginFailed'), icon: 'none' })
}
}
@@ -152,17 +155,25 @@
redirect.value = decodeURIComponent(opts.redirect)
} catch (_) {}
}
// #ifdef H5
isHTML5.value = true
// #endif
})
const go = (url) => {
uni.navigateTo({ url })
}
// 跳转到手机号登录页面
const goToPhoneLogin = () => {
uni.navigateTo({ url: '/pages/login/phone' })
}
</script>
<style lang="scss" scoped>
.login-container {
min-height: 100vh;
background: #f8f8f8;
background: linear-gradient(180deg, #C8F4D9 0%, #FFFFFF 100%);
padding: 80rpx 40rpx 40rpx;
display: flex;
flex-direction: column;