<template> <div class="el-select-tree"> <el-row class="tree_header mb10"> <el-select v-model="value" placeholder="请选择" size="mini"> <el-option v-for="item in options" :key="item.id" :label="item.label" :value="+item.id" > </el-option> </el-select> <el-button class="ml10" type="primary" icon="el-icon-s-unfold" size="mini" :loading="flag" @click="flag = true" >展开</el-button > <el-button class="ml10" type="primary" size="mini" icon="el-icon-refresh-right" :loading="flag1" @click="flag1 = true" >刷新</el-button > </el-row> <el-tree v-loading="loading" ref="vuetree" :props="defaultProps" :data="data" :render-content="renderContent" :default-expand-all="true" nodeKey="id" class="el-tree" current-node-key="id" :expand-on-click-node="false" @node-click="handleClick" > <!-- :current-node-key='id' --> </el-tree> </div> </template> <script> import { mapGetters } from "vuex"; export default { data() { return { value: 0, flag: false, flag1: false, options: [ { id: 0, label: "手动监控", }, { id: 1, label: "自动监控", }, ], data: [ { type: 1, id: 0, iconName: "level1_Z", label: "张呼铁路客运专线", children: [ { id: 1, type: 2, iconName: "level2_R", label: "STATION1未开通", children: [], }, { id: 2, type: 2, iconName: "level2_R", label: "STATION2未开通", children: [], }, { id: 3, type: 2, iconName: "level2_R", label: "STATION3未开通", children: [], }, { id: 4, type: 2, iconName: "level2_R", label: "STATION4未开通", children: [], }, { id: 5, type: 2, iconName: "level2_R", label: "STATION5未开通", children: [], }, { id: 6, type: 2, iconName: "level2_R", label: "STATION6未开通", children: [], }, { id: 7, type: 2, iconName: "level2_Z", label: "(7)VLCB-ZZT02", children: [ { id: 4, type: 4, iconName: "level3_R", label: "PSU(现场管理单元7)", children: [ { id: 5, type: 4, iconName: "level4_R", label: "故障定位单位_K362", children: [ { id: 1, type: 5, iconName: "level5_R", label: "漏缆K362+784张家...", }, { id: 2, type: 5, iconName: "level5_R", label: "漏缆K362+7呼和浩...", }, ], }, { type: 5, id: 6, iconName: "level4_R", label: "故障定位单位_K365", }, { type: 5, id: 7, iconName: "level4_R", label: "故障定位单位_K368", }, ], }, { id: 7, type: 2, iconName: "level3_R", label: "故障定位单位_K3...", children: [ { id: 8, type: 3, iconName: "level4_R", label: "漏缆K362+784张...", }, { id: 9, type: 2, iconName: "level4_R", label: "漏缆K362+784张...", }, ], }, ], }, { id: 8, type: 2, iconName: "level2_R", label: "(8)VLCB-ZZT02", children: [], }, ], }, ], defaultProps: { children: "children", label: "label", }, loading: false, }; }, name: "org-tree", computed: { ...mapGetters("tree", ["treeData"]), }, methods: { handleClick(data) { console.log(data); }, renderContent(h, { node, data, store }) { return ( <div> <span style="padding-right:10px;"> <span style={{ marginRight: "5px", fontSize: "16px" }}> <svg-icon icon-class={data.iconName} /> </span> <span style={{ marginRight: "5px", fontSize: "16px" }}> {node.label} </span> </span> </div> ); }, }, }; </script> <style lang="scss"> @import "@/styles/variables"; .el-select-tree { width: 300px; height: calc(100vh - 56px); background: rgba(255, 255, 255, 1); .tree_header { display: flex; justify-content: center; align-items: center; padding: 10px; height: 44px; background: rgba(196, 214, 255, 0.39); opacity: 1; box-sizing: border-box; } // border: 1px dotted; // display: inline-block; } .el-tree-node.is-current > .el-tree-node__content { background-color: #deeaff !important; } </style>