feat:登录界面UI国际化

This commit is contained in:
PZ688 2025-02-27 10:48:50 +08:00
parent 249c9f0f61
commit 8edd1fb6b8
18 changed files with 105 additions and 20 deletions

View File

@ -98,9 +98,9 @@ public class AggregationBuilder
return fields return fields
.Where(f => !string.IsNullOrWhiteSpace(f)) .Where(f => !string.IsNullOrWhiteSpace(f))
.Select(f => f.Trim()) .Select(f => f.Trim())
.Where(f => targetType.GetProperty( // .Where(f => targetType.GetProperty(
targetType == typeof(UsagetokenOutput) ? // targetType == typeof(UsagetokenOutput) ?
$"{f}Sum" : f) != null) // $"{f}Sum" : f) != null)
.ToList(); .ToList();
} }
} }

View File

@ -19,6 +19,9 @@ export default {
codeNeed: 'Bitte geben Sie den Verifizierungscode ein', codeNeed: 'Bitte geben Sie den Verifizierungscode ein',
splitslive: 'Bitte halten Sie den Schieberegler fest', splitslive: 'Bitte halten Sie den Schieberegler fest',
success: 'Überprüfung erfolgreich', success: 'Überprüfung erfolgreich',
loginfail: 'Anmeldung fehlgeschlagen, bitte überprüfen Sie Ihre Anmeldeinformationen',
notprivilege: 'Entschuldigung, Sie haben keine Anmeldeberechtigung',
captchaExpired: 'Code abgelaufen',
}, },
mobile: { mobile: {
placeholder1: 'Bitte Mobiltelefonnummer eingeben', placeholder1: 'Bitte Mobiltelefonnummer eingeben',
@ -27,6 +30,8 @@ export default {
btnText: 'Anmelden', btnText: 'Anmelden',
msgText: msgText:
'Wichtiger Hinweis: Es wird empfohlen, Google, Microsoft Edge Version 79.0.1072.62 oder höher und den 360-Browser im Schnellmodus zu verwenden', 'Wichtiger Hinweis: Es wird empfohlen, Google, Microsoft Edge Version 79.0.1072.62 oder höher und den 360-Browser im Schnellmodus zu verwenden',
loginfail: 'Anmeldung fehlgeschlagen, bitte überprüfen Sie Ihre Anmeldeinformationen',
retry: '{duration} Sekunden nachdem der Code erneut angefordert wird',
}, },
scan: { scan: {
text: 'Öffnen Sie Ihr Mobiltelefon zum Scannen und melden Sie sich schnell an / registrieren Sie sich', text: 'Öffnen Sie Ihr Mobiltelefon zum Scannen und melden Sie sich schnell an / registrieren Sie sich',

View File

@ -19,12 +19,17 @@ export default {
codeNeed: 'Please enter the verification code', codeNeed: 'Please enter the verification code',
splitslive: 'Please hold down the slider to drag', splitslive: 'Please hold down the slider to drag',
success: 'Verification passed', success: 'Verification passed',
loginfail: 'Login failed, please check your account password!',
notprivilege: 'Sorry, you do not have login permission',
captchaExpired: 'code expired',
}, },
mobile: { mobile: {
placeholder1: 'Please input mobile phone number', placeholder1: 'Please input mobile phone number',
placeholder2: 'Please enter the verification code', placeholder2: 'Please enter the verification code',
codeText: 'Get code', codeText: 'Get code',
btnText: 'Sign in', btnText: 'Sign in',
loginfail: 'Login failed, please check your account!',
retry: '{duration} seconds after the code is requested again',
msgText: msgText:
'Warm tip: it is recommended to use Google, Microsoft edge, version 79.0.1072.62 and above browsers, and 360 browser, please use speed mode', 'Warm tip: it is recommended to use Google, Microsoft edge, version 79.0.1072.62 and above browsers, and 360 browser, please use speed mode',
}, },

View File

@ -19,12 +19,17 @@ export default {
codeNeed: 'Por favor, introduce el código de verificación', codeNeed: 'Por favor, introduce el código de verificación',
splitslive: 'Por favor, mantén el deslizador', splitslive: 'Por favor, mantén el deslizador',
success: 'Verificación superada', success: 'Verificación superada',
loginfail: 'Inicio de sesión fallido, por favor, verifica tus credenciales',
notprivilege: 'Lo siento, no tienes permiso para iniciar sesión',
captchaExpired: 'código expirado',
}, },
mobile: { mobile: {
placeholder1: 'Por favor, introduce el número de teléfono móvil', placeholder1: 'Por favor, introduce el número de teléfono móvil',
placeholder2: 'Por favor, introduce el código de verificación', placeholder2: 'Por favor, introduce el código de verificación',
codeText: 'Obtener código', codeText: 'Obtener código',
btnText: 'Iniciar sesión', btnText: 'Iniciar sesión',
loginfail: 'Inicio de sesión fallido, por favor, verifica tus credenciales',
retry: '{duration} segundos después de que se solicite el código nuevamente',
msgText: msgText:
'Consejo importante: se recomienda usar Google, Microsoft Edge versión 79.0.1072.62 o superior y el navegador 360 en modo rápido', 'Consejo importante: se recomienda usar Google, Microsoft Edge versión 79.0.1072.62 o superior y el navegador 360 en modo rápido',
}, },

View File

@ -19,12 +19,17 @@ export default {
codeNeed: 'Syötä vahvistuskoodi', codeNeed: 'Syötä vahvistuskoodi',
splitslive: 'Sulje liukusäädin', splitslive: 'Sulje liukusäädin',
success: 'Vahvistus onnistui', success: 'Vahvistus onnistui',
loginfail: 'Kirjautuminen epäonnistui, tarkista käyttäjätunnus ja salasana',
notprivilege: 'Anteeksi, sinulla ei ole kirjautumisluottoa',
captchaExpired: 'koodi vanhentunut',
}, },
mobile: { mobile: {
placeholder1: 'Syötä matkapuhelinnumero', placeholder1: 'Syötä matkapuhelinnumero',
placeholder2: 'Syötä vahvistuskoodi', placeholder2: 'Syötä vahvistuskoodi',
codeText: 'Hanki koodi', codeText: 'Hanki koodi',
btnText: 'Kirjaudu sisään', btnText: 'Kirjaudu sisään',
loginfail: 'Kirjautuminen epäonnistui, tarkista käyttäjätunnus',
retry: '{duration} sekunnin kuluttua koodi pyydetään uudestaan',
msgText: msgText:
'Tärkeä huomautus: on suositeltavaa käyttää Google-, Microsoft Edge -versiota 79.0.1072.62 tai uudempaa ja 360-selainta nopeustilassa', 'Tärkeä huomautus: on suositeltavaa käyttää Google-, Microsoft Edge -versiota 79.0.1072.62 tai uudempaa ja 360-selainta nopeustilassa',
}, },

