修复: 项目详情批量(任务列表联动刷新/工作流降级标注/中文git乱码/子目录错误行内/零工程空态/切tab保活) + 依赖图批量(节点渲染register/环高亮/防环防重/点击选中) + 销账

This commit is contained in:
lxy
2026-08-09 21:35:13 +08:00
parent 4a9f77872e
commit 4df91ed155
15 changed files with 402 additions and 77 deletions
+12 -11
View File
@@ -587,22 +587,23 @@ graph TD
> 用户要求「检查项目详情(概览、文件、依赖图)存在的问题」并「先检查做记录,不直接改」。详单见 [项目详情页走查-2026-08-09.md](./05-代码审查/项目详情页走查-2026-08-09.md)。共 **60 项**P0×1 / P1×6 / P2×14 / P3×27)。守 session-role-diagnose-only:仅走查登记,未实施代码。
**P0(核心不可用)**:
- [ ] **PD-P0-1**依赖图节点 Vue 组件未注册到 x6-vue-shape → **节点根本不渲染**(DependencyGraph.vue:82 只 import 未 register,`component` 字段库内不读;ModuleNode props.data 但 vue-shape 传 {node,graph})
- [x] **PD-P0-1**✅ 已修(2026-08-09 e6760e8):DependencyGraph 调 `register({shape:'vue-shape',component:ModuleNode})` + ModuleNode `props.node?.getData?.()` 双兜底(vue-shape 传 {node,graph} 非 data,主代核 x6 源码确认)
**P1(数据正确性/一致性·6 项)**:
- [ ] **PD-P1-1**中文文件名 git status 八进制转义未还原(core.quotepath 默认)→ 变更视图乱码/打不开/树无徽标(module.rs:1081-1091)
- [ ] **PD-P1-2**删除参与依赖的工程必失败(FK 约束无级联清理)→ remove_project_module 报错+前端误导(module.rs:249-260)
- [ ] **PD-P1-3**工作流日志/DAG/进度读全局 liveEvents 无项目隔离 → 跨项目数据错配(ProjectDetail.vue:676-709)
- [ ] **PD-P1-4** — projectTasks df-data-changed 本地监听 → AI/其它视图改任务后概览列表陈旧(TaskDetail 已做此处漏做,:534-542)
- [ ] **PD-P1-5**AI 写文件后自动切变更视图不刷新 GitChanges + 徽标计数清零(v-show 不重挂载,:399-411)
- [ ] **PD-P1-6**子目录展开失败把父级整棵树替换为错误态且无法自愈(FileTree:157-181)
- [x] **PD-P1-1**✅ 已修(a9cb802):module.rs git status `-c core.quotepath=false` 一行根治中文乱码
- [x] **PD-P1-2**✅ 已修(e6760e8):remove_project_module 删工程前级联清 module_dependencies(FK 约束)
- [~] **PD-P1-3**🟡 已降级标注(2026-08-09 a9cb802):WorkflowEventPayload 无 project 维度无法按项目过滤 → 实时进度面板默认隐藏(wfProgressEnabled)+ 日志默认折叠+「全局事件」标注,不改事件协议(跨层大改留设计)
- [x] **PD-P1-4**✅ 已修(a9cb802):projectTasks df-data-changed 本地监听(entity=task,200ms 防抖,overview 活跃才刷)
- [x] **PD-P1-5**✅ 已修(a9cb802):df-data-changed 写文件后重拉 gitStatus + GitChanges refreshKey prop(修徽标清零+不刷新)
- [x] **PD-P1-6**✅ 已修(a9cb802):FileTree toggleDir 错误改行内态(toggleErrors 按 path),不炸整树
**P2(体验/打磨·14 项)**:
- [ ] **PD-P2-1** 概览工程列表与 FileExplorer 双向不同步(:548-555) / **PD-P2-2** 快速切项目列表竞态(无 seq 守卫,:866-871) / **PD-P2-3** DAG 边条件编辑 emit 父级未监听→失效回退 / **PD-P2-4** onUnmounted stopEventListener 停全局监听波及他视图 / **PD-P2-5** 折叠态跨项目残留
- [ ] **PD-P2-6** 概览任务无 loading/分页 / **PD-P2-7** 项目状态 in_progress/testing 无 i18n / **PD-P2-8** 环高亮 attrs.body 选择器 vue-shape 无 body 元素(UX-P0-4 未真正修) / **PD-P2-9** 节点点击 emit 无人监听+路由重复导航(死代码) / **PD-P2-10** 零工程文件 tab 永久转圈无空态
- [ ] **PD-P2-11** 打开文件 tab 全量 git status+log 扫描(纯浏览也扫) / **PD-P2-12** 切 tab v-if 反复销毁重建 FileExplorer(状态全丢+重复扫描) / **PD-P2-13** cycleNodes 跨数据变更不重置 / **PD-P2-14** 重复依赖可重复添加(前后端无去重)
- [x] **PD-P2-1** ✅ 已修(a9cb802):watch(activeTab) 切回 overview 重拉 modules / **PD-P2-2** ✅ 已修:loadProjectTasks/loadModules 加 seq 序号守卫 / **PD-P2-3** 🟡 DAG 边条件编辑父级未监听(a9cb802 概览进度面板默认隐藏,编辑入口随隐藏;TaskDetail 场景不受影响,待评估) / **PD-P2-4** 🟡 stopEventListener 波及他视图(共享单例,留设计) / **PD-P2-5** ✅ 已修:watch(projectId) 重置折叠态
- [x] **PD-P2-6** 🟡 概览任务无 loading/分页(未做,列表上限 500 通常够,待评估) / **PD-P2-7** ✅ 已修:constants/project.ts 补全 5 状态 + i18n / **PD-P2-8** ✅ 已修(e6760e8):环高亮改 isCycle 注入 data + ModuleNode 红框 / **PD-P2-9** ✅ 已修:节点点击改组件内 selectedId 选中高亮(移除死代码 emit+push) / **PD-P2-10** ✅ 已修(a9cb802):零工程空态引导 CTA
- [x] **PD-P2-11** 🟡 打开文件 tab 全量 git 扫描(后端 5s 缓存已缓解,懒加载留设计) / **PD-P2-12** ✅ 已修:FileExplorer/DependencyGraph 用 KeepAlive 保活(onActivated 守卫) / **PD-P2-13** ✅ 已修(e6760e8):loadModules 重置 cycleNodes / **PD-P2-14** ✅ 已修:前端禁用已存在组合 + 后端幂等
**P3(边缘/打磨·27 项)**: 见详单文档(概览 O10-18 / 文件 F13-24 / 依赖图 G14-18)
**P3(边缘/打磨·27 项)**: 见详单文档(概览 O10-18 / 文件 F13-24 / 依赖图 G14-18) — 部分已随批修(见下)
> 已随批修 P3O7 sourceScores clamp / O8 descCollapsible DOM 测量 / O9 handleSync 补模块+灵感 / O10 parseStack 缓存 / 依赖图 G10 防环文案 cycleAddError / G14 后端 from!=to 校验 / G16 省略号统一。其余待后续批。
> **优先级建议**:P0 G1 节点不渲染 → P1 F3 中文乱码 + G3 删依赖必失败 + O2 跨项目串数据 + O1 列表陈旧 + F1 变更不刷新 → P2 分批。
> **memory 指针**[[devflow-project-detail-walkthrough]]