<template>
  <el-cascader v-model="value" :options="options" :props="props" clearable ref="elCascader" @remove-tag="removeTag"></el-cascader>
</template>
<script>
// import { buildingQuery } from "@/api/scan/request";
// import { buildingQuery } from '@/api/object/build';
import Builder from "@/controller/old-adm/buildController";
// const { buildingQuery } = Builder;

export default {
  data() {
    return {
      value: [],
      props: {
        multiple: true,
        checkStrictly: true,
        value: 'id',
        label: 'localName',
        children: 'floor'
      },
      options: []
    }
  },
  props: {
    SysID: {
      default: ''
    }
  },

  methods: {
    async getCascader() {
      let param = {
        cascade: [
          { name: "floor", orders: "floorSequenceID desc" }
        ],
        orders: "localName asc",
        pageNumber: 1,
        pageSize: 50
      }
      const res = await Builder.buildingQuery(param)
      res.content.map(t => {
        if (t.floor && t.floor.length) {
          t.floor = t.floor.map(item => {
            if (item.id == this.FloorID) return
            item.BuildID = item.id
            item.BuildLocalName = item.localName || item.name
            return item
          }).filter(it => it)
        }
      })
      this.options = res.content
      
    },
    getSelectedNodes() {
      let nodes = this.$refs.elCascader.getCheckedNodes();
      let arr = [], flag = false, brr = [];
      if (nodes.length) {
        nodes.map(t => {
          let obj = {
            BuildName: t.pathLabels[0],
            BuildID: t.path[0]
          }
          if (t.path.length > 1) {
            obj.FloorName = t.pathLabels[1]
            obj.FloorID = t.path[1]
          } else {
            flag = true;
          }
          arr.push(obj);
        })
        if (flag) {
          for (let i = 0; i < arr.length; i++) {
            for (let j = 0; j < arr.length; j++) {
              if (!arr[i].FloorID && arr[j].FloorID && arr[i].BuildID == arr[j].BuildID) {
                brr.push(i)
              }
            }
          }
          arr = arr.map((t, i) => {
            if (brr.indexOf(i) > -1) {
              return undefined;
            }
            return t;
          }).filter(item => item);
        }
      }
      return arr;
    },
    removeTag(){
      console.log(arguments)
    }
  }
}
</script>
<style lang="less" scoped>
.el-cascader {
  width: 100%;
}
</style>
