1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
| <script lang="ts">
| import { defineComponent } from 'vue';
| import { getAreaTreeApi } from '@/api/area';
| import { formatAreaTree } from '@/utils/tree';
|
| export default defineComponent({
| name: 'HdwTree',
| data() {
| return {
| defaultProps: {
| children: 'children',
| label: 'label'
| },
| data: []
| };
| },
| methods: {
| handleNodeClick(data) {
| console.log(data);
| },
| async getAreaTree() {
| try {
| const res = await getAreaTreeApi();
| let data = [];
| if (res.code === 1 && res.data) {
| data = res.data2;
| }
| const treeList = [];
| for (let i = 0; i < data.length; i++) {
| formatAreaTree(data[i], treeList);
| }
| console.log(data);
| console.log(treeList);
| this.data = treeList;
| } catch (e) {
| console.log(e);
| }
| }
| },
| mounted() {
| this.getAreaTree();
| }
| });
| </script>
|
| <template>
| <el-scrollbar>
| <el-tree
| style="max-width: 600px"
| :data="data"
| :props="defaultProps"
| :expand-on-click-node="false"
| @node-click="handleNodeClick"
| />
| </el-scrollbar>
| </template>
|
| <style scoped lang="scss">
|
| </style>
|
|