<!--
  @description:代理机构-项目管理-招标文件制作页面
  @Modifier: 肖文龙
  @routerPath:/bidding/projectDrive/tenderDoc/tenderProcfilePack-add
  @date: 2020/1/13-11:39
  isCanOperate: true可以操作 false不可以查看只有查看权限  00:否 01:是
  flowStatus: true工作流进入
-->
<template>
  <div class="main" style="margin-top: 0;">
    <!--未制作标段-->
    <div>
      <div class="makeTenderDocument_title">
        <p>未制作标段（包）</p>
        <!--项目经理有权限 或 工作流驳回进入显示制作按钮-->
        <div v-if="tenderBase.isCanOperate || flowStatus" class="fr">
          <span class="makeTenderDocument_number">已选择
            <span class="makeTenderDocument_orange">{{ seletunPackList.length }}</span>标段
          </span>
          <el-button type="primary" :loading="confirmLoading" @click="makeFileClick">
            制作{{ dict.examinationFileName }}文件
          </el-button>
        </div>
      </div>
      <unTenderProcfilePackComp ref="unProcfilePack" @unPackChange="unPackChange" />
    </div>
    <!--已制作标段-->
    <div>
      <div class="makeTenderDocument_title ">
        <p> 已制作标段（包）</p>
      </div>
      <hasTenderProcfilePackComp ref="hasMakeProcfilPack" @initData="initUnProcfilePackList" @revamped="revampedmakeFile" />
    </div>
  </div>
</template>

<script>
/* api*/
import { saveTenderDocPackage } from '@api/bidding/tenderDoc'
/* 混合开发*/
import { tenderDoc } from './../mixins/tenderDoc'// 招标文件/资审文件
/* 组件*/
import unTenderProcfilePackComp from './unTenderProcfilePackComp'// 未制作招标文件组件
import hasTenderProcfilePackComp from './hasTenderProcfilePackComp'// 已制作招标文件组件
export default {
  name: 'MakeTenderDocumentAdd',
  components: {
    unTenderProcfilePackComp,
    hasTenderProcfilePackComp
  },
  mixins: [tenderDoc],
  data() {
    return {
      confirmLoading: false, // 控制按钮重复点击Loding
      tenderId: this.$route.query.id, // 项目Id
      seletunPackList: [], // 当前选择的标段
      // 提交信息
      fromData: {
        fileQualificationType: '', // 招标类型 00:资审文件 01:后审文件
        fileType: '00', // 文件类型 00:招标文件 01:采购文件
        packageStage: [], // 要制作的标段
        procfileId: '', // 文件id
        tenderId: ''// 项目id
      }
    }
  },
  created() {
    // 取公共js里commonFileQualificationType
    this.fromData.fileQualificationType = this.commonFileQualificationType
  },
  methods: {
    // 调用未制作标段查询接口
    initUnProcfilePackList() {
      this.$refs.unProcfilePack.initData()
    },
    // 制作文件
    makeFileClick() {
      /* 循环查询是否为同一个公告下的标段 如果不是不可以制作文件*/
      let isType = true // 是否可以制作文件 布尔值
      this.seletunPackList.forEach(item => {
        if (this.seletunPackList[0].bizId !== item.bizId && isType) {
          // 不是同一个公告下的
          this.$message({
            message: '请选择同一个公告下的标段（包），进行制作文件！',
            type: 'warning'
          })
          isType = false
        }
      })
      if (!isType) return// 不可以制作文件
      if (this.seletunPackList.length > 0) { // 已选标段（包）
        this.$confirm('确定制作已选标段（包）吗?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          confirmButtonClass: 'confirmBtn',
          cancelButtonClass: 'cancelBtn',
          type: 'warning'
        }).then(() => {
          this.confirmLoading = true
          this.makeFile()// 制作文件接口
        }).catch(() => {
        })
      } else {
        this.$message({
          message: '请选择要制作的标段（包）',
          type: 'warning'
        })
      }
    },
    /*
    * 修改已制作文件
    * row 修改时的 文件参数
    * */
    revampedmakeFile(row) {
      this.$confirm('确定修改已选标段（包）吗?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        confirmButtonClass: 'confirmBtn',
        cancelButtonClass: 'cancelBtn',
        type: 'warning'
      }).then(() => {
        this.makeFile(row)// 制作文件接口
      }).catch(() => {
      })
    },
    /*
    * 保存组装数据
    * row 修改时的 文件参数
    * */
    assemblyData(row) {
      const data = {
        ...this.fromData,
        packageStage: [],
        tenderId: this.tenderId // 项目Id
      }
      /*
      * row 为空时是制作文件
      * */
      if (!row) { // 制作
        // 已选标段
        this.seletunPackList.map(item => {
          data.packageStage.push({
            packId: item.packId, // 公告Id
            stageId: item.stageId// 阶段Id
          })
        })
      } else { // 修改
        data.procfileId = row.procfileId// 文件Id
      }
      return data
    },
    /*
    * 制作文件接口
    * row 修改时的 文件参数
    * */
    makeFile(row) {
      const data = this.assemblyData(row)
      saveTenderDocPackage(data).then(res => {
        const { data: { openUrl }} = res
        window.open(openUrl, '_self')
        this.confirmLoading = false
        this.seletunPackList = []
        /*
        * 定时刷新
        * procfileId 当前正在制作的文件
        * */
        this.$refs.hasMakeProcfilPack.initData(res.data.procfileId)// 已制作文件列表
        this.$refs.unProcfilePack.initData()
      })
    },
    // 选择未制作标段（包）
    unPackChange(val) {
      this.seletunPackList = val
    }
  }
}
</script>
<style lang="less" scoped>
  @import '~@assets/style/common/public.less';
  .makeTenderDocument_title{
    height: 50px;
    font-size: 14px;
    line-height: 49px;
    margin-bottom: 16px;
    border-bottom: 1px solid @cut-off;
    p{
      padding: 0 6px;
      font-weight: bold;
      box-sizing: border-box;
      float: left;
      border-bottom: 2px solid @hyacinthine;
    }
    .makeTenderDocument_number{
      .makeTenderDocument_orange{
        color: @orange;
        padding: 6px;
      }

      margin-right: 20px;
    }
  }
</style>
