<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>