<!--
  @description: 立项-预览-标段（包）信息
  @Modifier：肖文龙
  @routerPath:
  @date： 2019-12-18 16:33:01
-->
<template>
  <div>
    <!--标段列表-->
    <el-table
      ref="package"
      :data="packageList"
    >
      <el-table-column
        label="序号"
        type="index"
        width="60"
        align="center"
      />
      <el-table-column

        label="标段（包）编号"
        header-align="center"
        align="left"
        prop="packNo"
      />
      <el-table-column

        header-align="center"
        label="标段（包）名称"
        prop="packName"
        align="left"
      />
      <el-table-column
        header-align="center"
        label="本标段（包）预算（元）"
        prop="contractBudget"
        align="right"
      />
      <el-table-column
        header-align="center"
        label="最高限价（元）"
        prop="maxLimitedPrice"
        align="right"
      />
      <template v-if="bidProjectSystemSourceType">
        <!--招标代理服务费收取方式 差额定率累进制00 固定金额01 固定比例02 注：只有固定金额01时展示服务费金额-->
        <el-table-column
          v-if="projectData.agentServiceFeeMethod ==='01'"
          header-align="center"
          label="服务费金额（元）"
          prop="servicePrice"
          align="right"
        />
        <!--固定比例02服务费金额-->
        <el-table-column
          v-if="projectData.agentServiceFeeMethod ==='02'"
          header-align="center"
          label="服务费比例%"
          prop="serviceRate"
          align="right"
        />
      </template>
      <el-table-column
        label=""
        align="center"
        width="250"
      >
        <template slot-scope="scope">
          <!--hn显示-->
          <template v-if="bidProjectSystemSourceType">
            <el-link
              :underline="false"
              :disabled="scope.row.taskPlanList && scope.row.taskPlanList.length<1"
              type="primary"
              @click="processControl(scope.row.taskPlanList && scope.row.taskPlanList[0].schemeId)"
            >
              [流程信息]
            </el-link>
            <el-link
              :underline="false"
              type="primary"
              @click="relevanceTenderPlanListClick(scope.row, scope.$index)"
            >
              [已选计划]（{{ scope.row.taskPlanList && scope.row.taskPlanList.length }}）
            </el-link>
          </template>
          <template v-if="!bidProjectSystemSourceType">
            <el-link
              :underline="false"
              type="primary"
              @click="materielListClick(scope.row,scope.$index)"
            >
              [已选物料]（{{ scope.row.material.length }}）
            </el-link>
          </template>
        </template>
      </el-table-column>
    </el-table>
    <!--查看标段已选物料-弹框-->
    <materielListDialog :dialog-data="materielListDialog" />
    <!--流程控制-弹框-->
    <processControlInfoDialog v-if="bidProjectSystemSourceType" ref="processControlInfo" />
    <relevanceTenderPlanListDialog
      v-if="bidProjectSystemSourceType"
      :dialog-data="relevanceTenderPlanListDialog"
    />
  </div>
</template>

<script>
/* api*/
import { listPackage, listTenderMaterie } from '@/api/bidding/biddingProject'
/* 组件*/
import materielListDialog from './materielList-dialog'// 已选物料查看
import processControlInfoDialog from '@views/purchasePlan/tenderPlan/tenderPlan-dialog/processControlInfo-dialog' // 流程控制弹框
import relevanceTenderPlanListDialog from '@views/purchasePlan/tenderPlan/tenderPlan-dialog/relevanceTenderPlanList-dialog' // 已关联招标计划-弹框
/* 公用方法*/
import { moneyFormat } from '@assets/js/utils'// 常用方法
/* 混入*/
import { bidProjectCommon } from '../mixins/bidProjectCommon'
export default {
  name: 'PreviewPackageDetail',
  components: {
    materielListDialog, // 物料查看
    processControlInfoDialog, // 流程控制弹框
    relevanceTenderPlanListDialog // 标段已关联计划弹框
  },
  mixins: [bidProjectCommon],
  data() {
    return {
      moneyFormat: moneyFormat, // 千分位转换
      // 查看标段已选物料
      materielListDialog: {
        dialog: false, // // 弹框展示状态
        packIndex: '', // 标段索引,
        isShowRemoveBtn: false, // 是否显示移除按钮,
        materialList: []// 物料列表
      },
      packageList: [], // 回填包组
      tenderId: '', // 项目id
      // 查看标段已选关联招标计划
      relevanceTenderPlanListDialog: {
        dialog: false, // // 弹框展示状态
        isShowRemoveBtn: false, // 是否显示移除按钮,
        packIndex: '', // 标段索引,
        taskPlanList: [] // 物料列表
      }
    }
  },
  created() {
    this.tenderId = this.projectData.id ? this.projectData.id : this.$route.params.id
    if (this.$route.query.id) this.tenderId = this.$route.query.id // 传参方式都改完删除
    this.initData()
  },
  methods: {
    // 获取标包列表
    initData() {
      this.packageList = []
      listPackage(this.tenderId).then(response => {
        const { data } = response
        // 组装数组
        data.map((item, index) => {
          if (!item.maxLimitedPrice) {
            item.maxLimitedPrice = null
          }
          item.material = []
          // 保留两位小数
          if (item.contractBudget) item.contractBudget = moneyFormat(item.contractBudget.toFixed(2))// 本标段（包）预算（元）
          if (item.maxLimitedPrice) item.maxLimitedPrice = moneyFormat(item.maxLimitedPrice.toFixed(2))// 最高限价（元）

          /* 如果关联招标计划 表格添加已关联招标计划名称 显示*/
          if (item.taskPlanList && item.taskPlanList.length > 0) {
            item.schemeName = item.taskPlanList[0].schemeName
          }
          this.packageList.push(item) // 包信息
          this.materialClick(item, index)
        })
      })
    },
    // 获取物料 item 包信息
    materialClick(item, index) {
      const data = {
        tenderId: this.tenderId, // 项目Id
        packId: item.packId// 包id
      }
      listTenderMaterie(data).then(res => {
        this.packageList[index].material = res.data
      })
    },
    // 查看标段物料
    materielListClick(row, index) {
      this.materielListDialog.packIndex = index
      this.materielListDialog.dialog = true// 查看状态
      this.materielListDialog.materialList = row.material// 物料列表
    },
    // 查看已选计划
    relevanceTenderPlanListClick(row, index) {
      this.relevanceTenderPlanListDialog.packIndex = index
      this.relevanceTenderPlanListDialog.dialog = true // 查看状态
      this.relevanceTenderPlanListDialog.taskPlanList = row.taskPlanList // 物料列表
    },
    // 流程信息
    processControl(schemeId) {
      this.$refs.processControlInfo.openProcessControlInfoDetail(schemeId)
    }
  }
}
</script>

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