17 changed files with 426 additions and 77 deletions
-
33src/components/customerOrg/customerOrgEdit.vue
-
89src/components/customerOrg/customerOrgTree.vue
-
2src/components/patientRegister/customerOrgTreeAll.vue
-
2src/components/patientRegisterSign/customerOrgEdit.vue
-
201src/components/report/CusOrgOCX.vue
-
2src/components/report/PatientRegisterQueryNobtn.vue
-
35src/utlis/proFunc.js
-
113src/utlis/tree.js
-
2src/views/charge/charge.vue
-
2src/views/checkStatus/index.vue
-
2src/views/customerOrg/patientRegisterRefuse.vue
-
2src/views/doctorCheck/doctorCheck.vue
-
2src/views/doctorCheck/personnelBatch.vue
-
6src/views/doctorCheck/positiveresults.vue
-
2src/views/doctorCheck/unitphysicalexamination.vue
-
6src/views/fee-settings/diseaseStatistics.vue
-
2src/views/report/report.vue
@ -0,0 +1,113 @@ |
|||||
|
//树对象相关操作 目前只支持单主键操作
|
||||
|
|
||||
|
//将list数据,生成tree
|
||||
|
function madeTree(dataSource, childNodeName, pidName, idName, pidVal) { |
||||
|
if (!dataSource || dataSource.length < 1) return []; |
||||
|
let trees = [] |
||||
|
let lchildNodeName = childNodeName || 'children'; |
||||
|
let lpidName = pidName || 'pid'; |
||||
|
let lidName = idName || 'id'; |
||||
|
|
||||
|
dataSource.forEach(e => { |
||||
|
let tree = {}, ret = null; |
||||
|
if (pidVal) { //根节点有具体的值
|
||||
|
if (e[lpidName] == pidVal) { |
||||
|
tree = e; |
||||
|
ret = madeTree(dataSource, lchildNodeName, lpidName, lidName, e[lidName]); |
||||
|
if (ret && ret.length > 0) tree[lchildNodeName] = ret; |
||||
|
trees.push(tree); |
||||
|
} |
||||
|
} else { |
||||
|
if (!e[lpidName]) { //根节点为0,空或null
|
||||
|
tree = e; |
||||
|
ret = madeTree(dataSource, lchildNodeName, lpidName, lidName, e[lidName]); |
||||
|
if (ret && ret.length > 0) tree[lchildNodeName] = ret; |
||||
|
trees.push(tree); |
||||
|
} |
||||
|
} |
||||
|
}) |
||||
|
return trees; |
||||
|
} |
||||
|
|
||||
|
//通过ID值,找出所有父节点值
|
||||
|
function getTreePids(tree, childNodeName, pidName, idName, idVal) { |
||||
|
let pids = [],treeNode = null; |
||||
|
if (!tree || tree.length < 1) return []; |
||||
|
if (!idVal) return []; |
||||
|
let lchildNodeName = childNodeName || 'children'; |
||||
|
let lpidName = pidName || 'pid'; |
||||
|
let lidName = idName || 'id'; |
||||
|
|
||||
|
treeNode = getTreeNode(tree,lchildNodeName,lidName, idVal); |
||||
|
//console.log('treeNode',treeNode);
|
||||
|
if(treeNode){ |
||||
|
pids.push(treeNode[lpidName]); |
||||
|
getTreePids(tree, lchildNodeName, lpidName, lidName, treeNode[lpidName]).forEach(e =>{ |
||||
|
pids.push(e); |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
return pids; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
//通过ID值,找出所有子节点值
|
||||
|
function getTreeAllChildIdsByNode(treeNode, childNodeName, idName) { |
||||
|
let childIds = []; |
||||
|
let lchildNodeName = childNodeName || 'children'; |
||||
|
let lidName = idName || 'id'; |
||||
|
|
||||
|
if (!treeNode) return []; |
||||
|
if (!treeNode[lchildNodeName] || treeNode[lchildNodeName].length < 1) return []; |
||||
|
|
||||
|
treeNode[lchildNodeName].forEach(e => { |
||||
|
childIds.push(e[lidName]); |
||||
|
getTreeAllChildIdsByNode(e, lchildNodeName, lidName).forEach(e2 =>{ |
||||
|
childIds.push(e2); |
||||
|
}); |
||||
|
}); |
||||
|
return childIds; |
||||
|
} |
||||
|
|
||||
|
//通过ID值,找出所有子节点值
|
||||
|
function getTreeAllChildIdsById(tree, childNodeName, idName, idVal) { |
||||
|
let childIds = [], treeNode = null; |
||||
|
let lchildNodeName = childNodeName || 'children'; |
||||
|
let lidName = idName || 'id'; |
||||
|
|
||||
|
if (!tree || tree.length < 1) return []; |
||||
|
treeNode = getTreeNode(tree, lchildNodeName, lidName, idVal); |
||||
|
childIds = getTreeAllChildIdsByNode(treeNode, lchildNodeName, lidName); |
||||
|
|
||||
|
return childIds; |
||||
|
} |
||||
|
|
||||
|
//获取节点本身
|
||||
|
function getTreeNode(tree, childNodeName, idName, idVal) { |
||||
|
let treeNode = null; |
||||
|
let lchildNodeName = childNodeName || 'children'; |
||||
|
let lidName = idName || 'id'; |
||||
|
|
||||
|
if (!tree || tree.length < 1) return treeNode; |
||||
|
|
||||
|
for (let i = 0; i < tree.length; i++) { |
||||
|
if (tree[i][lidName] == idVal) { |
||||
|
treeNode = tree[i]; |
||||
|
break; |
||||
|
} else { |
||||
|
if (tree[i][lchildNodeName] && tree[i][lchildNodeName].length > 0) { |
||||
|
treeNode = getTreeNode(tree[i][lchildNodeName], lchildNodeName, lidName, idVal); |
||||
|
} |
||||
|
if (treeNode) break; |
||||
|
} |
||||
|
} |
||||
|
return treeNode; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
module.exports = { |
||||
|
madeTree, |
||||
|
getTreePids, getTreeAllChildIdsByNode,getTreeAllChildIdsById, getTreeNode, |
||||
|
} |
||||
|
|
||||
|
|
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue