<!--
  @description:驱动 -代理机构-查看开标_一步,代理机构-查看开标_两步
  @Modifier:肖文龙
  @routerPath:
  @date:2019/11/12-18:15
-->
<template>
  <div class="main">
    <div>
      <!--开标信息-->
      <dl class="projectInfoDetail">
        <dt>
          <p class="projectInfoDetail_icon">
            <i class="iconfont icon-biaoduanbaoxinxi" />
          </p>
          开标信息
        </dt>
        <dd>
          <table class="tableData">
            <tr>
              <td>开启时间</td>
              <td>{{ rowData.startDecryptTime }}</td>
              <td>开标状态</td>
              <td>
                <span
                  v-for="(item,index) in openingStatusList"
                  v-if="rowData.openingStatus===item.typecode"
                  :key="index"
                >
                  {{ item.typename }}
                </span>
              </td>
            </tr>
            <!--一步开标时展示-->
            <!--            <tr v-if="tableData.length===1" class="singleRow">
              <td>投标文件</td>
              <td colspan="3"><el-button type="primary" @click="dowloadFile('00')">一键下载</el-button></td>
            </tr>-->
            <!--两步开标并且是商务技术开标
              openStageType 01 商务开标
            -->
            <!--            <tr v-if="tableData.length>1&&rowData.openStageType==='01'" class="singleRow">
              <td>商务技术文件</td>
              <td colspan="3"><el-button type="primary" @click="dowloadFile()">一键下载</el-button></td>
            </tr>-->
            <!--两步开标并且是经济开标
            openStageType==='02' 经济开标
            -->
            <tr v-if="tableData.length>1&&rowData.openStageType==='02'" class="singleRow">
              <td>经济开标时间</td>
              <td colspan="3">
                {{ rowData.openingTime }}
              </td>
              <!--             <td>经济文件</td>
              <td><el-button type="primary" @click="dowloadFile()">一键下载</el-button></td>-->
            </tr>
          </table>
        </dd>
      </dl>
      <!--开标一览表-->
      <dl class="projectInfoDetail">
        <dt>
          <p class="projectInfoDetail_icon">
            <i class="iconfont icon-biaoduanbaoxinxi" />
          </p>
          开标一览表
        </dt>
        <dd>
          <el-table
            ref="smallTable"
            :data="bidOpeningList"
            size="small"
            width="500px"
          >
            <el-table-column

              prop="supplierName"
              label="投标单位名称"
              header-align="center"
            />
            <el-table-column
              v-for="(item,index) in bidOpeningTitleList"
              :key="index"

              :prop="item.factorKey"
              :label="item.factorName"
              header-align="center"
            />
          </el-table>
        </dd>
      </dl>
      <!--确认开标结果-->
      <dl class="projectInfoDetail">
        <dt>
          <p class="projectInfoDetail_icon">
            <i class="iconfont icon-biaoduanbaoxinxi" />
          </p>
          确认开标结果
        </dt>
        <dd>
          <el-table
            ref="smallTable"
            :data="confirmBidOpeningResultList"
          >
            <el-table-column

              prop="organizationName"
              label="投标单位名称"
              header-align="center"
            />
            <el-table-column
              :formatter="formatterConfirmStatus"
              prop="confirmStatus"
              header-align="center"
              label="状态"
            />
            <el-table-column
              header-align="center"
              label="操作"
              align="center"
            >
              <template slot-scope="scope">
                <el-link
                  type="primary"
                  @click.stop="viewConfirmationFile(scope.row)"
                >
                  查看确认文件
                </el-link>
              </template>
            </el-table-column>
          </el-table>
        </dd>
      </dl>
    </div>
    <!--查看确认文件-->
    <bidAnnouncement ref="bidAnnouncementDialog" />
  </div>
</template>

<script>
/* 接口*/
import { getBidOpeningResultInfo, getBidOpeningDetailInfo, getConfirmBidOpeningResultInfo } from '@/api/bidding/bidOpening'// 获取开标结果信息
import { downLoadFile } from '@/api/common/uploadCenter'
/* 公共方法*/
import { filterDictText } from '@/assets/js/utils'// 常用方法
import { download } from '@/assets/js/utils'// 下载文件流文件
import { bidOpeningGroupMixin } from './../mixins/bidOpeningGroupMixin'// 全局公共方法》时间转换格式
/* 组件*/
import bidAnnouncement from '@views/bidding/bidOpening/bidAnnouncement/bidAnnouncement-dialog'