View File

@ -19,12 +19,17 @@ export default {
codeNeed: 'Veuillez saisir le code de vérification', codeNeed: 'Veuillez saisir le code de vérification',
splitslive: 'Veuillez maintenir le curseur', splitslive: 'Veuillez maintenir le curseur',
success: 'Vérification réussie', success: 'Vérification réussie',
loginfail: 'Connexion échouée, veuillez vérifier vos informations de connexion',
notprivilege: 'Désolé, vous n\'avez pas de permission de connexion',
captchaExpired: 'code expiré',
}, },
mobile: { mobile: {
placeholder1: 'Veuillez saisir le numéro de téléphone mobile', placeholder1: 'Veuillez saisir le numéro de téléphone mobile',
placeholder2: 'Veuillez saisir le code de vérification', placeholder2: 'Veuillez saisir le code de vérification',
codeText: 'Obtenir le code', codeText: 'Obtenir le code',
btnText: 'Se connecter', btnText: 'Se connecter',
loginfail: 'Connexion échouée, veuillez vérifier votre compte',
retry: '{duration} secondes après que le code soit demandé à nouveau',
msgText: msgText:
'Conseil important : il est recommandé d\'utiliser Google, Microsoft Edge version 79.0.1072.62 ou supérieure et le navigateur 360 en mode rapide', 'Conseil important : il est recommandé d\'utiliser Google, Microsoft Edge version 79.0.1072.62 ou supérieure et le navigateur 360 en mode rapide',
}, },

View File

