<!--
  @description:集约化评标-指定专家，集约化评标-查看抽取结果
  @Modifier: 肖文龙
  @routerPath:
  @date: 2020年3月9日16:28:13
-->
<template>
  <div>
    <div>
      <!--指定专家-->
      <div v-if="!isExtractingResults" class="page-title">
        2. 指定专家
        <!--当为编辑状态下展示-->
        <el-button v-if="isEdit" type="primary" @click="addRow()">
          添加专家
        </el-button>
        <!--当为查看状态下展示-->
        <template v-else>
          <!--评委会信息可见&& isEditStatus false 不可编辑状态-->
          <el-button v-if="isShow!=='00'&&!isEditStatus" type="primary" @click="isEditStatus=true">
            专家变更
          </el-button>
          <!--评委会信息不可见&& isEditStatus true 可编辑状态-->
          <el-button v-if="isShow!=='00'&& isEditStatus" type="primary" @click="submit">
            提交审批
          </el-button>
        </template>
      </div>
      <!--随机抽取结果-->
      <section v-else class="p16-0">
        <!--评委会信息不可见-->
        <el-button v-if="groupedStatus==='07'" type="primary" @click="retrievesExtractionResults">
          重新获取抽取结果
        </el-button>
        <!--@click="resetForm"-->
        <!--评委会信息可见&& isEditStatus false 不可编辑状态-->
        <el-button
          v-if="isShow!=='00'&&!isEditStatus && groupedStatus!=='07'"
          type="primary"
          @click="isEditStatus=true"
        >
          专家变更
        </el-button>
        <!--评委会信息不可见&& isEditStatus true 可编辑状态-->
        <el-button v-if="isShow!=='00'&& isEditStatus" type="primary" @click="submit">
          提交审批
        </el-button>
      </section>
    </div>
    <!--列表数据-->
    <section>
      <el-table :data="tableData">
        <el-table-column
          type="index"
          label="序号"
          width="45px"
          fixed="left"
          align="center"
        />
        <!--        <el-table-column
          prop="conId"
          align="center"
          label="条件ID"
          fixed="left"
          min-width="246"
        />-->
        <el-table-column
          header-align="center"
          prop="name"
          label="专家姓名"
          min-width="100"
        />
        <el-table-column
          align="center"
          prop="idCard"
          label="身份证号"
          min-width="100"
        />
        <el-table-column

          header-align="center"
          prop="hereCompany"
          label="工作单位"
          min-width="200"
        />
        <el-table-column
          align="center"
          prop="mobilePhone"
          label="手机号"
          min-width="100"
        />
        <el-table-column
          min-width="110px"
          header-align="center"
          label="职称"
          prop="technicalTitle"
        />
        <el-table-column
          header-align="center"
          prop="businessGroupNumber"
          label="所属地区"
          min-width="200"
        >
          <template slot-scope="scope">
            <!--省，市，区-->
            <span>{{ scope.row.province }}{{ scope.row.city }}{{ scope.row.county }}</span>
          </template>
        </el-table-column>
        <el-table-column
          align="center"
          prop="dataStatus"
          label="状态"
          min-width="150px"
        >
          <template slot-scope="scope">
            <!--当为可编辑状态时-->
            <p v-if="isEditStatus && scope.row.dataStatus==='01'">
              <el-radio-group v-model="scope.row.dataStatus">
                <el-radio v-for="(item,index) in expertStatusLiat" :key="index" :label="item.typecode">
                  {{ item.typename }}
                </el-radio>
              </el-radio-group>
            </p>
            <!--当为不可编辑状态时 -->
            <p v-else>
              <span
                v-for="(item,index) in expertStatusLiat"
                v-if="item.typecode===scope.row.dataStatus"
                :key="index"
              >{{ item.typename }}</span>
            </p>
          </template>
        </el-table-column>
        <el-table-column
          v-if="isEdit"
          header-align="center"
          label="操作"
          align="center"
          width="120"
        >
          <template slot-scope="scope">
            <el-link
              type="primary"
              @click="deleteRow(scope.row,scope.$index)"
            >
              [删除]
            </el-link>
          </template>
        </el-table-column>
      </el-table>
      <!--分页组件-->
      <pagination :pagination-data="paginationData" @change="initData" />
    </section>
    <!--添加专家-->
    <specifyEpertSelectDalog :dialog-data="dialogData" @specifyEpertSelectInfo="specifyEpertSelectInfo" />
  </div>
</template>

<script>
/* api*/
import { queryExtractResultListByJuryId, deleteExpertInfoById, saveExpertInfoStatus, getExpertExtractResult } from
  '@/api/bidding/evaluation.js'
