修复工作人员资质关联与角色过滤

按安装、配送、运维菜单显式过滤工作人员,锁定资质所有者并使用姓名和角色回显。

扩展工作人员状态与多角色查询,补充权限校验、回归测试、操作日志和项目文档。
This commit is contained in:
czl231
2026-08-11 19:15:53 +08:00
parent 4b1f045806
commit 74c5e34275
20 changed files with 976 additions and 100 deletions

View File

@@ -57,10 +57,11 @@ export function useResourceRelationLinkage(
}
async function reloadChildOptions() {
const resource = active?.childField.relation;
const childField = active?.childField;
const resource = childField?.relation;
if (!resource) return;
relations.cancelSearch(resource);
await relations.load(resource, '', childRequest());
await relations.loadField(childField, '', childRequest());
}
/** 预加载普通关联项,并单独按父级条件加载启用联动的子选项。 */
@@ -69,6 +70,7 @@ export function useResourceRelationLinkage(
configure(fields);
if (!active?.childField.relationLinkage || !active.childField.relation) {
await relations.preload(fields);
await relations.ensureValues(fields, form);
initialized = true;
return;
}
@@ -108,11 +110,7 @@ export function useResourceRelationLinkage(
return;
}
if (
shouldClearLinkedOption(
parentIdentity,
option,
linkage.optionParentKey,
)
shouldClearLinkedOption(parentIdentity, option, linkage.optionParentKey)
) {
form[active.childField.key] = '';
Message.info('所属气站已变更,请重新选择配送点');
@@ -169,10 +167,10 @@ export function useResourceRelationLinkage(
function search(field: ResourceField, keyword: string) {
if (!field.relation) return;
if (field.key === active?.childField.key) {
relations.search(field.relation, keyword, childRequest());
relations.searchField(field, keyword, childRequest());
return;
}
relations.search(field.relation, keyword);
relations.searchField(field, keyword);
}
/** 返回保存前的父子关系错误,空字符串代表当前组合可提交。 */