<!--
  @description: 标段进度统计
  @Modifier: haofengxian
  @routerPath: /statisticalAnalysis/packProgressList
  @date: 2020-7-14-16:30
-->
<template>
  <div>
    <table-crud
      :search-form="searchForm"
      search-label-width="110px"
      @on-load="loadData"
    >
      <template v-slot:header>
        查看标段进度统计信息
      </template>
      <template v-slot:search="search">
        <el-form-item ref="tenderNo" label="项目编号" prop="tenderNo">
          <el-input
            v-model.trim="searchForm.tenderNo"
            placeholder="项目编号"
            style="width:220px"
            @keyup.enter.native="search.onSearch"
          />
        </el-form-item>
        <el-form-item ref="packName" label="标段名称" prop="packName">
          <el-input
            v-model.trim="searchForm.packName"
            style="width:220px"
            placeholder="标段名称"
            @keyup.enter.native="search.onSearch"
          />
        </el-form-item>
        <!--项目经理-->
        <el-form-item ref="tenderManager" label="项目经理" prop="tenderManager">
          <el-input
            v-model.trim="searchForm.tenderManager"
            style="width:220px"
            @keyup.enter.native="search.onSearch"
          />
        </el-form-item>
        <!--项目名称-->
        <el-form-item ref="tenderName" label="项目名称" prop="tenderName">
          <el-input
            v-model.trim="searchForm.tenderName"
            style="width:220px"
            @keyup.enter.native="search.onSearch"
          />
        </el-form-item>
        <!--开标方式-->
        <el-form-item ref="bidOpeningMethod" label="开标方式" prop="bidOpeningMethod">
          <el-select v-model="searchForm.bidOpeningMethod" placeholder="请选择" style="width: 220px">
            <el-option
              v-for="(item,index) in bidOpeningMethodList"
              :key="index"
              :label="item.typename"
              :value="item.typecode"
            />
          </el-select>
        </el-form-item>
        <!--开标阶段-->
        <el-form-item ref="openStageType" label="开标阶段" prop="openStageType">
          <el-select v-model="searchForm.openStageType" placeholder="请选择" style="width: 220px">
            <el-option
              v-for="(item,index) in openStageTypeList"
              :key="index"
              :label="item.typename"
              :value="item.typecode"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="资审公告日期">
          <el-date-picker
            v-model="searchForm.zsBulletinTime"
            type="daterange"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            style="width: 220px"
            @change="handleZsBulletinTime"
          />
        </el-form-item>
        <el-form-item label="资审结束日期">
          <el-date-picker
            v-model="searchForm.zsEndTime"
            type="daterange"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            style="width: 220px"
            @change="handlezsEndTime"
          />
        </el-form-item>
        <el-form-item label="公告日期">
          <el-date-picker
            v-model="searchForm.bulletinPublishTime"
            type="daterange"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            style="width: 220px"
            @change="handleBulletinPublishTime"
          />
        </el-form-item>
        <el-form-item label="开标日期">
          <el-date-picker
            v-model="searchForm.openBidStartTime"
            type="daterange"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            style="width: 220px"
            @change="handleOpenBidStartTime"
          />
        </el-form-item>
        <el-form-item label="第二步开标日期">
          <el-date-picker
            v-model="searchForm.twoBidOpeningTime"
            type="daterange"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            style="width: 220px"
            @change="handleTwoBidOpeningTime"
          />
        </el-form-item>
        <el-form-item label="评标结束日期">
          <el-date-picker
            v-model="searchForm.evalStopTime"
            type="daterange"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            style="width: 220px"
            @change="handleEvalStopTime"
          />
        </el-form-item>
        <el-form-item label="中标候选人公示">
          <el-date-picker
            v-model="searchForm.calibrationTime"
            type="daterange"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            style="width: 220px"
            @change="handleCalibrationTime"
          />
        </el-form-item>
        <el-form-item label="中标结果公示">
          <el-date-picker
            v-model="searchForm.winningResultTime"
            type="daterange"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            style="width: 220px"
            @change="handleWinningResultTime"
          />
        </el-form-item>
        <el-form-item label="通知书发出日期">
          <el-date-picker
            v-model="searchForm.pushNoticeTime"
            type="daterange"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            style="width: 220px"
            @change="handlePushNoticeTime"
          />
        </el-form-item>
      </template>
      <template v-slot:GXTable>
        <el-table
          ref="smallTable"
          v-loading="loading"
          :data="tableData"
        >
          <el-table-column
            type="index"
            label="序号"
            width="60px"
            align="center"
          />
          <el-table-column
            header-align="center"
            prop="packName"
            label="开标标段（包）名称"
            width="170"
          />
          <el-table-column
            prop="tenderNo"
            align="center"
            label="项目编号"
            width="170"
          />
          <el-table-column
            header-align="center"
            label="资审公告日期"
            width="130"
          >
            <template slot-scope="scope">
              {{ scope.row.zsBulletinTime && $Moment(scope.row.zsBulletinTime).format(momentDateTime) }}
            </template>
          </el-table-column>
          <el-table-column
            header-align="center"
            label="资审日期"
            width="130"
          >
            <template slot-scope="scope">
              {{ scope.row.zsTime && $Moment(scope.row.zsTime).format(momentDateTime) }}
            </template>
          </el-table-column>
          <el-table-column
            header-align="center"
            label="公告日期"
            width="130"
          >
            <template slot-scope="scope">
              {{ scope.row.bulletinPublishTime && $Moment(scope.row.bulletinPublishTime).format(momentDateTime) }}
            </template>
          </el-table-column>
          <el-table-column
            header-align="center"
            label="开标日期"
            width="130"
          >
            <template slot-scope="scope">
              {{ scope.row.openBidStartTime && $Moment(scope.row.openBidStartTime).format(momentDateTime) }}
            </template>
          </el-table-column>
          <el-table-column
            header-align="center"
            label="第二步开标日期"
            width="130"
          >
            <template slot-scope="scope">
              {{ scope.row.twoBidOpeningTime && $Moment(scope.row.twoBidOpeningTime).format(momentDateTime) }}
            </template>
          </el-table-column>
          <el-table-column
            header-align="center"
            label="评标完成日期"
            width="130"
          >
            <template slot-scope="scope">
              {{ scope.row.evalStopTime && $Moment(scope.row.evalStopTime).format(momentDateTime) }}
            </template>
          </el-table-column>
          <el-table-column
            header-align="center"
            label="中标候选人公示日期"
            width="130"
          >
            <template slot-scope="scope">
              {{ scope.row.calibrationTime && $Moment(scope.row.calibrationTime).format(momentDateTime) }}
            </template>
          </el-table-column>
          <el-table-column
            header-align="center"
            label="中标结果公示日期"
            width="130"
          >
            <template slot-scope="scope">
              {{ scope.row.winningResultTime && $Moment(scope.row.winningResultTime).format(momentDateTime) }}
            </template>
          </el-table-column>
          <el-table-column
            header-align="center"
            label="通知书发放日期"
            width="130"
          >
            <template slot-scope="scope">
              {{ scope.row.pushNoticeTime && $Moment(scope.row.pushNoticeTime).format(momentDateTime) }}
            </template>
          </el-table-column>
          <el-table-column
            header-align="center"
            prop="agent"
            label="承办人"
            width="130"
          />
          <el-table-column
            header-align="center"
            prop="openBidAddress"
            label="开标地点"
            min-width="160"
          />
          <el-table-column
            header-align="center"
            prop="packStatus"
            label="进度"
            min-width="160"
          />
          <el-table-column
            header-align="center"
            prop="tenderOrgMethod"
            label="组织形式"
            width="80"
            align="center"
          >
            <template slot-scope="scope">
              <span
                v-for="(item,index) in tenderOrgMethodList"
                v-if="scope.row.tenderOrgMethod===item.typecode"
                :key="index"
              >{{ item.typename }}</span>
            </template>
          </el-table-column>
        </el-table>
      </template>
    </table-crud>
  </div>
