
<!--
  @description: 代理机构驱动模板--分为后审驱动和资审驱动
  @Modifier：haoFx/肖文龙
  @routerPath:/procurement/procurementDrive
  @date：  2019/11/14-9:43
-->
<template>
  <div>
    <!-- 驱动模版 -->
    <drive
      :drive-data="driveData"
      :back="back"
      :ready-data="readyData"
      :init-data="initData"
      :load-drive="loadDrive"
      :package-change="packageChange"
      :drive-task-change="driveTaskChange"
      :no-main-flow-menu-list="noMainFlowMenuLoad()"
    >
      <!-- 驱动-头部信息 -->
      <template v-slot:header />
    </drive>
  </div>
</template>

<script>
/* api*/
import { getProjectDriveTask } from '@/api/procurement/biddingBiddriver' // 获取采购驱动信息
import { beingeTackInProjectDeatils } from '@/api/procurement/procurementProject' // 获取项目信息
/* 组件*/
import drive from '@comp/common/drive/drive'// 驱动

export default {
  name: 'ProcurementDrive',
  provide() {
    return {
      getTenderBase: this.getTenderBase // 项目信息
    }
  },
  components: {
    drive // 驱动
  },
  data() {
    return {
      driveData: {
        tenderName: '', // 项目名称
        driveIconType: '02' // 图标使用状态 00 默认 01 自定义icon 02 序列号
      },
      tenderBase: {
        tenderId: '', // 项目Id
        packId: '', // 标段id
        isChangeShow: '', // 是否显示变更按钮 00不显示 01 显示
        // --------------------------------------------------------
        tenderMethod: '', // 采购方式 11 询价 12 单一来源 13竞争性谈判 14竞价
        tenderType: '', // 采购项目类型 00 公开 01 邀请
        sourceType: true, // true 非B类项目 falseB类项目
        isSecondProject: '', // 00 询价未发起二次 01已发起二次询价
        qualificationMethod: '', // 资格审查方式 00资格预审,01 资格后审
        purchaseProjectStatus: '', // 项目状态
        tenderName: '', // 项目名称(编号+项目名称)
        tenderNo: '', // 采购项目编号
        quoteEndTime: '', // 截止时间
        sourceIsOnlyCheck: '', // 是否仅有查看权限 null/00:否 01:是
        isPack: '', // 是否分包 00 不分包 01 分包
        isChangeType: '', // 是否变更 00 不变更 01 变更
        isEmergencyProcurement: '' // 是否紧急采购 仅针对询价 00否 01 是
        // flowStatus: '' // 是否工作流 00 否 01
      }
    }
  },
  methods: {
    // 需要初始化的内容
    readyData() {
      this.tenderBase = {
        ...this.tenderBase,
        ...this.$route.params
      }
    },
    // 返回
    back() {
      // 获取采购方式
      const back = this.tenderBase.tenderMethod
      // 返回路由
      const backPathObj = {
        '11': '/procurement/enquiryManageList', // 询价-项目管理列表
        '12': '/procurement/singleSourceManageList', // 单一来源-项目管理列表
        '13': '/procurement/competitiveManageList', // 竞争性谈判-项目管理列表
        '14': '/procurement/qutcryManageList' // 竞价-项目管理列表
      }
      this.$router.push(backPathObj[back])
    },
    // 获取项目信息
    getTenderBase() {
      return this.tenderBase
    },
    // 获取标段(包)信息
    initData(setPackage) {
      beingeTackInProjectDeatils(this.tenderBase.packId).then((response) => {
        this.tenderBase.tenderId = response.data.tenderId // 项目id
        this.driveData.tenderName = '【' + response.data.tenderNo + '】' + response.data.tenderName // 采购项目编号名称
        this.tenderBase.tenderName = response.data.tenderName // 采购项目名称
        this.tenderBase.tenderNo = response.data.tenderNo // 采购项目编号
        this.tenderBase.packName = response.data.tenderName // 标段名称
        this.tenderBase.packNo = response.data.tenderNo // 标段编号
        this.tenderBase.tenderMethod = response.data.tenderMethod // 采购方式 11 询价 12 单一来源 13竞争性谈判 14竞价
        this.tenderBase.tenderType = response.data.tenderType // 采购项目类型 00 公开 01邀请
        this.tenderBase.purchaseProjectStatus = response.data.purchaseProjectStatus // 采购项目状态
        this.tenderBase.isSecondProject = response.data.isSecondProject // 00 询价未发起二次 01已发起二次询价
        this.tenderBase.sourceType = response.data.sourceType.indexOf('01A') !== -1 // 项目的组织形式 01A(计划管控平台委托B类项目)01B(计划管控平台自采非B类)02A(采购平台录入委托非B类)02B(采购平台自采非B类)
        this.tenderBase.quoteEndTime = response.data.quoteEndTime // 截止时间
        this.tenderBase.isEmergencyProcurement = response.data.isEmergencyProcurement // 是否紧急采购
        setPackage(this.tenderBase.packId)// 设置标段
      })
    },
    /*
    * 切换标段-回调
    *  packId 当前标段参数
    * */
    packageChange(item) {
      this.tenderBase.packId = item.packId// 标段id
    },
    /* =========================================主流程菜单部分========================================= */
    /*
    * 获取驱动步骤菜单
    * packId 当前标段Id
    * */
    async loadDrive() {
      const params = {
        packId: this.tenderBase.packId, // 标段Id
        tenderType: '01' // 项目类型（null/00 代表招标 01 代表采购）
      }
      // 接口
      return await getProjectDriveTask(params).then(response => {
        const { data: { isPack, currentStageType, qualificationMethod, mainBidtProjectDriverDriveProjectPackVoList, projectDriveListMap, qualificationProjectDriveMap }} = response
        this.tenderBase.isPack = isPack // 是否分包 00 不分包 01 分包
        this.tenderBase.qualificationMethod = qualificationMethod // 资格审查方式 00资格预审,01 资格后审
        return {
          currentStageType: currentStageType || '01', // 资格预审 00  资格后审 01 展示驱动
          driveTaskList: mainBidtProjectDriverDriveProjectPackVoList, // 主驱动
          projectDriveListMap, // 子驱动-后审
          qualificationProjectDriveMap // 子驱动-预审
        }
      })
    },
    /*
      * 切换二级步骤节点tab
      * item 二级步骤节点参数
      * */
    driveTaskChange(item) {
      this.tenderBase.tenderId = item.tenderId
      this.tenderBase.packId = item.packId
    },
    /* =========================================非主流程菜单部分========================================= */
    /*
    * 初始化当前非主流程节点的二级步骤tab
    * */
    noMainFlowMenuLoad() {
      const secondaryMenuArr = [{
        name: '澄清质疑',
        icon: 'iconfont icon-chengqingchuli',
        path: '/procurement/procurementDrive/procClarificationQuestionReply',
        child: [
          {
            name: '投标人提出的问题',
            path: '/procurement/procurementDrive/procClarificationQuestionReply/procClarificationQuestionList'
          },
          {
            name: '采购方澄清',
            path: '/procurement/procurementDrive/procClarification/procClarificationList'
          },
          {
            name: '标中澄清',
            path: '/procurement/procurementDrive/procEvaluateClarify/procEvaluateClarifyList'
          }
        ]
      }]
      return secondaryMenuArr
      // if (this.tenderBase.tenderMethod === '12' || this.tenderBase.tenderMethod === '13' || this.tenderBase.tenderMethod === '14') {
      //   return secondaryMenuArr
      // } else {
      //   secondaryMenuArr.push(
      //     {
      //       name: '采购方式变更',
      //       icon: 'iconfont icon-chengqingchuli',
      //       path: '/procurement/procurementDrive/procurmentMethodChange',
      //       tenderId: this.tenderBase.tenderId
      //     }
      //   )
      //   return secondaryMenuArr
      // }
    }
  }
}
</script>

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