fix: show toast when clicking login without agreeing to privacy terms
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -33,7 +33,7 @@
|
||||
<text class="field-label">密码</text>
|
||||
<input class="input" type="password" v-model="password" placeholder="请输入密码" @confirm="doPasswordLogin" />
|
||||
</view>
|
||||
<button class="login-btn" :disabled="!canPasswordLogin || pwdLoading || !agreed" @click="doPasswordLogin">
|
||||
<button class="login-btn" :disabled="!canPasswordLogin || pwdLoading" @click="doPasswordLogin">
|
||||
{{ pwdLoading ? '登录中...' : '登录' }}
|
||||
</button>
|
||||
<view class="switch-hint" @click="loginMode='code'">忘记密码?使用验证码登录</view>
|
||||
@@ -54,7 +54,7 @@
|
||||
<text class="field-label">验证码</text>
|
||||
<input class="input" type="number" maxlength="6" v-model="emailCode" placeholder="请输入6位验证码" />
|
||||
</view>
|
||||
<button class="login-btn" :disabled="!emailSent || !emailCode || emailLoading || !agreed" @click="doEmailLogin">
|
||||
<button class="login-btn" :disabled="!emailSent || !emailCode || emailLoading" @click="doEmailLogin">
|
||||
{{ emailLoading ? '登录中...' : '登录' }}
|
||||
</button>
|
||||
<view class="switch-hint" @click="loginMode='password'">已有密码?使用密码登录</view>
|
||||
@@ -77,7 +77,7 @@
|
||||
<text class="field-label">确认密码</text>
|
||||
<input class="input" type="password" v-model="confirmPassword" placeholder="再次输入密码" @confirm="doRegister" />
|
||||
</view>
|
||||
<button class="login-btn" :disabled="!canRegister || regLoading || !agreed" @click="doRegister">
|
||||
<button class="login-btn" :disabled="!canRegister || regLoading" @click="doRegister">
|
||||
{{ regLoading ? '注册中...' : '注册' }}
|
||||
</button>
|
||||
<view class="switch-hint" @click="mainTab='login'">已有账号?去登录</view>
|
||||
@@ -87,7 +87,7 @@
|
||||
<view class="card" v-if="mainTab === 'wechat' && isMp">
|
||||
<text class="card-title">微信一键登录</text>
|
||||
<text class="card-sub">授权后自动创建账号</text>
|
||||
<button class="login-btn wx-btn" :disabled="wxLoading || !agreed" @click="doWxLogin">{{ wxLoading ? '登录中...' : '微信一键登录' }}</button>
|
||||
<button class="login-btn wx-btn" :disabled="wxLoading" @click="doWxLogin">{{ wxLoading ? '登录中...' : '微信一键登录' }}</button>
|
||||
</view>
|
||||
|
||||
<!-- 法律声明 - 用户自主勾选同意 -->
|
||||
@@ -156,6 +156,10 @@ onBeforeUnmount(() => { if (timer) { clearTimeout(timer); timer = null } })
|
||||
|
||||
// 辅助
|
||||
const showToast = (title, icon = 'none') => uni.showToast({ title, icon })
|
||||
const checkAgreed = () => {
|
||||
if (!agreed.value) { showToast('请阅读并同意《用户服务协议》和《隐私政策》'); return false }
|
||||
return true
|
||||
}
|
||||
const loginSuccess = (data) => {
|
||||
uni.setStorageSync('token', data.token)
|
||||
if (data.user) uni.setStorageSync('userInfo', JSON.stringify(data.user))
|
||||
@@ -165,7 +169,7 @@ const loginSuccess = (data) => {
|
||||
|
||||
// ====== 密码登录 ======
|
||||
const doPasswordLogin = async () => {
|
||||
if (!canPasswordLogin.value) return
|
||||
if (!canPasswordLogin.value || !checkAgreed()) return
|
||||
pwdLoading.value = true
|
||||
try {
|
||||
const res = await uni.request({
|
||||
@@ -227,7 +231,7 @@ const startCooldown = () => {
|
||||
}
|
||||
|
||||
const doEmailLogin = async () => {
|
||||
if (!emailCode.value) return
|
||||
if (!emailCode.value || !checkAgreed()) return
|
||||
emailLoading.value = true
|
||||
try {
|
||||
const res = await uni.request({
|
||||
@@ -250,7 +254,7 @@ const doEmailLogin = async () => {
|
||||
|
||||
// ====== 注册 ======
|
||||
const doRegister = async () => {
|
||||
if (!canRegister.value) return
|
||||
if (!canRegister.value || !checkAgreed()) return
|
||||
regLoading.value = true
|
||||
try {
|
||||
const res = await uni.request({
|
||||
@@ -292,6 +296,7 @@ const skipSetPwd = () => { showSetPwd.value = false }
|
||||
// ====== 微信登录 ======
|
||||
const doWxLogin = async () => {
|
||||
// #ifdef MP-WEIXIN
|
||||
if (!checkAgreed()) { wxLoading.value = false; return }
|
||||
wxLoading.value = true
|
||||
try {
|
||||
const wxResp = await uni.login()
|
||||
|
||||
Reference in New Issue
Block a user