@ -19,12 +19,17 @@ export default {
codeNeed: 'Inserisci il codice di verifica', codeNeed: 'Inserisci il codice di verifica',
splitslive: 'Tieni premuto lo scorrimento', splitslive: 'Tieni premuto lo scorrimento',
success: 'Verifica superata', success: 'Verifica superata',
loginfail: 'Accesso fallito, per favore controlla le tue credenziali',
notprivilege: 'Scusa, non hai permesso di accesso',
captchaExpired: 'codice scaduto',
}, },
mobile: { mobile: {
placeholder1: 'Inserisci il numero di cellulare', placeholder1: 'Inserisci il numero di cellulare',
placeholder2: 'Inserisci il codice di verifica', placeholder2: 'Inserisci il codice di verifica',
codeText: 'Ottieni codice', codeText: 'Ottieni codice',
btnText: 'Accedi', btnText: 'Accedi',
loginfail: 'Accesso fallito, per favore controlla le tue credenziali',
retry: '{duration} secondi dopo che il codice viene richiesto di nuovo',
msgText: msgText:
'Suggerimento importante: si consiglia di utilizzare Google, Microsoft Edge versione 79.0.1072.62 o superiore e il browser 360 in modalità veloce', 'Suggerimento importante: si consiglia di utilizzare Google, Microsoft Edge versione 79.0.1072.62 o superiore e il browser 360 in modalità veloce',
}, },

View File

@ -19,12 +19,17 @@ export default {
codeNeed: '認証コードを入力してください', codeNeed: '認証コードを入力してください',
splitslive: 'スライダーを押してください', splitslive: 'スライダーを押してください',
success: '認証成功', success: '認証成功',
loginfail: 'ログインに失敗しました。アカウント名とパスワードを確認してください',
notprivilege: '申し訳ありません。ログイン権限がありません',
captchaExpired: 'コードが期限切れ',
}, },
mobile: { mobile: {
placeholder1: '携帯電話番号を入力してください', placeholder1: '携帯電話番号を入力してください',
placeholder2: '認証コードを入力してください', placeholder2: '認証コードを入力してください',
codeText: 'コードを取得', codeText: 'コードを取得',
btnText: 'ログイン', btnText: 'ログイン',
loginfail: 'ログインに失敗しました。アカウント名を確認してください',
retry: '{duration}秒後にコードを再要求します',
msgText: msgText:
'重要なお知らせGoogle、Microsoft Edge バージョン79.0.1072.62以上、および360ブラウザの高速モードの使用を推奨します', '重要なお知らせGoogle、Microsoft Edge バージョン79.0.1072.62以上、および360ブラウザの高速モードの使用を推奨します',
}, },

View File

@ -19,12 +19,17 @@ export default {
codeNeed: '인증 코드를 입력해 주세요', codeNeed: '인증 코드를 입력해 주세요',
splitslive: '슬라이더를 누르세요', splitslive: '슬라이더를 누르세요',
success: '인증 성공', success: '인증 성공',
loginfail: '로그인에 실패했습니다. 계정 이름과 비밀번호를 확인해 주세요',
notprivilege: '죄송합니다. 로그인 권한이 없습니다',
captchaExpired: '코드가 만료됨',
}, },
mobile: { mobile: {
placeholder1: '휴대폰 번호를 입력해 주세요', placeholder1: '휴대폰 번호를 입력해 주세요',
placeholder2: '인증 코드를 입력해 주세요', placeholder2: '인증 코드를 입력해 주세요',
codeText: '코드 받기', codeText: '코드 받기',
btnText: '로그인', btnText: '로그인',
loginfail: '로그인에 실패했습니다. 계정 이름을 확인해 주세요',
retry: '{duration}초 후 코드를 다시 요청합니다',
msgText: msgText:
'중요 안내: Google, Microsoft Edge 버전 79.0.1072.62 이상 및 360 브라우저의 고속 모드 사용을 권장합니다', '중요 안내: Google, Microsoft Edge 버전 79.0.1072.62 이상 및 360 브라우저의 고속 모드 사용을 권장합니다',
}, },

View File

