<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"
        >
          <el-table-column
            type="selection"
            width="55"
            :reserve-selection="true"
          />
          <el-table-column type="index" width="55" label="序号" />
          <el-table-column
            prop="vendorCode"
            show-overflow-tooltip
            min-width="120px"
            align="center"
            label="供应商编号"
            resizable
          >
          </el-table-column>
          <el-table-column
            prop="vendorName"
            show-overflow-tooltip
            min-width="120px"
            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: [],
      tableHeight: 600,
      loading: false,
      matIfPlat: '',
      querys: [
        {
          group: 'main',
          operation: 'LIKE',
          parentGroup: '',
          property: 'vendorName',
          relation: 'AND',
          value: '',
        },
        {
          group: 'main',
          operation: 'EQUAL',
          parentGroup: '',
          property: 'procureOrgId',
          relation: 'AND',
          value: '',
        },
        {
          group: 'main',
          operation: 'EQUAL',
          parentGroup: '',
          property: 'b.CONTRACT_GENERATE_STATUS_',
          relation: 'AND',
          value: '1',
        },
      ],
      queryParam: {
        pageBean: {
          page: 1,
          pageSize: 20,
          total: 0,
        },
      },
      currentUser: {},
    }
  },
  mixins: [TableMixin],
  created() {
    this.currentUser = JSON.parse(sessionStorage.getItem('currentUserDetail'))
  },
  methods: {
    rowKey(row) {
      return row.vendorId
    },
    //搜索
    handleSearch() {
      this.loadData()
    },
    //重置
    handleReset() {
      this.querys[0].value = ''
      this.querys[1].value = this.currentUser.org[0].orgId
      this.querys[2].value = '1'
      this.loadData()
    },
    //显示弹框
    add() {
      this.showTroubleshooting = true
      this.querys[1].value = this.currentUser.org[0].orgId
      console.log(this.useOrgList,'this.useOrgList');
      this.$nextTick(function () {
        this.useOrgList.forEach((item) => {
          if (this.tableData.some((data) => data.vendorId === item.vendorId)) {
            this.$refs.multipleSelection.toggleRowSelection(item, true) //这样就可以了
          } else {
            this.$refs.multipleSelection.toggleRowSelection(item, true) //这样就可以了
          }
        })
      })
      this.loadData()
    },
    // 获取list
    loadData() {
      this.loading = true
      this.tableData = []
      this.queryParam.querys = []
      if (this.querys[0].value) {
        this.queryParam.querys.push(this.querys[0])
      }
      if (this.querys[1].value) {
        this.queryParam.querys.push(this.querys[1])
      }
      if (this.querys[2].value) {
        this.queryParam.querys.push(this.querys[2])
      }
      this.queryParam.sorter = [
        {
          direction: 'DESC',
          property: 'a.CREATE_TIME_',
        },
      ]
      this.$http
        .post(
          '${portal}/bizWinBiddingNotice/v1/queryWinBidVendor',
          this.queryParam
        )
        .then((res) => {
          if (res.data.state) {
            this.queryParam.pageBean.total = res.data.value.total
            this.tableData = res.data.value.rows
            this.$set(this.tableData)
            this.loading = false
          }
        })
    },
    handleSelectionChange(selection) {
      this.multipleSelection = selection
        if (this.multipleSelection.length > 1) {
        this.$refs.multipleSelection.toggleRowSelection(
          this.multipleSelection[0],
          false
        )
      }
    },
    // 点击关闭按钮
    handleClose() {
      this.$refs.multipleSelection.clearSelection()
      this.showTroubleshooting = false
    },
    // 保存按钮
    handleSave() {
      let list = []
      list = this.multipleSelection
      console.log(list, 'list')
      this.$emit('addDetail', 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;
}
.fullDialog {
  height: 100%;
  /deep/.el-dialog__body {
    height: 600px;
  }
  /deep/.el-table {
    height: 100%;
    overflow-y: scroll;
  }
}
</style>
  