重构: 拆ToolCard.vue前端(strategy·composable抽离)
- 新建 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文件原子, 模板不变逻辑抽离
This commit is contained in:
@@ -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 各自渲染互不干扰)
|
||||
|
||||
Reference in New Issue
Block a user