Browse Source

选择用户不设置范围时默认用户范围

lwx_v12
liwenxuan 2 weeks ago
parent
commit
3790348db2
  1. 147
      src/components/formTable/index.vue

147
src/components/formTable/index.vue

@ -1958,13 +1958,26 @@ function getTree1() {
}
function modifyTreeData(treeData, idList) {
console.log("modifyTreeDataMinimal 执行了");
//console.log("modifyTreeDataMinimal ");
let gkFlag = true
const idArray = Array.isArray(idList) ? idList : [idList];
if (idArray.length === 0 || !treeData) {
// gkFlag true idList treeData
if (gkFlag && idArray.length === 0) {
const targetNode = findTargetNode(treeData);
if (targetNode) {
// 使 treeData
treeData = targetNode;
}
}
// idList 使
if (idArray.length === 0) {
return processTreeWithAllNodes(treeData);
}
if (!treeData) {
return Array.isArray(treeData) ? [] : null;
}
@ -1981,13 +1994,16 @@ function modifyTreeData(treeData, idList) {
const node = stack.pop();
if (!node?.id) continue;
nodeMap.set(node.id, node);
if (node.children) {
for (const child of node.children) {
if (child?.id) {
parentMap.set(child.id, node.id);
stack.push(child);
// ID
if (!nodeMap.has(node.id)) {
nodeMap.set(node.id, node);
if (node.children) {
for (const child of node.children) {
if (child?.id) {
parentMap.set(child.id, node.id);
stack.push(child);
}
}
}
}
@ -2026,6 +2042,29 @@ function modifyTreeData(treeData, idList) {
return Array.isArray(treeData) ? result : result[0] || null;
}
//
function findTargetNode(treeData) {
if (!treeData) return null;
const stack = Array.isArray(treeData) ? [...treeData] : [treeData];
while (stack.length > 0) {
const node = stack.pop();
//
if (node.id === "309" && node.label === "山东恒信高科能源有限公司") {
return node;
}
//
if (node.children && node.children.length > 0) {
stack.push(...node.children);
}
}
return null;
}
//
function buildNodeTree(node, keepIds, idArray, processedIds) {
const newNode = {
@ -2043,9 +2082,11 @@ function buildNodeTree(node, keepIds, idArray, processedIds) {
//
if (node.children && node.children.length > 0) {
const children = [];
const childProcessedIds = new Set(); //
for (const child of node.children) {
if (child?.id && keepIds.has(child.id) && !processedIds.has(child.id)) {
processedIds.add(child.id);
if (child?.id && keepIds.has(child.id) && !childProcessedIds.has(child.id)) {
childProcessedIds.add(child.id);
children.push(buildNodeTree(child, keepIds, idArray, processedIds));
}
}
@ -2057,6 +2098,84 @@ function buildNodeTree(node, keepIds, idArray, processedIds) {
return newNode;
}
// idList 使
function processTreeWithAllNodes(treeData) {
if (!treeData) {
return Array.isArray(treeData) ? [] : null;
}
const roots = Array.isArray(treeData) ? treeData : [treeData];
// - 使
const result = [];
const processedIds = new Set();
//
for (const root of roots) {
if (!root?.id || processedIds.has(root.id)) {
continue;
}
processedIds.add(root.id);
// 使
const formattedNode = formatAllNodes(root, processedIds);
if (formattedNode) {
result.push(formattedNode);
}
}
//
processedIds.clear();
return Array.isArray(treeData) ? result : result[0] || null;
}
//
function formatAllNodes(node, processedIds) {
// ID5
const isOrganization = node.id && node.id.length < 5;
//
let children = [];
const childProcessedIds = new Set();
if (node.children && node.children.length > 0) {
for (const child of node.children) {
if (child?.id && !childProcessedIds.has(child.id)) {
childProcessedIds.add(child.id);
const formattedChild = formatAllNodes(child, processedIds);
if (formattedChild) {
children.push(formattedChild);
}
}
}
}
//
if (isOrganization && children.length === 0) {
return null;
}
//
const newNode = {
id: node.id,
label: node.label,
value: node.value
};
//
if (node.value !== null && node.value !== undefined) {
newNode.label = `${node.label}(${node.value})`;
newNode.number = newNode.label;
}
//
if (children.length > 0) {
newNode.children = children;
}
return newNode;
}

Loading…
Cancel
Save