<!--
  @description:供应商-报价进行页-可一轮可多轮
  @Modifier:gmy
  @routerPath:/procurement/procurementDriveSupplier/proOfferSupplierContent/offferNonbidding
  @routerPath:procurement/procurementDriveSupplier/offferNonbidding
  @date:2020/8/12-14:52
-->
<template>
  <div>
    <el-tabs v-if="offerlist.length>0 && tenderBase.tenderMethod !== '11'" v-model="activeValue" class="p0-16 driveStep" @tab-click="handleClick">
      <el-tab-pane
        v-for="(item,index) in offerlist"
        :key="index"
        :label="item.name"
        :name="item.type"
      />
    </el-tabs>
    <!-- 为了区分【单一来源/竞谈】 谈判纪要tab 和 询价没有轮次 -->
    <!--    <el-tabs v-if="offerlist.length>1 && tenderBase.tenderMethod === '11'" v-model="activeValue" @tab-click="handleClick">
      <el-tab-pane
        v-for="(item,index) in offerlist"
        :key="index"
        :label="item.name"
        :name="item.type"
      />
    </el-tabs>-->
    <!-- useStatus 项目报价专家 01正在报价 05本轮次结束 07终止报价  -->
    <!-- offerStatus 当前轮次项目状态 00 02 编辑和修改报价 03报价时间截止未报价 04报价时间截止后已完成报价  01 查看报价 -->
    <OfferNoTables v-if="supplierInfo.stageId" :key="activeValue" :supplier-info="supplierInfo" :offer-list="offerlist" :activeValue="activeValue"/>
    <!-- 签章列表 -->
    <offer-report-review v-if="reportReviewFlag" :tender-base="tenderBase" :supplier-info="supplierInfo" />
  </div>
</template>
<script>
/* 接口*/
import { distinguishBetween } from '@/api/procurement/procurementProject' // 获取项目采购方式和轮次id
import {
  getSupplierBySignatureReportByPackId
} from '@/api/procurement/procurementEvaluation'
/* 公共组件*/
import OfferNoTables from './procurementOfferUnderWay-add' // 未填写报价编辑
import offerReportReview from './procurementOfferReportReviewExpert-add' // 签章报表

export default {
  name: 'OffferNobiddingEnit',
  inject: ['getTenderBase'],
  components: {
    OfferNoTables, // 供应商报价组件
    offerReportReview // 签章列表
  },
  data() {
    return {
      activeValue: '', // 当前索引
      offerlist: [], // 供应商报价轮次数据
      useStatus: '', // 报价状态字段 00报价未开启 01 报价进行中 02报价暂停 03进入延迟倒计时 04延迟竞拍中 05报价结束
      quoteEndTime: '', // 报价截止时间
      // 报价数据参数
      supplierInfo: {
        offerStatus: '', // 供应商最最新轮次报价状态
        stageId: '', // 轮次id
        quoteEndTime: '', // 报价截止时间
        supplierId: '', // 供应商id
        /*
          offerStatus 当前轮次项目状态 00 02 编辑和修改报价 03报价时间截止未报价 04报价时间截止后已完成报价
          useStatus 项目报价状态 05 已结束本轮次报价 07 该项目终止报价 不可编辑的 01 未报价
          默认false不可编辑
          */
        isEdit: false
      },
      tenderBase: this.getTenderBase(),
      reportReviewFlag: false // 是否展示签章报表
    }
  },
  created() {
    const packId = this.tenderBase.packId
    if (packId) {
      // 获取报价轮次数据
      this.getDistinguishBetween(packId)
    }
  },
  methods: {
    /*
     获取供应商报价轮次信息请求
     入参:packId当前项目的标段id
    */
    getDistinguishBetween(packId) {
      distinguishBetween(packId).then(res => {
        this.supplierInfo.nowTime = res.data.nowTime // 获取当前时间
        this.supplierInfo.offerStatus = res.data.offerStatus // 获取当项目状态
        this.supplierInfo.supplierId = res.data.supplierId // 供应商id
        this.supplierInfo.quoteType = res.data.quoteType // 报价要求  00允许部分报价   01必须全部报价
        // 报价轮次列表 后端返回轮次数组需要翻转处理
        this.offerlist = res.data.stageList.reverse().map((item, index) => {
          // 默认最后一轮默认高亮显示
          this.activeValue = index.toString()
          // 默认展示最后一组报价状态数据
          this.useStatus = item.useStatus
          // 获取最后一组数据的轮次id
          this.supplierInfo.stageId = item.id
          // 获取报价截至时间
          this.supplierInfo.quoteEndTime = item.quoteEndTime
          let roundsName = ''
          if (item.isLast === '01') {
            roundsName = '最终轮'
          } else {
            roundsName = '第' + (++index).toString() + '轮报价'
          }
          return {
            ...item,
            activeType: index.toString(),
            name: roundsName
          }
        })
        // 如果采购方式不是询价
        if (this.tenderBase.tenderMethod !== '11') {
          // 查询谈判纪要tab 查询当前是否有文件 如果不为空 则展示谈判纪要tab
          this.initBySignatureReport()
        }
        /*
          offerStatus 当前轮次项目状态 00 02 编辑和修改报价（可编辑）--- 03报价时间截止未报价 04报价时间截止后已完成报价 01查看(不可编辑) 06字段未定 默认可编辑
          useStatus 项目报价状态 05 已结束本轮次报价 07 该项目终止报价 不可编辑的 01 未报价
          */
        this.supplierInfo.isEdit = this.useStatus !== '05' && this.useStatus !== '07' && (this.supplierInfo.offerStatus === '00' || this.supplierInfo.offerStatus === '02' || this.supplierInfo.offerStatus === '06')
      }).catch(res => {})
    },
    /*
     是否显示谈判纪要请求
    入参 packId:项目的标段id, supplierId 供应商id
     */
    initBySignatureReport() {
      const data = {
        packId: this.tenderBase.packId,
        supplierId: this.supplierInfo.supplierId
      }
      getSupplierBySignatureReportByPackId(data).then(res => {
        // 如果不为空 则展示谈判纪要tab
        if (res.data !== null && res.data.length > 0) {
          this.offerlist.push({
            name: '谈判纪要'
          })
        }
      })
    },
    // 点击tab切换事件
    handleClick(tab) {
      // 获取当前报价状态
      this.useStatus = this.offerlist.find(item => item.name === tab.label).useStatus
      // 获取当前点击项的文件id
      this.supplierInfo.quoteEndTime = this.offerlist.find(item => item.name === tab.label).quoteEndTime
      // 获取点击当前项的轮次id
      this.supplierInfo.stageId = this.offerlist.find(item => item.name === tab.label).id
      /*
          offerStatus 当前轮次项目状态 00 02 编辑和修改报价 03报价时间截止未报价 04报价时间截止后已完成报价
          useStatus 项目报价状态 05 已结束本轮次报价 07 该项目终止报价(不可编辑的) 01 未报价
          */
      this.supplierInfo.isEdit = this.useStatus !== '05' && this.useStatus !== '07' && (this.supplierInfo.offerStatus === '00' || this.supplierInfo.offerStatus === '02' || this.supplierInfo.offerStatus === '06')
      if (tab.label === '谈判纪要') {
        this.reportReviewFlag = true
      } else {
        this.reportReviewFlag = false
      }
    }
  }
}
</script>

<style lang="less" scoped>
</style>
