diff --git a/apps/web/package.json b/apps/web/package.json index 44a07dd0b..31e8657e3 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -51,6 +51,7 @@ "highlight.js": "^11.11.1", "html-to-image": "^1.11.13", "isomorphic-dompurify": "^2.31.0", + "jszip": "^3.10.1", "juice": "^11.0.3", "lucide-vue-next": "^0.552.0", "marked": "^16.4.1", @@ -83,6 +84,7 @@ "@tailwindcss/vite": "^4.1.16", "@types/buffer-from": "^1.1.3", "@types/crypto-js": "^4.2.2", + "@types/jszip": "^3.4.1", "@types/mdast": "^4.0.4", "@types/unist": "^3.0.3", "@vitejs/plugin-vue": "^6.0.1", diff --git a/apps/web/src/components/editor/post-slider/PostItem.vue b/apps/web/src/components/editor/post-slider/PostItem.vue index bb463cb7f..53a818a89 100644 --- a/apps/web/src/components/editor/post-slider/PostItem.vue +++ b/apps/web/src/components/editor/post-slider/PostItem.vue @@ -48,6 +48,16 @@ const props = defineProps<{ handleDragEnd: () => void // 以添加子文章的方式打开对话框 openAddPostDialog: (parentId: string) => void + // 打开多选导出对话框 + isOpenMultipleMode: boolean + // 选中的文章 ID 集合 + selectedPosts: Set + // 切换文章选中状态 + togglePostSelection: (postId: string) => void + // 如果多选模式未开启,则开启它 + openMultipleModeIfClosed: () => void + // 如果没有选中任何文章,则关闭多选模式 + closeMultipleModeIfNoSelection: () => void }>() const postStore = usePostStore() @@ -85,11 +95,13 @@ function isHasChild(postId: string) {