From 41a4d997fd8f59b5da5dbfe9f64e0b381ae1db7b Mon Sep 17 00:00:00 2001 From: ViperEkura <3081035982@qq.com> Date: Fri, 27 Mar 2026 15:49:14 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=9B=B4=E6=96=B0UI=20=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/App.vue | 14 +--- frontend/src/components/FileExplorer.vue | 44 +---------- frontend/src/components/MessageBubble.vue | 32 +------- frontend/src/components/MessageInput.vue | 16 +--- frontend/src/components/ModalDialog.vue | 13 +-- frontend/src/components/SettingsPanel.vue | 36 +-------- frontend/src/components/Sidebar.vue | 48 ++---------- frontend/src/components/StatsPanel.vue | 36 +-------- frontend/src/styles/global.css | 96 +++++++++++++++++++++++ 9 files changed, 123 insertions(+), 212 deletions(-) diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 65d0380..483b174 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -30,7 +30,7 @@ :project-name="currentProject.name" /> -
+

当前对话未关联项目

@@ -653,17 +653,7 @@ onMounted(() => { display: flex; } -.explorer-empty { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - gap: 12px; - color: var(--text-tertiary); - font-size: 14px; -} - -/* modal-overlay, modal-content, btn-icon, form-group, modal-footer, btn-secondary, btn-primary now in global.css */ +/* explorer-empty now uses global .empty-state */ .create-modal { background: var(--bg-primary); diff --git a/frontend/src/components/FileExplorer.vue b/frontend/src/components/FileExplorer.vue index 589cd5b..569f260 100644 --- a/frontend/src/components/FileExplorer.vue +++ b/frontend/src/components/FileExplorer.vue @@ -15,15 +15,15 @@
-
+
-
+
空项目
-
+
-
+
选择文件以预览
@@ -311,31 +311,6 @@ onUnmounted(() => { flex-shrink: 0; } -.tree-container { - flex: 1; - overflow-y: auto; - padding: 4px 0; -} - -.tree-container::-webkit-scrollbar { - width: 4px; -} - -.tree-container::-webkit-scrollbar-thumb { - background: var(--scrollbar-thumb); - border-radius: 2px; -} - -.explorer-loading, -.explorer-empty { - display: flex; - align-items: center; - justify-content: center; - flex: 1; - color: var(--text-tertiary); - font-size: 13px; -} - /* -- Viewer -- */ .file-viewer { flex: 1; @@ -400,17 +375,6 @@ onUnmounted(() => { font-size: 13px; } -.viewer-placeholder { - flex: 1; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - gap: 12px; - color: var(--text-tertiary); - font-size: 13px; -} - /* -- Code pane -- */ .code-pane { flex: 1; diff --git a/frontend/src/components/MessageBubble.vue b/frontend/src/components/MessageBubble.vue index c1e7f82..b7eae68 100644 --- a/frontend/src/components/MessageBubble.vue +++ b/frontend/src/components/MessageBubble.vue @@ -30,13 +30,13 @@ @@ -140,32 +140,6 @@ function copyContent() { color: var(--text-tertiary); } -.btn-regenerate, -.btn-copy, -.btn-delete-msg { - background: none; - border: none; - color: var(--text-tertiary); - cursor: pointer; - padding: 4px; - border-radius: 4px; - transition: all 0.15s; - display: flex; - align-items: center; -} -.btn-regenerate:hover { - color: var(--success-color); - background: var(--success-bg); -} -.btn-copy:hover { - color: var(--accent-primary); - background: var(--accent-primary-light); -} - -.btn-delete-msg:hover { - color: var(--danger-color); - background: var(--danger-bg); -} diff --git a/frontend/src/components/MessageInput.vue b/frontend/src/components/MessageInput.vue index b2a3bee..9e90e3d 100644 --- a/frontend/src/components/MessageInput.vue +++ b/frontend/src/components/MessageInput.vue @@ -5,7 +5,7 @@
{{ getFileIcon(file.extension) }} {{ file.name }} -
@@ -213,25 +213,11 @@ defineExpose({ focus }) } .btn-remove-file { - display: flex; - align-items: center; - justify-content: center; width: 18px; height: 18px; - border: none; - background: transparent; - color: var(--text-tertiary); - cursor: pointer; - border-radius: 4px; - transition: all 0.15s; padding: 0; } -.btn-remove-file:hover { - background: var(--danger-bg); - color: var(--danger-color); -} - .input-container { display: flex; flex-direction: column; diff --git a/frontend/src/components/ModalDialog.vue b/frontend/src/components/ModalDialog.vue index 3b431df..3ce52cc 100644 --- a/frontend/src/components/ModalDialog.vue +++ b/frontend/src/components/ModalDialog.vue @@ -1,6 +1,6 @@