From 66a7790dc7091a428e82d748c8c8acd04b636abd Mon Sep 17 00:00:00 2001 From: zzy Date: Tue, 21 Apr 2026 14:23:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/tenant/index.ts | 3 +- src/views/Login/components/LoginForm.vue | 29 +++-- .../community/community/CommunityForm.vue | 23 ---- src/views/system/user/UserForm.vue | 3 +- src/views/system/user/components/UserForm.vue | 11 +- .../system/user/components/UserManagement.vue | 13 +- .../user/components/UserTenantAssignForm.vue | 116 +++++++++--------- 7 files changed, 104 insertions(+), 94 deletions(-) diff --git a/src/api/system/tenant/index.ts b/src/api/system/tenant/index.ts index b6438da..800415a 100644 --- a/src/api/system/tenant/index.ts +++ b/src/api/system/tenant/index.ts @@ -73,5 +73,6 @@ export const exportTenant = (params: TenantExportReqVO) => { } export const getSimpleTenantList = () => { - return request.get({ url: '/system/tenant/simple-list' }) + return request.get({ url: '/system/tenant/simple-total-list' }) } + diff --git a/src/views/Login/components/LoginForm.vue b/src/views/Login/components/LoginForm.vue index 56714bf..12b5752 100644 --- a/src/views/Login/components/LoginForm.vue +++ b/src/views/Login/components/LoginForm.vue @@ -39,6 +39,7 @@ ([]) +const tenantSelectRef = ref() const isFetchingTenants = ref(false) const getShow = computed(() => unref(getLoginState) === LoginStateEnum.LOGIN) @@ -197,9 +199,12 @@ const fetchTenantList = async () => { tenantList.value = res.tenants - // 默认选中第一个租户 - if (res.tenants.length > 0) { + // 只有一个租户时,自动选中 + if (res.tenants.length === 1) { loginData.loginForm.tenantId = res.tenants[0].tenantId + } else { + // 多个租户时,不自动选中,让用户手动选择 + loginData.loginForm.tenantId = undefined } } catch (error) { console.error('获取租户列表失败:', error) @@ -234,12 +239,13 @@ const getCode = async () => { if (tenantList.value.length === 1) { loginData.loginForm.tenantId = tenantList.value[0].tenantId // 单租户直接继续登录 + continueLogin() } else { - // 如果有多个租户但未选择,提示用户选择 - if (!loginData.loginForm.tenantId) { - message.error('请选择租户') - return + // 多个租户,自动展开下拉框让用户选择 + if (tenantSelectRef.value) { + tenantSelectRef.value.visible = true } + message.info('请选择要登录的租户') } } else if (loginData.tenantEnable === 'true' && tenantList.value.length > 0) { // 已有租户列表,验证是否已选择 @@ -247,17 +253,24 @@ const getCode = async () => { message.error('请选择租户') return } - } + // 继续登录流程 + continueLogin() + } +} + +// 继续登录流程(验证码或登录) +const continueLogin = () => { // 情况一,未开启:则直接登录 if (loginData.captchaEnable === 'false') { - await handleLogin({}) + handleLogin({}) } else { // 情况二,已开启:则展示验证码;只有完成验证码的情况,才进行登录 // 弹出验证码 verify.value.show() } } + // 设置租户ID const setTenantId = () => { if (loginData.loginForm.tenantId) { diff --git a/src/views/community/community/CommunityForm.vue b/src/views/community/community/CommunityForm.vue index 36c8c50..af3bed5 100644 --- a/src/views/community/community/CommunityForm.vue +++ b/src/views/community/community/CommunityForm.vue @@ -36,17 +36,6 @@ - -
- - - - - - - -
-
@@ -106,8 +95,6 @@ const formData = ref({ longitude: undefined, latitude: undefined, propertyCompany: undefined, - username: undefined, - password: undefined, visitAudit: undefined, gateAudit: undefined }) @@ -117,14 +104,6 @@ const formRules = reactive({ streetName: [{ required: true, message: '街道名称不能为空', trigger: 'blur' }], districtName: [{ required: true, message: '社区名称不能为空', trigger: 'blur' }], communityAddress: [{ required: true, message: '小区地址不能为空', trigger: 'blur' }], - username: [ - { required: true, message: '用户名不能为空', trigger: 'blur' }, - { pattern: /^[a-zA-Z0-9]{4,30}$/, message: '用户名由 4-30 位数字和字母组成', trigger: 'blur' } - ], - password: [ - { required: true, message: '密码不能为空', trigger: 'blur' }, - { min: 4, max: 16, message: '密码长度为 4-16 位', trigger: 'blur' } - ], visitAudit: [{ required: true, message: '来访审核不能为空', trigger: 'change' }], gateAudit: [{ required: true, message: '道闸申请不能为空', trigger: 'change' }] }) @@ -186,8 +165,6 @@ const resetForm = () => { longitude: undefined, latitude: undefined, propertyCompany: undefined, - username: undefined, - password: undefined, visitAudit: undefined, gateAudit: undefined } diff --git a/src/views/system/user/UserForm.vue b/src/views/system/user/UserForm.vue index 89498e0..60e6849 100644 --- a/src/views/system/user/UserForm.vue +++ b/src/views/system/user/UserForm.vue @@ -28,7 +28,7 @@ - + @@ -139,6 +139,7 @@ const formRules = reactive({ } ], mobile: [ + { required: true, message: '手机号码不能为空', trigger: 'blur' }, { pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号码', diff --git a/src/views/system/user/components/UserForm.vue b/src/views/system/user/components/UserForm.vue index 8098fe0..e0dba8b 100644 --- a/src/views/system/user/components/UserForm.vue +++ b/src/views/system/user/components/UserForm.vue @@ -7,7 +7,7 @@ label-width="100px" v-loading="formLoading" > - + @@ -96,7 +96,14 @@ const formData = ref({ groupId: undefined }) const formRules = reactive({ - mobile: [{ required: true, message: '手机号不能为空', trigger: 'blur' }], + mobile: [ + { required: true, message: '手机号不能为空', trigger: 'blur' }, + { + pattern: /^1[3-9]\d{9}$/, + message: '请输入正确的手机号码', + trigger: 'blur' + } + ], status: [{ required: true, message: '状态不能为空', trigger: 'blur' }] }) const formRef = ref() // 表单 Ref diff --git a/src/views/system/user/components/UserManagement.vue b/src/views/system/user/components/UserManagement.vue index c861847..dd5bb25 100644 --- a/src/views/system/user/components/UserManagement.vue +++ b/src/views/system/user/components/UserManagement.vue @@ -150,9 +150,9 @@ :formatter="dateFormatter" width="180" /> - +