<!-- 搜索表单 -->
<template>
  <el-form
    label-width="100px"
    class="ele-form-search"
    @keyup.enter.native="search"
    @submit.native.prevent
  >
    <el-row :gutter="15">
      <el-col v-bind="styleResponsive ? { lg: 5, md: 10 } : { span: 5 }">
        <el-form-item label="工位编码:">
          <el-input clearable v-model.trim="where.code" placeholder="请输入" />
        </el-form-item>
        <el-form-item label="所属区域:">
          <area-select
            v-model.trim="where.areaId"
            :data="areaTreeList"
            ref="tree"
          />
        </el-form-item>
      </el-col>
      <el-col v-bind="styleResponsive ? { lg: 5, md: 10 } : { span: 5 }">
        <el-form-item label="工位名称:">
          <el-input clearable v-model.trim="where.name" placeholder="请输入" />
        </el-form-item>
      </el-col>
      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
        <el-form-item label="所属工作中心:" prop="extInfo.workCenterId">
          <el-select
            v-model="where.workCenterId"
            filterable
            placeholder="请选择"
            style="width: 100%"
            clearable
          >
            <el-option
              v-for="item in workCenterList"
              :key="item.id"
              :label="item.name"
              :value="item.id"
            >
            </el-option>
          </el-select>
        </el-form-item>
      </el-col>
      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
        <el-form-item label="工序:" prop="where.sourceTaskId">
          <el-select
            v-model="where.sourceTaskId"
            filterable
            placeholder="请选择"
            style="width: 100%"
            clearable
          >
            <el-option
              v-for="item in sourceTaskList"
              :key="item.id"
              :label="item.name"
              :value="item.id"
            >
            </el-option>
          </el-select>
        </el-form-item>
      </el-col>
      <el-col v-bind="styleResponsive ? { lg: 5, md: 10 } : { span: 5 }">
        <el-form-item label="负责人:">
          <el-select
            v-model.trim="where.leaderId"
            filterable
            placeholder="请选择"
            style="width: 100%"
            clearable
          >
            <el-option
              v-for="item in options.leaderId"
              :key="item.id"
              :label="item.name"
              :value="item.id"
            >
            </el-option>
          </el-select>
        </el-form-item>
      </el-col>
      <!-- <el-col v-bind="styleResponsive ? { lg: 5, md: 12 } : { span: 6 }">
        <el-form-item label="组织机构:">
          <auth-selection v-model.trim="where.deptIds" style="width: 100%"></auth-selection>
        </el-form-item>
      </el-col> -->
      <el-col v-bind="styleResponsive ? { lg: 4, md: 12 } : { span: 4 }">
        <div class="ele-form-actions">
          <el-button
            type="primary"
            icon="el-icon-search"
            class="ele-btn-icon"
            @click="search"
          >
            查询
          </el-button>
          <el-button @click="reset">重置</el-button>
        </div>
      </el-col>
    </el-row>
  </el-form>
</template>

<script>
  import { getUserPage } from '@/api/system/organization';
  import AreaSelect from '@/views/enterpriseModel/regionalManage/components/area-cascader.vue';
  import { basicAreaPageAPI } from '@/api/regionalManage';
  import work from '@/api/technology/work';
  import producetask from '@/api/technology/production';
  export default {
    components: { AreaSelect },
    props: {
      options_groupId: {
        type: Array,
        default() {
          return [];
        }
      },
      options_factory: {
        type: Array,
        default() {
          return [];
        }
      }
    },
    watch: {
      options_groupId(nval) {
        this.toTreeData(nval);
      }
    },
    data() {
      // 默认表单数据
      const defaultWhere = {
        code: '',
        name: '',
        leaderId: '',
        workCenterId: '',
        sourceTaskId: ''
      };
      return {
        defaultWhere,
        // 表单数据
        where: { ...defaultWhere },
        options: {
          groupId: [],
          leaderId: []
        },
        workCenterList: [],
        areaTreeList: [],
        sourceTaskList: []
      };
    },
    computed: {
      // 是否开启响应式布局
      styleResponsive() {
        return this.$store.state.theme.styleResponsive;
      }
    },
    created() {
      this.getUserPage();
      this.getBasicAreaList();
      this.getListWorkCenter();
      this.getListProduce();
    },
    methods: {
      /* 获取区域集合 */
      async getBasicAreaList() {
        this.areaList = await basicAreaPageAPI({
          pageNum: 1,
          size: 9999
        });
        this.areaTreeList = this.$util.toTreeData({
          data: this.areaList,
          idField: 'id',
          parentIdField: 'parentId'
        });
      },

      async getListWorkCenter() {
        await work.list({ pageNum: 1, size: -1 }).then((res) => {
          this.workCenterList = res.list;
        });
      },

      getListProduce() {
        producetask.list({ pageNum: 1, size: -1 }).then((res) => {
          console.log(res.list, '工序列表');
          this.sourceTaskList = res.list || [];
        });
      },

      /* 搜索 */
      search() {
        this.$emit('search', this.where);
      },
      /*  重置 */
      reset() {
        console.log(this.defaultWhere);
        this.where = { ...this.defaultWhere };
        this.search();
      },
      // 格式化公司数据
      toTreeData(val) {
        this.options.groupId = this.$util.toTreeData({
          data: val,
          idField: 'id',
          parentIdField: 'parentId'
        });
      },
      // 获取人员
      getUserPage() {
        let par = {
          size: 999
        };
        getUserPage(par).then((res) => {
          console.log(res);
          this.options.leaderId = res.list;
        });
      }
    }
  };
</script>
