4 changed files with 145 additions and 59 deletions
-
2src/views/archivesConfig/dict/index.vue
-
72src/views/components/DeviceTree.vue
-
1src/views/storeManage/deviceManage/module/deviceDetail.vue
-
129src/views/storeManage/levelManage/index.vue
@ -0,0 +1,72 @@ |
|||||
|
<template> |
||||
|
<div class="tree-scroll"> |
||||
|
<el-tree ref="deviceTree" :data="deviceTree" :props="defaultProps" node-key="id" :default-expanded-keys="defaultExpandedKeys" :default-checked-keys="defaultCheckedKeys" :expand-on-click-node="false" highlight-current @node-click="handleNodeClick" /> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { menu } from '@/api/storeManage/levelManage/level' |
||||
|
|
||||
|
export default { |
||||
|
name: 'DeviceTree', |
||||
|
data() { |
||||
|
return { |
||||
|
deviceTree: [], |
||||
|
defaultProps: { |
||||
|
children: 'children', |
||||
|
label: 'name' |
||||
|
}, |
||||
|
defaultExpandedKeys: [], |
||||
|
defaultCheckedKeys: [] |
||||
|
} |
||||
|
}, |
||||
|
created() { |
||||
|
this.getDeviceTree() |
||||
|
}, |
||||
|
methods: { |
||||
|
getDeviceTree() { |
||||
|
let defaultCheckedData = {} |
||||
|
menu().then((data) => { |
||||
|
let storeroom = {} |
||||
|
let devices = [] |
||||
|
for (let i = 0; i < data.length; i++) { |
||||
|
if (!storeroom.id) { |
||||
|
storeroom = data[i].storeroomId |
||||
|
data[i].name = data[i].deviceName |
||||
|
data[i].isCurrent = true |
||||
|
devices.push(data[i]) |
||||
|
// 设置第一个区域第一个节点的默认选中 |
||||
|
defaultCheckedData = data[i] |
||||
|
// 第一个区域默认展开 |
||||
|
this.defaultExpandedKeys.push(data[i].storeroomId.id) |
||||
|
} else if (storeroom.id !== data[i].storeroomId.id) { |
||||
|
storeroom.children = devices |
||||
|
this.deviceTree.push(storeroom) |
||||
|
devices = [] |
||||
|
data[i].name = data[i].deviceName |
||||
|
devices.push(data[i]) |
||||
|
storeroom = data[i].storeroomId |
||||
|
} else { |
||||
|
data[i].name = data[i].deviceName |
||||
|
devices.push(data[i]) |
||||
|
} |
||||
|
if (i === data.length - 1) { |
||||
|
storeroom.children = devices |
||||
|
this.deviceTree.push(storeroom) |
||||
|
} |
||||
|
} |
||||
|
this.$nextTick(() => { |
||||
|
// 设置第一个区域第一个节点的默认选中 |
||||
|
this.handleNodeClick(defaultCheckedData) |
||||
|
this.$refs.deviceTree.setCurrentKey(defaultCheckedData.id) |
||||
|
}) |
||||
|
}) |
||||
|
}, |
||||
|
handleNodeClick(selectedData) { |
||||
|
this.$emit('nodeClick', selectedData) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
<style lang="scss" scoped> |
||||
|
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue