<!--
  @description: 工具端进入开标大厅
  @Modifier: 张慢慢
  @routerPath:/toolProject/bidOpen
  @date: 2021-6-9
-->
<template>
  <div />
</template>

<script>
/* 接口*/
import { getBidOpeningResultInfo } from '@/api/bidding/bidOpening'// 获取开标结果信息
/* 组件*/
export default {
  name: 'BidOpeningHallEntrance',
  components: {
  },
  data() {
    return {
      activeName: '01', // 两步开标默认选择第一步开标过程
      groupId: this.$store.getters.groupId, // 项目Id 标段Id 阶段Id
      // 开标信息-所有的开标信息
      tableData: [],
      rowData: {}, // 当前步骤开标信息
      openStageType: '01', // 00一次开标阶段(商务技术经济)，01非价格开标阶段(商务技术)，02价格开标阶段(经济)
      path: this.$route.path, // 当前路由
      isShowOneStepsBidOpening: false, // 一步开标显隐
      isShowTwoStepsBidOpening: false, // 两步开标显隐
      sessionisShowOneStepsBidOpening: ''// 取sessionStorage有值则显示‘进入开标大厅按钮’
    }
  },
  watch: {
    'rowData.openingStatus'(val) {
      this.todayOpeningInfo()
    }
  },
  created() {
    // 取sessionStorage有值则显示‘进入开标大厅按钮’
    const isBidOpeningBtn = sessionStorage.getItem('isShowOneStepsBidOpening')
    this.sessionisShowOneStepsBidOpening = isBidOpeningBtn || ''
  },
  mounted() {
    this.initData()// 获取开标结果信息
  },
  methods: {
    // 获取开标结果信息
    initData() {
      const data = {
        stageId: this.$route.query.stageId, // 阶段Id
        tenderId: this.$route.query.id// 项目Id
      }
      getBidOpeningResultInfo(data).then(res => {
        this.tableData = res.data // 项目（标段）开标结果
        this.setInitData(res.data)
      })
    },
    // 循环取出当前要展示的第几步开标
    setInitData(bidOpenData) {
      // 判断是否是两步开标大于1是两步开标  否则为一步开标
      if (bidOpenData.length > 1) {
        // twoBidOpenRules：两步开标规则（00 商务技术标开标 01经济标开标）
        if (this.$route.query.twoBidOpenRules === '00') {
          this.rowData = this.tableData[0]
        } else if (this.$route.query.twoBidOpenRules === '01') {
          this.rowData = this.tableData[1]
        }
        this.enterHal()
      } else {
        this.rowData = this.tableData[0]
        /* ====================判断是否开标完成=========================*/
        /*
        * openingStatus 00未开标 01开标完成 02开标中
        * openingStatus === '01' 开标完成进入开标结果
        * 未开标 开标中进入开标大厅
        *  */
        if (this.rowData.openingStatus !== '01') {
          // 如果sessionisShowOneStepsBidOpening有值 表示从开标大厅返回 则显示进入大厅按钮
          // 否则不显示 直接进入开标大厅
          if (this.sessionisShowOneStepsBidOpening !== '00') {
            this.enterHal()
          }
        }
      }
    },
    // 进入大厅
    enterHal() {
      const query = {
        ...this.$route.query
      }
      delete query.token
      // 存储当前开标标包信息
      this.todayOpeningInfo()
      // openingStatus 开标状态  00未开标 01开标完成 02开标中
      // 两步开标时 经济标未设置开标时间不可以进入大厅
      if (this.rowData.openingTime) {
        // 如果开启时间为真 说明已经启动开标 则进入投标人界面 否则进入开标大厅等待界面
        if (this.rowData.openingStatus && this.rowData.openingStatus !== '00') {
          // 进入不分包界面 (查看投标人信息界面)
          this.$router.push({
            path: '/toolProject/noPackageBidOpeningDecryptionRedis',
            query: query
          })
        } else {
          // 进入开标大厅等待界面
          this.$router.push({
            path: '/bidOpeningHall/openingHall',
            query: query
          })
        }
      } else {
        this.$message.warning('未设置经济开标时间')
      }
    },
    // 点击切换tab
    handleClick(tab) {
      this.openStageType = tab.name
      this.initData()
    },
    // 存储当前开标标包信息
    todayOpeningInfo() {
      // session存储当前页面开标信息
      const rowData = {
        path: this.path,
        stageIds: this.$route.query.stageId, // 阶段Id
        openBidStartTime: this.rowData.openingTime, // 开标时间
        bidDocumentDecryptionMethod: this.rowData.bidDocumentDecryptionMethod, // 投标文件解密方式 00:投标人解密 01:服务端集中解密
        openStageType: this.rowData.openStageType, // 00一次开标阶段(商务技术经济)，01非价格开标阶段(商务技术)，02价格开标阶段(经济)
        tenderNumber: 1, // 项目数
        packageNumber: 1, // 标包数
        msTimeShow: true// 倒计时状态
      }
      sessionStorage.setItem('todayOpeningInfo', JSON.stringify(rowData))
    }
  }
}
</script>

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