/*
  @description: 立项-招标项目信息公共方法
  @Modifier: haoFx/肖文龙
  @routerPath:
  @date: 2019/12/22-14:41
*/
import { queryTenderProjectInitInfo } from '@/api/bidding/biddingProject'// 获取信息 字典信息
export const bidProjectInfo = {
  data() {
    return {
      // 基本信息字段
      formData: {
        industryName: '', // 招标项目类型
        currencies: '156', // 币种
        budgetTotalMoney: '', // 项目总概算
        contractCode: '', // 委托合同代码
        contractId: '', // 委托合同id
        contractName: '', // 委托合同名称
        id: '', // 项目id
        isProcurementPlan: '00', // 是否有采购计划 00 否 01是
        palceAddress: '', // 实施地点
        location: [], // 项目区域三级联动编码 =》前端展示，不需要传给后端
        projectAreaCode: '', // 项目区域编码
        projectAreaName: '', // 项目区域名称=》默认显示
        qualificationMethod: '01', // 资格审查方式 00:资审 01:后审
        tenderMethod: '', // 采购方式/招标方式 以数据库字典表中数据为准
        tenderName: '', // 项目名称
        tenderNo: '', // 项目编号
        tenderOrgMethod: '', // 组织形式 00:自主招标 01:委托招标
        projectNature: '', // 项目性质
        constructionProjectId: '', // 建设项目Id
        constructionProjectName: '', // 建设项目名称
        constructionProjectCode: '', // 建设项目代码
        systemSource: '00', // 系统内/外 00:集团内 01:集团外
        purchaseType: '00', // 采购类别  00:基建类 01:生产类
        purchaseClassification: '00', // 采购分类 00:物资类 01:非物资类
        purchaseContentClassification: '', // 采购内容分类
        purchaseLevel: '00', // 采购级别
        projectIndustry: '', // 项目行业
        tenderType: '', // 招标项目类型
        tenderingArea: '', // 项目内容范围
        beyondLegalLimit: '', // 是否限额以下(00否 01是)
        isLegalTender: '', // 是否依法必招(00否 01是)

        /* 华能字段*/
        buyersTenderNo: '', // 招标人项目编号
        agentServiceFeePeople: '00', // 招标代理服务费收取对象(00中标人 01招标人)
        agentServiceFeeMethod: '', // 招标代理服务费收取方式(00差额定率累进制 01固定金额 02固定比例)
        declarePerson: '', // 申报责任人
        unitCapacity: '', // 机组容量
        libraryProfessional: '', // 入库专业
        libraryProfessionalId: '', // 入库专业id
        projectIndustryName: ''
      },
      // 字典信息
      allTenderMethodTypeList: [], // 所有类型招标方式
      bidTypeList: [], // 招标方式
      bidMethodTypeList: [], // 公开方式
      inquiryMethodTypeList: [], // 公开方式-询比
      negotiationMethodTypeList: [], // 公开方式-谈判
      orgMethodList: [], // 组织形式
      phaseTypeList: [], // 资审方式
      projectNatureList: [], // 项目性质
      systemSourceList: [], // 系统内/外
      purchaseTypeList: [], // 采购类别
      projectClassificationList: [], // 项目分类
      purchaseClassificationList: [], // 采购分类
      purchaseContentClassList: [], // 采购内容分类
      projectIndustryList: [], // 项目行业分类
      purchaseLevelList: [], // 采购级别
      currenciesList: [], // 币种
      // 是否依法必招
      isLegalTenderList: [
        { typename: '依法必招', typecode: '01' },
        { typename: '非依法必招', typecode: '00' }
      ],
      // 是否限额以下
      beyondLegalLimitList: [
        { typename: '限额以上', typecode: '01' },
        { typename: '限额以下', typecode: '00' }
      ],
      /* 华能字段*/
      agentServiceFeeMethodList: [
        { typename: '差额定率累进制', typecode: '00' },
        { typename: '固定金额', typecode: '01' },
        { typename: '固定比例', typecode: '02' }
      ],
      // 服务费收取对象
      agentServiceFeePeopleList: [
        { typename: '中标人', typecode: '00' },
        { typename: '招标人', typecode: '01' }
      ],
      isShowConstructionProject: '', // 建设项目配置00 否 01是
      isShowContract: '' // 委托合同配置00 否 01是
    }
  },
  mounted() {
    this.initWebTypeGroup()// 字典信息
  },
  methods: {
    // 询比、谈判设置默认 区分菜单列表类型 00招标立项 89招标谈判 67招标询比
    initDefault() {
      const sessionTenderMethodType = sessionStorage.getItem('tenderMethodType')
      const tenderMethodType = sessionTenderMethodType || this.$route.query.tenderMethod
      if (tenderMethodType !== '00') {
        this.formData.projectNature = '03' // 项目性质 03其它
        this.formData.beyondLegalLimit = '00' // 是否限额以下(00否 01是)
        this.formData.isLegalTender = '00' // 是否依法必招(00否 01是)
      }
      // 招标方式
      if (tenderMethodType === '00') {
        if (!this.formData.tenderMethod) this.formData.tenderMethod = '00'
      }
      // 89招标谈判
      if (tenderMethodType === '89' || tenderMethodType === '08' || tenderMethodType === '09') {
        this.bidMethodTypeList = this.negotiationMethodTypeList
        if (!this.formData.tenderMethod) this.formData.tenderMethod = '08'
      }
      // 67招标询比
      if (tenderMethodType === '67' || tenderMethodType === '06' || tenderMethodType === '07') {
        this.bidMethodTypeList = this.inquiryMethodTypeList
        if (!this.formData.tenderMethod) this.formData.tenderMethod = '06'
      }
      // 04招标单一来源
      if (tenderMethodType === '04') {
        this.bidMethodTypeList = this.singleSourceMethodTypeList
        if (!this.formData.tenderMethod) this.formData.tenderMethod = '04'
      }
      // 23招标竞争性磋商
      if (tenderMethodType === '23') {
        this.bidMethodTypeList = this.consultationsMethodTypeList
        if (!this.formData.tenderMethod) this.formData.tenderMethod = '02'
      }
    },
    // 立项-字典信息
    async initWebTypeGroup() {
      await queryTenderProjectInitInfo().then(res => {
        this.isShowConstructionProject = res.data.isConstructionProject // 是否有建设项目 00 否 01是
        this.isShowContract = res.data.isContract // 是否有委托合同 00 否 01是
        sessionStorage.setItem('isProcurementPlan', res.data.isProcurementPlan) // 是否有招标计划 00 否 01是
        // 遍历key存储相应的数据
        for (const key in res.data) {
          /* 是否有数据*/
          if (res.data[key]) {
            this[key + 'List'] = res.data[key].typeList
          }
        }
        this.initDefault()
      })
    },
    // 获取字典方法
    initGroup() {
      const data = [
        'allTenderMethodType' // 招标方式
      ]
      this.$store.dispatch('getGroupType', data).then(res => {
        Object.keys(res.bidTypeData).forEach((key) => {
          this[key] = res.bidTypeData[key]
        })
      })
    }
  }

}