@ -19,12 +19,17 @@ export default {
codeNeed: 'Vennligst skriv inn bekreftelseskoden', codeNeed: 'Vennligst skriv inn bekreftelseskoden',
splitslive: 'Vennligst trykk på skjermen', splitslive: 'Vennligst trykk på skjermen',
success: 'Bekreftelse vellykket', success: 'Bekreftelse vellykket',
loginfail: 'Innlogging feilet, vennligst sjekk ditt brukernavn og passord',
notprivilege: 'Beklager, du har ikke tilgang til å logge inn',
captchaExpired: 'koden utløpt',
}, },
mobile: { mobile: {
placeholder1: 'Vennligst skriv inn mobilnummer', placeholder1: 'Vennligst skriv inn mobilnummer',
placeholder2: 'Vennligst skriv inn bekreftelseskoden', placeholder2: 'Vennligst skriv inn bekreftelseskoden',
codeText: 'Få kode', codeText: 'Få kode',
btnText: 'Logg inn', btnText: 'Logg inn',
loginfail: 'Innlogging feilet, vennligst sjekk ditt brukernavn',
retry: '{duration} sekunder etter at koden blir bedt om igjen',
msgText: msgText:
'Viktig merknad: det anbefales å bruke Google, Microsoft Edge versjon 79.0.1072.62 eller nyere, og 360-nettleseren i hurtigmodus', 'Viktig merknad: det anbefales å bruke Google, Microsoft Edge versjon 79.0.1072.62 eller nyere, og 360-nettleseren i hurtigmodus',
}, },

View File

@ -19,12 +19,17 @@ export default {
codeNeed: 'Proszę wprowadzić kod weryfikacyjny', codeNeed: 'Proszę wprowadzić kod weryfikacyjny',
splitslive: 'Proszę nacisnąć ekran', splitslive: 'Proszę nacisnąć ekran',
success: 'Weryfikacja przeszła pomyślnie', success: 'Weryfikacja przeszła pomyślnie',
loginfail: 'Logowanie nie powiodło się, sprawdź swoje poświadczenia',
notprivilege: 'Przepraszamy, nie masz uprawnień do logowania',
captchaExpired: 'kod wygasł',
}, },
mobile: { mobile: {
placeholder1: 'Proszę wprowadzić numer telefonu komórkowego', placeholder1: 'Proszę wprowadzić numer telefonu komórkowego',
placeholder2: 'Proszę wprowadzić kod weryfikacyjny', placeholder2: 'Proszę wprowadzić kod weryfikacyjny',
codeText: 'Otrzymaj kod', codeText: 'Otrzymaj kod',
btnText: 'Zaloguj się', btnText: 'Zaloguj się',
loginfail: 'Logowanie nie powiodło się, sprawdź swoje poświadczenia',
retry: '{duration} sekund po ponownym żądaniu kodu',
msgText: msgText:
'Ważna informacja: zaleca się korzystanie z przeglądarki Google, Microsoft Edge w wersji 79.0.1072.62 lub nowszej oraz przeglądarki 360 w trybie szybkim', 'Ważna informacja: zaleca się korzystanie z przeglądarki Google, Microsoft Edge w wersji 79.0.1072.62 lub nowszej oraz przeglądarki 360 w trybie szybkim',
}, },

View File

@ -19,12 +19,17 @@ export default {
codeNeed: 'Por favor, insira o código de verificação', codeNeed: 'Por favor, insira o código de verificação',
splitslive: 'Por favor, mantenha o deslizador', splitslive: 'Por favor, mantenha o deslizador',
success: 'Verificação superada', success: 'Verificação superada',
loginfail: 'Login falhou, por favor, verifique suas credenciais',
notprivilege: 'Desculpe, você não tem permissão para fazer login',
captchaExpired: 'código expirado',
}, },
mobile: { mobile: {
placeholder1: 'Por favor, insira o número do celular', placeholder1: 'Por favor, insira o número do celular',
placeholder2: 'Por favor, insira o código de verificação', placeholder2: 'Por favor, insira o código de verificação',
codeText: 'Obter código', codeText: 'Obter código',
btnText: 'Entrar', btnText: 'Entrar',
loginfail: 'Login falhou, por favor, verifique suas credenciais',
retry: '{duration} segundos após o código ser solicitado novamente',
msgText: msgText:
'Aviso importante: recomenda-se usar o Google, Microsoft Edge versão 79.0.1072.62 ou superior e o navegador 360 no modo rápido', 'Aviso importante: recomenda-se usar o Google, Microsoft Edge versão 79.0.1072.62 ou superior e o navegador 360 no modo rápido',
}, },

View File

