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

<script>
/* api*/
import { getSupplierDriveTask } from '@/api/procurement/biddingBiddriver' // 获取供应商驱动信息
import { beingeTackInProjectDeatils } from '@/api/procurement/procurementProject' // 获取项目信息

/* 组件*/
import drive from '@comp/common/drive/drive'// 驱动

export default {
  name: 'ProcurementDriveSupplier',
  provide() {
    return {
      getTenderBase: this.getTenderBase// 项目信息
    }
  },
  components: {
    drive // 驱动
  },
  data() {
    return {
      driveData: {
        tenderName: '', // 项目名称
        driveIsOpenKey: 'processStatus', // 驱动主节点-状态-key名称
        driveOpenVal: '02', // 驱动主节点-状态-开启/完成value
        driveIconType: '02' // 图标使用状态 00 默认 01 自定义icon 02 序列号
      },
      tenderBase: {
        tenderId: '', // 项目Id
        packId: '', // 标段id
        signUpId: '', // 报名id
        type: '', // 从哪进来的 01 已完成列表 null 正在进行中列表
        // --------------------------------------------------------
        tenderMethod: '', // 采购方式 11 询价 12 单一来源 13竞争性谈判 14竞价
        tenderType: '', // 采购项目类型 00 公开 01 邀请
        qualificationMethod: '', // 资格审查方式 00资格预审,01 资格后审
        tenderName: '', // 项目名称
        quoteEndTime: '', // 截止时间
        isPack: '' // 是否分包 00 不分包 01 分包
      }
    }
  },
  methods: {
    // 需要初始化的内容
    readyData() {
      this.tenderBase = {
        ...this.tenderBase,
        ...this.$route.params
      }
    },
    // 返回
    back() {
      // 获取采购方式
      const back = this.tenderBase.tenderMethod
      // 获取type值 01 已完成
      const type = this.tenderBase.type
      // 返回路由
      const backPathing = {
        '11': '/procurement/enquiryPaticipating', // 询价-正在参与列表
        '12': '/procurement/singleSourcePaticipating', // 单一来源-正在参与列表
        '13': '/procurement/competitivePaticipating', // 竞争性谈判-正在参与列表
        '14': '/procurement/qutcryPaticipating' // 竞价-正在参与列表
      }
      const backPathObj = {
        '11': '/procurement/enquiryCompleted', // 询价-项目管理列表
        '12': '/procurement/singleSourceCompleted', // 单一来源-项目管理列表
        '13': '/procurement/competitiveCompleted', // 竞争性谈判-项目管理列表
        '14': '/procurement/qutcryCompleted' // 竞价-项目管理列表
      }
      // 01 代表已完成
      if (type === '01') {
        this.$router.push(backPathObj[back])
      } else {
        this.$router.push(backPathing[back])
      }
    },
    // 获取项目信息
    getTenderBase() {
      return this.tenderBase
    },
    // 获取标段(包)信息
    initData(setPackage) {
      beingeTackInProjectDeatils(this.tenderBase.packId).then((response) => {
        this.tenderBase.tenderId = response.data.tenderId
        this.driveData.tenderName = '【' + response.data.tenderNo + '】' + response.data.tenderName// 采购项目名称
        this.tenderBase.tenderName = response.data.tenderName // 采购项目名称
        this.tenderBase.tenderMethod = response.data.tenderMethod // 采购方式 11 询价 12 单一来源 13竞争性谈判 14竞价
        this.tenderBase.tenderType = response.data.tenderType // 采购项目类型 00 公开 01邀请
        this.tenderBase.quoteEndTime = response.data.quoteEndTime // 截止时间
        this.tenderBase.packName = response.data.tenderName // 标段名称
        this.tenderBase.packNo = response.data.tenderNo // 标段编号
        setPackage(this.tenderBase.packId)// 设置标段
      })
    },
    /*
    * 切换标段-回调
    *  packId 当前标段参数
    * */
    packageChange(item) {
      this.tenderBase.packId = item.packId// 标段id
      this.tenderBase.tenderId = item.tenderId// 项目id
    },
    /* =========================================主流程菜单部分========================================= */
    /*
    * 获取驱动步骤菜单
    * packId 当前标段Id
    * */
    async loadDrive() {
      const params = {
        packId: this.tenderBase.packId, // 标段Id
        tenderType: '01' // 项目类型（null/00 代表招标 01 代表采购）
      }
      // 接口
      return await getSupplierDriveTask(params).then(response => {
        const { data: { currentStageType, qualificationMethod, supplierDriveList }} = response
        this.tenderBase.qualificationMethod = qualificationMethod // 资格审查方式 00资格预审,01 资格后审
        return {
          currentStageType: currentStageType || '01', // 资格预审 00  资格后审 01 展示驱动
          driveTaskList: supplierDriveList // 主驱动
        }
      })
    },
    /*
      * 切换主流程步骤节点
      * item 主流程步骤节点参数
      * */
    driveTaskChange(item) {
      this.tenderBase.packId = item.packId// 标段id
      this.tenderBase.tenderId = item.tenderId// 项目id
    },
    /* =========================================非主流程菜单部分========================================= */
    /*
    * 初始化当前非主流程节点的二级步骤tab
    * */
    noMainFlowMenuLoad() {
      const secondaryMenuArr = [{
        name: '澄清质疑',
        icon: 'iconfont icon-chengqingchuli',
        path: '/procurement/procurementDriveSupplier/procClarificationQuestionSupplier',
        child: [
          {
            name: '供应商澄清',
            path: '/procurement/procurementDriveSupplier/procClarificationQuestionSupplier/procObjectionList'
          },
          {
            name: '采购方澄清',
            path: '/procurement/procurementDriveSupplier/procClarificationSupplier/procClarificationSupList'
          },
          {
            name: '标中澄清',
            path: '/procurement/procurementDriveSupplier/procEvaluateClarifySupplier/procEvaluateClarifySupList'
          }
        ]
      }]
      return secondaryMenuArr
    }
    /*
    * 切换二级步骤节点tab
    * item 二级步骤节点参数
    * */
    // noMainFlowMenuChange(item) {
    //   this.tenderBase.packId = item.packId// 标段id
    //   this.tenderBase.tenderId = item.tenderId// 项目id
    // }
  }
}
</script>

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