/* api*/
import { queryJuryInformationById } from '@/api/intensiveeval/intensiveeval'
/* 混合开发*/
import { groupMixin } from '@/views/intensiveeval/mixins/intensiveevalGroupMixin'// 字典信息
import { ListMixin } from '@/mixins/ListMixin'// 分页
import pagination from '@comp/common/pagination/pagination'// 分页
/* 组件*/
import specifyEpertSelectDalog from './specifyEpertSelect-dialog'// 添加/编辑屏蔽单位-弹框
export default {
  name: 'SpecifyEpertEditView',
  components: {
    specifyEpertSelectDalog,
    pagination
  },
  mixins: [groupMixin, ListMixin],
  props: {
    // 是否为随机抽取结果查看 布尔值
    isExtractingResults: {
      type: Boolean,
      default: function() {
        return
      }
    }
  },
  data() {
    return {
      groupedStatus: this.$route.query.groupedStatus, // 评委会状态07显示重新获取抽取结果
      isEdit: this.$route.meta.isEdit, // 是否可编辑 布尔值
      isShow: '00', // 组建评标委员会是否可以变更专家状态 00 评委会信息不可见 null或01 评委会信息可见
      isEditStatus: false, // 专家状态是否可编辑 布尔值
      // 专家列表
      tableData: [],
      // 弹窗展示状态
      dialogData: {
        dialog: false // 是否展开 布尔值
      },
      batchNumber: '' // 批次号
    }
  },
  created() {
    this.initData()// 获取数据
    if (this.isEdit) {
      this.getJuryInformation()//  查看评委会相关信息（评委会信息回显）
    }
  },
  methods: {
    //  查看评委会相关信息（评委会信息回显）
    getJuryInformation() {
      const data = {
        juryId: this.$route.query.juryId, // 评委会id-组建评标委员会时用的
        groupId: this.$route.query.groupId // 分组id-组建评标委员会时用的
      }
      queryJuryInformationById(data).then(res => {
        this.batchNumber = res.data.batchNumber
      })
    },
    // 获取数据抽取结果
    initData() {
      this.loading = true
      const stageId = this.$route.query.juryId ? '' : this.$store.getters.groupId.stageId
      const data = {
        queryType: '01', // 查看状态 01全部 不传只看正式状态
        juryId: this.$route.query.juryId, // 评委会Id-组建评标委员会时用的
        stageId: stageId, // 阶段Id>在项目驱动里用的
        pageNo: this.paginationData.pageNo,
        pageSize: this.paginationData.pageSize
      }
      queryExtractResultListByJuryId(data).then(response => {
        this.tableData = response.data.records
        this.paginationData.total = response.data.total
        this.tableData.map(item => {
          // item.isEditStatus = item.dataStatus// 专家状态》不实时更新
          this.isShow = item.isShow // 组建评标委员会是否可以变更专家状态 00 评委会信息不可见 null或01 评委会信息可见
        })
        this.loading = false
      })
    },
    // 保存组装数据-指定专家
    assemblyData() {
      const expertJuryIds = [] // 指定专家-评委会专家关联id集合
      this.tableData.map((item) => {
        expertJuryIds.push({
          expertJuryId: item.expertJuryId, // 评委会专家关联id
          batchNumber: '', // 批次号
          saveJuryInfomationInfoDto: {} // 评委会基本信息
        })
      })
      return expertJuryIds
    },
    // 新增
    addRow() {
      this.dialogData = {
        dialog: true
      }
    },
    // 指定专家——添加专家
    specifyEpertSelectInfo() {
      this.paginationData.pageNo = 1
      this.paginationData.pageSize = 10
      this.initData()// 获取数据
    },
    //  删除
    deleteRow(row, index) {
      this.$confirm('此操作将永久删除该记录, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        confirmButtonClass: 'confirmBtn',
        cancelButtonClass: 'cancelBtn',
        type: 'warning'
      }).then(() => {
        deleteExpertInfoById(row.expertJuryId).then(res => {
          this.$message({
            type: 'success',
            message: '删除成功'
          })
          this.paginationData.pageNo = 1
          this.paginationData.pageSize = 10
          this.initData()// 初始化抽取条件列表
        })
      })
    },
    // 提交审批-专家状态
    submit() {
      const data = []
      // 循环取出要保存的专家参数
      this.tableData.forEach(item => {
        data.push({
          expertId: item.id, // 专家Id
          useStatus: item.dataStatus// 专家状态
        })
      })
      this.$confirm('是否确定提交？', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        confirmButtonClass: 'confirmBtn',
        cancelButtonClass: 'cancelBtn',
        type: 'warning'
      }).then(() => {
        saveExpertInfoStatus(data).then(res => {
          this.$message({
            message: '提交成功',
            type: 'success'
          })
          this.isEditStatus = false // 专家状态是否可编辑 布尔值
          this.loadData()// 获取数据
        })
      })
    },
    /* =============================重新获取抽取结果====================*/
    // 重新获取抽取结果
    retrievesExtractionResults() {
      const params = {
        ut: '3',
        un: 'GX',
        up: 'GXAZJXTKJK',
        pwhid: this.batchNumber
      }
      getExpertExtractResult(params).then(response => {
        this.$message({
          message: '提交成功',
          type: 'success'
        })
        this.$router.push({ path: '/intensiveeval/intensiveevalCommittee-list' })
      }).catch(() => {
      })
    }
  }
}
</script>

<style lang="less" scoped>

</style>
