实现密炼物料种类配置关联解析功能,新增种类查找表加载与解析接口,优化选料弹窗层级与刷新功能,增强用户体验与系统稳定性。

This commit is contained in:
geht
2026-05-25 20:29:07 +08:00
parent dc3f305303
commit 441c19e87a
13 changed files with 556 additions and 170 deletions

View File

@@ -130,7 +130,39 @@ function normalizeTreeSelectNodes(nodes: unknown): Recordable[] {
}
/** 加载 MES 物料分类树:根下物料大类 + 各物料小类(供密炼物料/混炼示方选料复用) */
export async function loadMesMaterialCategoryTreeData(): Promise<MesMaterialCategoryTreeLoadResult> {
let mesMaterialCategoryTreeCache: MesMaterialCategoryTreeLoadResult | null = null;
let mesMaterialCategoryTreeLoading: Promise<MesMaterialCategoryTreeLoadResult> | null = null;
export function hasMesMaterialCategoryTreeCache() {
return !!(mesMaterialCategoryTreeCache?.minors?.length || mesMaterialCategoryTreeCache?.majors?.length);
}
export function clearMesMaterialCategoryTreeCache() {
mesMaterialCategoryTreeCache = null;
mesMaterialCategoryTreeLoading = null;
}
export async function loadMesMaterialCategoryTreeData(forceReload = false): Promise<MesMaterialCategoryTreeLoadResult> {
if (!forceReload && mesMaterialCategoryTreeCache) {
return mesMaterialCategoryTreeCache;
}
if (!forceReload && mesMaterialCategoryTreeLoading) {
return mesMaterialCategoryTreeLoading;
}
mesMaterialCategoryTreeLoading = fetchMesMaterialCategoryTreeData()
.then((result) => {
if (result.minors.length || result.majors.length) {
mesMaterialCategoryTreeCache = result;
}
return result;
})
.finally(() => {
mesMaterialCategoryTreeLoading = null;
});
return mesMaterialCategoryTreeLoading;
}
async function fetchMesMaterialCategoryTreeData(): Promise<MesMaterialCategoryTreeLoadResult> {
// 优先 loadTreeRoot与密炼物料列表页一致已验证可用
try {
const treeRes = await loadTreeData({ async: false, pcode: MATERIAL_ROOT_CODE });