refactor(module-management): 清理未使用的代码——解构、导出、返回槽、死 computed、死 CSS
- groupNodeMap 在 TableEditPanel/ModuleStructureTree 中解构却未使用 → 移除 - useGroupTree 返回对象中 groupTree/groupNodeMap 无消费者 → 移除 - FIELD_TYPE_LABELS 导出仅内部使用 → 去 export - sortGroupNodesByXh 导出仅内部使用 → 去 export - buildBreadcrumb + moduleBreadcrumb 完全死代码 → 删除 - useModuleTree 返回对象中未消费的 moduleTreeLoading/moduleKeyword/moduleExpandedKeys/deleteModule/moduleBreadcrumb → 移除 - useModuleSave 返回对象中未消费的 validateAutoCode/configSaving → 移除 - useModuleConfig 返回对象中未消费的 8 个成员 → 移除(仅保留 index.vue 解构的 5 个) - FormInspector 中 .mm-fdesign__stale-tag 死样式(预留样式,模板未使用) → 删除 - ModuleBasicPanel 中 .mm-basic__hint 死样式(模板未使用) → 删除 lint: 零新增告警(54w/3e 不变);test: 184/185 通过(唯一失败为既有 fms-table 判断)
This commit is contained in:
1 parent
fefdcb9ca8
commit
c2fee5a294
9 files changed
+6
-61
No files matched your search
@@ -272,15 +272,6 @@ function onI18nSaved(key) {
|
||||
}
|
||||
}
|
||||
|
||||
/* 编辑方式等字段的说明文字 */
|
||||
.mm-basic__hint {
|
||||
grid-column: 1 / -1;
|
||||
margin: -4px 0 8px;
|
||||
color: var(--fms-text-secondary);
|
||||
font-size: 12px;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.mm-basic__i18n-btn {
|
||||
flex: none;
|
||||
display: inline-flex;
|
||||
|
||||
-13
@@ -234,19 +234,6 @@ const TEXTAREA_HEIGHT_OPTIONS = [
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
/* 「源已移除」告警徽标:供后续若字段来源缺失时高亮使用(仅样式层) */
|
||||
.mm-fdesign__stale-tag {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
padding: 0 5px;
|
||||
border: 1px solid color-mix(in srgb, var(--fms-danger, #f5222d) 45%, transparent);
|
||||
border-radius: var(--fms-control-radius, 4px);
|
||||
background: color-mix(in srgb, var(--fms-danger, #f5222d) 10%, var(--fms-card));
|
||||
color: var(--fms-danger, #f5222d);
|
||||
font-size: 10px;
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
/* 折叠属性面板(覆盖 ui Button 默认尺寸) */
|
||||
.mm-fdesign__collapse.button {
|
||||
display: inline-flex;
|
||||
|
||||
+1
-1
@@ -59,7 +59,7 @@ const { fieldName, controlTypeLabel } = useFieldLookup(() => props.fields)
|
||||
|
||||
/* ================= 分组树构建 =================
|
||||
* 树构建与元信息推导见 composables/useGroupTree(面板与结构树共用)。 */
|
||||
const { groupNodeMap, groupColumnsMap, bandMeta, isDescendantGroup, groupIdOfRow } = useGroupTree(
|
||||
const { groupColumnsMap, bandMeta, isDescendantGroup, groupIdOfRow } = useGroupTree(
|
||||
computed(() => props.groups),
|
||||
computed(() => props.rows),
|
||||
)
|
||||
|
||||
+1
-1
@@ -145,7 +145,7 @@ const columnWidthOptions = computed(() => {
|
||||
})
|
||||
|
||||
/* ================= 分组树(多级表头) ================= */
|
||||
const { groupNodeMap, groupColumnsMap, bandMeta, isDescendantGroup, groupIdOfRow } = useGroupTree(localGroups, localEdit)
|
||||
const { groupColumnsMap, bandMeta, isDescendantGroup, groupIdOfRow } = useGroupTree(localGroups, localEdit)
|
||||
|
||||
const visualColumns = computed(() => {
|
||||
const columns = groupColumnsMap.value
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
import { computed } from 'vue'
|
||||
|
||||
export const FIELD_TYPE_LABELS = {
|
||||
const FIELD_TYPE_LABELS = {
|
||||
input: '输入框',
|
||||
textarea: '文本域',
|
||||
number: '数字',
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
import { computed } from 'vue'
|
||||
|
||||
// toSorted 返回新数组,必须回写原数组,否则 buildGroupTree 的排序不生效
|
||||
export function sortGroupNodesByXh(nodes) {
|
||||
function sortGroupNodesByXh(nodes) {
|
||||
const sorted = nodes.toSorted((a, b) => (a.group.b_xh || 0) - (b.group.b_xh || 0))
|
||||
nodes.splice(0, nodes.length, ...sorted)
|
||||
return nodes
|
||||
@@ -114,5 +114,5 @@ export function useGroupTree(groupsRef, rowsRef) {
|
||||
return false
|
||||
}
|
||||
|
||||
return { groupTree, groupNodeMap, groupColumnsMap, bandMeta, isDescendantGroup, groupIdOfRow }
|
||||
return { groupColumnsMap, bandMeta, isDescendantGroup, groupIdOfRow }
|
||||
}
|
||||
@@ -264,17 +264,9 @@ export function useModuleConfig(deps) {
|
||||
}
|
||||
|
||||
return {
|
||||
configLoading,
|
||||
configSyncing,
|
||||
loadedModuleId,
|
||||
originals,
|
||||
drafts,
|
||||
hasModuleChanges,
|
||||
loadModuleConfig,
|
||||
reloadModule,
|
||||
onModuleSelect,
|
||||
onFieldsUpdate,
|
||||
applyDisabledFieldDefaults,
|
||||
onAutoCodeUpdate,
|
||||
syncFields,
|
||||
}
|
||||
|
||||
@@ -162,5 +162,5 @@ export function useModuleSave({
|
||||
}
|
||||
}
|
||||
|
||||
return { saveModule, validateAutoCode, configSaving }
|
||||
return { saveModule }
|
||||
}
|
||||
@@ -121,20 +121,6 @@ export function removeModuleNode(nodes, id) {
|
||||
}
|
||||
}
|
||||
|
||||
/** 从根到当前节点的名称路径(面包屑用) */
|
||||
export function buildBreadcrumb(node, finder) {
|
||||
const names = []
|
||||
let cur = node
|
||||
const seen = new Set()
|
||||
while (cur && !seen.has(String(cur.b_id))) {
|
||||
seen.add(String(cur.b_id))
|
||||
names.unshift(cur.b_name || cur.b_code)
|
||||
if (cur.b_parent_id == null) break
|
||||
cur = finder(String(cur.b_parent_id))
|
||||
}
|
||||
return names
|
||||
}
|
||||
|
||||
/* ================= 响应式 composable ================= */
|
||||
|
||||
/**
|
||||
@@ -361,22 +347,11 @@ export function useModuleTree(deps) {
|
||||
})
|
||||
}
|
||||
|
||||
const moduleBreadcrumb = computed(() =>
|
||||
selectedModule.value
|
||||
? buildBreadcrumb(selectedModule.value, (id) => findModuleNode(moduleTreeData.value, id))
|
||||
: [],
|
||||
)
|
||||
|
||||
return {
|
||||
moduleTreeLoading,
|
||||
moduleKeyword,
|
||||
moduleExpandedKeys,
|
||||
filteredModuleTree,
|
||||
loadModuleTree,
|
||||
buildModuleContextMenu,
|
||||
onModuleContextMenuClick,
|
||||
addModule,
|
||||
deleteModule,
|
||||
moduleBreadcrumb,
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user