# 模块管理重构进度交接报告(截至当前工作区状态) ## 一、整体进度 | 阶段 | 状态 | 提交 | | -------------------------------------- | ---------------------- | ---------- | | 阶段一:useGroupTree 抽取 | ✅ 完成 | `158eb3c0` | | 阶段二:字段查询与共享纯函数 | ✅ 完成 | `27752351` | | 阶段三:index.vue 拆分 composables | ✅ 完成 | `91237c4a` | | R1 清场(删遗留文件、useConfirm 合回) | ✅ 完成 | `2dba8578` | | R2a 小文件 UI 归一 | ✅ 完成 | `ce3a9d87` | | R2b 表格面板 UI 归一 | ✅ 完成 | `8c506ae5` | | R2c 表单面板 UI 归一 | ✅ 完成 | `76b12cc5` | | **R3 阶段四:目录化拆分** | 🔄 **进行中(未提交)** | — | R3 是当前唯一未提交的工作,工作区全部改动都属于它。 ## 二、R3 当前进度(核心) ### ✅ 已完成:table-edit/ 完整拆分(测试全绿) 旧 `ModuleTableEditPanel.vue`(2614 行)**已删除**,拆为 6 个文件(均在 `components/table-edit/`): | 新文件 | 行数 | 内容 | | ------------------------------ | ---- | ------------------------------------------------------------ | | `TableEditPanel.vue` | 860 | 壳:状态、分组树推导、commitColDrag/commitBandDrag、结构树编排、快捷键 | | `TablePreview.vue` | 482 | 多级表头预览表 + mock 行 + 拖拽落点指示 | | `TableInspector.vue` | 416 | 列/分组带/空态三态属性面板 | | `useTablePreviewDrag.js` | 113 | 预览表拖拽(onPreviewDragStart/Over/Drop 等) | | `useColumnResize.js` | 66 | 列宽拖拽(pointer capture 三件套) | | `edit-panels/FieldLibrary.vue` | 212 | 共享字段库(native/sortable 双模式,两编辑器共用) | | `edit-panels/EditDataView.vue` | 75 | 共享数据视图(工具栏 + FmsTable) | - `index.vue` 已改为 `import ModuleTableEditPanel from './components/table-edit/TableEditPanel.vue'` - 测试 `tests/unit/module-table-edit-panel-dnd.spec.js` 的 import 已改为新路径(断言未动) - **验证结果:30/30 测试全绿**(dnd 14 例 + tree-external-drag 3 例 + utils 13 例);lint 总数 57 < 基线 58(**零新增告警**,还消掉 1 个) ### 🔄 进行中:form-edit/ 部分拆分(半成品,未验证编译、未接 index.vue) 旧 `ModuleFormEditPanel.vue`(3168 行)**仍在原位、未被引用改动**,index.vue 仍指向它。已新建 3 个文件: | 新文件 | 行数 | 状态 | | ----------------------------- | ---- | ------------------------------------------------------------ | | `form-edit/useFormGrid.js` | 95 | ✅ 完成:collectLineIndexes / rebalanceInsert / distributeLine / rebalanceRowByIds / sectionEndIndex / spanOf(纯逻辑) | | `form-edit/FormInspector.vue` | 350 | ✅ 完成:属性面板(占位符/栅格宽度/textarea 高度/4 开关),全部变更经 emits 转发 | | `form-edit/FormEditPanel.vue` | 2902 | 🔄 **半成品**:从 ModuleFormEditPanel.vue 复制改造的壳组件 | `form-edit/FormEditPanel.vue` 已完成的改造(lint 零告警): - ✅ imports:相对路径改为 `../../`,移除 PanelLeft/Right\* 图标、Switch、FmsTable;新增 `./useFormGrid`、`./FormInspector`、`../edit-panels/FieldLibrary`、`../edit-panels/EditDataView` - ✅ 删除本地重复定义:collectLineIndexes / rebalanceInsert / sectionEndIndex / distributeLine / rebalanceRowByIds / spanOf / TEXTAREA_HEIGHT_OPTIONS / isRowSelectedByField / libSearch / libraryFields / isFieldAdded(改为从 useFormGrid 导入或由 FieldLibrary 内部处理) - ✅ 模板替换:字段库 → ``;属性面板 → ``;数据视图 → `` - ✅ **注意**:toggleInspector / onColspanChange / onColspanInput / onHeightChange / onPlaceholderChange 已**重新加回壳组件**(FormInspector 只转发事件,写 localEdit 的处理器必须留在壳里)——接手的 AI 不要再删 ## 三、剩余工作(明确 todo) 1. **验证 form-edit/FormEditPanel.vue 能编译**(无测试覆盖表单面板,最稳妥是 `pnpm build` 或 vite 编译该组件;也可以先接 index.vue 后手工冒烟) 2. **接 index.vue**:`ModuleFormEditPanel` 的 import 改为 `./components/form-edit/FormEditPanel.vue` 3. **删除旧文件** `components/ModuleFormEditPanel.vue` 4. **清理壳组件死样式**(无害但冗余,仍在 FormEditPanel.vue 的 `