| | |
| | | <script lang="ts"> |
| | | import { defineComponent } from 'vue'; |
| | | import { getAreaTreeApi } from '@/api/area'; |
| | | import { formatAreaTree } from '@/utils/tree'; |
| | | |
| | | export default defineComponent({ |
| | | name: 'HdwTree', |
| | |
| | | children: 'children', |
| | | label: 'label' |
| | | }, |
| | | data: [ |
| | | { |
| | | label: '河南省', |
| | | children: [ |
| | | { |
| | | label: '驻马店市', |
| | | children: [ |
| | | { |
| | | label: '上蔡县' |
| | | }, |
| | | { |
| | | label: '确山县' |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | label: '湖北省', |
| | | children: [ |
| | | { |
| | | label: '武汉市', |
| | | 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> |
| | |
| | | style="max-width: 600px" |
| | | :data="data" |
| | | :props="defaultProps" |
| | | :expand-on-click-node="false" |
| | | @node-click="handleNodeClick" |
| | | /> |
| | | </el-scrollbar> |