revert(module-management): 撤回表单设计「缺 N」徽标(阶段二)

并非所有启用字段都应出现在表单里(审计字段等常有意不布局),
「缺 N」口径对表单设计是假警报。revert 6bfa0d81,计划文档记录决策。
阶段一(tab 脏点)保留;查询配置的「缺 N」为使用者既有实现,不动。
This commit is contained in:
oneao committed 2026-08-30 20:23:04 +08:00
1 parent 2ab502b4a5
commit 08646c547f
4 files changed
+6 -50

No files matched your search

@@ -38,7 +38,11 @@ const SECTION_KEYS = ['module', 'fields', 'groups', 'listConfig', 'editConfig',
验收:任一 tab 内容修改 → 对应 tab 出现圆点;保存成功或放弃修改 → 全部消失;切换未保存保护、重载确认行为与改造前一致。
### 阶段二:表单设计「缺 N」徽标
### 阶段二:表单设计「缺 N」徽标(已实现后撤回)
> 实现于 commit 6bfa0d81,使用者试用后撤回:并非所有启用字段都应出现在表单里
> (审计字段等常有意不布局),「缺 N」是假警报。查询配置的「缺 N」徽标
> 为使用者自己的既有实现,保留。以下原始设计保留作记录,勿再实现。
数据模块下统计「启用字段中未被 `editConfig` 任何行的 `b_field_id` 引用的数量」,作为表单设计 tab 的徽标,样式与语义沿用查询配置的「缺 N」。
@@ -387,9 +387,6 @@ export function useModuleConfig(deps) {
const missingListCount = missingConfigCount('listConfig')
const missingQueryCount = missingConfigCount('queryConfig')
// 表单设计缺配:启用字段未被 editConfig 任何行引用(b_field_id 口径,
// 不涉及布局细节)。editConfig 同时承载主表表单/子表表格两种编辑方式,口径通用
const missingEditCount = missingConfigCount('editConfig')
return {
hasModuleChanges,
@@ -401,7 +398,6 @@ export function useModuleConfig(deps) {
syncFields,
missingListCount,
missingQueryCount,
missingEditCount,
fillMissingConfigs,
}
}
@@ -143,13 +143,7 @@ const configGroups = computed(() => {
// 界面配置:表单设计(数据模块,含主表表单/子表表格两种编辑方式)→ 列表配置 → 查询配置
const uiItems = []
if (isDataModule.value) {
// 表单设计缺配徽标:启用字段未布局的数量(口径与查询「缺 N」一致)
uiItems.push({
key: 'edit',
label: '表单设计',
icon: Pencil,
badge: missingEditCount.value ? `缺 ${missingEditCount.value}` : '',
})
uiItems.push({ key: 'edit', label: '表单设计', icon: Pencil })
}
// 列表配置行在加载时自动补全全部启用字段,无「缺失」概念,不带徽标
uiItems.push({ key: 'list', label: '列表配置', icon: List })
@@ -324,7 +318,6 @@ const {
syncFields,
dirtySections,
missingQueryCount,
missingEditCount,
fillMissingConfigs,
} = useModuleConfig({
moduleSelectedId,
@@ -136,40 +136,3 @@ describe('useModuleConfig 脏检查', () => {
expect(api.hasModuleChanges.value).toBe(false)
})
})
describe('useModuleConfig 缺配统计(表单设计徽标)', () => {
function configWith(fields, editConfig) {
return { module: { b_id: '1', b_module_type: 'data' }, fields, groups: [], listConfig: [], editConfig, queryConfig: [], autoCode: [], powers: [] }
}
it('启用字段未被 editConfig 引用即计入缺配', () => {
const fields = [
{ b_id: '10', b_field: 'a', b_canuse: 1 },
{ b_id: '11', b_field: 'b', b_canuse: 1 },
]
const editConfig = [{ b_id: 'e1', b_field_id: '10' }]
const { missingEditCount } = setup({ drafts: configWith(fields, editConfig), originals: configWith(fields, editConfig) })
expect(missingEditCount.value).toBe(1)
})
it('停用字段不计入缺配', () => {
const fields = [
{ b_id: '10', b_field: 'a', b_canuse: 1 },
{ b_id: '11', b_field: 'b', b_canuse: 0 },
]
const { missingEditCount } = setup({ drafts: configWith(fields, []), originals: configWith(fields, []) })
expect(missingEditCount.value).toBe(1)
})
it('b_field_id 与 b_id 类型不一致(数字/字符串)仍按字符串比较', () => {
const fields = [{ b_id: 10, b_field: 'a', b_canuse: 1 }]
const editConfig = [{ b_id: 'e1', b_field_id: '10' }]
const { missingEditCount } = setup({ drafts: configWith(fields, editConfig), originals: configWith(fields, editConfig) })
expect(missingEditCount.value).toBe(0)
})
it('无字段时缺配为 0(新建模块空态不显示徽标)', () => {
const { missingEditCount } = setup({ drafts: configWith([], []), originals: configWith([], []) })
expect(missingEditCount.value).toBe(0)
})
})