feat(web): 登录页主题适配 + 工作台角色化重构
- 登录页接入 4 套主题系统(渐变色/面板背景/文字色),添加 ThemeSwitcher - 工作台按角色(医生/护士/管理员/运营)显示专属统计卡片和快捷入口 - 移除系统信息填充卡片,硬编码颜色替换为 CSS 变量
This commit is contained in:
@@ -265,6 +265,166 @@
|
||||
--erp-font-heading: 'Noto Sans SC', -apple-system, system-ui, sans-serif;
|
||||
}
|
||||
|
||||
/* --- Login Page Tokens --- */
|
||||
:root {
|
||||
--login-gradient-start: #312E81;
|
||||
--login-gradient-mid: #2563eb;
|
||||
--login-gradient-end: #60a5fa;
|
||||
--login-form-bg: #ffffff;
|
||||
--login-form-text: #0f172a;
|
||||
--login-form-text-secondary: #475569;
|
||||
--login-input-icon-color: #94a3b8;
|
||||
}
|
||||
|
||||
[data-theme='warm'] {
|
||||
--login-gradient-start: #6B3418;
|
||||
--login-gradient-mid: #C4623A;
|
||||
--login-gradient-end: #D4956A;
|
||||
--login-form-bg: #FAF5F0;
|
||||
--login-form-text: #2D2A26;
|
||||
--login-form-text-secondary: #7A756E;
|
||||
--login-input-icon-color: #A8A29E;
|
||||
}
|
||||
|
||||
[data-theme='dark'] {
|
||||
--login-gradient-start: #0F172A;
|
||||
--login-gradient-mid: #1E293B;
|
||||
--login-gradient-end: #334155;
|
||||
--login-form-bg: #1E293B;
|
||||
--login-form-text: rgba(255,255,255,0.95);
|
||||
--login-form-text-secondary: #94A3B8;
|
||||
--login-input-icon-color: #64748B;
|
||||
}
|
||||
|
||||
[data-theme='emerald'] {
|
||||
--login-gradient-start: #2D4A2F;
|
||||
--login-gradient-mid: #5B7A5E;
|
||||
--login-gradient-end: #8FB092;
|
||||
--login-form-bg: #F4F7F4;
|
||||
--login-form-text: #1A2E1A;
|
||||
--login-form-text-secondary: #5A6E5A;
|
||||
--login-input-icon-color: #8FA08F;
|
||||
}
|
||||
|
||||
/* --- Login Page Styles --- */
|
||||
.login-root {
|
||||
display: flex;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.login-brand-panel {
|
||||
flex: 1;
|
||||
background: linear-gradient(135deg, var(--login-gradient-start) 0%, var(--login-gradient-mid) 50%, var(--login-gradient-end) 100%);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 60px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.login-brand-panel .deco-circle {
|
||||
position: absolute;
|
||||
border-radius: 50%;
|
||||
background: rgba(255, 255, 255, 0.05);
|
||||
}
|
||||
|
||||
.login-brand-panel .brand-icon {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
border-radius: 16px;
|
||||
background: rgba(255, 255, 255, 0.15);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: 0 auto 32px;
|
||||
backdrop-filter: blur(8px);
|
||||
border: 1px solid rgba(255, 255, 255, 0.2);
|
||||
}
|
||||
|
||||
.login-brand-panel .brand-icon .anticon {
|
||||
font-size: 32px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.login-brand-panel .brand-title {
|
||||
color: #fff;
|
||||
font-size: 36px;
|
||||
font-weight: 800;
|
||||
margin: 0 0 16px;
|
||||
letter-spacing: -1px;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.login-brand-panel .brand-desc {
|
||||
color: rgba(255, 255, 255, 0.7);
|
||||
font-size: 16px;
|
||||
line-height: 1.6;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.login-brand-panel .brand-sub-desc {
|
||||
color: rgba(255, 255, 255, 0.5);
|
||||
font-size: 14px;
|
||||
line-height: 1.6;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.login-brand-panel .feature-item-value {
|
||||
color: rgba(255, 255, 255, 0.9);
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.login-brand-panel .feature-item-label {
|
||||
color: rgba(255, 255, 255, 0.5);
|
||||
font-size: 12px;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.login-form-panel {
|
||||
width: 480px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
padding: 60px;
|
||||
background: var(--login-form-bg);
|
||||
position: relative;
|
||||
transition: background var(--erp-transition-slow);
|
||||
}
|
||||
|
||||
.login-form-panel .form-title {
|
||||
margin-bottom: 4px;
|
||||
font-weight: 700;
|
||||
font-size: 24px;
|
||||
color: var(--login-form-text);
|
||||
}
|
||||
|
||||
.login-form-panel .form-subtitle {
|
||||
font-size: 14px;
|
||||
color: var(--login-form-text-secondary);
|
||||
}
|
||||
|
||||
.login-form-panel .form-footer {
|
||||
margin-top: 32px;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
color: var(--login-form-text-secondary);
|
||||
}
|
||||
|
||||
.login-theme-switcher {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.login-theme-switcher .erp-header-btn {
|
||||
background: var(--login-form-bg);
|
||||
border: 1px solid var(--erp-border);
|
||||
color: var(--login-form-text-secondary);
|
||||
}
|
||||
|
||||
/* --- Global Reset & Base --- */
|
||||
body {
|
||||
|
||||
Reference in New Issue
Block a user