From 2ab502b4a58cd0ecbd5ac89875583c17f778b3a3 Mon Sep 17 00:00:00 2001 From: oneao Date: Sun, 30 Aug 2026 20:16:14 +0800 Subject: [PATCH] =?UTF-8?q?revert(module-management):=20=E6=92=A4=E5=9B=9E?= =?UTF-8?q?=E6=A6=82=E8=A7=88=E9=85=8D=E7=BD=AE=E5=AE=8C=E6=88=90=E5=BA=A6?= =?UTF-8?q?=20checklist=EF=BC=88=E9=98=B6=E6=AE=B5=E4=B8=89=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 使用者试用后决定不要:清单信息与 tab 徽标(脏点/缺 N)重复,且占据概览篇幅。 revert 29f98494(组件、spec、index.vue 接线全部移除),计划文档记录该决策。 阶段一(脏点)与阶段二(表单设计缺 N 徽标)保留。 --- .../docs/module-management-tab-status-plan.md | 6 +- .../components/ModuleOverviewChecklist.vue | 173 ------------------ .../views/system/module-management/index.vue | 23 --- .../unit/module-overview-checklist.spec.js | 77 -------- 4 files changed, 5 insertions(+), 274 deletions(-) delete mode 100644 code/fms/fms-vue/src/views/system/module-management/components/ModuleOverviewChecklist.vue delete mode 100644 code/fms/fms-vue/tests/unit/module-overview-checklist.spec.js diff --git a/code/fms/fms-vue/docs/module-management-tab-status-plan.md b/code/fms/fms-vue/docs/module-management-tab-status-plan.md index 14bfdc4d..b6b3d045 100644 --- a/code/fms/fms-vue/docs/module-management-tab-status-plan.md +++ b/code/fms/fms-vue/docs/module-management-tab-status-plan.md @@ -48,7 +48,11 @@ const SECTION_KEYS = ['module', 'fields', 'groups', 'listConfig', 'editConfig', 验收:字段定义新增启用字段 → 表单设计 tab 显示「缺 1」;拖入画布后徽标消失;子表表格编辑方式下口径同样成立。 -### 阶段三:概览 tab 升级为完成度 checklist +### 阶段三:概览 tab 升级为完成度 checklist(已实现后撤回) + +> 实现于 commit 29f98494,使用者试用后决定不要(信息与 tab 徽标重复、占概览篇幅), +> 已 revert 撤回。条目跳转与一键补充的能力需求仍由阶段一/二的 tab 徽标 + +> 查询面板内既有「一键补充」覆盖。以下原始设计保留作记录,勿再实现。 在概览 tab(basic)内增加「配置完成度」区块,新组件 `components/ModuleOverviewChecklist.vue`,数据全部由 `drafts` 派生: diff --git a/code/fms/fms-vue/src/views/system/module-management/components/ModuleOverviewChecklist.vue b/code/fms/fms-vue/src/views/system/module-management/components/ModuleOverviewChecklist.vue deleted file mode 100644 index e62d436c..00000000 --- a/code/fms/fms-vue/src/views/system/module-management/components/ModuleOverviewChecklist.vue +++ /dev/null @@ -1,173 +0,0 @@ - - - - - diff --git a/code/fms/fms-vue/src/views/system/module-management/index.vue b/code/fms/fms-vue/src/views/system/module-management/index.vue index c9046c97..c8fa8bed 100644 --- a/code/fms/fms-vue/src/views/system/module-management/index.vue +++ b/code/fms/fms-vue/src/views/system/module-management/index.vue @@ -40,7 +40,6 @@ import { useModuleTree, findModuleNode } from './composables/useModuleTree' import { useModuleConfig } from './composables/useModuleConfig' import { useModuleSave } from './composables/useModuleSave' import ModuleBasicPanel from './components/ModuleBasicPanel.vue' -import ModuleOverviewChecklist from './components/ModuleOverviewChecklist.vue' import ModuleFieldsPanel from './components/ModuleFieldsPanel.vue' import ModuleListConfigPanel from './components/ModuleListConfigPanel.vue' import ModuleFormEditPanel from './components/form-edit/FormEditPanel.vue' @@ -216,16 +215,6 @@ const dirtyTabKeys = computed(() => { return keys }) -/* 概览 checklist 统计(由 drafts 派生):字段/列表/权限计数,表单与查询缺配复用 - useModuleConfig 的 missingEditCount / missingQueryCount */ -const fieldsEnabledCount = computed( - () => (drafts.value?.fields || []).filter((field) => Number(field.b_canuse) === 1).length, -) -const listVisibleCount = computed( - () => (drafts.value?.listConfig || []).filter((row) => Number(row.b_visible) === 1).length, -) -const powersCount = computed(() => (drafts.value?.powers || []).length) - /* ================= composables ================= */ const { saveModule } = useModuleSave({ selectedModule, @@ -502,18 +491,6 @@ loadModuleTree()
- - item.text().includes(label)) -} - -describe('ModuleOverviewChecklist', () => { - it('data 模块渲染全部条目,按依赖顺序排列', () => { - const wrapper = mountList({}) - const labels = wrapper.findAll('.mm-checklist__label').map((el) => el.text()) - expect(labels).toEqual(['字段定义', '表单设计', '列表配置', '查询配置', '权限']) - }) - - it('query 模块不渲染表单设计条目', () => { - const wrapper = mountList({ moduleType: 'query' }) - const labels = wrapper.findAll('.mm-checklist__label').map((el) => el.text()) - expect(labels).toEqual(['字段定义', '列表配置', '查询配置', '权限']) - }) - - it('缺配状态以文案表达:表单缺 N、查询缺 N 且提供一键补充', () => { - const wrapper = mountList({ editMissingCount: 2, queryMissingCount: 3 }) - expect(rowOf(wrapper, '表单设计').text()).toContain('缺 2 项未布局') - const queryRow = rowOf(wrapper, '查询配置') - expect(queryRow.text()).toContain('缺 3 项') - expect(queryRow.find('button').exists()).toBe(true) - }) - - it('完整状态文案与无补充按钮', () => { - const wrapper = mountList({}) - expect(rowOf(wrapper, '表单设计').text()).toContain('均已布局') - expect(rowOf(wrapper, '查询配置').text()).toContain('完整') - expect(wrapper.find('button').exists()).toBe(false) - }) - - it('空态提示:无启用字段时引导先定义字段', () => { - const wrapper = mountList({ fieldsEnabledCount: 0, editMissingCount: 0, listVisibleCount: 0, powersCount: 0 }) - expect(rowOf(wrapper, '字段定义').text()).toContain('先去定义字段') - expect(rowOf(wrapper, '列表配置').text()).toContain('暂无可见列') - expect(rowOf(wrapper, '权限').text()).toContain('尚未配置权限') - }) - - it('条目点击与 Enter 均触发 navigate,携带对应分节 key', async () => { - const wrapper = mountList({}) - await rowOf(wrapper, '字段定义').trigger('click') - await rowOf(wrapper, '查询配置').trigger('keydown', { key: 'Enter' }) - expect(wrapper.emitted('navigate')).toEqual([['fields'], ['query']]) - }) - - it('一键补充按钮触发 fill-missing 且不触发 navigate', async () => { - const wrapper = mountList({ queryMissingCount: 3 }) - await rowOf(wrapper, '查询配置').find('button').trigger('click') - expect(wrapper.emitted('fill-missing')).toHaveLength(1) - expect(wrapper.emitted('navigate')).toBeUndefined() - }) -})