diff --git a/healthlink-his-mobile/src/views/Login.vue b/healthlink-his-mobile/src/views/Login.vue
index db00df726..9d1e8fc65 100644
--- a/healthlink-his-mobile/src/views/Login.vue
+++ b/healthlink-his-mobile/src/views/Login.vue
@@ -2,7 +2,7 @@
@@ -10,10 +10,11 @@
-
@@ -37,24 +41,35 @@ import { authApi } from '../api'
const router = useRouter()
const loading = ref(false)
const errorMsg = ref('')
-const tenants = ref([])
-const form = ref({ username: '', password: '', tenantId: null })
+const tenantOptions = ref([])
+const currentTenantName = ref('')
+const form = ref({ username: '', password: '', tenantId: '' })
const loadTenants = async () => {
if (!form.value.username) return
try {
const res = await authApi.getTenants(form.value.username)
if (res.code === 200 && res.data) {
- tenants.value = res.data
- if (res.data.length === 1) form.value.tenantId = res.data[0].id
+ tenantOptions.value = res.data.map(item => ({
+ label: item.tenantName,
+ value: item.id
+ }))
+ if (tenantOptions.value.length === 1) {
+ form.value.tenantId = tenantOptions.value[0].value
+ currentTenantName.value = tenantOptions.value[0].label
+ }
}
} catch (e) { console.error(e) }
}
+const onTenantChange = () => {
+ const selected = tenantOptions.value.find(t => t.value === form.value.tenantId)
+ currentTenantName.value = selected ? selected.label : ''
+}
+
const handleLogin = async () => {
if (!form.value.username) { errorMsg.value = '请输入用户名'; return }
if (!form.value.password) { errorMsg.value = '请输入密码'; return }
- if (!form.value.tenantId && tenants.value.length > 0) { errorMsg.value = '请选择租户'; return }
loading.value = true
errorMsg.value = ''
@@ -85,7 +100,7 @@ const handleLogin = async () => {
.login-page { min-height: 100vh; background: linear-gradient(135deg, #1890ff 0%, #096dd9 100%); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px; }
.login-header { text-align: center; color: #fff; margin-bottom: 40px; }
.logo { font-size: 60px; margin-bottom: 12px; }
-.login-header h1 { font-size: 24px; margin: 0; }
+.login-header h1 { font-size: 22px; margin: 0; }
.login-header p { font-size: 14px; opacity: 0.8; margin-top: 8px; }
.login-form { background: #fff; border-radius: 12px; padding: 24px; width: 100%; max-width: 360px; box-shadow: 0 4px 20px rgba(0,0,0,0.15); }
.form-item { margin-bottom: 16px; }
@@ -96,4 +111,5 @@ select.input { appearance: none; background: #fff url("data:image/svg+xml,%3Csvg
.login-btn { width: 100%; padding: 14px; background: #1890ff; color: #fff; border: none; border-radius: 8px; font-size: 18px; font-weight: 600; cursor: pointer; }
.login-btn:disabled { background: #91d5ff; }
.error-msg { color: #f5222d; text-align: center; margin-top: 12px; font-size: 14px; }
+.login-footer { margin-top: 20px; color: rgba(255,255,255,0.6); font-size: 12px; }