</template>
<script>
/* 接口*/
import { queryPackStatistPage } from '@api/statisticalAnalysis'
import { statisticalAnalysisGroupMixin } from '../mixins/statisticalAnalysisGroupMixin'

export default {
  name: 'TenderProjectList',
  mixins: [statisticalAnalysisGroupMixin],
  data() {
    return {
      loading: true,
      // 搜索
      searchForm: {
        /* 时间选中绑定的字段*/
        bulletinPublishTime: '', // 公告时间
        calibrationTime: '', // 候选人公示时间
        evalStopTime: '', // 评标时间
        openBidStartTime: '', // 开标时间
        pushNoticeTime: '', // 通知书发出日期
        twoBidOpeningTime: '', // 第二步开标日期
        winningResultTime: '', // 中标结果公示时间
        zsBulletinTime: '', // 资审公告时间
        zsEndTime: '', // 资审结束时间
        /* 后端需要查询的字段*/
        bidOpeningMethod: '', // 开标方式，00网上，01线下
        bulletinPublishTimeEnd: '', // 公告时间-结束
        bulletinPublishTimeStart: '', // 公告时间-开始
        calibrationEndTime: '', // 中标候选人公示-结束
        calibrationStartTime: '', // 中标候选人公示-开始
        evalStopTimeEnd: '', // 评标结束时间-结束
        evalStopTimeStart: '', // 评标结束时间-开始
        openBidStartTimeEnd: '', // 开标时间-结束
        openBidStartTimeStart: '', // 开标时间-开始
        openStageType: '', // 00一次开标阶段(商务技术经济)，01非价格开标阶段(商务技术)，02价格开标阶段(经济)，03:资审开标阶段(商务技术)
        packName: '', // 标段（包）名称
        pushNoticeEndTime: '', // 通知书发出日期-结束
        pushNoticeStartTime: '', // 通知书发出日期-开始
        tenderManager: '', // 项目经理
        tenderName: '', // 项目名称
        tenderNo: '', // 项目编号
        twoBidOpeningTimeEnd: '', // 第二步开标日期-结束
        twoBidOpeningTimeStart: '', // 第二步开标日期-开始
        winningResultEndTime: '', // 中标结果公示时间-结束
        winningResultStartTime: '', // 中标结果公示时间-开始
        zsBulletinEntTime: '', // 资审公告时间-结束
        zsBulletinStartTime: '', // 资审公告时间-开始
        zsEndTimeEnd: '', // 资审结束时间-结束
        zsEndTimeStart: '' // 资审结束时间-开始
      },
      tableData: []
    }
  },
  methods: {
    // 获取数据
    loadData(params, callback) {
      queryPackStatistPage(params).then(response => {
        this.loading = false
        this.tableData = response.data.records
        callback(response.data.total)
      }).catch(() => {
        this.loading = false
      })
    },
    // 处理搜索时间格式-资审公告日期
    handleZsBulletinTime(val) {
      if (val) {
        this.searchForm.zsBulletinStartTime = this.$Moment(val[0]).format(this.momentSaveFormat)// 开始时间
        this.searchForm.zsBulletinEntTime = this.$Moment(val[1]).format(this.momentSaveFormat)// 结束时间
      }
    },
    // 处理搜索时间格式-资审结束日期
    handlezsEndTime(val) {
      if (val) {
        this.searchForm.zsBulletinStartTime = this.$Moment(val[0]).format(this.momentSaveFormat)// 开始时间
        this.searchForm.zsBulletinEntTime = this.$Moment(val[1]).format(this.momentSaveFormat)// 结束时间
      }
    },
    // 处理搜索时间格式-公告日期
    handleBulletinPublishTime(val) {
      if (val) {
        this.searchForm.bulletinPublishTimeStart = this.$Moment(val[0]).format(this.momentSaveFormat)// 开始时间
        this.searchForm.bulletinPublishTimeEnd = this.$Moment(val[1]).format(this.momentSaveFormat)// 结束时间
      }
    },
    // 处理搜索时间格式-开标日期
    handleOpenBidStartTime(val) {
      if (val) {
        this.searchForm.openBidStartTimeStart = this.$Moment(val[0]).format(this.momentSaveFormat)// 开始时间
        this.searchForm.openBidStartTimeEnd = this.$Moment(val[1]).format(this.momentSaveFormat)// 结束时间
      }
    },
    // 处理搜索时间格式-第二步开标日期
    handleTwoBidOpeningTime(val) {
      if (val) {
        this.searchForm.twoBidOpeningTimeStart = this.$Moment(val[0]).format(this.momentSaveFormat)// 开始时间
        this.searchForm.twoBidOpeningTimeEnd = this.$Moment(val[1]).format(this.momentSaveFormat)// 结束时间
      }
    },
    // 处理搜索时间格式-评标结束日期
    handleEvalStopTime(val) {
      if (val) {
        this.searchForm.evalStopTimeStart = this.$Moment(val[0]).format(this.momentSaveFormat)// 开始时间
        this.searchForm.evalStopTimeEnd = this.$Moment(val[1]).format(this.momentSaveFormat)// 结束时间
      }
    },
    // 处理搜索时间格式-中标候选人公示
    handleCalibrationTime(val) {
      if (val) {
        this.searchForm.calibrationStartTime = this.$Moment(val[0]).format(this.momentSaveFormat)// 开始时间
        this.searchForm.calibrationEndTime = this.$Moment(val[1]).format(this.momentSaveFormat)// 结束时间
      }
    },
    // 处理搜索时间格式-中标结果公示
    handleWinningResultTime(val) {
      if (val) {
        this.searchForm.winningResultStartTime = this.$Moment(val[0]).format(this.momentSaveFormat)// 开始时间
        this.searchForm.winningResultEndTime = this.$Moment(val[1]).format(this.momentSaveFormat)// 结束时间
      }
    },
    // 处理搜索时间格式-通知书发出日期
    handlePushNoticeTime(val) {
      if (val) {
        this.searchForm.pushNoticeStartTime = this.$Moment(val[0]).format(this.momentSaveFormat)// 开始时间
        this.searchForm.pushNoticeEndTime = this.$Moment(val[1]).format(this.momentSaveFormat)// 结束时间
      }
    }
  }
}
</script>
<style lang="less" scoped>

</style>