@ -19,12 +19,17 @@ export default {
codeNeed: 'Пожалуйста, введите код подтверждения', codeNeed: 'Пожалуйста, введите код подтверждения',
splitslive: 'Пожалуйста, нажмите на экран', splitslive: 'Пожалуйста, нажмите на экран',
success: 'Версия прошла успешно', success: 'Версия прошла успешно',
loginfail: 'Вход не выполнен, пожалуйста, проверьте свои учетные данные',
notprivilege: 'Извините, у вас нет прав для входа',
captchaExpired: 'код истек',
}, },
mobile: { mobile: {
placeholder1: 'Пожалуйста, введите номер мобильного телефона', placeholder1: 'Пожалуйста, введите номер мобильного телефона',
placeholder2: 'Пожалуйста, введите код подтверждения', placeholder2: 'Пожалуйста, введите код подтверждения',
codeText: 'Получить код', codeText: 'Получить код',
btnText: 'Войти', btnText: 'Войти',
loginfail: 'Вход не выполнен, пожалуйста, проверьте свои учетные данные',
retry: '{duration} секунд после повторного запроса кода',
msgText: msgText:
'Важное примечание: рекомендуется использовать Google, Microsoft Edge версии 79.0.1072.62 или выше и браузер 360 в скоростном режиме', 'Важное примечание: рекомендуется использовать Google, Microsoft Edge версии 79.0.1072.62 или выше и браузер 360 в скоростном режиме',
}, },

View File

@ -19,12 +19,17 @@ export default {
codeNeed: '請輸入驗證碼', codeNeed: '請輸入驗證碼',
splitslive: '請按住滑塊拖動', splitslive: '請按住滑塊拖動',
success: '驗證通過', success: '驗證通過',
loginfail: '登入失敗,請檢查帳號密碼!',
notprivilege: '抱歉,您沒有登入權限',
captchaExpired: '驗證碼已過期',
}, },
mobile: { mobile: {
placeholder1: '請輸入手機號碼', placeholder1: '請輸入手機號碼',
placeholder2: '請輸入驗證碼', placeholder2: '請輸入驗證碼',
codeText: '獲取驗證碼', codeText: '獲取驗證碼',
btnText: '登入', btnText: '登入',
loginfail: '登入失敗,請檢查帳號!',
retry: '{duration}秒後重新獲取',
msgText: msgText:
'溫馨提示:建議使用 Google、Microsoft Edge 79.0.1072.62 或以上版本,以及 360 瀏覽器的極速模式', '溫馨提示:建議使用 Google、Microsoft Edge 79.0.1072.62 或以上版本,以及 360 瀏覽器的極速模式',
}, },

View File