export default {
  name: 'BidOpeningResultDetail',
  components: {
    bidAnnouncement
  },
  mixins: [bidOpeningGroupMixin],
  props: {
    // 开标方式 00:一次开标阶段，01:非价格开标阶段，02:价格开标阶段
    openStageType: {
      type: String,
      default: '01'
    }
  },
  data() {
    return {
      tabsList: [{
        name: '第一步开标过程',
        path: '/bidding/projectDrive/bidOpening/bidOpeningResult-detail'
      }, {
        name: '第二步开标过程',
        path: '/bidding/projectDrive/bidOpening/theSecondStepBidOpeningResult-detail'
      }],
      tenderBase: this.$store.getters.tenderBase, // 项目信息
      groupId: this.$store.getters.groupId, // 项目Id 标段Id 阶段Id
      // 开标信息-所有的开标信息
      tableData: [],
      // 当前页面展示的开标信息
      rowData: {
        openStageType: '', // 开标方式 00:一次开标阶段，01:非价格开标阶段，02:价格开标阶段
        bidEvaluationMethod: '', // 评标办法
        industryName: '', // 项目分类
        noteTaker: '', // 记录人
        openingSinger: '', // 唱标人
        startDecryptTime: '', // 开启时间
        openingStatus: '', // 开标状态  00未开标 01开标完成 02开标中
        bidFile: {}, // 投标文件
        openingTime: '' // 开标时间
      },
      confirmBidOpeningResultList: [], // 确认开标结果列表
      // 开标一览表列表-表头
      bidOpeningTitleList: [
        /* {
            factorName: ''// 表头名称
            factorKey:'',//唯一key
          }*/
      ],
      // 开标一览表列表
      bidOpeningList: [
        /* {
            supplierName: '', // 投标单位
            supplierid: '' // 投标单位id
          }*/
      ]
    }
  },
  watch: {
    /*   $route() {
      this.setInitData(this.$route.meta.openStageType)// 循环取出当前要展示的第几步开标
    }*/
    openStageType(val) {
      this.setInitData(val)// 循环取出当前要展示的第几步开标
    }
  },
  created() {
    this.initData()// 获取开标结果信息
    // 查看确认开标结果
    this.getConfirmBidOpeningResult()
  },
  methods: {
    filterDictText, // 字典值替换文本通用方法
    // 查看确认开标结果
    getConfirmBidOpeningResult() {
      const data = {
        stageId: this.groupId.stageId // 阶段Id
      }
      getConfirmBidOpeningResultInfo(data).then(res => {
        this.confirmBidOpeningResultList = res.data
      }).catch(() => {
      })
    },
    // 获取开标结果信息
    initData() {
      const data = {
        stageId: this.groupId.stageId, // 阶段Id
        tenderId: this.groupId.tenderId// 项目Id
      }
      getBidOpeningResultInfo(data).then(res => {
        this.tableData = res.data
        this.setInitData('01')// 循环取出当前要展示的第几步开标
      })
    },
    // 循环取出当前要展示的第几步开标
    setInitData(type) {
      if (this.tableData.length > 1) { // 判断是否是两步开标
        this.tableData.forEach(item => {
          if (item.openStageType === type) {
            this.rowData = item
          }
        })
      } else { // 商务技术一起开标
        this.rowData = this.tableData[0]
      }
      if (this.rowData.startDecryptTime) this.rowData.startDecryptTime = this.$Moment(this.rowData.startDecryptTime).format(this.momentSaveFormat)// 开启时间
      if (this.rowData.openingTime) this.rowData.openingTime = this.$Moment(this.rowData.openingTime).format(this.momentSaveFormat)// 开标时间
      this.initBidOpenList()// 获取开标一览表
    },
    // 获取开标一览表
    initBidOpenList() {
      const data = {
        stageId: this.groupId.stageId, // 阶段Id
        openStageType: this.rowData.openStageType// 开标方式
      }
      getBidOpeningDetailInfo(data).then(res => {
        this.assemblyData(res.data)// 数据组装-开标一览表
      })
    },
    // 数据组装-开标一览表
    assemblyData(data) {
      this.bidOpeningList = [] // 初始化数据
      const { bidtOpenTenderOpeningBidFactor, supplierDetailInfo } = data
      // 循环供应商
      supplierDetailInfo.forEach((item) => {
        const info = {
          supplierName: item.supplierName, // 投标单位
          supplierId: item.supplierId// 投标单位id
        }
        // 循环表头
        bidtOpenTenderOpeningBidFactor.forEach((title, index) => {
          title.factorKey = 'factorValue' + index// 设置唯一key
          // 循环供应商参数
          if (item.bidtOpenTenderOpeningBidSupplierItem) {
            item.bidtOpenTenderOpeningBidSupplierItem.forEach((val) => {
              /* 判断投标单位数据和表头是否匹配*/
              if (title.factorName === val.factorName) {
                // 对相应的投标单位组装数据
                info[title.factorKey] = val.factorValue
              }
            })
          }
        })
        this.bidOpeningList.push(info)// 投标单位列表
      })
      this.bidOpeningTitleList = bidtOpenTenderOpeningBidFactor// 表头数据
    },
    // 下载投标文件
    dowloadFile(type) {
      this.rowData.bidFile.map(item => {
        const params = {
          fileId: item.fileId,
          fileType: item.fileType
        }
        this.$nextTick(() => {
          downLoadFile(params).then((res) => {
            download(res, item.title + '.' + item.extend)
          })
        })
      })
    },
    // 表格字典值替换文本-确认开标结果
    formatterConfirmStatus(row, column, cellValue) {
      return filterDictText(this.confirmBidOpeningResultStatusList, cellValue)
    },
    // 查看确认文件
    viewConfirmationFile() {
      const data = {
        stageId: this.groupId.stageId,
        openStageType: this.rowData.openStageType,
        type: '01' // 00 开标大厅查看唱标结果 01 开标结果查看确认文件
      }
      this.$refs.bidAnnouncementDialog.openBidAnnouncement(data)
    }
  }

}
</script>

<style lang="less" scoped>
  @import "../index";
</style>
