/*
*  @description: 开标公共方法
  @Modifier: haoFx
  @routerPath:
  @date: 2020/4/2-16:48
  * */
/* api*/
import { getTime } from '@api/common/tools.js' // 获取服务器时间
import { getSystemConfigValueByConfigType } from '@/api/common/systemConfigCenter'
export const bidOpeningMixin = {
  data() {
    return {
      /* 定时器调用时间 bidderNumberTimer--使用接口
      1.查看某标段开标详情列表
      2.获取该阶段已投标已签到已解密解密失败总次
      3.分包获取该阶段集合下开标详情列表
      * */
      bidderNumberTimer: 2000, // 定时器调用时间
      validBidderSumNumber: 5000, // 开标大厅-开标前定时器调用时间 (有效投标人家次和不满足三家有效投标人标段数)
      refreshRedisStatusTimer: 30000, // 刷新解密状态
      millisec: '120000', // 控制刷新按钮计时时间（两分钟内不可点击）
      todayOpeningInfo: {
      /*  "bidDocumentDecryptionMethod": "string", // 投标文件解密方式 00:投标人解密 01:服务端集中解密
        "discontentThreeBidderPackageNumber": 0, // 不满足三家投标人标段数
        "openBidStartTime": "string", // 开标时间
        "openStageType": "string", // 00一次开标阶段(商务技术经济)，01非价格开标阶段(商务技术)，02价格开标阶段(经济)
        "packageNumber": 0, // 标段数
        "stageIds": "string", // 阶段id集合
        "tenderNumber": 0, // 项目数
        "validBidderNumber": 0 // 有效投标人家数*/
      }, // 开标信息
      openTypeStageIds: {}, // 开标类型stage（多次使用参数）
      // 开标类型标题 00一次开标阶段(商务技术经济)，01非价格开标阶段(商务技术)，02价格开标阶段(经济)
      openStageTypeTitle: '',
      sysCurrentTime: '', // 系统当前时间
      presentTime: '', // 当前时间-显示开标等待大厅左侧（实施更新时间）
      setTimeoutCurrentTimer: null,
      bidAnnouncementText: '唱标', // 唱标按钮文字
      bidInfoToggleArr: ['可解密', '有效投标'],
      bidPackInfoToggleArr: ['可解密', '已投标'],
      currentIndex: 0, // 当前切换选中
      refreshDisabled: false, // 更多操作-刷新禁用
      tenderOpenVideoConferenceDisplay: '' // 视频会议是否显示: 00 不显示 01 显示
    }
  },
  created() {
    this.todayOpeningInfo = JSON.parse(sessionStorage.getItem('todayOpeningInfo'))
    this.openTypeStageIds = {
      // 00一次开标阶段(商务技术经济)，01非价格开标阶段(商务技术)，02价格开标阶段(经济)
      openStageType: this.todayOpeningInfo.openStageType,
      stageIds: this.todayOpeningInfo.stageIds, // 阶段id集合
      bidDocumentDecryptionMethod: this.todayOpeningInfo.bidDocumentDecryptionMethod, // 投标文件解密方式 00:投标人解密 01:服务端集中解密
      openBidStartTime: this.todayOpeningInfo.openBidStartTime // 开标时间
    }
  },
  beforeDestroy() {
    clearInterval(this.setTimeoutCurrentTimer)
    this.setTimeoutCurrentTimer = null
  },
  mounted() {
    this.getOpenStageTypeTitle()
  },
  methods: {
    // 判断开标类型
    getOpenStageTypeTitle() {
      switch (this.todayOpeningInfo.openStageType) {
        case '00':
          this.openStageTypeTitle = '商务技术经济标'
          break
        case '01':
          this.openStageTypeTitle = '商务技术标'
          break
        case '02':
          this.openStageTypeTitle = '经济标'
          break
        case '03':
          this.openStageTypeTitle = '商务技术标'
          this.bidAnnouncementText = '完成'
          break
      }
    },
    // 获取系统当前时间
    getCurrentTime(type) {
      getTime().then(res => {
        this.sysCurrentTime = res.data.time
        // 获取显示左侧小屏幕当前时间（实施更新当前时间）
        if (type === 'setIntervalTime') {
          this.setIntervalGetCurrentTime()
        }
      }).catch(() => {
      })
    },
    // 定时获取当前时间
    setIntervalGetCurrentTime() {
      const that = this
      let presentTime = that.sysCurrentTime.replace(/-/g, '/') // 处理ie不兼容日期格式
      if (presentTime) {
        process.nextTick(function() {
          that.setTimeoutCurrentTimer = setInterval(() => {
            let t = new Date(presentTime).getTime()
            t += 1000
            presentTime = t
            that.presentTime = that.$Moment(presentTime).format('YYYY-MM-DD HH:mm:ss')
          }, 1000)
        })
      }
    },
    // 视频会议是否显示: 00 不显示 01 显示
    getReSingingButtonDisplay() {
      getSystemConfigValueByConfigType('tenderOpen-videoConferenceDisplay').then(res => {
        this.tenderOpenVideoConferenceDisplay = res.data
      }).catch(() => {
      })
    }
  }
}
