实现密炼物料种类配置关联解析功能,新增种类查找表加载与解析接口,优化选料弹窗层级与刷新功能,增强用户体验与系统稳定性。
This commit is contained in:
@@ -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 });
|
||||
|
||||
Reference in New Issue
Block a user