diff --git a/src/components/custom/tenant-select.vue b/src/components/custom/tenant-select.vue index 84b846ae..4fd9cc3c 100644 --- a/src/components/custom/tenant-select.vue +++ b/src/components/custom/tenant-select.vue @@ -1,17 +1,60 @@ diff --git a/src/hooks/common/form.ts b/src/hooks/common/form.ts index bc099560..f6296a00 100644 --- a/src/hooks/common/form.ts +++ b/src/hooks/common/form.ts @@ -9,7 +9,7 @@ export function useFormRules() { userName: { pattern: REG_USER_NAME, message: $t('form.userName.invalid'), - trigger: 'change' + trigger: ['change', 'blur'] }, phone: { pattern: REG_PHONE, @@ -19,7 +19,7 @@ export function useFormRules() { pwd: { pattern: REG_PWD, message: $t('form.pwd.invalid'), - trigger: 'change' + trigger: ['change', 'blur'] }, code: { pattern: REG_CODE_SIX, diff --git a/src/layouts/modules/global-header/index.vue b/src/layouts/modules/global-header/index.vue index 093c2154..139aa950 100644 --- a/src/layouts/modules/global-header/index.vue +++ b/src/layouts/modules/global-header/index.vue @@ -48,7 +48,7 @@ watch(tenantId, async () => {
- + ({ + url: '/system/tenant/dynamic/clear', + method: 'get' + }); +} diff --git a/src/views/_builtin/login/modules/pwd-login.vue b/src/views/_builtin/login/modules/pwd-login.vue index c43855dd..02b2ca99 100644 --- a/src/views/_builtin/login/modules/pwd-login.vue +++ b/src/views/_builtin/login/modules/pwd-login.vue @@ -3,14 +3,12 @@ import { computed, reactive, ref } from 'vue'; import type { SelectOption } from 'naive-ui'; import { useLoading } from '@sa/hooks'; import { fetchCaptchaCode, fetchTenantList } from '@/service/api'; -// import { fetchGetConfigDetail } from '@/service/api/system/config'; import { fetchSocialAuthBinding } from '@/service/api/system'; import { useAuthStore } from '@/store/modules/auth'; import { useRouterPush } from '@/hooks/common/router'; import { useFormRules, useNaiveForm } from '@/hooks/common/form'; import { localStg } from '@/utils/storage'; import { $t } from '@/locales'; - defineOptions({ name: 'PwdLogin' }); @@ -19,12 +17,15 @@ const authStore = useAuthStore(); const { toggleLoginModule } = useRouterPush(); const { formRef, validate } = useNaiveForm(); const { loading: codeLoading, startLoading: startCodeLoading, endLoading: endCodeLoading } = useLoading(); +const { loading: tenantLoading, startLoading: startTenantLoading, endLoading: endTenantLoading } = useLoading(); const codeUrl = ref(); const captchaEnabled = ref(false); -const tenantEnabled = ref(false); const registerEnabled = ref(false); const remberMe = ref(false); + +const tenantEnabled = ref(false); + const tenantOption = ref([]); const model: Api.Auth.PwdLoginForm = reactive({ @@ -32,7 +33,6 @@ const model: Api.Auth.PwdLoginForm = reactive({ username: '', password: '' }); - type RuleKey = Extract; const rules = computed>(() => { @@ -41,13 +41,28 @@ const rules = computed>(() => { const loginRules: Record = { username: [...formRules.userName, { required: true }], - password: [...formRules.pwd, { required: true }], + password: [createRequiredRule($t('form.pwd.required'))], code: captchaEnabled.value ? [createRequiredRule($t('form.code.required'))] : [], tenantId: tenantEnabled.value ? formRules.tenantId : [] }; return loginRules; }); +async function handleFetchTenantList() { + startTenantLoading(); + const { data, error } = await fetchTenantList(); + if (error) return; + tenantEnabled.value = data.tenantEnabled; + tenantOption.value = data.voList.map(tenant => { + return { + label: tenant.companyName, + value: tenant.tenantId + }; + }); + endTenantLoading(); +} + +handleFetchTenantList(); async function handleSubmit() { await validate(); @@ -66,20 +81,6 @@ async function handleSubmit() { } } -async function handleFetchTenantList() { - const { data, error } = await fetchTenantList(); - if (error) return; - tenantEnabled.value = data.tenantEnabled; - tenantOption.value = data.voList.map(tenant => { - return { - label: tenant.companyName, - value: tenant.tenantId - }; - }); -} - -handleFetchTenantList(); - async function handleFetchCaptchaCode() { startCodeLoading(); const { data, error } = await fetchCaptchaCode(); @@ -121,8 +122,14 @@ async function handleSocialLogin(type: Api.System.SocialSource) {