|
@@ -44,7 +44,6 @@
|
|
<span>{{ scope.$index + 1 }}</span>
|
|
<span>{{ scope.$index + 1 }}</span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
-
|
|
|
|
<el-table-column label="审查内容" prop="content">
|
|
<el-table-column label="审查内容" prop="content">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<div class="pre-text">{{ scope.row.content }}</div>
|
|
<div class="pre-text">{{ scope.row.content }}</div>
|
|
@@ -55,7 +54,7 @@
|
|
<div class="pre-text">{{ scope.row.standard }}</div>
|
|
<div class="pre-text">{{ scope.row.standard }}</div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column v-if="isLeader" label="" align="center" :width="240">
|
|
|
|
|
|
+ <el-table-column v-if="isLeader" label="审查结果" align="center" :width="240">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<span v-if="!isEdit">{{ scope.row.isOk }}</span>
|
|
<span v-if="!isEdit">{{ scope.row.isOk }}</span>
|
|
<div v-else>
|
|
<div v-else>
|
|
@@ -86,9 +85,9 @@
|
|
<div class="pre-text">{{ scope.row.standard }}</div>
|
|
<div class="pre-text">{{ scope.row.standard }}</div>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column v-if="isLeader" label="得分" align="center" :width="240">
|
|
|
|
|
|
+ <el-table-column v-if="isLeader" label="审查结果" align="center" :width="240">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- <span v-if="!isEdit">{{ scope.row.score }}</span>
|
|
|
|
|
|
+ <span v-if="!isEdit">{{ scope.row.isOk }}</span>
|
|
<div v-else>
|
|
<div v-else>
|
|
<el-radio v-model="scope.row.isOk" label="合格">合格</el-radio>
|
|
<el-radio v-model="scope.row.isOk" label="合格">合格</el-radio>
|
|
<el-radio v-model="scope.row.isOk" label="不合格">不合格</el-radio>
|
|
<el-radio v-model="scope.row.isOk" label="不合格">不合格</el-radio>
|
|
@@ -167,7 +166,6 @@ import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函
|
|
import ExcelJS from 'exceljs'
|
|
import ExcelJS from 'exceljs'
|
|
import { saveAs } from 'file-saver'
|
|
import { saveAs } from 'file-saver'
|
|
import { genExamineExcel, genRespondExcel, genTechExcel, genIdeaExcel } from '@/utils/markExcel'
|
|
import { genExamineExcel, genRespondExcel, genTechExcel, genIdeaExcel } from '@/utils/markExcel'
|
|
-import dayjs from 'dayjs'
|
|
|
|
export default {
|
|
export default {
|
|
name: 'excelContent',
|
|
name: 'excelContent',
|
|
|
|
|
|
@@ -207,7 +205,6 @@ export default {
|
|
},
|
|
},
|
|
|
|
|
|
created () {
|
|
created () {
|
|
-
|
|
|
|
this.isEdit = this.tender.sProjectState < 7
|
|
this.isEdit = this.tender.sProjectState < 7
|
|
this.getData();
|
|
this.getData();
|
|
},
|
|
},
|
|
@@ -216,12 +213,10 @@ export default {
|
|
checkRole,
|
|
checkRole,
|
|
getData () {
|
|
getData () {
|
|
getMark({ sid: this.tender.sid, hid: this.hid }).then(response => {
|
|
getMark({ sid: this.tender.sid, hid: this.hid }).then(response => {
|
|
-
|
|
|
|
this.isLeader = response.data.isLeader === 1;
|
|
this.isLeader = response.data.isLeader === 1;
|
|
|
|
|
|
-
|
|
|
|
- const examineList = response.data.examineList || [];
|
|
|
|
- const bidExpertExamines = response.data.bidExpertExamines || [];
|
|
|
|
|
|
+ const examineList = response.data.examineList || []; // 资格审查表内容
|
|
|
|
+ const bidExpertExamines = response.data.bidExpertExamines || []; // 资格审查表分数
|
|
if (bidExpertExamines.length > 0) {
|
|
if (bidExpertExamines.length > 0) {
|
|
for (let examine of examineList) {
|
|
for (let examine of examineList) {
|
|
examine.oid = '';
|
|
examine.oid = '';
|
|
@@ -235,9 +230,8 @@ export default {
|
|
}
|
|
}
|
|
this.zigeList = examineList;
|
|
this.zigeList = examineList;
|
|
|
|
|
|
-
|
|
|
|
- const xiangyingList = response.data.bidRespondList || [];
|
|
|
|
- const bidExpertResponds = response.data.bidExpertResponds || [];
|
|
|
|
|
|
+ const xiangyingList = response.data.bidRespondList || []; // 响应审查表内容
|
|
|
|
+ const bidExpertResponds = response.data.bidExpertResponds || []; // 响应审查表分数
|
|
if (bidExpertResponds.length > 0) {
|
|
if (bidExpertResponds.length > 0) {
|
|
for (let xiangying of xiangyingList) {
|
|
for (let xiangying of xiangyingList) {
|
|
xiangying.isOk = '';
|
|
xiangying.isOk = '';
|
|
@@ -251,16 +245,14 @@ export default {
|
|
}
|
|
}
|
|
this.xiangyingList = xiangyingList;
|
|
this.xiangyingList = xiangyingList;
|
|
|
|
|
|
-
|
|
|
|
- const jishuList = response.data.bidTechList || [];
|
|
|
|
- const bidExpertTeches = response.data.bidExpertTeches || [];
|
|
|
|
|
|
+ const jishuList = response.data.bidTechList || []; // 技术审查表内容
|
|
|
|
+ const bidExpertTeches = response.data.bidExpertTeches || []; // 技术审查表分数
|
|
if (bidExpertTeches.length > 0) {
|
|
if (bidExpertTeches.length > 0) {
|
|
for (let jishu of jishuList) {
|
|
for (let jishu of jishuList) {
|
|
jishu.score = '';
|
|
jishu.score = '';
|
|
jishu.oid = '';
|
|
jishu.oid = '';
|
|
jishu.reason = '';
|
|
jishu.reason = '';
|
|
const expertTech = bidExpertTeches.find(item => item.tid == jishu.id)
|
|
const expertTech = bidExpertTeches.find(item => item.tid == jishu.id)
|
|
-
|
|
|
|
if (expertTech) {
|
|
if (expertTech) {
|
|
jishu.score = expertTech.score;
|
|
jishu.score = expertTech.score;
|
|
jishu.oid = expertTech.id;
|
|
jishu.oid = expertTech.id;
|
|
@@ -268,7 +260,6 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
this.jishuList = jishuList;
|
|
this.jishuList = jishuList;
|
|
|
|
|
|
if (response.data.uKaiTime) {
|
|
if (response.data.uKaiTime) {
|
|
@@ -279,6 +270,7 @@ export default {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
|
|
|
|
+ // 获取评委意见
|
|
getIdea({ sid: this.tender.sid, hid: this.hid }).then(response => {
|
|
getIdea({ sid: this.tender.sid, hid: this.hid }).then(response => {
|
|
this.idea = response?.data?.idea || ''
|
|
this.idea = response?.data?.idea || ''
|
|
})
|
|
})
|
|
@@ -290,9 +282,9 @@ export default {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
- let bidExpertExamines = []
|
|
|
|
- let bidExpertResponds = []
|
|
|
|
- let bidExpertTeches = []
|
|
|
|
|
|
+ let bidExpertExamines = [] // 资格
|
|
|
|
+ let bidExpertResponds = [] // 响应
|
|
|
|
+ let bidExpertTeches = [] // 技术
|
|
|
|
|
|
let isOk = true
|
|
let isOk = true
|
|
for (let item of this.zigeList) {
|
|
for (let item of this.zigeList) {
|
|
@@ -348,6 +340,18 @@ export default {
|
|
reason: item.reason,
|
|
reason: item.reason,
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
+ } else {
|
|
|
|
+ bidExpertTeches = this.jishuList.map(item => {
|
|
|
|
+ return {
|
|
|
|
+ id: item.oid,
|
|
|
|
+ sid: this.tender.sid,
|
|
|
|
+ tid: item.id,
|
|
|
|
+ hid: this.hid,
|
|
|
|
+ hName: this.hName,
|
|
|
|
+ score: item.score,
|
|
|
|
+ reason: item.reason,
|
|
|
|
+ }
|
|
|
|
+ })
|
|
}
|
|
}
|
|
|
|
|
|
const formData = {
|
|
const formData = {
|
|
@@ -368,32 +372,23 @@ export default {
|
|
}).finally(() => {
|
|
}).finally(() => {
|
|
this.fullscreenLoading = false;
|
|
this.fullscreenLoading = false;
|
|
});
|
|
});
|
|
-
|
|
|
|
- const pingfenRecordObj = JSON.parse(sessionStorage.getItem('pingfenRecord')) || {}
|
|
|
|
- const pingfenRecord = pingfenRecordObj[this.tender.sid] || []
|
|
|
|
-
|
|
|
|
- if (!pingfenRecord.includes(this.hid)) {
|
|
|
|
- pingfenRecord.push(this.hid);
|
|
|
|
- }
|
|
|
|
- pingfenRecordObj[this.tender.sid] = pingfenRecord
|
|
|
|
- sessionStorage.setItem('pingfenRecord', JSON.stringify(pingfenRecordObj))
|
|
|
|
},
|
|
},
|
|
|
|
|
|
- handleDownloadExamine () {
|
|
|
|
|
|
+ handleDownloadExamine() {
|
|
const workbook = new ExcelJS.Workbook()
|
|
const workbook = new ExcelJS.Workbook()
|
|
genExamineExcel(workbook, this.tender.sName, this.excelForm.kaibiaoTime, this.excelForm.kaibiaoAddress, this.hName, this.zigeList)
|
|
genExamineExcel(workbook, this.tender.sName, this.excelForm.kaibiaoTime, this.excelForm.kaibiaoAddress, this.hName, this.zigeList)
|
|
workbook.xlsx.writeBuffer().then(buffer => {
|
|
workbook.xlsx.writeBuffer().then(buffer => {
|
|
saveAs(new Blob([buffer], { type: 'application/octet-stream' }), `资格审查表-${this.hName}.xlsx`)
|
|
saveAs(new Blob([buffer], { type: 'application/octet-stream' }), `资格审查表-${this.hName}.xlsx`)
|
|
})
|
|
})
|
|
},
|
|
},
|
|
- handleDownloadRespond () {
|
|
|
|
|
|
+ handleDownloadRespond() {
|
|
const workbook = new ExcelJS.Workbook()
|
|
const workbook = new ExcelJS.Workbook()
|
|
genRespondExcel(workbook, this.tender.sName, this.excelForm.kaibiaoTime, this.excelForm.kaibiaoAddress, this.hName, this.xiangyingList)
|
|
genRespondExcel(workbook, this.tender.sName, this.excelForm.kaibiaoTime, this.excelForm.kaibiaoAddress, this.hName, this.xiangyingList)
|
|
workbook.xlsx.writeBuffer().then(buffer => {
|
|
workbook.xlsx.writeBuffer().then(buffer => {
|
|
saveAs(new Blob([buffer], { type: 'application/octet-stream' }), `响应性审查表-${this.hName}.xlsx`)
|
|
saveAs(new Blob([buffer], { type: 'application/octet-stream' }), `响应性审查表-${this.hName}.xlsx`)
|
|
})
|
|
})
|
|
},
|
|
},
|
|
- handleDownloadTech () {
|
|
|
|
|
|
+ handleDownloadTech() {
|
|
const workbook = new ExcelJS.Workbook()
|
|
const workbook = new ExcelJS.Workbook()
|
|
genTechExcel(workbook, this.tender.sName, this.excelForm.kaibiaoTime, this.excelForm.kaibiaoAddress, this.hName, this.jishuList, '技术标')
|
|
genTechExcel(workbook, this.tender.sName, this.excelForm.kaibiaoTime, this.excelForm.kaibiaoAddress, this.hName, this.jishuList, '技术标')
|
|
|
|
|
|
@@ -401,7 +396,7 @@ export default {
|
|
saveAs(new Blob([buffer], { type: 'application/octet-stream' }), `技术审查表-${this.hName}.xlsx`)
|
|
saveAs(new Blob([buffer], { type: 'application/octet-stream' }), `技术审查表-${this.hName}.xlsx`)
|
|
})
|
|
})
|
|
},
|
|
},
|
|
- handleDownloadIdea () {
|
|
|
|
|
|
+ handleDownloadIdea() {
|
|
const workbook = new ExcelJS.Workbook()
|
|
const workbook = new ExcelJS.Workbook()
|
|
genIdeaExcel(workbook, this.tender.sName, this.excelForm.kaibiaoTime, this.excelForm.kaibiaoAddress, this.hName, this.idea)
|
|
genIdeaExcel(workbook, this.tender.sName, this.excelForm.kaibiaoTime, this.excelForm.kaibiaoAddress, this.hName, this.idea)
|
|
workbook.xlsx.writeBuffer().then(buffer => {
|
|
workbook.xlsx.writeBuffer().then(buffer => {
|