From cbb7582bba56504d9b9aa6790eb69378bf0fdd1b Mon Sep 17 00:00:00 2001 From: Yumiue <229866007@qq.com> Date: Sat, 20 Jun 2026 15:42:42 +0800 Subject: [PATCH 1/5] =?UTF-8?q?feat(knowledge):=20v3.3=20=E7=9F=A5?= =?UTF-8?q?=E8=AF=86=E5=B7=A5=E4=BD=9C=E7=A9=BA=E9=97=B4=20UI=20=E9=87=8D?= =?UTF-8?q?=E6=9E=84=E4=B8=8E=E6=96=87=E6=A1=A3=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 重构知识组件:拆分为 ProjectBrowser/ProjectWorkspace/KnowledgeNotesPanel/ KnowledgeBoardPanel/KnowledgeTasksPanel,新增 BreadcrumbNav/MarkdownPreview/ BacklinksPanel/BoardTaskCard/ProjectCard/QuickCreateBar/ThemeToggle - 删除旧版 BoardCard/BoardPane/KnowledgeTopbar/NoteList/NotePreview/NotesPane/ ProjectSidebar/TasksPane - 设置页知识库区接入可配置根目录选择器(knowledgeRootPath) - 更新 tauri 能力与依赖配置 - 同步更新 ARCHITECTURE/API/PRD/TESTING/GLOSSARY/TODO_INVENTORY/具体能力构思 文档 --- apps/desktop/package.json | 1 + apps/desktop/src-tauri/Cargo.toml | 1 + .../src-tauri/capabilities/default.json | 1 + apps/desktop/src-tauri/src/lib.rs | 1 + apps/desktop/src/App.vue | 9 +- .../components/knowledge/BacklinksPanel.vue | 53 + .../src/components/knowledge/BoardCard.vue | 24 - .../src/components/knowledge/BoardColumn.vue | 159 ++- .../src/components/knowledge/BoardPane.vue | 27 - .../components/knowledge/BoardTaskCard.vue | 56 + .../components/knowledge/BreadcrumbNav.vue | 37 + .../knowledge/KnowledgeBoardPanel.vue | 68 + .../knowledge/KnowledgeNotesPanel.vue | 153 +++ .../knowledge/KnowledgeTasksPanel.vue | 95 ++ .../components/knowledge/KnowledgeTopbar.vue | 62 - .../components/knowledge/MarkdownPreview.vue | 75 ++ .../src/components/knowledge/NoteList.vue | 32 - .../src/components/knowledge/NotePreview.vue | 52 - .../src/components/knowledge/NotesPane.vue | 27 - .../components/knowledge/ProjectBrowser.vue | 53 + .../src/components/knowledge/ProjectCard.vue | 89 ++ .../components/knowledge/ProjectSidebar.vue | 51 - .../components/knowledge/ProjectWorkspace.vue | 106 ++ .../components/knowledge/QuickCreateBar.vue | 73 ++ .../src/components/knowledge/TasksPane.vue | 37 - .../src/components/knowledge/ThemeToggle.vue | 46 + .../settings/sections/KnowledgeSection.vue | 47 +- apps/desktop/src/composables/useSettings.ts | 20 +- apps/desktop/src/composables/useTheme.ts | 60 + apps/desktop/src/styles/knowledge.css | 1142 ++++++++++++----- apps/desktop/src/styles/settings.css | 16 + apps/desktop/src/views/SettingsView.vue | 8 +- docs/API.md | 3 +- docs/ARCHITECTURE.md | 26 +- docs/GLOSSARY.md | 3 + docs/PRD_overview.md | 8 +- docs/TESTING.md | 32 + docs/TODO_INVENTORY.md | 16 +- ...75\345\212\233\346\236\204\346\200\235.md" | 12 +- pnpm-lock.yaml | 10 + 40 files changed, 2128 insertions(+), 663 deletions(-) create mode 100644 apps/desktop/src/components/knowledge/BacklinksPanel.vue delete mode 100644 apps/desktop/src/components/knowledge/BoardCard.vue delete mode 100644 apps/desktop/src/components/knowledge/BoardPane.vue create mode 100644 apps/desktop/src/components/knowledge/BoardTaskCard.vue create mode 100644 apps/desktop/src/components/knowledge/BreadcrumbNav.vue create mode 100644 apps/desktop/src/components/knowledge/KnowledgeBoardPanel.vue create mode 100644 apps/desktop/src/components/knowledge/KnowledgeNotesPanel.vue create mode 100644 apps/desktop/src/components/knowledge/KnowledgeTasksPanel.vue delete mode 100644 apps/desktop/src/components/knowledge/KnowledgeTopbar.vue create mode 100644 apps/desktop/src/components/knowledge/MarkdownPreview.vue delete mode 100644 apps/desktop/src/components/knowledge/NoteList.vue delete mode 100644 apps/desktop/src/components/knowledge/NotePreview.vue delete mode 100644 apps/desktop/src/components/knowledge/NotesPane.vue create mode 100644 apps/desktop/src/components/knowledge/ProjectBrowser.vue create mode 100644 apps/desktop/src/components/knowledge/ProjectCard.vue delete mode 100644 apps/desktop/src/components/knowledge/ProjectSidebar.vue create mode 100644 apps/desktop/src/components/knowledge/ProjectWorkspace.vue create mode 100644 apps/desktop/src/components/knowledge/QuickCreateBar.vue delete mode 100644 apps/desktop/src/components/knowledge/TasksPane.vue create mode 100644 apps/desktop/src/components/knowledge/ThemeToggle.vue create mode 100644 apps/desktop/src/composables/useTheme.ts diff --git a/apps/desktop/package.json b/apps/desktop/package.json index a2158fc..d857e75 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -13,6 +13,7 @@ "dependencies": { "@neo-companion/shared": "workspace:*", "@tauri-apps/api": "^2.9.0", + "@tauri-apps/plugin-dialog": "^2.2.0", "@tiptap/core": "3.26.0", "@tiptap/extension-heading": "3.26.0", "@tiptap/extension-list": "3.26.0", diff --git a/apps/desktop/src-tauri/Cargo.toml b/apps/desktop/src-tauri/Cargo.toml index d0e7c53..d54f36d 100644 --- a/apps/desktop/src-tauri/Cargo.toml +++ b/apps/desktop/src-tauri/Cargo.toml @@ -15,6 +15,7 @@ tauri-build = { version = "2", features = [] } [dependencies] tauri = { version = "2", features = ["tray-icon"] } tauri-plugin-opener = "2" +tauri-plugin-dialog = "2" tauri-plugin-window-state = "2" serde = { version = "1", features = ["derive"] } serde_json = "1" diff --git a/apps/desktop/src-tauri/capabilities/default.json b/apps/desktop/src-tauri/capabilities/default.json index f76d964..18538a6 100644 --- a/apps/desktop/src-tauri/capabilities/default.json +++ b/apps/desktop/src-tauri/capabilities/default.json @@ -13,6 +13,7 @@ "core:window:allow-show", "core:window:allow-start-dragging", "opener:default", + "dialog:default", "window-state:default" ] } diff --git a/apps/desktop/src-tauri/src/lib.rs b/apps/desktop/src-tauri/src/lib.rs index adb99d8..482f326 100644 --- a/apps/desktop/src-tauri/src/lib.rs +++ b/apps/desktop/src-tauri/src/lib.rs @@ -5,6 +5,7 @@ use tauri::{LogicalSize, Manager, Size, WindowEvent}; pub fn run() { let builder = tauri::Builder::default() .plugin(tauri_plugin_opener::init()) + .plugin(tauri_plugin_dialog::init()) .plugin(tauri_plugin_window_state::Builder::default().build()); #[cfg(target_os = "windows")] diff --git a/apps/desktop/src/App.vue b/apps/desktop/src/App.vue index ed65e78..0f231f2 100644 --- a/apps/desktop/src/App.vue +++ b/apps/desktop/src/App.vue @@ -35,6 +35,7 @@ import WallpaperView from "./views/WallpaperView.vue"; import SettingsView from "./views/SettingsView.vue"; import KnowledgeView from "./views/KnowledgeView.vue"; import { useSettings } from "./composables/useSettings"; +import { useTheme } from "./composables/useTheme"; const viewMode = new URLSearchParams(window.location.search).get("view"); const isPetView = viewMode === "pet"; @@ -67,7 +68,7 @@ const weather = ref(null); const lastWindow = ref(null); const serverReady = ref(false); const errorText = ref(""); -const isPanelDark = ref(false); +const theme = useTheme(); const activePanelPage = ref("focus"); const wallpaperVisible = ref(true); const focusStartTime = ref(""); @@ -240,7 +241,7 @@ function onTaskToggle(task: typeof tasks.tasks.value[0]) { } function togglePanelTheme() { - isPanelDark.value = !isPanelDark.value; + theme.toggleTheme(); } function setActivePanelPage(pageId: string) { @@ -305,7 +306,7 @@ function toggleImmersive() { -
+
@@ -317,7 +318,7 @@ function toggleImmersive() { diff --git a/apps/desktop/src/components/knowledge/BacklinksPanel.vue b/apps/desktop/src/components/knowledge/BacklinksPanel.vue new file mode 100644 index 0000000..bb0b1e0 --- /dev/null +++ b/apps/desktop/src/components/knowledge/BacklinksPanel.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/apps/desktop/src/components/knowledge/BoardCard.vue b/apps/desktop/src/components/knowledge/BoardCard.vue deleted file mode 100644 index 58ec4f2..0000000 --- a/apps/desktop/src/components/knowledge/BoardCard.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - diff --git a/apps/desktop/src/components/knowledge/BoardColumn.vue b/apps/desktop/src/components/knowledge/BoardColumn.vue index 225a0a1..460107b 100644 --- a/apps/desktop/src/components/knowledge/BoardColumn.vue +++ b/apps/desktop/src/components/knowledge/BoardColumn.vue @@ -1,22 +1,159 @@ diff --git a/apps/desktop/src/components/knowledge/BoardPane.vue b/apps/desktop/src/components/knowledge/BoardPane.vue deleted file mode 100644 index d381c35..0000000 --- a/apps/desktop/src/components/knowledge/BoardPane.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - diff --git a/apps/desktop/src/components/knowledge/BoardTaskCard.vue b/apps/desktop/src/components/knowledge/BoardTaskCard.vue new file mode 100644 index 0000000..75d6808 --- /dev/null +++ b/apps/desktop/src/components/knowledge/BoardTaskCard.vue @@ -0,0 +1,56 @@ + + + diff --git a/apps/desktop/src/components/knowledge/BreadcrumbNav.vue b/apps/desktop/src/components/knowledge/BreadcrumbNav.vue new file mode 100644 index 0000000..9f82e8d --- /dev/null +++ b/apps/desktop/src/components/knowledge/BreadcrumbNav.vue @@ -0,0 +1,37 @@ + + + diff --git a/apps/desktop/src/components/knowledge/KnowledgeBoardPanel.vue b/apps/desktop/src/components/knowledge/KnowledgeBoardPanel.vue new file mode 100644 index 0000000..1f1388a --- /dev/null +++ b/apps/desktop/src/components/knowledge/KnowledgeBoardPanel.vue @@ -0,0 +1,68 @@ + + + diff --git a/apps/desktop/src/components/knowledge/KnowledgeNotesPanel.vue b/apps/desktop/src/components/knowledge/KnowledgeNotesPanel.vue new file mode 100644 index 0000000..7410582 --- /dev/null +++ b/apps/desktop/src/components/knowledge/KnowledgeNotesPanel.vue @@ -0,0 +1,153 @@ + + + diff --git a/apps/desktop/src/components/knowledge/KnowledgeTasksPanel.vue b/apps/desktop/src/components/knowledge/KnowledgeTasksPanel.vue new file mode 100644 index 0000000..7bd4660 --- /dev/null +++ b/apps/desktop/src/components/knowledge/KnowledgeTasksPanel.vue @@ -0,0 +1,95 @@ + + + diff --git a/apps/desktop/src/components/knowledge/KnowledgeTopbar.vue b/apps/desktop/src/components/knowledge/KnowledgeTopbar.vue deleted file mode 100644 index b7f0c98..0000000 --- a/apps/desktop/src/components/knowledge/KnowledgeTopbar.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - diff --git a/apps/desktop/src/components/knowledge/MarkdownPreview.vue b/apps/desktop/src/components/knowledge/MarkdownPreview.vue new file mode 100644 index 0000000..f047d50 --- /dev/null +++ b/apps/desktop/src/components/knowledge/MarkdownPreview.vue @@ -0,0 +1,75 @@ + + + diff --git a/apps/desktop/src/components/knowledge/NoteList.vue b/apps/desktop/src/components/knowledge/NoteList.vue deleted file mode 100644 index 5db9125..0000000 --- a/apps/desktop/src/components/knowledge/NoteList.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/apps/desktop/src/components/knowledge/NotePreview.vue b/apps/desktop/src/components/knowledge/NotePreview.vue deleted file mode 100644 index ee3018d..0000000 --- a/apps/desktop/src/components/knowledge/NotePreview.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - diff --git a/apps/desktop/src/components/knowledge/NotesPane.vue b/apps/desktop/src/components/knowledge/NotesPane.vue deleted file mode 100644 index aac5790..0000000 --- a/apps/desktop/src/components/knowledge/NotesPane.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - diff --git a/apps/desktop/src/components/knowledge/ProjectBrowser.vue b/apps/desktop/src/components/knowledge/ProjectBrowser.vue new file mode 100644 index 0000000..e9635ad --- /dev/null +++ b/apps/desktop/src/components/knowledge/ProjectBrowser.vue @@ -0,0 +1,53 @@ + + + diff --git a/apps/desktop/src/components/knowledge/ProjectCard.vue b/apps/desktop/src/components/knowledge/ProjectCard.vue new file mode 100644 index 0000000..833347c --- /dev/null +++ b/apps/desktop/src/components/knowledge/ProjectCard.vue @@ -0,0 +1,89 @@ + + + diff --git a/apps/desktop/src/components/knowledge/ProjectSidebar.vue b/apps/desktop/src/components/knowledge/ProjectSidebar.vue deleted file mode 100644 index e421c87..0000000 --- a/apps/desktop/src/components/knowledge/ProjectSidebar.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - diff --git a/apps/desktop/src/components/knowledge/ProjectWorkspace.vue b/apps/desktop/src/components/knowledge/ProjectWorkspace.vue new file mode 100644 index 0000000..14c8115 --- /dev/null +++ b/apps/desktop/src/components/knowledge/ProjectWorkspace.vue @@ -0,0 +1,106 @@ + + + diff --git a/apps/desktop/src/components/knowledge/QuickCreateBar.vue b/apps/desktop/src/components/knowledge/QuickCreateBar.vue new file mode 100644 index 0000000..eb4cc87 --- /dev/null +++ b/apps/desktop/src/components/knowledge/QuickCreateBar.vue @@ -0,0 +1,73 @@ + + + diff --git a/apps/desktop/src/components/knowledge/TasksPane.vue b/apps/desktop/src/components/knowledge/TasksPane.vue deleted file mode 100644 index 3e5a3d9..0000000 --- a/apps/desktop/src/components/knowledge/TasksPane.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - diff --git a/apps/desktop/src/components/knowledge/ThemeToggle.vue b/apps/desktop/src/components/knowledge/ThemeToggle.vue new file mode 100644 index 0000000..d757b5f --- /dev/null +++ b/apps/desktop/src/components/knowledge/ThemeToggle.vue @@ -0,0 +1,46 @@ + + + diff --git a/apps/desktop/src/components/settings/sections/KnowledgeSection.vue b/apps/desktop/src/components/settings/sections/KnowledgeSection.vue index 29fcdf0..da75005 100644 --- a/apps/desktop/src/components/settings/sections/KnowledgeSection.vue +++ b/apps/desktop/src/components/settings/sections/KnowledgeSection.vue @@ -1,15 +1,17 @@