diff --git a/package.json b/package.json index 3deef137..dcecc12f 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "et:list": "gulp themes" }, "dependencies": { + "@riophae/vue-treeselect": "^0.4.0", "@tinymce/tinymce-vue": "^4.0.4", "axios": "^0.19.0", "babel-eslint": "^8.0.1", diff --git a/src/utils/treeSelect.js b/src/utils/treeSelect.js new file mode 100644 index 00000000..4ff8cfd0 --- /dev/null +++ b/src/utils/treeSelect.js @@ -0,0 +1,50 @@ +/** + * 构造树型结构数据 + * @param {*} data 数据源 + * @param {*} id id字段 默认 'id' + * @param {*} parentId 父节点字段 默认 'parentId' + * @param {*} children 孩子节点字段 默认 'children' + */ + export function handleTree(data, id, parentId, children) { + let config = { + id: id || 'id', + parentId: parentId || 'parentId', + childrenList: children || 'children' + }; + + var childrenListMap = {}; + var nodeIds = {}; + var tree = []; + + for (let d of data) { + let parentId = d[config.parentId]; + if (childrenListMap[parentId] == null) { + childrenListMap[parentId] = []; + } + nodeIds[d[config.id]] = d; + childrenListMap[parentId].push(d); + } + + for (let d of data) { + let parentId = d[config.parentId]; + if (nodeIds[parentId] == null) { + tree.push(d); + } + } + + for (let t of tree) { + adaptToChildrenList(t); + } + + function adaptToChildrenList(o) { + if (childrenListMap[o[config.id]] !== null) { + o[config.childrenList] = childrenListMap[o[config.id]]; + } + if (o[config.childrenList]) { + for (let c of o[config.childrenList]) { + adaptToChildrenList(c); + } + } + } + return tree; +} diff --git a/src/views/modules/plugins/power/.gitkeep b/src/views/modules/plugins/power/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/views/modules/plugins/power/poweraxis.vue b/src/views/modules/plugins/power/poweraxis.vue index c60bf68f..2c37816a 100644 --- a/src/views/modules/plugins/power/poweraxis.vue +++ b/src/views/modules/plugins/power/poweraxis.vue @@ -2,15 +2,10 @@
- + - 搜索 重置 @@ -33,29 +28,21 @@ - - - + + + + + + @@ -134,7 +121,11 @@