@ -18,7 +18,10 @@ export default {
passwordneed: '请输入密码', passwordneed: '请输入密码',
codeNeed: '请输入验证码', codeNeed: '请输入验证码',
splitslive: '请按住滑块拖动', splitslive: '请按住滑块拖动',
loginfail: '登录失败,请检查账号密码!',
notprivilege: '抱歉,您没有登录权限',
success: '验证通过', success: '验证通过',
captchaExpired: '验证码已过期',
}, },
mobile: { mobile: {
placeholder1: '请输入手机号', placeholder1: '请输入手机号',
@ -26,6 +29,8 @@ export default {
codeText: '获取验证码', codeText: '获取验证码',
btnText: '登 录', btnText: '登 录',
msgText: '* 温馨提示建议使用谷歌、Microsoft Edge版本 79.0.1072.62 及以上浏览器360浏览器请使用极速模式', msgText: '* 温馨提示建议使用谷歌、Microsoft Edge版本 79.0.1072.62 及以上浏览器360浏览器请使用极速模式',
loginfail: '登录失败,请检查账号!',
retry: '{duration}秒后重新获取',
}, },
scan: { scan: {
text: '打开手机扫一扫,快速登录/注册', text: '打开手机扫一扫,快速登录/注册',

View File

@ -19,12 +19,17 @@ export default {
codeNeed: '請輸入驗證碼', codeNeed: '請輸入驗證碼',
splitslive: '請按住滑塊拖動', splitslive: '請按住滑塊拖動',
success: '驗證通過', success: '驗證通過',
loginfail: '登入失敗,請檢查帳號密碼!',
notprivilege: '抱歉,您沒有登入權限',
captchaExpired: '驗證碼已過期',
}, },
mobile: { mobile: {
placeholder1: '請輸入手機號', placeholder1: '請輸入手機號',
placeholder2: '請輸入驗證碼', placeholder2: '請輸入驗證碼',
codeText: '獲取驗證碼', codeText: '獲取驗證碼',
btnText: '登入', btnText: '登入',
loginfail: '登入失敗,請檢查帳號!',
retry: '{duration}秒後重新獲取',
msgText: '* 溫馨提示建議使用穀歌、Microsoft Edge版本79.0.1072.62及以上瀏覽器360瀏覽器請使用極速模式', msgText: '* 溫馨提示建議使用穀歌、Microsoft Edge版本79.0.1072.62及以上瀏覽器360瀏覽器請使用極速模式',
}, },
scan: { scan: {

View File

@ -1,8 +1,8 @@
<template> <template>
<el-tooltip :visible="state.capsLockVisible" effect="light" content="大写锁定已打开" placement="top"> <el-tooltip :visible="state.capsLockVisible" effect="light" :content="t('message.account.lockTag')" placement="top">
<el-form ref="ruleFormRef" :model="state.ruleForm" size="large" :rules="state.rules" class="login-content-form"> <el-form ref="ruleFormRef" :model="state.ruleForm" size="large" :rules="state.rules" class="login-content-form">
<el-form-item class="login-animation1" prop="account"> <el-form-item class="login-animation1" prop="account">
<el-input ref="accountRef" text placeholder="请输入账号" v-model="state.ruleForm.account" clearable autocomplete="off" @keyup.enter.native="handleSignIn"> <el-input ref="accountRef" text :placeholder="t('message.account.accountneed')" v-model="state.ruleForm.account" clearable autocomplete="off" @keyup.enter.native="handleSignIn">
<template #prefix> <template #prefix>
<el-icon> <el-icon>
<ele-User /> <ele-User />
@ -11,7 +11,7 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item class="login-animation2" prop="password"> <el-form-item class="login-animation2" prop="password">
<el-input ref="passwordRef" :type="state.isShowPassword ? 'text' : 'password'" placeholder="请输入密码" v-model="state.ruleForm.password" autocomplete="off" @keyup.enter.native="handleSignIn"> <el-input ref="passwordRef" :type="state.isShowPassword ? 'text' : 'password'" :placeholder="t('message.account.passwordneed')" v-model="state.ruleForm.password" autocomplete="off" @keyup.enter.native="handleSignIn">
<template #prefix> <template #prefix>
<el-icon> <el-icon>
<ele-Unlock /> <ele-Unlock />
@ -69,8 +69,8 @@
ref="dragRef" ref="dragRef"
:imgsrc="state.rotateVerifyImg" :imgsrc="state.rotateVerifyImg"
v-model:isPassing="state.isPassRotate" v-model:isPassing="state.isPassRotate"
text="请按住滑块拖动" :text="t('message.account.splitslive')"
successText="验证通过" :successText="t('message.account.success')"
handlerIcon="fa fa-angle-double-right" handlerIcon="fa fa-angle-double-right"
successIcon="fa fa-hand-peace-o" successIcon="fa fa-hand-peace-o"
@passcallback="passRotateVerify" @passcallback="passRotateVerify"
@ -111,6 +111,11 @@ const ruleFormRef = ref();
const accountRef = ref<InputInstance>(); const accountRef = ref<InputInstance>();
const passwordRef = ref<InputInstance>(); const passwordRef = ref<InputInstance>();
const codeRef = ref<InputInstance>(); const codeRef = ref<InputInstance>();
const accountNeed = t('message.account.accountneed');
const passwordNeed = t('message.account.passwordneed');
const codeNeed = t('message.account.codeNeed');
const loginFail = t('message.account.loginfail');
const notPrivilege = t('message.account.notprivilege');
const dragRef: any = ref(null); const dragRef: any = ref(null);
const state = reactive({ const state = reactive({
@ -122,9 +127,9 @@ const state = reactive({
codeId: 0 as any, codeId: 0 as any,
}, },
rules: { rules: {
account: [{ required: true, message: '请输入用户名', trigger: 'blur' }], account: [{ required: true, message: accountNeed, trigger: 'blur' }],
password: [{ required: true, message: '请输入密码', trigger: 'blur' }], password: [{ required: true, message: passwordNeed, trigger: 'blur' }],
// code: [{ required: true, message: '', trigger: 'blur' }], code: [{ required: true, message: codeNeed, trigger: 'blur' }],
}, },
loading: { loading: {
signIn: false, signIn: false,
@ -225,7 +230,7 @@ const onSignIn = async () => {
} }
if (res.data.result?.accessToken == undefined) { if (res.data.result?.accessToken == undefined) {
getCaptcha(); // getCaptcha(); //
ElMessage.error('登录失败,请检查账号!'); ElMessage.error(loginFail);
return; return;
} }
await saveTokenAndInitRoutes(res.data.result?.accessToken); await saveTokenAndInitRoutes(res.data.result?.accessToken);
@ -250,7 +255,7 @@ const saveTokenAndInitRoutes = async (accessToken: string | any) => {
// //
const signInSuccess = (isNoPower: boolean | undefined) => { const signInSuccess = (isNoPower: boolean | undefined) => {
if (isNoPower) { if (isNoPower) {
ElMessage.warning('抱歉,您没有登录权限'); ElMessage.warning(notPrivilege);
clearTokens(); // Token clearTokens(); // Token
} else { } else {
// //
@ -394,7 +399,7 @@ defineExpose({ saveTokenAndInitRoutes });
.login-content-code-expired { .login-content-code-expired {
@extend .login-content-code; @extend .login-content-code;
&::before { &::before {
content: '验证码已过期'; content: t('message.account.captchaExpired');
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;

View File

@ -51,13 +51,18 @@ import { SysSmsApi, SysAuthApi } from '/@/api-services/api';
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
const { t } = useI18n(); const { t } = useI18n();
const btnText = t('message.mobile.codeText');
const phoneText = t('message.mobile.placeholder1');
const codeText = t('message.mobile.codeText');
const loginFail = t('message.mobile.loginfail');
const notPrivilege = t('message.account.notprivilege');
const state = reactive({ const state = reactive({
ruleForm: { ruleForm: {
phone: '', phone: '',
code: '', code: '',
}, },
btnText: '获取验证码', btnText: btnText,
loading: false, loading: false,
disabled: false, disabled: false,
timer: null as any, timer: null as any,
@ -67,7 +72,7 @@ const state = reactive({
const getSmsCode = async () => { const getSmsCode = async () => {
state.ruleForm.code = ''; state.ruleForm.code = '';
if (!verifyPhone(state.ruleForm.phone)) { if (!verifyPhone(state.ruleForm.phone)) {
ElMessage.error('请正确输入手机号码!'); ElMessage.error(phoneText);
return; return;
} }
@ -83,9 +88,9 @@ const getSmsCode = async () => {
var duration = 60; var duration = 60;
state.timer = setInterval(() => { state.timer = setInterval(() => {
duration--; duration--;
state.btnText = `${duration} 秒后重新获取`; state.btnText = t('message.mobile.retry', { duration });
if (duration <= 0) { if (duration <= 0) {
state.btnText = '获取验证码'; state.btnText = codeText;
state.disabled = false; // state.disabled = false; //
clearInterval(state.timer); // clearInterval(state.timer); //
} }
@ -97,7 +102,7 @@ const onSignIn = async () => {
const host = route.query.host ?? location.host; const host = route.query.host ?? location.host;
var res = await getAPI(SysAuthApi).apiSysAuthLoginPhonePost({ ...state.ruleForm, host: host }); var res = await getAPI(SysAuthApi).apiSysAuthLoginPhonePost({ ...state.ruleForm, host: host });
if (res.data.result?.accessToken == undefined) { if (res.data.result?.accessToken == undefined) {
ElMessage.error('登录失败,请检查账号!'); ElMessage.error(loginFail);
return; return;
} }
@ -120,7 +125,7 @@ const saveTokenAndInitRoutes = async (accessToken: string | any) => {
// //
const signInSuccess = (isNoPower: boolean | undefined) => { const signInSuccess = (isNoPower: boolean | undefined) => {
if (isNoPower) { if (isNoPower) {
ElMessage.warning('抱歉,您没有登录权限'); ElMessage.warning(notPrivilege);
clearTokens(); // Token clearTokens(); // Token
} else { } else {
// //