style: 全局 UI 主题皮肤重构与样式模块化

引入 Element Plus 主题定制和主题皮肤 composable,将全局
样式拆分为组件级独立 CSS 文件(侧边栏、顶栏、工作台等),
统一色彩变量和间距规范,重构所有视图和组件样式以适配新
主题系统,优化图表和知识图谱组件视觉表现,提取审计和差
旅报销相关子组件。
This commit is contained in:
caoxiaozhu
2026-05-27 09:17:57 +08:00
parent df49103f23
commit 2dcc72102d
112 changed files with 10983 additions and 8996 deletions

View File

@@ -70,7 +70,7 @@
.console-tabs button:hover,
.console-tabs button.active {
color: #0f766e;
color: var(--theme-primary-active);
}
.console-tabs button.active::after {
@@ -81,7 +81,7 @@
bottom: -11px;
height: 2px;
border-radius: 999px;
background: #10b981;
background: var(--theme-primary);
}
.console-toolbar {
@@ -102,7 +102,6 @@
font-weight: 700;
}
.filter-field select,
.field-input {
min-height: 38px;
border: 1px solid #d8e1eb;
@@ -110,12 +109,6 @@
background: #fff;
}
.filter-field select {
padding: 0 12px;
color: #0f172a;
font-size: 13px;
}
.field-input {
display: flex;
align-items: center;
@@ -148,7 +141,7 @@
}
.toolbar-btn.primary {
background: linear-gradient(135deg, #0f9f8d, #10b981);
background: var(--theme-gradient-primary);
border-color: transparent;
color: #fff;
}
@@ -247,12 +240,12 @@
}
.log-table tbody tr:hover {
background: rgba(16, 185, 129, 0.04);
background: rgba(var(--theme-primary-rgb), 0.04);
}
.log-table tbody tr.active {
background: rgba(16, 185, 129, 0.08);
box-shadow: inset 3px 0 0 #10b981;
background: rgba(var(--theme-primary-rgb), 0.08);
box-shadow: inset 3px 0 0 var(--theme-primary);
}
.log-table tbody td {
@@ -363,14 +356,14 @@
.pager button:hover:not(.active):not(:disabled) {
background: #fff;
color: #059669;
color: var(--theme-primary-active);
box-shadow: 0 1px 4px rgba(15, 23, 42, 0.08);
}
.pager button.active {
background: #059669;
background: var(--theme-primary);
color: #fff;
box-shadow: 0 8px 16px rgba(5, 150, 105, 0.2);
box-shadow: 0 8px 16px var(--theme-primary-shadow);
}
.page-nav:disabled {
@@ -378,63 +371,11 @@
opacity: 0.45;
}
.page-size-wrap {
position: relative;
.page-size-select {
width: 112px;
justify-self: end;
}
.page-size {
min-width: 112px;
min-height: 38px;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 9px;
padding: 0 14px;
border: 1px solid #d7e0ea;
border-radius: 10px;
background: #fff;
color: #334155;
font-size: 14px;
font-weight: 750;
box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.page-size-dropdown {
position: absolute;
right: 0;
bottom: calc(100% + 6px);
z-index: 40;
display: grid;
overflow: hidden;
border: 1px solid #d7e0ea;
border-radius: 10px;
background: #fff;
box-shadow: 0 12px 32px rgba(15, 23, 42, 0.14);
}
.page-size-dropdown button {
height: 36px;
padding: 0 20px;
border: 0;
border-radius: 0;
background: transparent;
color: #334155;
font-size: 13px;
font-weight: 750;
white-space: nowrap;
}
.page-size-dropdown button:hover {
background: #f0fdf4;
color: #059669;
}
.page-size-dropdown button.active {
background: #059669;
color: #fff;
}
.analytics-row {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(260px, 0.48fr);
@@ -473,8 +414,8 @@
align-items: center;
padding: 0 9px;
border-radius: 999px;
background: #ecfdf5;
color: #059669;
background: var(--theme-primary-light-9);
color: var(--theme-primary-active);
font-size: 12px;
font-weight: 700;
}
@@ -540,7 +481,7 @@
}
.trend-line.total {
stroke: #10b981;
stroke: var(--theme-primary);
}
.trend-line.failed {
@@ -644,9 +585,9 @@
}
.status-pill.success {
background: rgba(22, 163, 74, 0.12);
border-color: rgba(22, 163, 74, 0.2);
color: #166534;
background: rgba(var(--success-rgb), 0.12);
border-color: rgba(var(--success-rgb), 0.2);
color: var(--success-active);
}
.status-pill.warning {
@@ -761,8 +702,7 @@
}
.pager,
.page-size,
.page-size-wrap {
.page-size-select {
justify-self: stretch;
}
}