1133 lines
35 KiB
Vue
1133 lines
35 KiB
Vue
<template>
|
|
<div class="fullHeight whiteBlock">
|
|
<div style="padding: 15px 15px 0">
|
|
<p class="pageTitle">招标管理</p>
|
|
<el-form
|
|
:inline="true"
|
|
ref="searchForm"
|
|
:model="searchForm"
|
|
size="medium"
|
|
>
|
|
<el-form-item label="招标名称">
|
|
<el-input
|
|
v-model="searchForm.tenderName"
|
|
placeholder="请输入"
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-button type="primary" plain @click="getList">{{
|
|
$t('message.energyManage.waybill.query')
|
|
}}</el-button>
|
|
<el-button type="warning" plain @click="refresh">{{
|
|
$t('message.deviceManage.refresh')
|
|
}}</el-button>
|
|
<el-button type="primary" size="medium" @click="add">新增</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
</div>
|
|
<div class="table_wrap whiteBlock">
|
|
<el-table class="tables" :data="List" @row-click="showDetailFn">
|
|
<el-table-column
|
|
prop="tenderName"
|
|
label="招标名称"
|
|
align="center"
|
|
></el-table-column>
|
|
<el-table-column
|
|
prop="tenderUnit"
|
|
align="center"
|
|
label="招标单位"
|
|
></el-table-column>
|
|
<el-table-column
|
|
prop="tenderMethod"
|
|
align="center"
|
|
label="招标方式"
|
|
></el-table-column>
|
|
<el-table-column
|
|
prop="tenderType"
|
|
align="center"
|
|
label="招标类型"
|
|
></el-table-column>
|
|
<el-table-column
|
|
prop="tenderDay"
|
|
align="center"
|
|
label="招采天数"
|
|
></el-table-column>
|
|
<el-table-column
|
|
prop="releaseTime"
|
|
align="center"
|
|
label="发布时间"
|
|
></el-table-column>
|
|
<el-table-column
|
|
prop="planContractAmount"
|
|
align="center"
|
|
label="计划合同金额"
|
|
></el-table-column>
|
|
<el-table-column
|
|
prop="state"
|
|
align="center"
|
|
label="状态"
|
|
></el-table-column>
|
|
<el-table-column prop="remark" label="备注" align="center">
|
|
</el-table-column>
|
|
<!-- <el-table-column prop="annex" label="附件" align="center">
|
|
<template slot-scope="scope">
|
|
{{ scope.row.annex}}
|
|
</template>
|
|
</el-table-column> -->
|
|
<el-table-column label="操作" align="center">
|
|
<template slot-scope="scope">
|
|
<div class="tableBtns" style="margin-left: 10px !important">
|
|
<div @click.stop="edit(scope.row)" class="operationText">
|
|
<img
|
|
src="@/assets/images/icon-edit.png"
|
|
width="15px"
|
|
height="15px"
|
|
/>
|
|
<span>编辑</span>
|
|
</div>
|
|
<div @click.stop="deleteDev(scope.row)" class="operationText">
|
|
<img
|
|
src="@/assets/images/icon-delete.png"
|
|
width="15px"
|
|
height="15px"
|
|
/>
|
|
<span>删除</span>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<el-pagination
|
|
class="pagerBox"
|
|
@size-change="SizeChange"
|
|
@current-change="CurrentChange"
|
|
:current-page="pagInfo.pageNo"
|
|
:page-sizes="$store.state.PAGESIZRS"
|
|
:page-size="pagInfo.pageSize"
|
|
layout="total, sizes, prev, pager, next"
|
|
:total="Number(pagInfo.total)"
|
|
background
|
|
></el-pagination>
|
|
</div>
|
|
<!-- 新增弹框 -->
|
|
<el-dialog
|
|
:modal-append-to-body="false"
|
|
@close="close"
|
|
:title="title"
|
|
:visible.sync="dialogShow"
|
|
width="667px"
|
|
>
|
|
<div class="dialog_content">
|
|
<el-form
|
|
size="medium"
|
|
ref="addInviteForm"
|
|
:model="addInviteForm"
|
|
:rules="addInviteFormRules"
|
|
label-width="120px"
|
|
class="dialogFormBox"
|
|
>
|
|
<el-form-item label="招标名称" prop="tenderName">
|
|
<el-input
|
|
v-model="addInviteForm.tenderName"
|
|
placeholder="请输入"
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="招标单位" prop="tenderUnit">
|
|
<el-input
|
|
v-model="addInviteForm.tenderUnit"
|
|
placeholder="请输入"
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="招标方式" prop="tenderMethod">
|
|
<el-input
|
|
v-model="addInviteForm.tenderMethod"
|
|
placeholder="请输入"
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="招标类型" prop="tenderType">
|
|
<el-input
|
|
v-model="addInviteForm.tenderType"
|
|
placeholder="请输入"
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="招采天数" prop="tenderDay">
|
|
<el-input
|
|
v-model="addInviteForm.tenderDay"
|
|
placeholder="请输入"
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="发布时间" prop="remreleaseTimeark">
|
|
<el-date-picker
|
|
v-model="addInviteForm.releaseTime"
|
|
type="date"
|
|
placeholder="选择日期"
|
|
value-format="yyyy-MM-dd"
|
|
>
|
|
</el-date-picker>
|
|
</el-form-item>
|
|
<el-form-item label="计划合同金额" prop="planContractAmount">
|
|
<el-input
|
|
v-model="addInviteForm.planContractAmount"
|
|
placeholder="请输入"
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="状态" prop="state">
|
|
<el-input
|
|
v-model="addInviteForm.state"
|
|
placeholder="请输入"
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="备注" prop="remark">
|
|
<el-input
|
|
v-model="addInviteForm.remark"
|
|
placeholder="请输入"
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="附件">
|
|
<el-upload
|
|
class="upload-demo"
|
|
name="files"
|
|
:action="$store.state.UPLOADURL"
|
|
:on-remove="(file, fileList) => handleRemove(file, fileList, 1)"
|
|
:multiple="false"
|
|
:on-success="(res, file) => handleSuccess(res, file, 1)"
|
|
:file-list="surveySchemeList"
|
|
accept=".doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf"
|
|
>
|
|
<el-button size="medium" type="primary" plain>
|
|
上传附件
|
|
</el-button>
|
|
</el-upload>
|
|
</el-form-item>
|
|
|
|
<div class="dialog-footer">
|
|
<el-button
|
|
class="cancleBtn"
|
|
@click="dialogShow = false"
|
|
icon="el-icon-circle-close"
|
|
size="medium"
|
|
>{{ $t('message.deviceManage.cancel') }}
|
|
</el-button>
|
|
<el-button
|
|
type="primary"
|
|
icon="el-icon-circle-check"
|
|
@click="submitOne"
|
|
size="medium"
|
|
>{{ $t('message.deviceManage.save') }}
|
|
</el-button>
|
|
</div>
|
|
</el-form>
|
|
</div>
|
|
</el-dialog>
|
|
<!-- 详情弹框 -->
|
|
<el-dialog
|
|
:modal-append-to-body="false"
|
|
title="详情"
|
|
:visible.sync="addOrEditDialog"
|
|
width="1450px"
|
|
>
|
|
<div class="dialog_content">
|
|
<el-form
|
|
size="medium"
|
|
:model="contractForm"
|
|
ref="contractForm"
|
|
:rules="contractFormRules"
|
|
label-width="70px"
|
|
:inline="true"
|
|
>
|
|
<el-form-item label="招标名称" prop="orderNumber">
|
|
<el-input disabled v-model="detailData.tenderName"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="招标单位" prop="orderNumber">
|
|
<el-input disabled v-model="detailData.tenderUnit"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="招标方式" prop="buyerName">
|
|
<el-input disabled v-model="detailData.tenderMethod"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="招标类型" prop="receivingAddr">
|
|
<el-input disabled v-model="detailData.tenderType"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="招采天数" prop="receivingAddr">
|
|
<el-input disabled v-model="detailData.tenderDay"></el-input>
|
|
</el-form-item>
|
|
|
|
<el-form-item label="发布时间" prop="remarks">
|
|
<el-input disabled v-model="detailData.releaseTime"></el-input>
|
|
</el-form-item>
|
|
|
|
<el-form-item label="状态" prop="remarks">
|
|
<el-input disabled v-model="detailData.state"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="备注" prop="remarks">
|
|
<el-input disabled v-model="detailData.remark"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="计划合同金额" prop="remarks" label-width="100px">
|
|
<el-input
|
|
disabled
|
|
v-model="detailData.planContractAmount"
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="附件" prop="remarks">
|
|
<!-- 下载附件 -->
|
|
<el-button
|
|
@click.stop="download(detailData.annex,4)"
|
|
type="primary"
|
|
plain
|
|
size="small"
|
|
>下载附件</el-button
|
|
>
|
|
</el-form-item>
|
|
</el-form>
|
|
<div class="btnAdd">
|
|
<el-button type="primary" size="medium" @click="addDetails"
|
|
>新增</el-button
|
|
>
|
|
</div>
|
|
<el-tabs
|
|
style="margin-bottom: 5px; width: 196px"
|
|
v-model="dialogSteps"
|
|
type="card"
|
|
>
|
|
<el-tab-pane label="投标记录" name="0"></el-tab-pane>
|
|
<el-tab-pane label="招标清单" name="1"></el-tab-pane>
|
|
</el-tabs>
|
|
|
|
<div class="importMaterialBox" v-show="dialogSteps == 0">
|
|
<el-table
|
|
class="tables"
|
|
:data="ListRecord"
|
|
height="360"
|
|
style="min-height: auto"
|
|
>
|
|
<el-table-column
|
|
label="投标单位"
|
|
prop="tenderUnit"
|
|
align="center"
|
|
></el-table-column>
|
|
<el-table-column
|
|
label="商务文件"
|
|
prop="businessDocument"
|
|
align="center"
|
|
>
|
|
<template slot-scope="scope">
|
|
<el-button
|
|
@click="download(scope.row.businessDocument, 1)"
|
|
type="text"
|
|
size="small"
|
|
>下载附件</el-button
|
|
>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
label="技术文件"
|
|
prop="technicalDocument"
|
|
align="center"
|
|
>
|
|
<template slot-scope="scope">
|
|
<el-button
|
|
@click="download(scope.row.technicalDocument, 2)"
|
|
type="text"
|
|
size="small"
|
|
>下载附件</el-button
|
|
>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
label="价格文件"
|
|
prop="technicalDocument"
|
|
align="center"
|
|
>
|
|
<template slot-scope="scope">
|
|
<el-button
|
|
@click="download(scope.row.priceFile, 3)"
|
|
type="text"
|
|
size="small"
|
|
>下载附件</el-button
|
|
>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="上传时间" prop="uploadTime" align="center">
|
|
</el-table-column>
|
|
<el-table-column label="状态" prop="state" align="center">
|
|
</el-table-column>
|
|
<el-table-column label="操作" align="center">
|
|
<template slot-scope="scope">
|
|
<div class="tableBtns" style="margin-left: -5px !important">
|
|
<div @click="editComponent(scope.row)" class="operationText">
|
|
<img
|
|
src="@/assets/images/icon-edit.png"
|
|
width="15px"
|
|
height="15px"
|
|
/>
|
|
<span>编辑</span>
|
|
</div>
|
|
<div @click="delet(scope.row)" class="operationText">
|
|
<img
|
|
src="@/assets/images/icon-delete.png"
|
|
width="15px"
|
|
height="15px"
|
|
/>
|
|
<span>删除</span>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</div>
|
|
<div class="importMaterialBox" v-show="dialogSteps == 1">
|
|
<el-table
|
|
class="tables"
|
|
:data="inventoryList"
|
|
height="360"
|
|
style="min-height: auto"
|
|
>
|
|
<el-table-column
|
|
label="物品名称"
|
|
prop="itemName"
|
|
align="center"
|
|
></el-table-column>
|
|
<el-table-column
|
|
label="规格型号"
|
|
prop="specificationAndModel"
|
|
align="center"
|
|
></el-table-column>
|
|
<el-table-column
|
|
label="计量单位"
|
|
prop="measureUnit"
|
|
align="center"
|
|
></el-table-column>
|
|
<el-table-column
|
|
label="估算数量"
|
|
prop="estimateQuantity"
|
|
align="center"
|
|
>
|
|
</el-table-column>
|
|
<el-table-column
|
|
label="物资采购单位"
|
|
prop="materialProcurementUnit"
|
|
align="center"
|
|
>
|
|
</el-table-column>
|
|
|
|
<el-table-column label="操作" align="center">
|
|
<template slot-scope="scope">
|
|
<div class="tableBtns" style="margin-left: -5px !important">
|
|
<div @click="editComponent(scope.row)" class="operationText">
|
|
<img
|
|
src="@/assets/images/icon-edit.png"
|
|
width="15px"
|
|
height="15px"
|
|
/>
|
|
<span>编辑</span>
|
|
</div>
|
|
<div @click="delet(scope.row)" class="operationText">
|
|
<img
|
|
src="@/assets/images/icon-delete.png"
|
|
width="15px"
|
|
height="15px"
|
|
/>
|
|
<span>删除</span>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</div>
|
|
|
|
<div class="dialog-footer" style="margin-right: 45%">
|
|
<el-button
|
|
class="cancleBtn"
|
|
@click="addOrEditDialog = false"
|
|
icon="el-icon-circle-close"
|
|
size="medium"
|
|
>{{ $t('message.deviceManage.cancel') }}
|
|
</el-button>
|
|
<el-button type="primary" icon="el-icon-circle-check" size="medium"
|
|
>{{ $t('message.deviceManage.save') }}
|
|
</el-button>
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
<!-- 详情-投标记录新增 -->
|
|
<el-dialog
|
|
:modal-append-to-body="false"
|
|
@close="close"
|
|
:title="tenderRecordStitle"
|
|
:visible.sync="tenderRecordsShow"
|
|
width="667px"
|
|
>
|
|
<div class="dialog_content">
|
|
<el-form
|
|
size="medium"
|
|
ref="recordsForm"
|
|
:model="recordsForm"
|
|
:rules="recordsRules"
|
|
label-width="120px"
|
|
class="dialogFormBox"
|
|
>
|
|
<el-form-item label="投标单位" prop="tenderUnit">
|
|
<el-input
|
|
v-model="recordsForm.tenderUnit"
|
|
placeholder="请输入"
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="上传时间" prop="uploadTime">
|
|
<el-date-picker
|
|
v-model="recordsForm.uploadTime"
|
|
type="date"
|
|
placeholder="选择日期"
|
|
value-format="yyyy-MM-dd"
|
|
>
|
|
</el-date-picker>
|
|
</el-form-item>
|
|
<el-form-item label="状态" prop="state">
|
|
<el-input
|
|
v-model="recordsForm.state"
|
|
placeholder="请输入"
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="商务文件" prop="businessDocument">
|
|
<el-upload
|
|
class="upload-demo"
|
|
name="files"
|
|
:action="$store.state.UPLOADURL"
|
|
:on-remove="(file, fileList) => handleRemove(file, fileList, 2)"
|
|
:multiple="false"
|
|
:on-success="(res, file) => handleSuccess(res, file, 2)"
|
|
:file-list="commercialAffairsList"
|
|
accept=".doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf"
|
|
>
|
|
<el-button size="medium" type="primary" plain>
|
|
上传附件
|
|
</el-button>
|
|
</el-upload>
|
|
</el-form-item>
|
|
<el-form-item label="技术文件" prop="technicalDocument">
|
|
<el-upload
|
|
class="upload-demo"
|
|
name="files"
|
|
:action="$store.state.UPLOADURL"
|
|
:on-remove="(file, fileList) => handleRemove(file, fileList, 3)"
|
|
:multiple="false"
|
|
:on-success="(res, file) => handleSuccess(res, file, 3)"
|
|
:file-list="technologyList"
|
|
accept=".doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf"
|
|
>
|
|
<el-button size="medium" type="primary" plain>
|
|
上传附件
|
|
</el-button>
|
|
</el-upload>
|
|
</el-form-item>
|
|
<el-form-item label="价格文件" prop="priceFile">
|
|
<el-upload
|
|
class="upload-demo"
|
|
name="files"
|
|
:action="$store.state.UPLOADURL"
|
|
:on-remove="(file, fileList) => handleRemove(file, fileList, 4)"
|
|
:multiple="false"
|
|
:on-success="(res, file) => handleSuccess(res, file, 4)"
|
|
:file-list="priceList"
|
|
accept=".doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf"
|
|
>
|
|
<el-button size="medium" type="primary" plain>
|
|
上传附件
|
|
</el-button>
|
|
</el-upload>
|
|
</el-form-item>
|
|
|
|
<div class="dialog-footer">
|
|
<el-button
|
|
class="cancleBtn"
|
|
@click="tenderRecordsShow = false"
|
|
icon="el-icon-circle-close"
|
|
size="medium"
|
|
>取消
|
|
</el-button>
|
|
<el-button
|
|
type="primary"
|
|
icon="el-icon-circle-check"
|
|
size="medium"
|
|
@click="saveBtn(1)"
|
|
>保存
|
|
</el-button>
|
|
</div>
|
|
</el-form>
|
|
</div>
|
|
</el-dialog>
|
|
<!-- 详情-招标清单新增 -->
|
|
<el-dialog
|
|
:modal-append-to-body="false"
|
|
@close="close"
|
|
:title="tenderListShowtitle"
|
|
:visible.sync="tenderListShow"
|
|
width="667px"
|
|
>
|
|
<div class="dialog_content">
|
|
<el-form
|
|
size="medium"
|
|
ref="tenderListForm"
|
|
:model="tenderListForm"
|
|
:rules="tenderListFormRules"
|
|
label-width="120px"
|
|
class="dialogFormBox"
|
|
>
|
|
<el-form-item label="物品名称" prop="itemName">
|
|
<el-input
|
|
v-model="tenderListForm.itemName"
|
|
placeholder="请输入"
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="规格型号" prop="specificationAndModel">
|
|
<el-input
|
|
v-model="tenderListForm.specificationAndModel"
|
|
placeholder="请输入"
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="计量单位" prop="measureUnit">
|
|
<el-input
|
|
v-model="tenderListForm.measureUnit"
|
|
placeholder="请输入"
|
|
></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="估算数量" prop="estimateQuantity">
|
|
<el-input
|
|
v-model="tenderListForm.estimateQuantity"
|
|
placeholder="请输入"
|
|
></el-input>
|
|
</el-form-item>
|
|
|
|
<el-form-item label="物资采购单位" prop="materialProcurementUnit">
|
|
<el-input
|
|
v-model="tenderListForm.materialProcurementUnit"
|
|
placeholder="请输入"
|
|
></el-input>
|
|
</el-form-item>
|
|
<div class="dialog-footer">
|
|
<el-button
|
|
class="cancleBtn"
|
|
@click="tenderListShow = false"
|
|
icon="el-icon-circle-close"
|
|
size="medium"
|
|
>取消
|
|
</el-button>
|
|
<el-button
|
|
type="primary"
|
|
icon="el-icon-circle-check"
|
|
size="medium"
|
|
@click="saveBtn(2)"
|
|
>保存
|
|
</el-button>
|
|
</div>
|
|
</el-form>
|
|
</div>
|
|
</el-dialog>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import {
|
|
addGtMaterialTenderApi,//招标管理
|
|
deleGtMaterialTenderApi,
|
|
editGtMaterialTenderApi,
|
|
getTMaterialTenderApi,
|
|
addGtMaterialTenderRecordApi,//招标管理_投标记录
|
|
deletGtMaterialTenderRecordApi,
|
|
editGtMaterialTenderRecordApi,
|
|
getGtMaterialTenderRecordPageApi,
|
|
addGtMaterialTenderBidApi,//招标管理_投标记录
|
|
deletGtMaterialTenderBidApi,
|
|
editGtMaterialTenderBidApi,
|
|
getGtMaterialTenderBidPageApi
|
|
} from '@/assets/js/api/materialManagement.js'
|
|
export default {
|
|
created() {
|
|
this.getList()
|
|
this.getRecordList()
|
|
this.getTendersList()
|
|
},
|
|
data() {
|
|
return {
|
|
uploadaurl: '',
|
|
addInviteForm: {
|
|
tenderName: "",
|
|
tenderUnit: '',
|
|
tenderMethod: '',
|
|
tenderType: '',
|
|
tenderDay: '',
|
|
releaseTime: '',
|
|
planContractAmount: '',
|
|
state: '',
|
|
remark: '',
|
|
annex: '',
|
|
},//招标管理
|
|
|
|
recordsForm: {
|
|
tenderUnit: "",
|
|
uploadTime: "",
|
|
state: "",
|
|
businessDocument: "",//商务文件
|
|
technicalDocument: "",//技术文件
|
|
priceFile: "",//技术文件
|
|
gtMaterialTenderId: '',
|
|
},//招标管理
|
|
gtMaterialTenderId: '',//招标id
|
|
|
|
surveySchemeList: [],
|
|
addInviteFormRules: {},
|
|
recordsRules: {},
|
|
contractFormRules: {},
|
|
searchForm: {
|
|
tenderName: '',
|
|
},
|
|
pagInfo: {
|
|
pageNo: 1, //页数
|
|
pageSize: 10, //条数
|
|
total: 0 //总条数
|
|
},
|
|
List: [],
|
|
title: "",
|
|
dialogShow: false,
|
|
detailData: {},
|
|
ListRecord: [],
|
|
inventoryList: [],
|
|
commercialAffairsList: [],
|
|
technologyList: [],
|
|
priceList: [],
|
|
//----------------
|
|
tenderListShowtitle: '',//详情-招标清单
|
|
tenderListShow: false,//详情-招标清单
|
|
tenderListForm: {
|
|
itemName: '',
|
|
specificationAndModel: '',
|
|
estimateQuantity: '',
|
|
measureUnit: '',
|
|
materialProcurementUnit: '',
|
|
},//详情-招标清单
|
|
tenderListFormRules: {},
|
|
tenderRecordStitle: '',//详情-投标记录
|
|
tenderRecordsShow: false,//详情-投标记录
|
|
tenderRecordsForm: {},//详情-投标记录
|
|
tenderRecordsList: [],//详情-投标记录
|
|
detailData: {},
|
|
dialogSteps: 0,
|
|
contractForm: {},
|
|
contractFormRules: {},
|
|
addOrEditDialog: false,
|
|
|
|
value: '',
|
|
id: '',
|
|
options: [
|
|
{
|
|
label: '发标', value: 0
|
|
},
|
|
{
|
|
label: '议标', value: 1
|
|
},
|
|
{
|
|
label: '中标', value: 2
|
|
},
|
|
],
|
|
|
|
|
|
addEditForm: {
|
|
warehouseName: '',//仓库名称
|
|
warehousePos: '',//warehousePos
|
|
header: '',//负责人
|
|
headerPhone: '',//负责人电话
|
|
remark: '',//备注
|
|
},
|
|
|
|
}
|
|
},
|
|
methods: {
|
|
add() {
|
|
this.title = '新增招标'
|
|
this.dialogShow = true
|
|
this.surveySchemeList = []
|
|
this.close()
|
|
},
|
|
|
|
edit(obj) {
|
|
this.title = '编辑招标'
|
|
this.dialogShow = true
|
|
this.addInviteForm = JSON.parse(JSON.stringify(obj))
|
|
this.surveySchemeList = obj.annex == '' ? obj.annex : []
|
|
if (typeof obj.annex === 'string') {
|
|
this.addInviteForm.annex = JSON.parse(obj.annex)
|
|
this.surveySchemeList = this.addInviteForm.annex
|
|
|
|
}
|
|
|
|
},
|
|
//招标新增/编辑提交
|
|
submitOne() {
|
|
let params = JSON.parse(JSON.stringify(this.addInviteForm))
|
|
params.annex = JSON.stringify(this.surveySchemeList)
|
|
params.projectSn = this.$store.state.projectSn
|
|
this.$refs.addInviteForm.validate((valid) => {
|
|
if (valid) {
|
|
if (this.title == '新增招标') {
|
|
addGtMaterialTenderApi(params).then((result) => {
|
|
if (result.success) {
|
|
this.$message.success(result.message)
|
|
this.getList()
|
|
}
|
|
})
|
|
} else if (this.title === '编辑招标') {
|
|
editGtMaterialTenderApi(params).then((result) => {
|
|
if (result.success) {
|
|
this.$message.success(result.message)
|
|
this.getList()
|
|
}
|
|
})
|
|
}
|
|
this.dialogShow = false
|
|
} else {
|
|
return false
|
|
}
|
|
})
|
|
},
|
|
deleteDev(obj) {
|
|
this.$confirm("此操作将永久删除, 是否继续?", "提示", {
|
|
confirmButtonText: "确定",
|
|
cancelButtonText: "取消",
|
|
type: "warning",
|
|
})
|
|
.then(() => {
|
|
deleGtMaterialTenderApi({ id: obj.id }).then((res) => {
|
|
if (res.success) {
|
|
this.getList()
|
|
this.$message({
|
|
type: "success",
|
|
message: "删除成功!",
|
|
});
|
|
} else {
|
|
this.$message({
|
|
type: "error",
|
|
message: res.message,
|
|
});
|
|
}
|
|
});
|
|
})
|
|
.catch(() => {
|
|
this.$message({
|
|
type: "info",
|
|
message: "已取消删除",
|
|
});
|
|
});
|
|
},
|
|
|
|
//查询招标列表
|
|
getList() {
|
|
getTMaterialTenderApi({
|
|
pageNo: this.pagInfo.pageNo,
|
|
pageSize: this.pagInfo.pageSize,
|
|
projectSn: this.$store.state.projectSn,
|
|
tenderName: this.searchForm.tenderName,
|
|
}).then((result) => {
|
|
if (result.success) {
|
|
this.List = result.result.records
|
|
this.pagInfo.total = result.result.total
|
|
}
|
|
})
|
|
},
|
|
|
|
close() {
|
|
this.addInviteForm = {}
|
|
this.surveySchemeList = []
|
|
this.recordsForm = {}
|
|
this.tenderListForm = {}
|
|
this.commercialAffairsList = []
|
|
this.technologyList = []
|
|
this.priceList = []
|
|
},
|
|
//显示检查详细弹框
|
|
showDetailFn(row) {
|
|
console.log('row==========',row);
|
|
this.detailData = row
|
|
this.gtMaterialTenderId = this.detailData.id
|
|
this.addOrEditDialog = true
|
|
this.getRecordList()
|
|
this.getTendersList()
|
|
},
|
|
//查询投标记录
|
|
getRecordList() {
|
|
getGtMaterialTenderRecordPageApi({
|
|
pageNo: this.pagInfo.pageNo,
|
|
pageSize: this.pagInfo.pageSize,
|
|
projectSn: this.$store.state.projectSn,
|
|
gtMaterialTenderId: this.gtMaterialTenderId
|
|
}).then((result) => {
|
|
if (result.success) {
|
|
this.ListRecord = result.result.records
|
|
this.pagInfo.total = result.result.total
|
|
}
|
|
})
|
|
},
|
|
//查询招标清单
|
|
getTendersList() {
|
|
getGtMaterialTenderBidPageApi({
|
|
pageNo: this.pagInfo.pageNo,
|
|
pageSize: this.pagInfo.pageSize,
|
|
projectSn: this.$store.state.projectSn,
|
|
gtMaterialTenderId: this.gtMaterialTenderId
|
|
}).then((result) => {
|
|
if (result.success) {
|
|
this.inventoryList = result.result.records
|
|
this.pagInfo.total = result.result.total
|
|
}
|
|
})
|
|
},
|
|
//记录详情新增弹框
|
|
addDetails() {
|
|
if (this.dialogSteps == 0) {
|
|
this.tenderRecordStitle = '新增记录'
|
|
this.tenderRecordsShow = true
|
|
this.close()
|
|
} else {
|
|
this.tenderListShow = true
|
|
this.tenderListShowtitle = '新增清单'
|
|
|
|
}
|
|
},
|
|
//记录详情编辑弹框
|
|
editComponent(obj) {
|
|
if (this.dialogSteps == 0) {
|
|
this.tenderRecordStitle = '编辑记录'
|
|
this.tenderRecordsShow = true
|
|
this.recordsForm = JSON.parse(JSON.stringify(obj))
|
|
this.commercialAffairsList = obj.businessDocument
|
|
|
|
this.technologyList = obj.technicalDocument
|
|
this.priceList = obj.priceFile
|
|
|
|
if (typeof obj.businessDocument === 'string') {
|
|
this.recordsForm.businessDocument = JSON.parse(obj.businessDocument)
|
|
this.commercialAffairsList = this.recordsForm.businessDocument
|
|
}
|
|
if (typeof obj.technicalDocument === 'string') {
|
|
this.recordsForm.technicalDocument = JSON.parse(obj.technicalDocument)
|
|
this.technologyList = this.recordsForm.technicalDocument
|
|
}
|
|
if (typeof obj.priceFile === 'string') {
|
|
this.recordsForm.priceFile = JSON.parse(obj.priceFile)
|
|
this.priceList = this.recordsForm.priceFile
|
|
}
|
|
|
|
} else {
|
|
this.tenderListShow = true
|
|
this.tenderListShowtitle = '编辑清单'
|
|
this.tenderListForm = JSON.parse(JSON.stringify(obj))
|
|
}
|
|
},
|
|
//新增/编辑提交
|
|
saveBtn(type) {
|
|
if (type == 1) {
|
|
let params = JSON.parse(JSON.stringify(this.recordsForm))
|
|
params.projectSn = this.$store.state.projectSn
|
|
params.gtMaterialTenderId = this.gtMaterialTenderId
|
|
params.businessDocument = JSON.stringify(this.commercialAffairsList)
|
|
params.technicalDocument = JSON.stringify(this.technologyList)
|
|
params.priceFile = JSON.stringify(this.priceList)
|
|
this.$refs.recordsForm.validate((valid) => {
|
|
if (valid) {
|
|
if (this.tenderRecordStitle == '新增记录') {
|
|
addGtMaterialTenderRecordApi(params).then((result) => {
|
|
if (result.success) {
|
|
this.$message.success(result.message)
|
|
this.getRecordList()
|
|
|
|
}
|
|
})
|
|
} else if (this.tenderRecordStitle == '编辑记录') {
|
|
editGtMaterialTenderRecordApi(params).then((result) => {
|
|
if (result.success) {
|
|
this.$message.success(result.message)
|
|
this.getRecordList()
|
|
|
|
}
|
|
})
|
|
}
|
|
this.tenderRecordsShow = false
|
|
} else {
|
|
return false
|
|
}
|
|
})
|
|
} else {
|
|
let params = JSON.parse(JSON.stringify(this.tenderListForm))
|
|
params.projectSn = this.$store.state.projectSn
|
|
params.gtMaterialTenderId = this.gtMaterialTenderId
|
|
this.$refs.tenderListForm.validate((valid) => {
|
|
if (valid) {
|
|
if (this.tenderListShowtitle == '新增清单') {
|
|
addGtMaterialTenderBidApi(params).then((result) => {
|
|
if (result.success) {
|
|
this.$message.success(result.message)
|
|
this.getTendersList()
|
|
|
|
}
|
|
})
|
|
} else if (this.tenderListShowtitle == '编辑清单') {
|
|
editGtMaterialTenderBidApi(params).then((result) => {
|
|
if (result.success) {
|
|
this.$message.success(result.message)
|
|
this.getTendersList()
|
|
|
|
}
|
|
})
|
|
}
|
|
this.tenderListShow = false
|
|
} else {
|
|
return false
|
|
}
|
|
})
|
|
}
|
|
|
|
},
|
|
delet(obj) {
|
|
if (this.dialogSteps == 0) {
|
|
this.$confirm("此操作将永久删除, 是否继续?", "提示", {
|
|
confirmButtonText: "确定",
|
|
cancelButtonText: "取消",
|
|
type: "warning",
|
|
})
|
|
.then(() => {
|
|
deletGtMaterialTenderRecordApi({ id: obj.id }).then((res) => {
|
|
if (res.success) {
|
|
this.getRecordList()
|
|
this.$message({
|
|
type: "success",
|
|
message: "删除成功!",
|
|
});
|
|
} else {
|
|
this.$message({
|
|
type: "error",
|
|
message: res.message,
|
|
});
|
|
}
|
|
});
|
|
})
|
|
.catch(() => {
|
|
this.$message({
|
|
type: "info",
|
|
message: "已取消删除",
|
|
});
|
|
});
|
|
|
|
} else {
|
|
this.$confirm("此操作将永久删除, 是否继续?", "提示", {
|
|
confirmButtonText: "确定",
|
|
cancelButtonText: "取消",
|
|
type: "warning",
|
|
})
|
|
.then(() => {
|
|
deletGtMaterialTenderBidApi({ id: obj.id }).then((res) => {
|
|
if (res.success) {
|
|
this.getTendersList()()
|
|
this.$message({
|
|
type: "success",
|
|
message: "删除成功!",
|
|
});
|
|
} else {
|
|
this.$message({
|
|
type: "error",
|
|
message: res.message,
|
|
});
|
|
}
|
|
});
|
|
})
|
|
.catch(() => {
|
|
this.$message({
|
|
type: "info",
|
|
message: "已取消删除",
|
|
});
|
|
});
|
|
}
|
|
},
|
|
//下载附件
|
|
download(item, type) {
|
|
if(item){
|
|
let arr = []
|
|
arr = JSON.parse(item)
|
|
arr.forEach(element => {
|
|
window.location.href = element.url;
|
|
});
|
|
}else{
|
|
this.$message.success('未查询到附件')
|
|
}
|
|
|
|
|
|
},
|
|
// 删除文件
|
|
handleRemove(file, fileList, type) {
|
|
if (type == 1) {
|
|
this.surveySchemeList = fileList
|
|
}
|
|
else if (type == 2) {
|
|
this.commercialAffairsList = fileList
|
|
}
|
|
else if (type == 3) {
|
|
this.technologyList = fileList
|
|
}
|
|
else if (type == 4) {
|
|
this.priceList = fileList
|
|
}
|
|
},
|
|
handleSuccess(res, file, type) {
|
|
if (res.status == 'SUCCESS') {
|
|
if (type == 1) {
|
|
this.surveySchemeList.push({
|
|
name: file.name,
|
|
url: this.$store.state.FILEURL + file.response.data[0].imageUrl
|
|
})
|
|
} else if (type == 2) {
|
|
this.commercialAffairsList.push({
|
|
name: file.name,
|
|
url: this.$store.state.FILEURL + file.response.data[0].imageUrl
|
|
})
|
|
}
|
|
else if (type == 3) {
|
|
this.technologyList.push({
|
|
name: file.name,
|
|
url: this.$store.state.FILEURL + file.response.data[0].imageUrl
|
|
})
|
|
}
|
|
else if (type == 4) {
|
|
this.priceList.push({
|
|
name: file.name,
|
|
url: this.$store.state.FILEURL + file.response.data[0].imageUrl
|
|
})
|
|
}
|
|
}
|
|
this.$message.success(this.$t('message.deepFoundConfig.uploadSuccess'))
|
|
},
|
|
SizeChange(val) {
|
|
this.pagInfo.pageSize = val
|
|
this.getList()
|
|
},
|
|
CurrentChange(val) {
|
|
this.pagInfo.pageNo = val
|
|
this.getList()
|
|
},
|
|
refresh() {
|
|
this.searchForm = {}
|
|
this.pagInfo.pageNo = 1 //页数
|
|
this.pagInfo.pageSize = 10 //条数
|
|
this.getList()
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
<style lang="less" scoped>
|
|
.tables2 {
|
|
min-height: auto;
|
|
}
|
|
|
|
::v-deep .dialog_content {
|
|
padding: 0 0px;
|
|
}
|
|
|
|
.btnAdd {
|
|
position: absolute;
|
|
right: 20px;
|
|
}
|
|
</style> |