From e63bedc11b9ea6f59a8afe4284135b42a4dc65e2 Mon Sep 17 00:00:00 2001 From: MoChou <1373639299@qq.com> Date: Sun, 20 Jul 2025 12:13:06 +0800 Subject: [PATCH] =?UTF-8?q?chore(login):=20=E4=BF=AE=E6=94=B9=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E9=A1=B5=E7=BB=84=E4=BB=B6,=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=A7=9F=E6=88=B7=E7=99=BB=E5=BD=95=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/stores/modules/tenant.ts | 14 +++++++++---- src/views/login/components/account/index.vue | 21 +++++--------------- src/views/login/components/email/index.vue | 11 +++++----- src/views/login/components/phone/index.vue | 11 +++++----- src/views/login/index.vue | 6 ++++-- 5 files changed, 29 insertions(+), 34 deletions(-) diff --git a/src/stores/modules/tenant.ts b/src/stores/modules/tenant.ts index 94723a9..fc386e3 100644 --- a/src/stores/modules/tenant.ts +++ b/src/stores/modules/tenant.ts @@ -2,8 +2,8 @@ import { defineStore } from 'pinia' import { computed, ref } from 'vue' export const useTenantStore = defineStore('tenant', () => { - const tenantEnabled = ref(false) - const tenantId = ref('') + const tenantEnabled = ref(false) + const tenantId = ref() const setTenantEnable = (status: boolean) => { tenantEnabled.value = status @@ -13,16 +13,22 @@ export const useTenantStore = defineStore('tenant', () => { } // 判断是否需要用户输入租户编码 - const needInputTenantId = computed(() => { + const needInputTenantCode = computed(() => { return tenantEnabled.value && !tenantId.value }) + // 新增:判断租户是否已正确配置 + const isTenantConfigured = computed(() => { + return tenantEnabled.value && !!tenantId.value + }) + return { tenantEnabled, tenantId, setTenantEnable, setTenantId, - needInputTenantId, + needInputTenantCode, + isTenantConfigured, } }, { persist: { paths: ['tenantEnabled', 'tenantId'], storage: localStorage }, diff --git a/src/views/login/components/account/index.vue b/src/views/login/components/account/index.vue index 648f3ba..a89ff49 100644 --- a/src/views/login/components/account/index.vue +++ b/src/views/login/components/account/index.vue @@ -8,8 +8,8 @@ size="large" @submit="handleLogin" > - - + + @@ -61,7 +61,8 @@ const loginConfig = useStorage('login-config', { const isCaptchaEnabled = ref(true) // 验证码图片 const captchaImgBase64 = ref() - +// 租户编号 +const tenantCode = ref() const formRef = ref() const form = reactive({ username: loginConfig.value.username, @@ -69,19 +70,12 @@ const form = reactive({ captcha: '', uuid: '', expired: false, - tenantCode: '', // 新增 }) // 校验规则部分 const rules: FormInstance['rules'] = { username: [{ required: true, message: '请输入用户名' }], password: [{ required: true, message: '请输入密码' }], captcha: [{ required: isCaptchaEnabled.value, message: '请输入验证码' }], - tenantCode: [ - { - required: tenantStore.needInputTenantId, - message: '请输入租户编码', - }, - ], } // 验证码过期定时器 @@ -129,17 +123,12 @@ const handleLogin = async () => { if (isInvalid) return loading.value = true - let tenantCode - if (tenantStore.needInputTenantId) { - tenantCode = form.tenantCode - } - await userStore.accountLogin({ username: form.username, password: encryptByRsa(form.password) || '', captcha: form.captcha, uuid: form.uuid, - }, tenantCode) + }, tenantCode.value) tabsStore.reset() const { redirect, ...othersQuery } = router.currentRoute.value.query const { rememberMe } = loginConfig.value diff --git a/src/views/login/components/email/index.vue b/src/views/login/components/email/index.vue index 7173828..a3575d4 100644 --- a/src/views/login/components/email/index.vue +++ b/src/views/login/components/email/index.vue @@ -8,8 +8,8 @@ size="large" @submit="handleLogin" > - - + + @@ -43,14 +43,13 @@