fix: modify

zcsf
时启龙 2025-09-16 11:17:17 +08:00
parent 7fb547ea62
commit ce41faacc5
1 changed files with 31 additions and 12 deletions

View File

@ -26,14 +26,13 @@
</a-input-password>
</a-form-item>
</a-tooltip>
<a-form-item class="login-form-item" name="verify" :rules="[{ ...required, message: '请输入验证码' }]">
<a-form-item v-if="needSmsVerify" class="login-form-item" name="verify" :rules="[{ ...required, message: '请输入验证码' }]">
<a-input placeholder="请输入验证码" autocomplete="off" v-model:value="loginForm.verify" style="width: 67%; vertical-align: middle">
<template #prefix>
<LockOutlined />
</template>
</a-input>
<div class="login-code" v-if="identifyCode"></div>
<a-button v-else style="height: 60px; width: 31%; margin-left: 2%" @click="getVertify" :loading="verifyLoading" :disabled="isCountingDown || !loginForm.account.trim()">
<a-button style="height: 60px; width: 31%; margin-left: 2%" @click="getVertify" :loading="verifyLoading" :disabled="isCountingDown || !loginForm.account.trim()">
{{ isCountingDown ? `${countdown}s后重新获取` : '获取验证码' }}
</a-button>
</a-form-item>
@ -56,13 +55,14 @@
<script>
import { decrypt, encrypt } from 'utils/crypto'
import { login } from 'services'
import { reactive, toRefs, ref, computed } from 'vue'
import { reactive, toRefs, ref, computed, watch } from 'vue'
import { UserOutlined, LockOutlined } from '@ant-design/icons-vue'
import { useStore } from 'vuex'
import { useRouter, useRoute } from 'vue-router'
import setLoginData from './tools'
import { required } from '@/validate'
import { getVertifyCode } from '@/services'
import { message } from 'ant-design-vue'
export default {
components: { UserOutlined, LockOutlined },
@ -77,9 +77,9 @@ export default {
capsTooltip: false,
verifyLoading: false,
countdown: 0,
isCountingDown: false
isCountingDown: false,
needSmsVerify: true
})
const store = useStore()
const configs = computed(() => store.getters.pageConfig)
const loginFormRef = ref(null)
@ -120,6 +120,15 @@ export default {
init()
const router = useRouter()
const route = useRoute()
// accountneedSmsVerify
watch(() => state.loginForm.account, (newAccount) => {
if (!newAccount.trim()) {
state.needSmsVerify = true
resetCountdown() //
}
})
const getVertify = () => {
if (state.isCountingDown) return //
if (!state.loginForm.account.trim()) {
@ -133,8 +142,14 @@ export default {
if (res.success) {
state.verifyLoading = false
state.hasVertify = res.data
state.identifyCode = res.data
startCountdown() //
message.success(res.message)
//
if (res.message && res.message.includes('无需短信验证码校验')) {
state.needSmsVerify = false
} else {
state.needSmsVerify = true
startCountdown() //
}
}
})
.finally(() => {
@ -163,12 +178,16 @@ export default {
state.loading = true
const values = await loginFormRef.value.validate()
const { account, password, verify } = values
const res = await login({
const loginData = {
account,
password: encrypt(password),
isManager: true,
code: verify
})
isManager: true
}
// code
if (state.needSmsVerify) {
loginData.code = verify
}
const res = await login(loginData)
if (res.success) {
goLogin(res.data)
}