正在显示
1 个修改的文件
包含
43 行增加
和
20 行删除
| @@ -58,7 +58,7 @@ export function addDateRange(params, dateRange, propName) { | @@ -58,7 +58,7 @@ export function addDateRange(params, dateRange, propName) { | ||
| 58 | var search = params; | 58 | var search = params; |
| 59 | search.params = {}; | 59 | search.params = {}; |
| 60 | if (null != dateRange && '' != dateRange) { | 60 | if (null != dateRange && '' != dateRange) { |
| 61 | - if (typeof(propName) === "undefined") { | 61 | + if (typeof (propName) === "undefined") { |
| 62 | search.params["beginTime"] = dateRange[0]; | 62 | search.params["beginTime"] = dateRange[0]; |
| 63 | search.params["endTime"] = dateRange[1]; | 63 | search.params["endTime"] = dateRange[1]; |
| 64 | } else { | 64 | } else { |
| @@ -129,24 +129,47 @@ export function praseStrEmpty(str) { | @@ -129,24 +129,47 @@ export function praseStrEmpty(str) { | ||
| 129 | * @param {*} id id字段 默认 'id' | 129 | * @param {*} id id字段 默认 'id' |
| 130 | * @param {*} parentId 父节点字段 默认 'parentId' | 130 | * @param {*} parentId 父节点字段 默认 'parentId' |
| 131 | * @param {*} children 孩子节点字段 默认 'children' | 131 | * @param {*} children 孩子节点字段 默认 'children' |
| 132 | - * @param {*} rootId 根Id 默认 0 | ||
| 133 | */ | 132 | */ |
| 134 | -export function handleTree(data, id, parentId, children, rootId) { | ||
| 135 | - id = id || 'id' | ||
| 136 | - parentId = parentId || 'parentId' | ||
| 137 | - children = children || 'children' | ||
| 138 | - rootId = rootId || Math.min.apply(Math, data.map(item => { return item[parentId] })) || 0 | ||
| 139 | - //对源数据深度克隆 | ||
| 140 | - const cloneData = JSON.parse(JSON.stringify(data)) | ||
| 141 | - //循环所有项 | ||
| 142 | - const treeData = cloneData.filter(father => { | ||
| 143 | - let branchArr = cloneData.filter(child => { | ||
| 144 | - //返回每一项的子级数组 | ||
| 145 | - return father[id] === child[parentId] | ||
| 146 | - }); | ||
| 147 | - branchArr.length > 0 ? father.children = branchArr : ''; | ||
| 148 | - //返回第一层 | ||
| 149 | - return father[parentId] === rootId; | ||
| 150 | - }); | ||
| 151 | - return treeData != '' ? treeData : data; | 133 | +export function handleTree(data, id, parentId, children) { |
| 134 | + let config = { | ||
| 135 | + id: id || 'id', | ||
| 136 | + parentId: parentId || 'parentId', | ||
| 137 | + childrenList: children || 'children' | ||
| 138 | + }; | ||
| 139 | + | ||
| 140 | + var childrenListMap = {}; | ||
| 141 | + var nodeIds = {}; | ||
| 142 | + var tree = []; | ||
| 143 | + | ||
| 144 | + for (let d of data) { | ||
| 145 | + let parentId = d[config.parentId]; | ||
| 146 | + if (childrenListMap[parentId] == null) { | ||
| 147 | + childrenListMap[parentId] = []; | ||
| 148 | + } | ||
| 149 | + nodeIds[d[config.id]] = d; | ||
| 150 | + childrenListMap[parentId].push(d); | ||
| 151 | + } | ||
| 152 | + | ||
| 153 | + for (let d of data) { | ||
| 154 | + let parentId = d[config.parentId]; | ||
| 155 | + if (nodeIds[parentId] == null) { | ||
| 156 | + tree.push(d); | ||
| 157 | + } | ||
| 158 | + } | ||
| 159 | + | ||
| 160 | + for (let t of tree) { | ||
| 161 | + adaptToChildrenList(t); | ||
| 162 | + } | ||
| 163 | + | ||
| 164 | + function adaptToChildrenList(o) { | ||
| 165 | + if (childrenListMap[o[config.id]] !== null) { | ||
| 166 | + o[config.childrenList] = childrenListMap[o[config.id]]; | ||
| 167 | + } | ||
| 168 | + if (o[config.childrenList]) { | ||
| 169 | + for (let c of o[config.childrenList]) { | ||
| 170 | + adaptToChildrenList(c); | ||
| 171 | + } | ||
| 172 | + } | ||
| 173 | + } | ||
| 174 | + return tree; | ||
| 152 | } | 175 | } |
-
请 注册 或 登录 后发表评论