<!--
  @description:立项(步骤条)
  @Modifier:haoFx
  @routerPath:bidding/bidProjectStep
  @date:2019/12/4-17:27
-->
<template>
  <div class="set-up-project">
    <div class="step-wrapper">
      <stepsBar v-if="isShowStep" ref="stepsBar" :active="active" :list="stepsList" :parent-page-data="projectData" :save="save" :step-index="0" />
      <!--页面步骤条-->
    </div>
    <div class="p0-16">
      <router-view ref="project" :project-data="projectData" @stepPage="_stepPage" />
      <!-- router-view  嵌套子组件页面-->
      <!--changeStep  stepPage procurementP  给子组件传值  自定义的名称-->
    </div>
  </div>
</template>

<script>
import stepsBar from '@comp/common/stepsBarParams'
import { bidProjectStepsList, flowStepsList, bidProjectStepsListHN, bidNegotiableProjectStepList, bidInquiryProjectStepList, bidSingleSourceProjectStepList, bidConsultationProjectStepList } from '../mixins/stepsList'

export default {
  name: 'BidProjectStep',
  components: {
    stepsBar
  },
  data() {
    return {
      flowStatus: this.$route.params.flowStatus, // true 工作流进入驳回编辑
      active: 1, // 在没有保存时，前几active可以点击进行切换
      stepsList: [],
      // 传给子组件编辑带入项目id
      projectData: {
        id: this.$route.params.id
      },
      isShowStep: false // 是否显示步骤条，接口返回数据展示
    }
  },
  watch: {
    // 监听vuex 系统来源
    '$store.getters.systemSourceVo': {
      deep: true,
      handler: function() {
        this.handelFlow()
      }
    },
    // 监听路由
    $route() {
      this.handelFlow()
    }
  },
  destroyed() {
    // 销毁时清除所有cookie
    sessionStorage.clear()
  },
  created() {
    this.$store.dispatch('getSystemSourceConfig').then(() => {
      this.handelFlow()
    })
  },
  methods: {
    handelFlow() {
    // 区分菜单列表类型 00招标立项 89招标谈判 67招标询比 04单一来源 23磋商
      if (this.$route.meta.tenderMethodType) {
        sessionStorage.setItem('tenderMethodType', this.$route.meta.tenderMethodType)
      }
      if (this.$route.meta.tenderMethodType && !this.$route.params.id) {
        this.projectData.id = ''
      }
      const tenderMethodType = sessionStorage.getItem('tenderMethodType')
      // 处理是否工作流进入
      if (this.flowStatus) {
        this.stepsList = flowStepsList // 工作流进入-普通立项进入-步骤条路由不同
        return
      }
      if (tenderMethodType === '00') {
        // 系统来源 00:新产品 01:hn
        if (this.$store.getters.systemConfigSourceVo.systemSource === '01') {
          this.stepsList = bidProjectStepsListHN
        } else {
          this.stepsList = bidProjectStepsList
        }
      }
      if (tenderMethodType === '89') this.stepsList = bidNegotiableProjectStepList // 招标谈判方式
      if (tenderMethodType === '67') this.stepsList = bidInquiryProjectStepList // 询价方式
      if (tenderMethodType === '04') this.stepsList = bidSingleSourceProjectStepList // 单一来源
      if (tenderMethodType === '23') this.stepsList = bidConsultationProjectStepList // 竞争性磋商

      if (this.stepsList.length > 0) {
        this.isShowStep = true
      } else {
        this.isShowStep = false
      }
    },
    // 控制上一步 下一步跳转页面 子组件传给父组件
    // prev 上一步 next 下一步 或者是数字直接指定展示第几步的页面
    _stepPage(page) {
      // 调用步骤条-组件方法
      this.$refs.stepsBar.stepPage(page)
    },
    /*
      * 暂存接口
      * type参数 draft 点击步骤条切换-进行保存草稿
      * */
    save(type) {
      // 调用立项页面的方法-暂存草稿
      /* 注释： 立项tab切换不调用保存接口*/
      // if (this.$refs.project.saveData) {
      //   this.$refs.project.saveData(type)
      // }
    }
  }
}
</script>

<style lang="less" scoped>
  .step-wrapper {
    padding: 20px 16px;
  }
</style>
