From 59bf78d4270546ff4ad70abca69ea2003618da0e Mon Sep 17 00:00:00 2001 From: superqtqt Date: Mon, 10 Nov 2025 18:40:19 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E5=AD=98=E5=82=A8=E9=85=8D=E7=BD=AE=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 DocumentStorageDialog 组件支持 WebDAV/COS 远程存储 - 实现项目配置(图床、主题、CSS等)的云端同步 - 支持文档和配置的上传/下载 - 修复配置从云端加载后未应用的问题 --- .../editor/DocumentStorageDialog.vue | 517 ++++++++++ .../editor/editor-header/FileDropdown.vue | 18 +- .../components/editor/editor-header/index.vue | 17 +- apps/web/src/stores/post.ts | 103 +- apps/web/src/utils/documentStorage.ts | 930 ++++++++++++++++++ apps/web/src/views/CodemirrorEditor.vue | 24 +- docs/document-storage.md | 203 ++++ 7 files changed, 1787 insertions(+), 25 deletions(-) create mode 100644 apps/web/src/components/editor/DocumentStorageDialog.vue create mode 100644 apps/web/src/utils/documentStorage.ts create mode 100644 docs/document-storage.md diff --git a/apps/web/src/components/editor/DocumentStorageDialog.vue b/apps/web/src/components/editor/DocumentStorageDialog.vue new file mode 100644 index 000000000..112abc984 --- /dev/null +++ b/apps/web/src/components/editor/DocumentStorageDialog.vue @@ -0,0 +1,517 @@ + + + diff --git a/apps/web/src/components/editor/editor-header/FileDropdown.vue b/apps/web/src/components/editor/editor-header/FileDropdown.vue index 6261376fc..e75cc929d 100644 --- a/apps/web/src/components/editor/editor-header/FileDropdown.vue +++ b/apps/web/src/components/editor/editor-header/FileDropdown.vue @@ -1,5 +1,5 @@ - - diff --git a/apps/web/src/components/ai/image-generator/AIImageGeneratorBtn.vue b/apps/web/src/components/ai/image-generator/AIImageGeneratorBtn.vue deleted file mode 100644 index b76e8f35d..000000000 --- a/apps/web/src/components/ai/image-generator/AIImageGeneratorBtn.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - diff --git a/apps/web/src/components/ai/image-generator/AIImageGeneratorPanel.vue b/apps/web/src/components/ai/image-generator/AIImageGeneratorPanel.vue index 817a9885c..a33fec869 100644 --- a/apps/web/src/components/ai/image-generator/AIImageGeneratorPanel.vue +++ b/apps/web/src/components/ai/image-generator/AIImageGeneratorPanel.vue @@ -22,8 +22,8 @@ import { Textarea } from '@/components/ui/textarea' import useAIImageConfigStore from '@/stores/aiImageConfig' import { useEditorStore } from '@/stores/editor' import { useUIStore } from '@/stores/ui' -import { store } from '@/utils' import { copyPlain } from '@/utils/clipboard' +import { store } from '@/utils/storage' import AIImageConfig from './AIImageConfig.vue' /* ---------- 组件属性 ---------- */ diff --git a/apps/web/src/components/ai/image-generator/index.ts b/apps/web/src/components/ai/image-generator/index.ts index ddb2f5549..3f90c7603 100644 --- a/apps/web/src/components/ai/image-generator/index.ts +++ b/apps/web/src/components/ai/image-generator/index.ts @@ -1,3 +1,2 @@ export { default as AIImageConfig } from './AIImageConfig.vue' -export { default as AIImageGeneratorBtn } from './AIImageGeneratorBtn.vue' export { default as AIImageGeneratorPanel } from './AIImageGeneratorPanel.vue' diff --git a/apps/web/src/components/ai/tool-box/ToolBoxButton.vue b/apps/web/src/components/ai/tool-box/ToolBoxButton.vue deleted file mode 100644 index eb46233c7..000000000 --- a/apps/web/src/components/ai/tool-box/ToolBoxButton.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - - diff --git a/apps/web/src/components/ai/tool-box/ToolBoxPopover.vue b/apps/web/src/components/ai/tool-box/ToolBoxPopover.vue index ff40ab058..bc53c4beb 100644 --- a/apps/web/src/components/ai/tool-box/ToolBoxPopover.vue +++ b/apps/web/src/components/ai/tool-box/ToolBoxPopover.vue @@ -284,10 +284,10 @@ defineExpose({ dialogVisible, runAIAction, replaceText, show, close, stopAI })