<template>
  <div>
    <el-dialog
      :close-on-click-modal="false"
      title="选择评标人"
      :visible.sync="showTroubleshooting"
      width="60%"
      :close-on-press-escape="false"
      :before-close="handleClose"
      top="10vh"
    >
      <template>
        <div class="bbsl-table-search">
          <el-form v-model="queryParam" :inline="true">
            <el-form-item label="名称">
              <el-input
                size="small"
                v-model="querys[0].value"
                clearable
                placeholder="请输入名称"
              ></el-input>
            </el-form-item>
            <el-form-item>
              <el-button
                size="small"
                type="danger"
                icon="el-icon-search"
                @click="handleSearch"
                >搜索</el-button
              >
              <el-button
                size="small"
                icon="el-icon-refresh"
                @click="handleReset"
                >重置</el-button
              >
            </el-form-item>
          </el-form>
        </div>
        <el-table
          ref="multipleSelection"
          v-loading="loading"
          border
          size="mini"
          :data="tableData"
          height="400px"
          :row-key="rowKey"
          :style="{width: '100%', height: '500px'}"
          :max-height="tableMaxHeight"
          :cell-style="{'text-align': 'center'}"
          :header-cell-style="{'text-align': 'center'}"
          @selection-change="handleSelectionChange"
          @select="tableSelect"
        >
          <el-table-column
            type="selection"
            width="55"
            :reserve-selection="true"
          />
          <el-table-column type="index" width="55" label="序号" />
          <el-table-column
            prop="orgName"
            min-width="10%"
            label="所属企业"
            align="center"
            resizable
          >
          </el-table-column>
          <el-table-column
            prop="userNumber"
            show-overflow-tooltip
            min-width="10%"
            align="center"
            label="专家编号"
            resizable
          >
          </el-table-column>
          <el-table-column
            prop="fullname"
            min-width="10%"
            label="专家名称"
            align="center"
            resizable
          >
          </el-table-column>
          <el-table-column
            prop="fullname"
            show-overflow-tooltip
            min-width="10%"
            align="center"
            label="评标类型"
            resizable
          >
          </el-table-column>
        </el-table>
        <div style="float:right;margin-top:10px">
          <el-pagination
            ref="paginationPanel"
            background
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :current-page="queryParam.pageBean.page"
            :page-sizes="[20, 30, 40, 50]"
            :page-size="queryParam.pageBean.pageSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="queryParam.pageBean.total"
          >
          </el-pagination>
        </div>
      </template>
      <span slot="footer" class="dialog-footer">
        <el-button @click="handleClose">取消</el-button>
        <el-button type="primary" @click="handleSave">保 存</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
import {TableMixin} from '@/mixins/tableMixin'
import basicData from '@/api/basicData'
import procurementManagement from '@/api/procurementManagement'
export default {
  name: 'CmgtSaftyDangerCheckplanFormDialogTroubleshooting', // 排查计划明细
  props: {
    useOrgList: Array
  },
  data() {
    return {
      showTroubleshooting: false, // 控制弹层显示与隐藏
      multipleSelection: [],
      selectedValue: [],
      loading:false,
      querys: [
        {
          group: 'main',
          operation: 'LIKE',
          parentGroup: '',
          property: 'fullname',
          relation: 'AND',
          value: ''
        }
      ],
      queryParam: {
        pageBean: {
          page: 1,
          pageSize: 20,
          total: 0
        }
      }
    }
  },
  mixins: [TableMixin],
  created() {
    this.loadData()
  },
  methods: {
    rowKey(row) {
      return row.id
    },
    //搜索
    handleSearch() {
      this.loadData()
    },
    //重置
    handleReset() {
      this.querys[0].value = ''
      this.loadData()
    },
    //显示弹框
    add() {
      this.loadData()
      this.showTroubleshooting = true
      this.$nextTick(()=> {
        this.useOrgList.forEach(item => {
          if (this.tableData.some(data => data.id === item.id)) {
            this.$refs.multipleSelection.toggleRowSelection(item, true) //这样就可以了
          } else {
            this.$refs.multipleSelection.toggleRowSelection(item, true) //这样就可以了
          }
        })
      })
 
    },
    // 获取list
    loadData() {
      this.loading = true
      this.tableData = []
      this.queryParam.querys = []
      if (this.querys[0].value) {
        this.queryParam.querys.push(this.querys[0])
      }
      this.$http.post('${portal}/bizExpertDatabase/v1/query',this.queryParam).then(res => {
        this.queryParam.pageBean.total = res.data.total
        this.tableData = res.data.rows
        this.$set(this.tableData)
        this.loading = false
      })
    },
    tableSelect(rows, row) {
      let selected = rows.length && rows.indexOf(row) !== -1
      if (!selected) {
        this.selectedValue = rows
      } else {
        this.selectedValue = []
      }
    },
    handleSelectionChange(val) {
      this.multipleSelection = val
    },
    // 点击关闭按钮
    handleClose() {
      this.$refs.multipleSelection.clearSelection()
      this.showTroubleshooting = false
    },
    // 保存按钮
    handleSave() {
      let list = []
      list = this.multipleSelection
      if(list.length<3){
        this.$message.warning('请至少选择三位评标人')
        return
      }
      if(list.length % 2 ==0){
        this.$message.warning('请选择奇数位评标人')
        return
      }
      this.$emit('handleAdd', list)
      this.handleClose()
    },
    handleCurrentChange(page) {
      this.queryParam.pageBean = {...this.queryParam.pageBean, page}
      this.loadData()
    },
    handleSizeChange(pageSize) {
      this.queryParam.pageBean = {...this.queryParam.pageBean, pageSize}
      this.loadData()
    }
  }
}
</script>

<style scoped lang="scss">
.dialog-footer {
  width: 100%;
  margin-top: 20px;
  display: flex;
  justify-content: center;
}
</style>
