From 6a75c11dfa0492ba9aaff9f53fde526c9f846cab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BB=9D=E5=B0=98?= <237809796@qq.com> Date: Fri, 19 Jun 2026 03:44:16 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84:=20=E6=8B=86ToolCard.vue?= =?UTF-8?q?=E5=89=8D=E7=AB=AF(strategy=C2=B7composable=E6=8A=BD=E7=A6=BB)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新建 composables/ai/useToolCard.ts(502行): 纯函数/常量/类型/工具元数据/审批参数/结果格式化(formatToolResult/toolResultSummary/combineOutputs/parseResult等20+) - ToolCard.vue 1527→1066行(-461): script模块级块删+import composable, 模板/style零改动 - 留ToolCard.vue: 耦合projectStore的computed/审批watch(非纯函数) i18n等价: toolResultSummary原useI18n.t→composable i18n.global.t(单根同一实例) 主代兜底: vue-tsc --noEmit 0 + grep useToolCard抽离/ToolCard import印证 strategy: 单批1-2文件原子, 模板不变逻辑抽离 --- src/components/AiChat.vue | 6 + src/components/ToolCard.vue | 503 ++---------------------------- src/composables/ai/useToolCard.ts | 502 +++++++++++++++++++++++++++++ 3 files changed, 529 insertions(+), 482 deletions(-) create mode 100644 src/composables/ai/useToolCard.ts diff --git a/src/components/AiChat.vue b/src/components/AiChat.vue index fb6b689..5f7441a 100644 --- a/src/components/AiChat.vue +++ b/src/components/AiChat.vue @@ -2230,6 +2230,12 @@ onMounted(async () => { await store.loadProviders() await store.loadConversations() store.loadSkills() + // @ 提及预加载: AiChat 的 @ 联想读取 projectsStore.projects/tasks, + // 但 loadProjects/loadTasks 分别绑在 Projects.vue/Tasks.vue 的 onMounted。 + // 若用户启动后直接用 AI Chat(未访问过这两个页面), store 数据为空 → @ 无匹配。 + // 此处按需预加载(已加载则跳过), 不阻塞首屏(无 await, 后台执行)。 + if (!projectsStore.projects.length) void projectsStore.loadProjects() + if (!projectsStore.tasks.length) void projectsStore.loadTasks() // B-260616-12: 监听工具慢执行提示(useAiEvents 经 Tauri 事件总线广播;composable 无组件上下文, // 由本组件弹本地 toast。主窗口与分离窗口各挂一份 AiChat,各自消费,无重复——emit 单发, // 两窗口的 listener 各收一次但 msg 相同,toast 各自渲染互不干扰) diff --git a/src/components/ToolCard.vue b/src/components/ToolCard.vue index 52f4cb1..0b43794 100644 --- a/src/components/ToolCard.vue +++ b/src/components/ToolCard.vue @@ -191,416 +191,33 @@ - -