<!--
  @description: 立项信息-预览操作按钮 标题组件
  @Modifier：肖文龙
  @routerPath:/bidding/bidProjectStep/bidProjectPreview
  @date：  2019-12-18 15:29:26
-->
<template>
  <div>
    <bidProjectPreviewComp :project-data="projectData" />
    <!--保存按钮-->
    <div v-if="!isTool" class="but_footer">
      <div class="but_footer-h">
        <div class="but_footer-but">
          <el-button type="primary" @click="edit('form')">
            编辑
          </el-button>
          <el-button :loading="confirmLoading" type="primary" @click="handleSubmit('form')">
            提交
          </el-button>
        </div>
      </div>
    </div>
    <!--工作流选择节点组件-->
    <processNode-com
      ref="processNode"
      :process-definition-key="processDefinitionKey"
      @processNodeData="processNodeData"
    />
    <!--工作流流程节点/获取审核用户-->
    <depart-dialog
      ref="departDialog"
      :process-node="processNode"
      @isSingleUser="isSingleUser"
      @processInitData="processInitData"
      @submit="submit"
    />
  </div>
</template>

<script>
/* 接口*/
import { submitTenderProjectInfo } from '@/api/bidding/biddingProject'
import bidProjectPreviewComp from './bidProjectPreviewComp'
import processNodeCom from '@views/work/processNodeCom' // 工作流节点组件
import departDialog from '@views/work/depart-dialog' // 工作流审核人员组件
import { workCommonMixins } from '@views/work/mixins/workCommonMixins' // 工作流公共方法
/* 公共方法*/
import workconstant from '@/assets/js/workutils/workconstant' // 工作流存放key文件
export default {
  name: 'BidProjectPreviewAdd',
  components: {
    bidProjectPreviewComp,
    'processNode-com': processNodeCom,
    'depart-dialog': departDialog
  },
  mixins: [workCommonMixins],
  props: {
    // 接收步骤条父页面信息
    projectData: {
      type: Object,
      default: function() {
        return {
          id: ''
        }
      }
    }
  },
  data() {
    return {
      confirmLoading: false, // 提交Loding
      biddingProjectConfigType: this.$store.getters.systemConfigVo.configType, // true启动工作流 false普通审核
      processDefinitionKey: '', // 工作流流程id
      isPack: '', // 是否分包状态 00 不分包 01 分包
      isTool: false // 记录状态 如果是工具单立项提交成功后隐藏提交按钮 true提交按钮隐藏 false显示
    }
  },
  created() {
    // 根据键获取正式配置
    this.$store.dispatch('getSystemConfigValue', 'tenderProject-audit-config').then(() => {
      this.biddingProjectConfigType = this.$store.getters.systemConfigVo.configType // true启动工作流 false普通审核
    }).catch(() => {
    })
  },
  mounted() {
    this.processDefinitionKey = workconstant.biddingProject // 立项工作流key
  },
  methods: {
    // 编辑
    edit() {
      this.$emit('stepPage', 1)
    },
    // 点击提交（处理提交是否走工作流）
    handleSubmit() {
      this.$confirm('确认提交?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        confirmButtonClass: 'confirmBtn',
        cancelButtonClass: 'cancelBtn',
        type: 'warning'
      }).then(() => {
        /* biddingProjectConfigType true启动工作流 false普通审核*/
        if (this.biddingProjectConfigType) {
          // 启动工作流
          if (JSON.stringify(this.processNode) !== '{}' && this.processNode.nodeId) {
            this.$refs.departDialog.getUserDepart(this.processNode)
          }
        } else {
          // 直接提交
          this.submit()
        }
      }).catch(() => {
      })
    },
    // 调用接口提交方法
    submit() {
      this.$store.dispatch('setIsTool')// 获取是否是使用工具端访问
      const dataParams = {
        tenderId: this.projectData.id,
        processToolInitDto: {}
      }
      /* biddingProjectConfigType true启动工作流 添加工作流参数*/
      if (this.biddingProjectConfigType) {
        this.processInitDto.type = '01' // 01：初次提交 02：审核驳回再次提交
        dataParams.processToolInitDto = this.processInitDto // 审核人信息传回得信息
      }
      this.confirmLoading = true
      submitTenderProjectInfo(dataParams).then((res) => {
        this.submitRouterPath()
        this.confirmLoading = false
      }).catch((error) => {
        this.confirmLoading = false
        // 根据后端返回错误汉字进行判断跳转的页面
        if (error === '项目基本信息必填项未填写！') {
          this.$emit('stepPage', 0)
        } else if (error === '相关机构信息为空！') {
          this.$emit('stepPage', 1)
        } else if (error === '标的物信息数据为空！' || error === '标的清单必填项未填写！') {
          this.$emit('stepPage', 2)
        } else if (error === '标段数据为空！' || error === '标段（包）信息必填项未填写！') {
          this.$emit('stepPage', 3)
        }
      })
    },
    // 提交成功后跳转列表
    submitRouterPath() {
      // const roleCode = this.$store.state.user.info.currentRol.roleCode // 当前角色 10 采购人 11代理机构
      const sessionTenderMethodType = sessionStorage.getItem('tenderMethodType')// 区分菜单列表类型 00招标立项 89招标谈判 67招标询比
      if (sessionTenderMethodType === '00') {
        // 判断是否是工具登陆 isTool true工具 false正常浏览器
        if (this.$store.state.app.isTool) {
          this.isTool = true // 如果是工具端设置成true 用来隐藏提交按钮
        // this.$router.push({
        //   path: '/toolProject/bidProjectPreview',
        //   name: 'ToolPreviewProject',
        //   params: {
        //     id: this.projectData.id
        //   }
        // })
        } else {
        // 采购人立项 跳转至采购人查看招标项目列表 否则是代理机构 跳转至代理机构项目管理列表
          /*         if (roleCode === '10') {
            this.$router.push({
              path: '/bidding/buyerTenderProject'
            })
          } else {*/
          this.$router.push({
            path: '/bidding/projectManager'
          })
          // }
        }
      }
      // 89招标谈判
      if (sessionTenderMethodType === '89') {
        this.$router.push({
          path: '/bidding/bidNegotiableProject'
        })
      }
      // 67招标询比
      if (sessionTenderMethodType === '67') {
        this.$router.push({
          path: '/bidding/bidInquiryProject'
        })
      }
      // 04招标单一来源
      if (sessionTenderMethodType === '04') {
        this.$router.push({
          path: '/bidding/bidSingleSourceProject'
        })
      }
      // 23招标竞争性磋商
      if (sessionTenderMethodType === '23') {
        this.$router.push({
          path: '/bidding/bidConsultationProject'
        })
      }
      this.$message({
        message: '提交成功',
        type: 'success'
      })
    }
  }
}

</script>

<style lang="less" scoped>

</style>
