1258 lines
39 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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="purchasingMethod"
align="center"
label="采购方式"
>
<template slot-scope="scope">{{
scope.row.purchasingMethod == 1
? '询价'
: scope.row.purchasingMethod == 2
? '竞争性谈判'
: scope.row.purchasingMethod == 3
? '直接委托'
: scope.row.purchasingMethod == 4
? '单一来源'
: scope.row.purchasingMethod == 5
? '其他合法采购方式'
: ''
}}</template>
</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" align="center" label="附件">
<template slot-scope="scope">
<el-button
@click.stop="download(scope.row.annex)"
type="text"
size="small"
>下载附件</el-button
>
</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="purchasingMethod">
<el-select v-model="addInviteForm.purchasingMethod">
<el-option
v-for="(item, index) in resultList"
:key="index"
:value="item.value"
:label="item.purchasingMethod"
></el-option>
</el-select>
<!-- <el-input
v-model="addInviteForm.purchasingMethod"
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
type="number"
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"
label-width="140px"
style="margin-left: -20px"
>
<el-input
type="number"
@change="checkValue()"
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="1490px"
>
<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">
<template>
<div
style="
width: 200px;
height: 34px;
border: 1px solid #f5f7fa;
border-radius: 5px;
line-height: 33px;
background-color: #f5f7fa;
color: #aeb0bb;
"
>
<span style="margin-left: 10px">{{
detailData.purchasingMethod == 1
? '询价'
: detailData.purchasingMethod == 2
? '竞争性谈判'
: detailData.purchasingMethod == 3
? '直接委托'
: detailData.purchasingMethod == 4
? '单一来源'
: detailData.purchasingMethod == 5
? '其他合法采购方式'
: ''
}}</span>
</div>
</template>
<!-- <el-input disabled v-model="detailData.purchasingMethod"> -->
<!-- </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"
label-width="110px"
>
<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="140px"
>
<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.stop="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">
<el-button
type="primary"
icon="el-icon-circle-check"
@click="addOrEditDialog = false"
size="medium"
>确认
</el-button>
</div>
</div>
</el-dialog>
<!-- 详情-投标记录新增 -->
<el-dialog
:modal-append-to-body="false"
: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 {
resultList: [
{
value: 1,
purchasingMethod: '询价'
},
{
value: 2,
purchasingMethod: '竞争性谈判'
},
{
value: 3,
purchasingMethod: '直接委托'
},
{
value: 4,
purchasingMethod: '单一来源'
},
{
value: 5,
purchasingMethod: '其他合法采购方式'
},
],
uploadaurl: '',
addInviteForm: {
tenderName: "",
tenderUnit: '',
purchasingMethod: '',
tenderType: '',
tenderDay: '',
releaseTime: '',
planContractAmount: '',
state: '',
remark: '',
annex: '',
purchasingMethod: '',
},//招标管理
recordsForm: {
tenderUnit: "",
uploadTime: "",
state: "",
businessDocument: "",//商务文件
technicalDocument: "",//技术文件
priceFile: "",//技术文件
gtMaterialTenderId: '',
},//招标管理
gtMaterialTenderId: '',//招标id
surveySchemeList: [],
addInviteFormRules: {
tenderName: [
{ required: true, message: '必填', trigger: 'change' }
]
},
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: '',//备注
fileName: '',//文件名
},
}
},
methods: {
checkValue() {
var value = '' + this.addInviteForm.planContractAmount.toString();
value = value
.replace(/[^\d.]/g, '') // 清除“数字”和“.”以外的字符
.replace(/\.{2,}/g, '.') // 只保留第一个. 清除多余的
.replace(/^\./g, '') //保证第一个为数字而不是.
.replace('.', '$#$')
.replace(/\./g, '')
.replace('$#$', '.')
.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); // 只能输入两个小数
if (value.indexOf('.') < 0 && value != '') {
// 以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
value = parseFloat(value);
}
value = Number(value).toFixed(2); //不足补位
this.addInviteForm.planContractAmount = value;
},
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 = []
this.$nextTick(() => {
this.$refs.addInviteForm.clearValidate()
})
},
//显示检查详细弹框
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) {
console.log('下载的item', item);
let downloadElement = document.createElement('a')
if (item == '[]') {
this.$message.error('未查询到附件')
} else {
let arr = []
arr = JSON.parse(item)
arr.forEach(element => {
let url = this.$http.defaults.baseURL + 'xmgl/upload/getRenameFile?fileUrl=' + element.url + '&fileName=' + element.name
window.location.href = url;
});
}
},
// 删除文件
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.fileName = file.name
}
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>