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

@@ -3,6 +3,7 @@ import { useRouter } from 'vue-router'
import LogTrendChart from '../../components/charts/LogTrendChart.vue'
import DonutChart from '../../components/charts/DonutChart.vue'
import EnterpriseSelect from '../../components/shared/EnterpriseSelect.vue'
import TableLoadingState from '../../components/shared/TableLoadingState.vue'
import { fetchAgentRuns } from '../../services/agentAssets.js'
import { fetchSystemLogEntries } from '../../services/systemLogs.js'
@@ -221,6 +222,7 @@ export default {
components: {
LogTrendChart,
DonutChart,
EnterpriseSelect,
TableLoadingState
},
emits: ['summary-change'],
@@ -237,20 +239,28 @@ export default {
const systemLevelFilter = ref('')
const systemEventTypeFilter = ref('')
const systemLogEntries = ref([])
const currentPage = ref(1)
const pageSize = ref(10)
const pageSizes = [10, 20, 50]
const pageSizeOpen = ref(false)
const currentPage = ref(1)
const pageSize = ref(10)
const pageSizes = [10, 20, 50]
const pageSizeOptions = pageSizes.map((size) => ({ label: `${size} 条/页`, value: size }))
let pollTimer = 0
const isAdmin = computed(() => isManagerUser(currentUser.value))
const filteredHermesRuns = computed(() => hermesRuns.value)
const systemLevelOptions = computed(() =>
Array.from(new Set(systemLogEntries.value.map((entry) => entry.level).filter(Boolean)))
)
const systemEventTypeOptions = computed(() =>
Array.from(new Set(systemLogEntries.value.map((entry) => entry.event_type).filter(Boolean)))
)
const systemLevelOptions = computed(() =>
Array.from(new Set(systemLogEntries.value.map((entry) => entry.level).filter(Boolean)))
)
const systemEventTypeOptions = computed(() =>
Array.from(new Set(systemLogEntries.value.map((entry) => entry.event_type).filter(Boolean)))
)
const systemLevelFilterOptions = computed(() => [
{ label: '全部', value: '' },
...systemLevelOptions.value
])
const systemEventTypeFilterOptions = computed(() => [
{ label: '全部', value: '' },
...systemEventTypeOptions.value
])
const filteredSystemLogEntries = computed(() => {
const keyword = systemSearchKeyword.value.trim().toLowerCase()
return systemLogEntries.value.filter((entry) => {
@@ -330,11 +340,10 @@ export default {
return filteredSystemLogEntries.value.slice(start, start + pageSize.value)
})
function changePageSize(size) {
pageSize.value = size
pageSizeOpen.value = false
currentPage.value = 1
}
function changePageSize(size) {
pageSize.value = size
currentPage.value = 1
}
async function loadHermesRuns() {
if (!isAdmin.value) {
@@ -456,8 +465,8 @@ export default {
loadSystemLogs,
currentPage,
pageSize,
pageSizeOpen,
pageSizes,
pageSizes,
pageSizeOptions,
resolveLevelTone,
resolveRunLevel,
resolveRunModuleLabel,
@@ -472,10 +481,12 @@ export default {
runningRunCount,
selectRun,
selectSystemLog,
systemEventTypeFilter,
systemEventTypeOptions,
systemLevelFilter,
systemLevelOptions,
systemEventTypeFilter,
systemEventTypeFilterOptions,
systemEventTypeOptions,
systemLevelFilter,
systemLevelFilterOptions,
systemLevelOptions,
systemLogEntries,
systemLogLoading,
systemSearchKeyword,