158eb3c029dd187e894d6aabc50af6a07fb7afc4
- 新建 composables/useGroupTree.js:buildGroupTree/sortGroupNodesByXh/groupIdOfRow
纯函数导出 + useGroupTree(groupsRef, rowsRef) 返回 groupTree/groupNodeMap/
groupColumnsMap/bandMeta(统一含 maxLevel)/isDescendantGroup/groupIdOfRow
- ModuleTableEditPanel.vue:删除本地 7 份同体实现,改用 composable;
isDescendantOf 重命名为 isDescendantGroup(两处函数体逐字相同)
- structure-tree/ModuleStructureTree.vue:同样替换;删除「与面板 bandMeta 同源」注释
(复制关系已不成立);bandMeta 多出的 maxLevel 字段对其消费处无害
- ModuleTableEditPanel 中 watch(props.editConfig, …, { immediate: true }) 注册位置
保持不变,仍位于 bandMeta 等 computed 之后(避免 immediate 回调 TDZ)
行为不变;测试结果与基线一致(184 通过,2 个既有失败与本重构无关)
Languages
JavaScript
31.9%
Vue
31.8%
TypeScript
11.2%
Java
11%
CSS
7.1%
Other
7%