From a5a4cd49646db3fa1108a8b917ef70c7757e81ad Mon Sep 17 00:00:00 2001 From: Charles7c Date: Thu, 28 Sep 2023 19:33:19 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=99=BB=E5=BD=95=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=20UI=20=E6=96=B0=E5=A2=9E=E9=82=AE=E7=AE=B1=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- continew-admin-ui/src/api/auth/login.ts | 7 +- .../views/login/components/email-login.vue | 156 ++++++++++++++++++ .../views/login/components/phone-login.vue | 16 +- continew-admin-ui/src/views/login/index.vue | 72 +++++--- .../src/views/login/locale/en-US.ts | 11 +- .../src/views/login/locale/zh-CN.ts | 10 +- 6 files changed, 237 insertions(+), 35 deletions(-) create mode 100644 continew-admin-ui/src/views/login/components/email-login.vue diff --git a/continew-admin-ui/src/api/auth/login.ts b/continew-admin-ui/src/api/auth/login.ts index 63187f8f..c5b37de6 100644 --- a/continew-admin-ui/src/api/auth/login.ts +++ b/continew-admin-ui/src/api/auth/login.ts @@ -6,10 +6,11 @@ const BASE_URL = '/auth'; export interface LoginReq { phone?: string; - username: string; - password: string; + email?: string; + username?: string; + password?: string; captcha: string; - uuid: string; + uuid?: string; } export interface LoginRes { diff --git a/continew-admin-ui/src/views/login/components/email-login.vue b/continew-admin-ui/src/views/login/components/email-login.vue new file mode 100644 index 00000000..3f707d40 --- /dev/null +++ b/continew-admin-ui/src/views/login/components/email-login.vue @@ -0,0 +1,156 @@ + + + + + diff --git a/continew-admin-ui/src/views/login/components/phone-login.vue b/continew-admin-ui/src/views/login/components/phone-login.vue index d5fd9a42..3f000436 100644 --- a/continew-admin-ui/src/views/login/components/phone-login.vue +++ b/continew-admin-ui/src/views/login/components/phone-login.vue @@ -53,13 +53,17 @@ const captchaDisable = ref(false); const captchaTime = ref(60); const captchaTimer = ref(); - const captchaBtnNameKey = ref('login.phone.captcha'); + const captchaBtnNameKey = ref('login.captcha.get'); const captchaBtnName = computed(() => t(captchaBtnNameKey.value)); const data = reactive({ form: {} as LoginReq, rules: { phone: [ { required: true, message: t('login.phone.error.required.phone') }, + { + match: /^1[3-9]\d{9}$/, + message: t('login.phone.error.match.phone'), + }, ], captcha: [ { required: true, message: t('login.phone.error.required.captcha') }, @@ -74,7 +78,7 @@ const resetCaptcha = () => { window.clearInterval(captchaTimer.value); captchaTime.value = 60; - captchaBtnNameKey.value = 'login.phone.captcha'; + captchaBtnNameKey.value = 'login.captcha.get'; captchaDisable.value = false; }; @@ -86,21 +90,21 @@ proxy.$refs.formRef.validateField('phone', (valid: any) => { if (!valid) { captchaLoading.value = true; - captchaBtnNameKey.value = 'login.phone.captcha.ing'; + captchaBtnNameKey.value = 'login.captcha.ing'; captchaLoading.value = false; captchaDisable.value = true; captchaBtnNameKey.value = `${t( - 'login.phone.reCaptcha' + 'login.captcha.get' )}(${(captchaTime.value -= 1)}s)`; captchaTimer.value = window.setInterval(() => { captchaTime.value -= 1; - captchaBtnNameKey.value = `${t('login.phone.reCaptcha')}(${ + captchaBtnNameKey.value = `${t('login.captcha.get')}(${ captchaTime.value }s)`; if (captchaTime.value < 0) { window.clearInterval(captchaTimer.value); captchaTime.value = 60; - captchaBtnNameKey.value = t('login.phone.reCaptcha'); + captchaBtnNameKey.value = t('login.captcha.get'); captchaDisable.value = false; } }, 1000); diff --git a/continew-admin-ui/src/views/login/index.vue b/continew-admin-ui/src/views/login/index.vue index c87ae41c..58a14058 100644 --- a/continew-admin-ui/src/views/login/index.vue +++ b/continew-admin-ui/src/views/login/index.vue @@ -12,26 +12,34 @@
{{ $t('login.welcome') }} {{ appStore.getTitle }}
{{ $t('login.welcome') }} {{ appStore.getTitle }}
- - - + +
{{ $t('login.other') }}
- -
- {{ $t('login.email.txt') }} -
-
+
+ {{ $t('login.email.txt') }} +
+
-