From c626b356f52155f65770376833e52cd43b135d88 Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Thu, 30 Apr 2026 12:37:59 +0800 Subject: [PATCH] feat: update UI components and styles for improved layout and readability --- .../mdi-subset/materialdesignicons-subset.css | 6 +- .../materialdesignicons-webfont-subset.woff | Bin 18512 -> 18452 bytes .../materialdesignicons-webfont-subset.woff2 | Bin 14928 -> 14884 bytes .../components/shared/ConsoleDisplayer.vue | 68 +++++++++++- dashboard/src/styles/dashboard-shell.css | 19 +--- dashboard/src/views/ConsolePage.vue | 53 ++++++--- dashboard/src/views/CronJobPage.vue | 39 ------- dashboard/src/views/PersonaPage.vue | 20 ++-- dashboard/src/views/SubAgentPage.vue | 1 - dashboard/src/views/TracePage.vue | 102 ++++++++++-------- dashboard/src/views/stats/StatsPage.vue | 21 +--- 11 files changed, 183 insertions(+), 146 deletions(-) diff --git a/dashboard/src/assets/mdi-subset/materialdesignicons-subset.css b/dashboard/src/assets/mdi-subset/materialdesignicons-subset.css index d16943f55..5ccbe397d 100644 --- a/dashboard/src/assets/mdi-subset/materialdesignicons-subset.css +++ b/dashboard/src/assets/mdi-subset/materialdesignicons-subset.css @@ -1,4 +1,4 @@ -/* Auto-generated MDI subset – 258 icons */ +/* Auto-generated MDI subset – 257 icons */ /* Do not edit manually. Run: pnpm run subset-icons */ @font-face { @@ -140,10 +140,6 @@ content: "\F08A7"; } -.mdi-calendar-multiple::before { - content: "\F00F1"; -} - .mdi-calendar-plus::before { content: "\F00F3"; } diff --git a/dashboard/src/assets/mdi-subset/materialdesignicons-webfont-subset.woff b/dashboard/src/assets/mdi-subset/materialdesignicons-webfont-subset.woff index d8440ff58654892cfb959bbdac98fe8b20e72887..eaa3ed4b90fe2b260c790cb8762e9bbc0eeee247 100644 GIT binary patch delta 18210 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 Z0VW{k0zw7~hW}tb0{|G30l|~YM}-s5`@#SK delta 18249 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 M02r+S!jq3jg)=TdZvX%Q diff --git a/dashboard/src/assets/mdi-subset/materialdesignicons-webfont-subset.woff2 b/dashboard/src/assets/mdi-subset/materialdesignicons-webfont-subset.woff2 index 3d6d6e6e8235719a641484484c6373f29d71294e..7f20c9d0c78c24fe7cc63d452d22d7cdd451a50d 100644 GIT binary patch literal 14884 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 W{e}Lwy%FLLF73hP>IhG>djJ6aISjl2 literal 14928 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 OuhaSUe&}Um9RL8WCc~rv diff --git a/dashboard/src/components/shared/ConsoleDisplayer.vue b/dashboard/src/components/shared/ConsoleDisplayer.vue index cf4be65cf..8789925ca 100644 --- a/dashboard/src/components/shared/ConsoleDisplayer.vue +++ b/dashboard/src/components/shared/ConsoleDisplayer.vue @@ -23,7 +23,7 @@ import { EventSourcePolyfill } from 'event-source-polyfill'; > -
+
@@ -279,6 +279,36 @@ export default { this.isFullscreen = !!document.fullscreenElement; }, + appendLogContent(element, log) { + const levelMatch = log.match(/\[(DEBG|INFO|WARN|ERRO|CRIT|DEBUG|WARNING|ERROR|CRITICAL)\]/); + if (!levelMatch) { + element.innerText = `${log}`; + return; + } + + const levelStart = levelMatch.index; + const levelEnd = levelStart + levelMatch[0].length; + const prefix = log.slice(0, levelStart).trimEnd(); + const message = log.slice(levelEnd).trimStart(); + + const prefixSpan = document.createElement('span'); + prefixSpan.className = 'console-log-prefix'; + prefixSpan.innerText = prefix; + + const levelSpan = document.createElement('span'); + levelSpan.className = 'console-log-level'; + levelSpan.innerText = levelMatch[0]; + + const messageSpan = document.createElement('span'); + messageSpan.className = 'console-log-message'; + messageSpan.innerText = message; + + element.classList.add('console-log-line--structured'); + element.appendChild(prefixSpan); + element.appendChild(levelSpan); + element.appendChild(messageSpan); + }, + printLog(log) { let ele = document.getElementById('term') if (!ele) { @@ -297,7 +327,7 @@ export default { span.style = style span.classList.add('console-log-line', 'fade-in') - span.innerText = `${log}`; + this.appendLogContent(span, log); ele.appendChild(span) if (this.autoScroll) { ele.scrollTop = ele.scrollHeight @@ -325,7 +355,14 @@ export default { flex-wrap: wrap; gap: 8px; margin-bottom: 8px; - margin-left: 20px; +} + +.console-term { + background-color: #1e1e1e; + border-radius: 8px; + height: 100%; + overflow-y: auto; + padding: 16px; } .fullscreen-btn { @@ -334,12 +371,35 @@ export default { :deep(.console-log-line) { display: block; - margin-bottom: 2px; + margin: 0 0 2px; font-family: SFMono-Regular, Menlo, Monaco, Consolas, var(--astrbot-font-cjk-mono), monospace; font-size: 12px; white-space: pre-wrap; } +:deep(.console-log-line--structured) { + display: grid; + grid-template-columns: max-content 10ch minmax(0, 1fr); + column-gap: 8px; + align-items: start; + white-space: normal; +} + +:deep(.console-log-prefix), +:deep(.console-log-level), +:deep(.console-log-message) { + min-width: 0; + white-space: pre-wrap; +} + +:deep(.console-log-level) { + font-variant-numeric: tabular-nums; +} + +:deep(.console-log-message) { + overflow-wrap: anywhere; +} + :deep(.fade-in) { animation: fadeIn 0.3s; } diff --git a/dashboard/src/styles/dashboard-shell.css b/dashboard/src/styles/dashboard-shell.css index 83a4bd31e..7398d3b1e 100644 --- a/dashboard/src/styles/dashboard-shell.css +++ b/dashboard/src/styles/dashboard-shell.css @@ -38,27 +38,18 @@ min-width: 0; } -.dashboard-eyebrow { - margin-bottom: 8px; - color: var(--dashboard-subtle); - font-size: 12px; - font-weight: 600; - letter-spacing: 0.08em; - text-transform: uppercase; -} - .dashboard-title { margin: 0; - font-size: clamp(32px, 4vw, 44px); - line-height: 1.04; + font-size: 1.5rem; + line-height: 1.2; font-weight: 700; - letter-spacing: -0.04em; + letter-spacing: 0; } .dashboard-subtitle { - margin: 10px 0 0; + margin: 4px 0 0; color: var(--dashboard-muted); - font-size: 15px; + font-size: 0.875rem; line-height: 1.6; max-width: 860px; } diff --git a/dashboard/src/views/ConsolePage.vue b/dashboard/src/views/ConsolePage.vue index b4c813f49..04575c334 100644 --- a/dashboard/src/views/ConsolePage.vue +++ b/dashboard/src/views/ConsolePage.vue @@ -7,20 +7,13 @@ const { tm } = useModuleI18n('features/console'); - diff --git a/dashboard/src/views/CronJobPage.vue b/dashboard/src/views/CronJobPage.vue index dbc8f410e..b59d3b0be 100644 --- a/dashboard/src/views/CronJobPage.vue +++ b/dashboard/src/views/CronJobPage.vue @@ -3,7 +3,6 @@
-
{{ tm('header.eyebrow') }}

{{ tm('page.title') }}

@@ -25,21 +24,6 @@
-
-
-
- {{ card.icon }} -
-
{{ card.label }}
-
{{ card.value }}
-
{{ card.note }}
-
-
-
{{ tm('section.platforms.title') }}
@@ -262,10 +246,6 @@ const proactivePlatformText = computed(() => proactivePlatforms.value.map((p) => `${p.display_name || p.name}(${p.id})`).join(' / ') ) -const enabledJobsCount = computed(() => jobs.value.filter((job) => job.enabled).length) -const runOnceCount = computed(() => jobs.value.filter((job) => job.run_once).length) -const recurringCount = computed(() => jobs.value.filter((job) => !job.run_once).length) - const sortedJobs = computed(() => [...jobs.value].sort((a, b) => { if (a.enabled !== b.enabled) { @@ -285,21 +265,6 @@ const sortedJobs = computed(() => }) ) -const overviewCards = computed(() => [ - { - label: tm('overview.totalTasks'), - value: String(jobs.value.length), - note: tm('overview.totalTasksNote'), - icon: 'mdi-calendar-multiple' - }, - { - label: tm('overview.enabledTasks'), - value: String(enabledJobsCount.value), - note: tm('overview.enabledTasksNote'), - icon: 'mdi-check-circle-outline' - } -]) - const isEditing = computed(() => !!editingJobId.value) const dialogTitle = computed(() => tm(isEditing.value ? 'form.editTitle' : 'form.title')) const dialogSubmitText = computed(() => tm(isEditing.value ? 'actions.save' : 'actions.submit')) @@ -720,10 +685,6 @@ onMounted(() => { font-size: 14px; } -.cron-page :deep(.dashboard-overview-grid) { - grid-template-columns: repeat(2, minmax(0, 1fr)); -} - @media (max-width: 900px) { .table-actions { justify-items: start; diff --git a/dashboard/src/views/PersonaPage.vue b/dashboard/src/views/PersonaPage.vue index ec62b5aa5..8b05193c6 100644 --- a/dashboard/src/views/PersonaPage.vue +++ b/dashboard/src/views/PersonaPage.vue @@ -2,12 +2,12 @@
- +
-

- mdi-heart{{ t('core.navigation.persona') }} +

+ {{ t('core.navigation.persona') }}

-

+

{{ tm('page.description') }}

@@ -38,7 +38,15 @@ export default { diff --git a/dashboard/src/views/SubAgentPage.vue b/dashboard/src/views/SubAgentPage.vue index 4f71ddf78..d3876ec4c 100644 --- a/dashboard/src/views/SubAgentPage.vue +++ b/dashboard/src/views/SubAgentPage.vue @@ -3,7 +3,6 @@
-
{{ tm('header.eyebrow') }}

{{ tm('page.title') }}

diff --git a/dashboard/src/views/TracePage.vue b/dashboard/src/views/TracePage.vue index 9bc048575..4605d8680 100644 --- a/dashboard/src/views/TracePage.vue +++ b/dashboard/src/views/TracePage.vue @@ -1,11 +1,14 @@ @@ -80,36 +88,36 @@ export default { diff --git a/dashboard/src/views/stats/StatsPage.vue b/dashboard/src/views/stats/StatsPage.vue index cb0a358c6..251971baf 100644 --- a/dashboard/src/views/stats/StatsPage.vue +++ b/dashboard/src/views/stats/StatsPage.vue @@ -3,7 +3,6 @@
-
{{ t('header.eyebrow') }}

{{ t('header.title') }}

{{ t('header.subtitle') }}

@@ -723,30 +722,20 @@ onBeforeUnmount(() => { margin-bottom: 24px; } -.eyebrow { - margin-bottom: 8px; - color: var(--stats-subtle); - font-size: 12px; - font-weight: 600; - letter-spacing: 0.08em; - text-transform: uppercase; -} - .stats-title { margin: 0; - font-size: clamp(34px, 4vw, 46px); - line-height: 1.04; + font-size: 1.5rem; + line-height: 1.2; font-weight: 700; - letter-spacing: -0.04em; + letter-spacing: 0; } .stats-subtitle { - margin: 10px 0 0; + margin: 4px 0 0; color: var(--stats-muted); - font-size: 15px; + font-size: 0.875rem; } -.stats-page.is-dark .eyebrow, .stats-page.is-dark .stats-subtitle, .stats-page.is-dark .metric-label, .stats-page.is-dark .section-subtitle,