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

@@ -130,11 +130,11 @@
text-align: left;
}
.folder-tree button.active {
background: #dcfce7;
color: #059669;
font-weight: 850;
}
.folder-tree button.active {
background: var(--theme-primary-light-9);
color: var(--theme-primary-active);
font-weight: 850;
}
.folder-tree b {
min-width: 24px;
@@ -159,10 +159,10 @@
align-items: center;
justify-content: center;
gap: 8px;
border: 1px solid rgba(16, 185, 129, .28);
border: 1px solid rgba(var(--theme-primary-rgb), .28);
border-radius: 8px;
background: #f0fdf4;
color: #059669;
background: var(--theme-primary-light-9);
color: var(--theme-primary-active);
font-size: 13px;
font-weight: 850;
}
@@ -178,9 +178,9 @@
}
.knowledge-sync-btn:not(:disabled):hover {
border-color: rgba(16, 185, 129, 0.38);
background: #ecfdf5;
color: #047857;
border-color: rgba(var(--theme-primary-rgb), 0.38);
background: var(--theme-primary-light-9);
color: var(--theme-primary-active);
}
.folder-sync-meta {
@@ -298,10 +298,10 @@ th {
background: #f8fbff;
}
.doc-row.selected {
background: linear-gradient(90deg, rgba(16, 185, 129, 0.08), rgba(59, 130, 246, 0.04));
box-shadow: inset 3px 0 0 #10b981;
}
.doc-row.selected {
background: linear-gradient(90deg, rgba(var(--theme-primary-rgb), 0.08), rgba(59, 130, 246, 0.04));
box-shadow: inset 3px 0 0 var(--theme-primary);
}
.file-name {
display: inline-flex;
@@ -315,8 +315,8 @@ th {
.viewer-filetype.pdf { color: #ef4444; }
.file-name .word,
.viewer-filetype.word { color: #2563eb; }
.file-name .excel,
.viewer-filetype.excel { color: #10b981; }
.file-name .excel,
.viewer-filetype.excel { color: var(--success); }
.doc-tag {
display: inline-flex;
@@ -342,8 +342,8 @@ th {
}
.state-tag.success {
background: #dcfce7;
color: #059669;
background: var(--success-soft);
color: var(--success-hover);
}
.state-tag.muted {
@@ -394,7 +394,7 @@ th {
}
.more-btn.ingest {
color: #0f766e;
color: var(--theme-primary-active);
}
.more-btn.llm-wiki-view {
@@ -462,17 +462,17 @@ th {
transition: background 160ms ease, color 160ms ease, box-shadow 160ms ease;
}
.pager button:hover:not(.active) {
background: #fff;
color: #059669;
box-shadow: 0 1px 4px rgba(15, 23, 42, .08);
}
.pager button.active {
background: #059669;
color: #fff;
box-shadow: 0 8px 16px rgba(5, 150, 105, .20);
}
.pager button:hover:not(.active) {
background: #fff;
color: var(--theme-primary-active);
box-shadow: 0 1px 4px rgba(15, 23, 42, .08);
}
.pager button.active {
background: var(--theme-primary);
color: #fff;
box-shadow: 0 8px 16px var(--theme-primary-shadow);
}
.list-foot .page-summary {
color: #64748b;
@@ -484,73 +484,10 @@ th {
color: #64748b;
}
.page-size-wrap {
position: relative;
justify-self: end;
}
.page-size {
justify-self: end;
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;
box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
color: #334155;
font-size: 14px;
font-weight: 750;
white-space: nowrap;
transition: border-color 160ms ease, color 160ms ease;
}
.page-size:hover {
border-color: rgba(16, 185, 129, .32);
color: #0f9f78;
}
.page-size-dropdown {
position: absolute;
bottom: calc(100% + 6px);
right: 0;
z-index: 40;
display: grid;
border: 1px solid #d7e0ea;
border-radius: 10px;
background: #fff;
box-shadow: 0 12px 32px rgba(15, 23, 42, .14);
overflow: hidden;
}
.page-size-dropdown button {
height: 36px;
display: grid;
place-items: center;
border: 0;
border-radius: 0;
background: transparent;
color: #334155;
font-size: 13px;
font-weight: 750;
white-space: nowrap;
padding: 0 20px;
transition: background 120ms ease, color 120ms ease;
}
.page-size-dropdown button:hover {
background: #f0fdf4;
color: #059669;
}
.page-size-dropdown button.active {
background: #059669;
color: #fff;
}
.page-size-select {
width: 112px;
justify-self: end;
}
.preview-panel {
height: 100%;
@@ -671,7 +608,7 @@ th {
.llm-wiki-overlay {
background:
radial-gradient(circle at top, rgba(15, 118, 110, 0.12), transparent 30%),
radial-gradient(circle at top, rgba(var(--theme-primary-rgb), 0.12), transparent 30%),
rgba(15, 23, 42, 0.58);
}
@@ -706,8 +643,8 @@ th {
}
.llm-wiki-count {
background: #ecfdf5;
color: #047857;
background: var(--theme-primary-light-9);
color: var(--theme-primary-active);
}
.llm-wiki-stat-grid {
@@ -838,8 +775,8 @@ th {
.llm-wiki-editor:focus {
outline: none;
border-color: rgba(16, 185, 129, 0.42);
box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.12);
border-color: rgba(var(--theme-primary-rgb), 0.42);
box-shadow: 0 0 0 4px var(--theme-focus-ring);
}
.llm-wiki-candidate-list {
@@ -1253,8 +1190,7 @@ th {
}
.pager,
.page-size-wrap,
.page-size {
.page-size-select {
justify-self: stretch;
}