Files
threeonecheck_web/unpackage/dist/dev/mp-weixin/components/flow/flowAssigneeUtils.js
2026-07-27 09:27:22 +08:00

86 lines
2.5 KiB
JavaScript

"use strict";
const resolveAssigneeIdentityId = (user) => {
if (!user)
return "";
const id = user.identityId ?? user.userIdentityId ?? user.userId ?? "";
return id === "" || id == null ? "" : String(id);
};
const getAssigneeItemKey = (user) => {
const identityId = resolveAssigneeIdentityId(user);
if (identityId)
return `identity-${identityId}`;
return `user-${user.userId || user.nickName || ""}`;
};
const formatAssigneeDisplayName = (user) => {
if (!user)
return "";
if (user.identityName) {
return `${user.nickName || user.userName || ""}_${user.identityName}`;
}
if (user.postName) {
return `${user.nickName || user.userName || ""}_${user.postName}`;
}
return user.nickName || user.userName || user.name || "未知人员";
};
const normalizeApproverDeptTree = (data) => {
if (!data)
return [];
if (Array.isArray(data))
return data;
if (Array.isArray(data.records))
return data.records;
if (Array.isArray(data.list))
return data.list;
return [];
};
const findAssigneeUserInDeptTree = (depts, identityId) => {
var _a;
if (!identityId || !Array.isArray(depts))
return null;
for (const dept of depts) {
const user = (dept.users || []).find(
(item) => String(resolveAssigneeIdentityId(item)) === String(identityId)
);
if (user)
return user;
if ((_a = dept.children) == null ? void 0 : _a.length) {
const found = findAssigneeUserInDeptTree(dept.children, identityId);
if (found)
return found;
}
}
return null;
};
const flattenApproverDeptTree = (depts, level = 0) => {
var _a;
const rows = [];
if (!Array.isArray(depts))
return rows;
for (const dept of depts) {
rows.push({
type: "dept",
key: `dept-${dept.deptId ?? dept.deptName ?? level}`,
deptName: dept.deptName || "",
level
});
for (const user of dept.users || []) {
rows.push({
type: "user",
key: getAssigneeItemKey(user),
user,
level: level + 1
});
}
if ((_a = dept.children) == null ? void 0 : _a.length) {
rows.push(...flattenApproverDeptTree(dept.children, level + 1));
}
}
return rows;
};
exports.findAssigneeUserInDeptTree = findAssigneeUserInDeptTree;
exports.flattenApproverDeptTree = flattenApproverDeptTree;
exports.formatAssigneeDisplayName = formatAssigneeDisplayName;
exports.normalizeApproverDeptTree = normalizeApproverDeptTree;
exports.resolveAssigneeIdentityId = resolveAssigneeIdentityId;
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/flow/flowAssigneeUtils.js.map