Commit 0493286c authored by 张冬's avatar 张冬

专家评标问题解决

parent 3bb56ece
...@@ -363,24 +363,24 @@ export function bidFailed(data) { ...@@ -363,24 +363,24 @@ export function bidFailed(data) {
}) })
} }
// 编辑评标页面接口(专家)
// export function bidFailed(data) {
// return request({
// url: "tender-evaluate/editEvaluate", 三
// method: 'post',
// data:data
// })
// }
// // 保存编辑(专家)
// export function bidFailed(data) {
// return request({
// url: "tender-evaluate/saveEvaluate",
// method: 'post',
// data:data
// })
// }
// // 保存编辑(专家)
export function saveEvaluate(data) {
return request({
url: "tender-evaluate/saveEvaluate",
method: 'post',
data:data
})
}
//是否已经提交评分等等的状态
export function isEvaluate(projectId) {
return request({
url: `tender-evaluate/isEvaluate/${projectId}`,
method: 'get',
})
}
//项目经理中的评标结算按钮 //项目经理中的评标结算按钮
export function bidend(projectId) { export function bidend(projectId) {
return request({ return request({
......
...@@ -4,14 +4,18 @@ ...@@ -4,14 +4,18 @@
<dataBreadcrumb :breads="breads"></dataBreadcrumb> <dataBreadcrumb :breads="breads"></dataBreadcrumb>
<div class="message"> <div class="message">
<div class="flex-between bond"> <div class="flex-between bond">
<div>招标文件:<span @click="down(bidDetail.fileUrl)">{{bidDetail.fileName}}</span></div> <div>
招标文件:<span @click="down(bidDetail.fileUrl)">{{ bidDetail.fileName }}</span>
</div>
<div>开标信息:<span @click="changeOpen">开标一览表</span></div> <div>开标信息:<span @click="changeOpen">开标一览表</span></div>
</div> </div>
<div class="flex-item upload"> <div class="flex-item upload">
<div>变更信息:</div> <div>变更信息:</div>
<ul class="title flex"> <ul class="title flex">
<li v-for="(item,index) in changeList" :key="index"> <li v-for="(item, index) in changeList" :key="index">
<router-link :to="{path: '/purchaser/bid/bidStage/changeList/see', query: {id: item.noticeId }}">{{item.title}}</router-link> <router-link :to="{ path: '/purchaser/bid/bidStage/changeList/see', query: { id: item.noticeId } }">{{
item.title
}}</router-link>
</li> </li>
</ul> </ul>
</div> </div>
...@@ -22,15 +26,17 @@ ...@@ -22,15 +26,17 @@
<el-table-column slot="operate" label="文件" align="center" fixed="right"> <el-table-column slot="operate" label="文件" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="flex file"> <div class="flex file">
<div @click="down(scope.row.fileUrl)">{{scope.row.fileName}}</div> <div @click="down(scope.row.fileUrl)">{{ scope.row.fileName }}</div>
<div v-for="(file,index) in scope.row.fileList" :key="index" @click="down(file.fileUrl)">{{ file.fileName }}</div> <div v-for="(file, index) in scope.row.fileList" :key="index" @click="down(file.fileUrl)">
{{ file.fileName }}
</div>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
</dataTable> </dataTable>
</div> </div>
<!-- 评审信息 --> <!-- 评审信息 -->
<div style="margin-top:100px"> <div style="margin-top: 100px">
<div class="flex-between"> <div class="flex-between">
<h5>评审信息</h5> <h5>评审信息</h5>
<el-button type="primary" size="small" @click="jump">澄清质询管理</el-button> <el-button type="primary" size="small" @click="jump">澄清质询管理</el-button>
...@@ -38,31 +44,31 @@ ...@@ -38,31 +44,31 @@
<dataTable :table-data="review" :columns="reviewTitle" :is-index="true"> <dataTable :table-data="review" :columns="reviewTitle" :is-index="true">
<el-table-column slot="operate" label="资格审查" align="center" fixed="right"> <el-table-column slot="operate" label="资格审查" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.qualification==true">通过</div> <div v-if="scope.row.qualification == true">通过</div>
<div v-if="scope.row.qualification==false">未通过</div> <div v-if="scope.row.qualification == false">未通过</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column slot="operate" label="符合性审查" align="center" fixed="right"> <el-table-column slot="operate" label="符合性审查" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.conformity==true">通过</div> <div v-if="scope.row.conformity == true">通过</div>
<div v-if="scope.row.conformity==false">未通过</div> <div v-if="scope.row.conformity == false">未通过</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column slot="operate" label="手动废标" align="center" fixed="right"> <el-table-column slot="operate" label="手动废标" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.bidRejection==true">通过</div> <div v-if="scope.row.bidRejection == true">通过</div>
<div v-if="scope.row.bidRejection==false">未通过</div> <div v-if="scope.row.bidRejection == false">未通过</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column slot="operate" label="结论" align="center" fixed="right"> <el-table-column slot="operate" label="结论" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.conclusion==true">通过</div> <div v-if="scope.row.conclusion == true">通过</div>
<div v-if="scope.row.conclusion==false">未通过</div> <div v-if="scope.row.conclusion == false">未通过</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column slot="operate" label="操作" align="center" fixed="right"> <el-table-column slot="operate" label="操作" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" size="small" @click="handleEdit(scope.row,scope.$index)">编辑</el-button> <el-button type="text" size="small" @click="handleEdit(scope.row, scope.$index)">编辑</el-button>
</template> </template>
</el-table-column> </el-table-column>
</dataTable> </dataTable>
...@@ -73,30 +79,30 @@ ...@@ -73,30 +79,30 @@
<dataTable :table-data="rank" :columns="rankTitle" :is-index="true"> <dataTable :table-data="rank" :columns="rankTitle" :is-index="true">
<el-table-column slot="operate" label="是否中标候选人" align="center" fixed="right"> <el-table-column slot="operate" label="是否中标候选人" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.winPerson=='true'"></div> <div v-if="scope.row.winPerson == 'true'"></div>
<div v-if="scope.row.winPerson=='false'"></div> <div v-if="scope.row.winPerson == 'false'"></div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column slot="operate" label="排名" align="center" fixed="right"> <el-table-column slot="operate" label="排名" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.finalScore">{{scope.$index+1}}</div> <div v-if="scope.row.finalScore">{{ scope.$index + 1 }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column slot="operate" label="最终得分" align="center" fixed="right"> <el-table-column slot="operate" label="最终得分" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.finalScore">{{(scope.row.finalScore)}}</div> <div v-if="scope.row.finalScore">{{ scope.row.finalScore }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column slot="operate" label="操作" align="center" fixed="right"> <el-table-column slot="operate" label="操作" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" size="small" @click="Edit(scope.row,scope.$index)">编辑</el-button> <el-button type="text" size="small" @click="Edit(scope.row, scope.$index)">编辑</el-button>
</template> </template>
</el-table-column> </el-table-column>
</dataTable> </dataTable>
</div> </div>
<div class="flex"> <div class="flex">
<div>评标附件:</div> <div>评标附件:</div>
<singleUpload :limit="5" :max="100" tip="最多上传5份,每份不超过100M." @input="getfile"></singleUpload> <singleUpload :limit="5" :max="100" tip="最多上传5份,每份不超过100M." :fileList="fileList" @input="getfile"></singleUpload>
</div> </div>
<div class="button"> <div class="button">
<el-button @click="back">返回</el-button> <el-button @click="back">返回</el-button>
...@@ -115,7 +121,7 @@ ...@@ -115,7 +121,7 @@
<el-radio v-model="evaluateForm.conformity" :label="true">通过</el-radio> <el-radio v-model="evaluateForm.conformity" :label="true">通过</el-radio>
<el-radio v-model="evaluateForm.conformity" :label="false">未通过</el-radio> <el-radio v-model="evaluateForm.conformity" :label="false">未通过</el-radio>
</el-form-item> </el-form-item>
<el-form-item label="手动废标" prop='bidRejection'> <el-form-item label="手动废标" prop="bidRejection">
<el-radio v-model="evaluateForm.bidRejection" :label="true">通过</el-radio> <el-radio v-model="evaluateForm.bidRejection" :label="true">通过</el-radio>
<el-radio v-model="evaluateForm.bidRejection" :label="false">未通过</el-radio> <el-radio v-model="evaluateForm.bidRejection" :label="false">未通过</el-radio>
</el-form-item> </el-form-item>
...@@ -133,17 +139,40 @@ ...@@ -133,17 +139,40 @@
<el-dialog title="编辑" :visible.sync="isRank" width="40%"> <el-dialog title="编辑" :visible.sync="isRank" width="40%">
<el-form :model="rankForm" ref="rankForm" :rules="rules"> <el-form :model="rankForm" ref="rankForm" :rules="rules">
<el-form-item label="商务评分" prop="commercialGrade"> <el-form-item label="商务评分" prop="commercialGrade">
<el-input-number v-model="rankForm.commercialGrade" :min="0" :controls="false" :precision="2" placeholder="请输入"></el-input-number> <el-input-number
v-model="rankForm.commercialGrade"
:min="0"
:controls="false"
:precision="2"
placeholder="请输入"
></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="技术评分" prop="skillGrade"> <el-form-item label="技术评分" prop="skillGrade">
<el-input-number v-model="rankForm.skillGrade" :min="0" :controls="false" :precision="2" placeholder="请输入"></el-input-number> <el-input-number
v-model="rankForm.skillGrade"
:min="0"
:controls="false"
:precision="2"
placeholder="请输入"
></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="价格评分" prop="priceGrade"> <el-form-item label="价格评分" prop="priceGrade">
<el-input-number v-model="rankForm.priceGrade" :min="0" :controls="false" :precision="2" placeholder="请输入"></el-input-number> <el-input-number
v-model="rankForm.priceGrade"
:min="0"
:controls="false"
:precision="2"
placeholder="请输入"
></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="评标价" prop="evaluationPrice"> <el-form-item label="评标价" prop="evaluationPrice">
<el-input-number v-model="rankForm.evaluationPrice" :min="0" :controls="false" :precision="2" placeholder="请输入"></el-input-number> <el-input-number
v-model="rankForm.evaluationPrice"
:min="0"
:controls="false"
:precision="2"
placeholder="请输入"
></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="是否中标候选人" prop="winPerson"> <el-form-item label="是否中标候选人" prop="winPerson">
<el-radio v-model="rankForm.winPerson" label="true"></el-radio> <el-radio v-model="rankForm.winPerson" label="true"></el-radio>
...@@ -157,8 +186,7 @@ ...@@ -157,8 +186,7 @@
</el-dialog> </el-dialog>
<!-- 开标一览表 --> <!-- 开标一览表 -->
<el-dialog title="开标一览表" :visible.sync="isOpenInfo"> <el-dialog title="开标一览表" :visible.sync="isOpenInfo">
<dataTable :tableData="tableData" :columns="nopagecolumns" :margin-top="0" :margin-bottom="0"> <dataTable :tableData="tableData" :columns="nopagecolumns" :margin-top="0" :margin-bottom="0"> </dataTable>
</dataTable>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="isOpenInfo = false">取 消</el-button> <el-button @click="isOpenInfo = false">取 消</el-button>
</div> </div>
...@@ -167,20 +195,22 @@ ...@@ -167,20 +195,22 @@
</template> </template>
<script> <script>
import { import {
bidderlist, bidderlist,
saveCompanyEvaluate,
saveCompanyRank,
bidBookDownload, bidBookDownload,
changeNoticelist, changeNoticelist,
bidFilelist, bidFilelist,
accessoryupload, openInfo,
openInfo saveEvaluate,
} from '@api/purchaser/bid' companyRank,
import dataTable from '@components/nopageTable.vue' CompanyEvaluatec,
import dataBreadcrumb from '@components/dataBreadcrumb.vue' isEvaluate,
import singleUpload from '@components/Upload/Upload.vue' accessorydownload
export default { } from '@api/purchaser/bid';
import dataTable from '@components/nopageTable.vue';
import dataBreadcrumb from '@components/dataBreadcrumb.vue';
import singleUpload from '@components/Upload/Upload.vue';
export default {
components: { components: {
dataTable, dataTable,
dataBreadcrumb, dataBreadcrumb,
...@@ -188,9 +218,11 @@ ...@@ -188,9 +218,11 @@
}, },
data() { data() {
return { return {
isOpenInfo:false, fileList:[],
tableData:[], isOpenInfo: false,
nopagecolumns: [{ tableData: [],
nopagecolumns: [
{
label: '投标人名称', label: '投标人名称',
prop: 'companyName' prop: 'companyName'
}, },
...@@ -200,60 +232,78 @@ ...@@ -200,60 +232,78 @@
}, },
{ {
label: '是否签名', label: '是否签名',
prop: 'isSign', prop: 'isSign'
}, }
], // ], //
rules: { rules: {
qualification: [{ qualification: [
{
required: true, required: true,
message: '请选择', message: '请选择',
trigger: 'change' trigger: 'change'
}], }
conformity: [{ ],
conformity: [
{
required: true, required: true,
message: '请选择', message: '请选择',
trigger: 'change' trigger: 'change'
}], }
bidRejection: [{ ],
bidRejection: [
{
required: true, required: true,
message: '请选择', message: '请选择',
trigger: 'change' trigger: 'change'
}], }
conclusion: [{ ],
conclusion: [
{
required: true, required: true,
message: '请选择', message: '请选择',
trigger: 'change' trigger: 'change'
}], }
commercialGrade: [{ ],
commercialGrade: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}], }
skillGrade: [{ ],
skillGrade: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}], }
priceGrade: [{ ],
priceGrade: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}], }
evaluationPrice: [{ ],
evaluationPrice: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}], }
winPerson: [{ ],
winPerson: [
{
required: true, required: true,
message: '请选择', message: '请选择',
trigger: 'change' trigger: 'change'
}] }
]
}, },
file: [], file: [],
downloadList: [], downloadList: [],
changeList: [], changeList: [],
bidDetail: "", bidDetail: '',
evaluateForm: { evaluateForm: {
qualification: '', qualification: '',
conformity: '', conformity: '',
...@@ -263,12 +313,13 @@ ...@@ -263,12 +313,13 @@
evaluateIdx: '', evaluateIdx: '',
isEvaluate: false, isEvaluate: false,
rankForm: { rankForm: {
price: "", price: ''
}, },
rankIdx: "", rankIdx: '',
isRank: false, isRank: false,
projectId: 2, projectId: 2,
rankTitle: [{ rankTitle: [
{
label: '投标人名称', label: '投标人名称',
prop: 'companyName' prop: 'companyName'
}, },
...@@ -297,7 +348,8 @@ ...@@ -297,7 +348,8 @@
} }
], ],
rank: [], rank: [],
bidTitle: [{ bidTitle: [
{
label: '投标人', label: '投标人',
prop: 'companyName' prop: 'companyName'
}, },
...@@ -308,7 +360,8 @@ ...@@ -308,7 +360,8 @@
bids: [], bids: [],
breads: ['招标管理', '招标项目管理', '工作台'], breads: ['招标管理', '招标项目管理', '工作台'],
review: [], review: [],
reviewTitle: [{ reviewTitle: [
{
label: '投标人名称', label: '投标人名称',
prop: 'companyName' prop: 'companyName'
}, },
...@@ -316,23 +369,23 @@ ...@@ -316,23 +369,23 @@
slot: 'operate' slot: 'operate'
} }
] // 操作列 ] // 操作列
} };
}, },
watch: { watch: {
rank: { rank: {
handler(newVal, oldVal) { handler(newVal, oldVal) {
console.log('深度监听rank', newVal, oldVal) console.log('深度监听rank', newVal, oldVal);
if (newVal !== oldVal) { if (newVal !== oldVal) {
console.log("改变") console.log('改变');
} }
}, },
deep: true deep: true
}, },
review: { review: {
handler(newVal, oldVal) { handler(newVal, oldVal) {
console.log('深度监听review', newVal, oldVal) console.log('深度监听review', newVal, oldVal);
if (newVal !== oldVal) { if (newVal !== oldVal) {
console.log("改变") console.log('改变');
} }
}, },
deep: true deep: true
...@@ -342,116 +395,112 @@ ...@@ -342,116 +395,112 @@
this.getbidFilelist(); this.getbidFilelist();
this.getchangeNoticelist(); this.getchangeNoticelist();
this.getbidBookDownload(); this.getbidBookDownload();
this.getbidderlist() this.getbidderlist();
this.getisEvaluate();
}, },
methods: { methods: {
changeOpen(){ changeOpen() {
this.isOpenInfo=true; this.isOpenInfo = true;
this.getopenInfo() ; this.getopenInfo();
}, },
// 开标一览表 // 开标一览表
async getopenInfo() { async getopenInfo() {
try { try {
let projectId = localStorage.getItem("projectId") let projectId = localStorage.getItem('projectId');
const { const { data, code } = await openInfo(projectId);
data,
code
} = await openInfo(projectId)
if (code == 200) { if (code == 200) {
for (let item of data) { for (let item of data) {
if (item.isSign) { if (item.isSign) {
item.isSign = "是" item.isSign = '是';
} else { } else {
item.isSign = "否" item.isSign = '否';
} }
} }
this.tableData = data this.tableData = data;
} }
} catch (e) { } catch (e) {
console.log(e) console.log(e);
} }
}, },
down(url) { down(url) {
window.open(url) window.open(url);
}, },
jump() { jump() {
this.$router.push("/purchaser/bid/bidEvaluation/review/clear") this.$router.push('/purchaser/bid/bidEvaluation/review/clear');
}, },
compare(property) { compare(property) {
return function(a, b) { return function (a, b) {
var value1 = a[property]; var value1 = a[property];
var value2 = b[property]; var value2 = b[property];
return value2 - value1; return value2 - value1;
} };
}, },
getfile(val) { getfile(val) {
this.file = val this.file = val;
},
async getisEvaluate(){
let projectId = localStorage.getItem('projectId');
const { data, code } = await isEvaluate(projectId);
if(data){
this.getCompanyEvaluatec()
this.getcompanyRank()
this.getaccessorydownload()
}
}, },
// 完成按钮 // 完成按钮
async complete() { async complete() {
try { try {
let message = {} let message = {};
message.projectId = localStorage.getItem("projectId") message.projectId = localStorage.getItem('projectId');
message.fileList = this.file message.fileList = this.file;
const { message.rankList = this.rank;
msg, message.judgeList = this.review;
code const { msg, code } = await saveEvaluate(message);
} = await accessoryupload(message)
if (code === 200) { if (code === 200) {
this.$message({ this.$message({
message: msg, message: msg,
type: 'success', type: 'success',
duration: 1500 duration: 1500
}) });
setTimeout(() => { setTimeout(() => {
this.$router.go(-1) this.$router.go(-1);
}, 1500) }, 1500);
} else { } else {
this.$message.error(msg) this.$message.error(msg);
} }
} catch (e) { } catch (e) {
console.log(e) console.log(e);
} }
}, },
back() { back() {
this.$router.go(-1) this.$router.go(-1);
}, },
download(url) { download(url) {
window.open(url) window.open(url);
}, },
async getbidBookDownload() { async getbidBookDownload() {
try { try {
let projectId = localStorage.getItem("projectId") let projectId = localStorage.getItem('projectId');
const { const { data, code } = await bidBookDownload(projectId);
data,
code
} = await bidBookDownload(projectId)
if (code === 200) { if (code === 200) {
this.bidDetail = data this.bidDetail = data;
} }
} catch (e) { } catch (e) {
console.log(e) console.log(e);
} }
}, },
// 查看投标文件 // 查看投标文件
async getbidFilelist() { async getbidFilelist() {
let projectId = localStorage.getItem("projectId"); let projectId = localStorage.getItem('projectId');
const { const { data, code } = await bidFilelist(projectId);
data,
code
} = await bidFilelist(projectId)
if (code === 200) { if (code === 200) {
this.bids = data this.bids = data;
} }
}, },
// 查看变更信息 // 查看变更信息
async getchangeNoticelist() { async getchangeNoticelist() {
let projectId = localStorage.getItem("projectId"); let projectId = localStorage.getItem('projectId');
const { const { data, code } = await changeNoticelist(projectId);
data,
code
} = await changeNoticelist(projectId)
if (code === 200) { if (code === 200) {
this.changeList = data; this.changeList = data;
} }
...@@ -459,117 +508,154 @@ ...@@ -459,117 +508,154 @@
// 排名信息编辑 // 排名信息编辑
Edit(row, index) { Edit(row, index) {
this.rankForm = Object.assign({}, row) this.rankForm = Object.assign({}, row);
this.isRank = true, (this.isRank = true), (this.RankIdx = index);
this.RankIdx = index
}, },
// 提交排名信息 // 提交排名信息
async editCompanyRank() { async editCompanyRank() {
try { try {
const valid = await this.$refs['rankForm'].validate() const valid = await this.$refs['rankForm'].validate();
if (valid) { if (valid) {
const { // const {
code, // code,
msg // msg
} = await saveCompanyRank(this.rankForm) // } = await saveCompanyRank(this.rankForm)
if (code === 200) { // if (code === 200) {
this.$message.success(msg) // this.$message.success(msg)
this.isRank = false // this.isRank = false
this.rankForm.finalScore = this.rankForm.commercialGrade + this.rankForm.skillGrade + this.rankForm.priceGrade // this.rankForm.finalScore = this.rankForm.commercialGrade + this.rankForm.skillGrade + this.rankForm.priceGrade
this.$set(this.rank, this.RankIdx, this.rankForm) // this.$set(this.rank, this.RankIdx, this.rankForm)
this.rank.sort(this.compare('finalScore')) // this.rank.sort(this.compare('finalScore'))
} // }
this.isRank = false;
this.rankForm.finalScore = this.rankForm.commercialGrade + this.rankForm.skillGrade + this.rankForm.priceGrade;
this.$set(this.rank, this.RankIdx, this.rankForm);
this.rank.sort(this.compare('finalScore'));
} }
} catch (e) { } catch (e) {
console.log(e) console.log(e);
} }
}, },
//评审信息编辑 //评审信息编辑
handleEdit(row, index) { handleEdit(row, index) {
this.evaluateForm = Object.assign({}, row) this.evaluateForm = Object.assign({}, row);
this.isEvaluate = true, (this.isEvaluate = true), (this.evaluateIdx = index);
this.evaluateIdx = index
}, },
// 提交评审信息 // 提交评审信息
async editCompanyEvaluate() { async editCompanyEvaluate() {
try { try {
const valid = await this.$refs['evaluateForm'].validate() const valid = await this.$refs['evaluateForm'].validate();
if (valid) { if (valid) {
const { // const { code, msg } = await saveCompanyEvaluate(this.evaluateForm);
code, // if (code === 200) {
msg // this.$message.success(msg);
} = await saveCompanyEvaluate(this.evaluateForm) // this.isEvaluate = false;
if (code === 200) { // this.$set(this.review, this.evaluateIdx, this.evaluateForm);
this.$message.success(msg) // }
this.isEvaluate = false this.isEvaluate = false;
this.$set(this.review, this.evaluateIdx, this.evaluateForm) this.$set(this.review, this.evaluateIdx, this.evaluateForm);
}
} }
} catch (e) { } catch (e) {
console.log(e) console.log(e);
} }
}, },
//获取公司列表
async getbidderlist() { async getbidderlist() {
let projectId = localStorage.getItem("projectId"); let projectId = localStorage.getItem('projectId');
const { const { data, code } = await bidderlist(projectId);
data, this.review = data;
code this.rank = data;
} = await bidderlist(projectId) },
this.review = data // 获取评标附件
this.rank = data async getaccessorydownload() {
let projectId = localStorage.getItem('projectId');
const { data, code } = await accessorydownload(projectId);
for(let item of data){
item.url=item.fileUrl
item.name=item.fileName
}
this.fileList=data
},
// 查投标公司评审信息
async getCompanyEvaluatec() {
try {
let projectId = localStorage.getItem('projectId');
const { data, code } = await CompanyEvaluatec(projectId);
if (code === 200) {
this.review = data;
} }
} catch (e) {
console.log(e);
} }
},
// 查看投标公司排名信息
async getcompanyRank() {
try {
let projectId = localStorage.getItem('projectId');
const { data, code } = await companyRank(projectId);
if (code === 200) {
for(let item of data){
if(item.winPerson){
item.winPerson="true"
}else{
item.winPerson="false"
} }
}
let data1 = data.sort(this.compare('finalScore'));
this.rank = data1;
}
} catch (e) {
console.log(e);
}
}
}
};
</script> </script>
<style scoped> <style scoped>
.bond span{ .bond span {
cursor:pointer; cursor: pointer;
} }
.file>div { .file > div {
margin-right: 10px; margin-right: 10px;
color: #113DEE; color: #113dee;
cursor:pointer; cursor: pointer;
} }
.message { .message {
margin-left: 50px; margin-left: 50px;
margin-bottom: 50px; margin-bottom: 50px;
}
} .message span {
color: #113dee;
}
.message span { .message > div {
color: #113DEE
}
.message>div {
margin-bottom: 15px; margin-bottom: 15px;
} }
.title>li {
.title > li {
margin-right: 15px; margin-right: 15px;
} }
.upload button { .upload button {
border: 1px solid #000000; border: 1px solid #000000;
background: #fff; background: #fff;
width: 50px; width: 50px;
height: 20px; height: 20px;
margin-left: 10px; margin-left: 10px;
} }
h5 { h5 {
font-weight: bold; font-weight: bold;
margin-bottom: 20px; margin-bottom: 20px;
} }
.button { .button {
width: 280px; width: 280px;
margin: 80px auto 30px margin: 80px auto 30px;
} }
</style> </style>
...@@ -7,11 +7,11 @@ ...@@ -7,11 +7,11 @@
<div class="absolute"> <div class="absolute">
<el-button type="primary" @click="propose">提出澄清</el-button> <el-button type="primary" @click="propose">提出澄清</el-button>
</div> </div>
<div v-show="idx==0"> <div v-show="idx == 0">
<dataTable :columns="columns" :page-obj="pageObj" url="tender-clarifies/list"> <dataTable :columns="columns" :page-obj="pageObj" url="tender-clarifies/list">
<el-table-column slot="operate" label="操作" align="center" fixed="right" width="100"> <el-table-column slot="operate" label="操作" align="center" fixed="right" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.clarifiesType==0"> <div v-if="scope.row.clarifiesType == 0">
<el-button type="text" size="small" @click="handleSee(scope.row)">查看</el-button> <el-button type="text" size="small" @click="handleSee(scope.row)">查看</el-button>
</div> </div>
<div v-else> <div v-else>
...@@ -22,11 +22,11 @@ ...@@ -22,11 +22,11 @@
</el-table-column> </el-table-column>
</dataTable> </dataTable>
</div> </div>
<div v-show="idx==1"> <div v-show="idx == 1">
<dataTable :columns="columns1" :page-obj="pageObj1" url="tender-clarifies/list"> <dataTable :columns="columns1" :page-obj="pageObj1" url="tender-clarifies/list">
<el-table-column slot="operate" label="操作" align="center" fixed="right" width="100"> <el-table-column slot="operate" label="操作" align="center" fixed="right" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.clarifiesType==0"> <div v-if="scope.row.clarifiesType == 0">
<el-button type="text" size="small" @click="handleSee(scope.row)">查看</el-button> <el-button type="text" size="small" @click="handleSee(scope.row)">查看</el-button>
</div> </div>
<div v-else> <div v-else>
...@@ -37,15 +37,19 @@ ...@@ -37,15 +37,19 @@
</el-table-column> </el-table-column>
</dataTable> </dataTable>
</div> </div>
<div class="bottomButton">
<el-button @click="back">返回</el-button>
<el-button type="primary" v-if="ruleForm.auditStatus == 2" @click="submitData">提交</el-button>
</div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
// import { getList } from '@api/common/list' // import { getList } from '@api/common/list'
import dataTable from '@components/dataTable.vue' import dataTable from '@components/dataTable.vue';
import changeNav from '@components/changeNav.vue' import changeNav from '@components/changeNav.vue';
import dataBreadcrumb from '@components/dataBreadcrumb.vue' import dataBreadcrumb from '@components/dataBreadcrumb.vue';
export default { export default {
components: { components: {
dataTable, dataTable,
...@@ -54,11 +58,12 @@ export default { ...@@ -54,11 +58,12 @@ export default {
}, },
data() { data() {
return { return {
idx:0, idx: 0,
navs: ["问题列表","公告列表"], navs: ['问题列表', '公告列表'],
breads: ['招标管理', '招标项目管理', '工作台'], breads: ['招标管理', '招标项目管理', '工作台'],
tableData: [], tableData: [],
columns: [{ columns: [
{
label: '澄清问题标题', label: '澄清问题标题',
prop: 'title' prop: 'title'
}, },
...@@ -79,7 +84,8 @@ export default { ...@@ -79,7 +84,8 @@ export default {
slot: 'operate' slot: 'operate'
} }
], ],
columns1: [{ columns1: [
{
label: '澄清问题标题', label: '澄清问题标题',
prop: 'title' prop: 'title'
}, },
...@@ -103,34 +109,37 @@ export default { ...@@ -103,34 +109,37 @@ export default {
pageObj: { pageObj: {
size: 10, size: 10,
currentPage: 1, currentPage: 1,
type:1, type: 1,
func: (currentPage) => { func: (currentPage) => {
this.pageTurning(currentPage) this.pageTurning(currentPage);
} }
}, },
pageObj1: { pageObj1: {
size: 10, size: 10,
currentPage: 1, currentPage: 1,
type:2, type: 2,
func: (currentPage) => { func: (currentPage) => {
this.pageTurning(currentPage) this.pageTurning(currentPage);
}
} }
} }
};
}, },
created() { created() {
this.pageObj.projectId = localStorage.getItem("projectId") this.pageObj.projectId = localStorage.getItem('projectId');
this.pageObj.companyId = localStorage.getItem("companyId") this.pageObj.companyId = localStorage.getItem('companyId');
this.pageObj1.projectId = localStorage.getItem("projectId") this.pageObj1.projectId = localStorage.getItem('projectId');
this.pageObj1.companyId = localStorage.getItem("companyId") this.pageObj1.companyId = localStorage.getItem('companyId');
}, },
methods: { methods: {
getIndex(value){ back() {
this.idx=value this.$router.go(-1);
},
getIndex(value) {
this.idx = value;
}, },
// 提出 // 提出
propose(){ propose() {
this.$router.push("/purchaser/bid/bidStage/clearManagement/propose") this.$router.push('/purchaser/bid/bidStage/clearManagement/propose');
}, },
// 查看 // 查看
handleSee(row) { handleSee(row) {
...@@ -140,25 +149,25 @@ export default { ...@@ -140,25 +149,25 @@ export default {
questionId: row.questionId, questionId: row.questionId,
noticeId: row.noticeId noticeId: row.noticeId
} }
}) });
}, },
// 回复 // 回复
handleReply(row) { handleReply(row) {
this.$router.push({ this.$router.push({
path: '/purchaser/bid/bidStage/clearManagement/reply', path: '/purchaser/bid/bidStage/clearManagement/reply',
query: { query: {
questionId: row.questionId, questionId: row.questionId
} }
}) });
},
} }
} }
};
</script> </script>
<style scoped> <style scoped>
.absolute { .absolute {
position: absolute; position: absolute;
right: 50px; right: 50px;
top: 80px top: 80px;
} }
</style> </style>
...@@ -106,21 +106,20 @@ ...@@ -106,21 +106,20 @@
try { try {
const valid = await this.$refs['ruleForm'].validate() const valid = await this.$refs['ruleForm'].validate()
if (valid) { if (valid) {
console.log(ruleForm) const {
// const { code,
// code, msg
// msg } = await forwardClarify(this.ruleForm)
// } = await forwardClarify(this.ruleForm) if (code === 200) {
// if (code === 200) { this.$message({
// this.$message({ message: msg,
// message: msg, type: 'success',
// type: 'success', duration: 1500
// duration: 1500 })
// }) setTimeout(() => {
// setTimeout(() => { this.$router.go(-1)
// this.$router.go(-1) }, 1500)
// }, 1500) }
// }
} }
} catch (err) { } catch (err) {
console.log(err) console.log(err)
......
...@@ -18,7 +18,7 @@ export function getSearchString(key) { ...@@ -18,7 +18,7 @@ export function getSearchString(key) {
export function down(url) { export function down(url) {
window.open(url) window.open(url)
} }
// export let requestUrl = 'http://192.168.3.35:8085'; // export let requestUrl = 'http://192.168.3.35:8085';
export let requestUrl = 'http://60.205.251.80:8082'; export let requestUrl = 'http://60.205.251.80:8082';
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment