<template>
  <div class="tree-wrapper">
    <el-tree
      :data="treeList"
      :props="defaultProps"
      v-loading="treeLoading"
      :node-key="nodeKey"
      ref="tree"
      :highlight-current="true"
      :expand-on-click-node="false"
      @node-click="handleNodeClick"
      v-bind="$attrs"
      :default-expand-all="defaultExpandAll"
    >
    </el-tree>
  </div>
</template>

<script>
  import { getBusinessTypes } from '@/api/indicator';

  // let originId = '';
  // let originType = '';
  export default {
    props: {
      // treeList私有化处理
      treeFormate: {
        type: Function,
        default: null
      },
      defaultProps: {
        type: Object,
        default: function () {
          return {
            children: 'children',
            value: 'businessType',
            label: 'businessName'
          };
        }
      },
      defaultExpandAll: {
        type: Boolean,
        default: function () {
          return true;
        }
      },
      // 初始请求treeList
      init: {
        type: Boolean,
        default: true
      },
      id: {
        type: String,
        default: '0'
      },
      nodeKey: {
        type: String,
        default: 'id'
      },
      ids: {
        type: String,
        default: ''
      }
      // appendRoot: {
      //   type: Boolean,
      //   default: false
      // },
    },
    data() {
      return {
        treeList: [],
        treeLoading: false,
        parentName: '',
        parentId: ''
      };
    },
    mounted() {
      if (this.init) {
        this.getTreeData();
      }
    },
    methods: {
      getInstance() {
        return this.$refs.tree;
      },
      // 获取树结构数据
      async getTreeData() {
        try {
          this.treeLoading = true;
          const res = await getBusinessTypes();
          let data = [
            {
              id: 1,
              businessName: '全部',
              businessType: null,
              children: res
            }
          ];
          console.log(data, 'data');
          this.treeList = data;

          this.$nextTick(() => {
            // 默认高亮第一级树节点
            if (this.treeList[0]) {
              this.setCurrentKey(this.treeList[0].id);
            }
          });
        } catch (error) {
          this.treeLoading = false;
        }
        this.treeLoading = false;
      },

      handleNodeClick(data, type) {
        this.$emit('handleNodeClick', data, type);
      },
      // 设置默认高亮行
      setCurrentKey(id) {
        this.$refs.tree?.setCurrentKey(id);
      },

      // 获取树的选中状态
      getSelectList() {
        const selectList = this.$refs.tree.getCurrentNode();
        return selectList;
      }
    }
  };
</script>

<style lang="scss" scoped>
  .tree-wrapper {
    width: 100%;
    height: 100%;
    overflow: auto;

    :deep(.el-tree) {
      display: inline-block;
      min-width: 100%;
    }
  }
</style>
