From 54de5b00b6bd59f6f09b1623a9f03827965e658f Mon Sep 17 00:00:00 2001 From: Yumiue <229866007@qq.com> Date: Sat, 13 Jun 2026 21:39:52 +0800 Subject: [PATCH 1/8] feat(desktop): add settings panel MVP (phase 1, static) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Independent settings webview window restored from settings.html prototype. Phase 1 is presentational only — all controls are local refs; no backend persistence wired up yet (DB settings table + REST routes belong to phase 2). - new "settings" Tauri window (1080x760, decorated, hide-on-close like panel) - new SettingsView with 6 sections: general / assistant / persona / model / privacy / hooks (1:1 content with prototype) - useSettings composable aggregates state + actions - styles/settings.css scoped to [data-view="settings"] so the prototypes light-glass + blue-accent visual does not pollute the global tokens - bg image baked into .settings-root background-image (light/dark via class) to avoid the negative z-index trick that only works on
- panel header gets a "设置" button to open the window via WebviewWindow.getByLabel("settings") - App.vue skips refresh() / WS connect for the settings view --- .../public/backgrounds/settings-bg-dark.png | Bin 0 -> 1436789 bytes .../public/backgrounds/settings-bg-light.png | Bin 0 -> 1496929 bytes .../src-tauri/capabilities/default.json | 2 +- apps/desktop/src-tauri/src/lib.rs | 11 + apps/desktop/src-tauri/tauri.conf.json | 16 + apps/desktop/src/App.vue | 16 +- .../src/components/panel/PanelHeader.vue | 14 +- .../components/settings/BlacklistEditor.vue | 74 ++ .../src/components/settings/HookStatusDot.vue | 14 + .../src/components/settings/KeyBadge.vue | 9 + .../src/components/settings/ModelGrid.vue | 71 ++ .../components/settings/MountModeCards.vue | 48 ++ .../src/components/settings/SelectField.vue | 30 + .../src/components/settings/SettingRow.vue | 18 + .../components/settings/SettingsSidebar.vue | 76 ++ .../components/settings/SettingsTopbar.vue | 24 + .../src/components/settings/TextField.vue | 34 + .../src/components/settings/ToggleSwitch.vue | 25 + .../settings/sections/AssistantSection.vue | 84 ++ .../settings/sections/GeneralSection.vue | 58 ++ .../settings/sections/HookSection.vue | 90 +++ .../settings/sections/ModelSection.vue | 70 ++ .../settings/sections/PersonaSection.vue | 77 ++ .../settings/sections/PrivacySection.vue | 75 ++ apps/desktop/src/composables/useSettings.ts | 152 ++++ apps/desktop/src/main.ts | 1 + apps/desktop/src/styles/settings.css | 759 ++++++++++++++++++ apps/desktop/src/views/SettingsView.vue | 48 ++ 28 files changed, 1893 insertions(+), 3 deletions(-) create mode 100644 apps/desktop/public/backgrounds/settings-bg-dark.png create mode 100644 apps/desktop/public/backgrounds/settings-bg-light.png create mode 100644 apps/desktop/src/components/settings/BlacklistEditor.vue create mode 100644 apps/desktop/src/components/settings/HookStatusDot.vue create mode 100644 apps/desktop/src/components/settings/KeyBadge.vue create mode 100644 apps/desktop/src/components/settings/ModelGrid.vue create mode 100644 apps/desktop/src/components/settings/MountModeCards.vue create mode 100644 apps/desktop/src/components/settings/SelectField.vue create mode 100644 apps/desktop/src/components/settings/SettingRow.vue create mode 100644 apps/desktop/src/components/settings/SettingsSidebar.vue create mode 100644 apps/desktop/src/components/settings/SettingsTopbar.vue create mode 100644 apps/desktop/src/components/settings/TextField.vue create mode 100644 apps/desktop/src/components/settings/ToggleSwitch.vue create mode 100644 apps/desktop/src/components/settings/sections/AssistantSection.vue create mode 100644 apps/desktop/src/components/settings/sections/GeneralSection.vue create mode 100644 apps/desktop/src/components/settings/sections/HookSection.vue create mode 100644 apps/desktop/src/components/settings/sections/ModelSection.vue create mode 100644 apps/desktop/src/components/settings/sections/PersonaSection.vue create mode 100644 apps/desktop/src/components/settings/sections/PrivacySection.vue create mode 100644 apps/desktop/src/composables/useSettings.ts create mode 100644 apps/desktop/src/styles/settings.css create mode 100644 apps/desktop/src/views/SettingsView.vue diff --git a/apps/desktop/public/backgrounds/settings-bg-dark.png b/apps/desktop/public/backgrounds/settings-bg-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..eccce0ac42c4789be8beb13ecc8f81842090334c GIT binary patch literal 1436789 zcmeFa2|U!@`#(I^EM$W{hQQGZ<913aONeq9{sJK&Zl$kCzK3s?F
zPdgG~(R2g$rL~xThF7NYaU1{2(W8r&`h|paUOGN~vDmC&X1|#T^t;jc__W}5muzo6
zCv$@% eh9!ZqJ3_BNy)SE|dsCj;jHYp-Jha2zfr7SwbF$Yh`SR*<4Ajp|sI<2KN`
zT7|xriA4z`ZR4nsnJt^=BKqd_vWLbv-?4
(VInFY
z1p16f5TDOypAoLadPVANcdS@dwfF8@U-QX`_Af+c-|IZBD{^P7^;)Z{_VX0lF|axZ
z-l^}j=|;%ouGP}ct#%AuU#em}^L|;3Y*o