/*
  @description:邀请函公用字典
  @Modifier:肖文龙/haoFx
  @routerPath:
  @date:2020-1-3 17:49
*/
import { getInvitationPublishMethodInitInfo, getTenderDocumentInitInfo, getTenderQualificationInitInfo, getBidDocumentSubmitChannelInitInfo, getInvitationOpenInitInfo, getTenderBailPriceInitInfo } from '@/api/bidding/bidInvitation'
import { getSystemConfigValueByConfigType } from '@/api/common/systemConfigCenter'
export const tenderInvitationInitGroupMixin = {
  data() {
    return {
      tenderBase: this.$store.getters.tenderBase, // 项目信息
      requestSource: '', // 来源 03:资审邀请函 04:后审邀请函
      isPlatformEconomicOpeningTime: '00', // 是否在平台录入经济开标时间 00否在工具端录入 01是在平台录入
      /* ==============================邀请函-前端控制==============================*/
      // 开标时间及地址-字典标题
      dict: {
        kbsj: '', // 开标时间
        kbdd: '' // 开标地点
      },
      /* ==============================邀请函==============================*/
      // 项目概况与招标范围
      publishMethodList: [], // 本次招标标段
      // 招标文件获取-获取标书费相关字典信息
      documentMethodList: [], // 标书金额设置
      receiveMethodList: [], // 标书获取方式
      // 资格要求获取字典信息
      qualificationTypeList: [], // 资质类型
      projectClassificationList: [], // 资格要求类型
      // 获取投标文件递交字典初始化信息
      bidFileSubmitMethodList: [], // 投标文件递交方式
      bidDocumentSubmitDetailAddress: '', // 投标文件递交方式
      // 获取开标方式字典初始化信息
      decryptionMethodList: [], // 标书解密方式
      isSubmitBidPriceList: [], // 第一阶段投标规则
      openingMethodList: [], // 开标方式
      twoBidOpeningMethodList: [], // 两步法开标顺序
      openBidDetailAddress: '', // 开标地点
      // 获取保证金字典初始化信息
      isReceiveTenderBailPriceList: [
        { typename: '开票', typecode: '01' },
        { typename: '不开票', typecode: '00' }
      ], // 是否需要开票
      bailPriceReceiveChannelList: [], // 保证金收取途径
      mediaPartnersList: [], // 指定媒体
      bailPriceMethodList: [], // 保证金收取方式
      bailPriceModeList: [] // 保证金收取方式 00 银企直连  01 线下转账
    }
  },
  created() {
    this.initDict()// 初始化字段标题
    this.handleRequestSource()
    this.getSystemConfigValueByConfigType()
  },
  methods: {
    /* ==============================招标公告-前端控制==============================*/
    // 开标时间及地址-初始化字段标题
    // 00 资审 01 后审
    initDict() {
      if (this.tenderBase.stageType === '00') { // 资审
        // 字典标题
        this.dict = {
          kbsj: '资格预审开启时间',
          kbdd: '资格预审开启地点',
          bidDocumentSubmitChannelLabel: '资格预审申请文件递交途径',
          submitEndTimeLabel: '递交资格预审申请文件截止时间',
          bidDocumentSubmitDetailAddressLabel: '资格预审申请文件递交方式',
          bidDocumentSubmitAddressLabel: '资格预审申请文件递交地址',
          tenderDocumentReceiveTimeLabel: '资格预审文件时间',
          tenderDocumentReceiveMethodLabel: '资格预审文件获取方式',
          tenderDocumentSaleMethodLabel: '资格预审文件金额设置',
          tenderDocumentReceiveAddressLabel: '资格预审文件购买详细地址',
          documentPriceTitle: '资格预审文件费（元）',
          bidDocumentDecryptionMethodLabel: '资格预审文件解密方式'
        }
      }
      if (this.tenderBase.stageType === '01') { // 后审
        // 字典标题
        this.dict = {
          kbsj: '开标时间',
          kbdd: '开标地点',
          bidDocumentSubmitChannelLabel: '投标文件递交途径',
          submitEndTimeLabel: '投标截止时间',
          bidDocumentSubmitDetailAddressLabel: '投标文件递交方式',
          bidDocumentSubmitAddressLabel: '投标文件递交地址',
          tenderDocumentReceiveTimeLabel: '标书获取时间',
          tenderDocumentReceiveMethodLabel: '标书获取方式',
          tenderDocumentSaleMethodLabel: '标书金额设置',
          tenderDocumentReceiveAddressLabel: '标书购买详细地址',
          documentPriceTitle: '标书费（元）',
          bidDocumentDecryptionMethodLabel: '标书解密方式'
        }
      }
    },
    handleRequestSource() {
      // 通过资审和后审判断来源
      if (this.tenderBase.stageType === '00') {
        this.requestSource = '03'// 资审邀请函
      } else if (this.tenderBase.stageType === '01') {
        this.requestSource = '04'// 后审邀请函
      }
    },
    /* 获取是否在平台录入经济开标时间00:否（评标工具录入） 01: 是（平台录入）  */
    getSystemConfigValueByConfigType() {
      getSystemConfigValueByConfigType('isPlatformEconomicOpeningTime').then((res) => {
        this.isPlatformEconomicOpeningTime = res.data
      })
    },
    // 项目概况与招标范围
    getInvitationMethodInitInfo() {
      getInvitationPublishMethodInitInfo().then(res => {
        // 遍历key存储相应的数据
        for (const key in res.data) {
          this[key + 'List'] = res.data[key].typeList
        }
      })
    },
    // 招标文件获取-获取标书费相关字典信息
    getTenderDocumentInitInfo() {
      getTenderDocumentInitInfo().then(res => {
        // 遍历key存储相应的数据
        for (const key in res.data) {
          this[key + 'List'] = res.data[key].typeList
        }
      })
    },
    // 资格要求获取字典信息
    getTenderQualificationInitInfo() {
      getTenderQualificationInitInfo().then(res => {
        // 遍历key存储相应的数据
        for (const key in res.data) {
          this[key + 'List'] = res.data[key].typeList
        }
      })
    },
    // 获取投标文件递交字典初始化信息
    getBidDocumentSubmitChannelInitInfo() {
      getBidDocumentSubmitChannelInitInfo().then(res => {
        // 遍历key存储相应的数据
        for (const key in res.data) {
          if (key === 'bidDocumentSubmitDetailAddress') { // 投标文件递交方式
            this.bidDocumentSubmitDetailAddress = res.data[key]
          } else { // 字典信息
            this[key + 'List'] = res.data[key].typeList
          }
        }
      })
    },
    // 获取开标方式字典初始化信息
    getBulletinOpenInitInfo(decryptMethod) {
      getInvitationOpenInitInfo().then(res => {
        // 遍历key存储相应的数据
        for (const key in res.data) {
          if (key === 'openBidDetailAddress') { // 投标文件递交方式
            this.openBidDetailAddress = res.data[key]
          } else { // 字典信息
            this[key + 'List'] = res.data[key].typeList
          }
        }
        // 开标时间地点页面需调用
        if (decryptMethod) {
          this.getSystemDecryptMethod() // 获取系统配置-解密方式
        }
      })
    },
    // 获取保证金字典初始化信息
    getTenderBailPriceInitInfo() {
      getTenderBailPriceInitInfo().then(res => {
        // 遍历key存储相应的数据
        for (const key in res.data) {
          this[key + 'List'] = res.data[key].typeList
        }
        // 邀请函管理-不勾选推送中招并隐藏该按钮。邀请类的信息都不推送中招
        this.mediaPartnersList = this.mediaPartnersList.filter(i => i.typecode !== '01')
      })
    }
  }
}
