Commit c27578ff by 史敦盼

禁用修改

1 parent 0012e989
<!-- 评估材料获取 -->
<template>
<div class="main">
<el-form
:model="ruleForm"
ref="formName"
label-width="100px"
class="demo-ruleForm"
>
<el-form :model="ruleForm" ref="formName" label-width="100px" class="demo-ruleForm">
<el-form-item label="批次年度:" prop="batchYear" class="fromItem">
<el-select v-model="ruleForm.batchYear" placeholder="请选择" clearable>
<el-option
......@@ -18,11 +13,7 @@
</el-select>
</el-form-item>
<el-form-item label="后评估批次名称:" prop="batchName" class="fromItem">
<el-input
v-model="ruleForm.batchName"
placeholder="请输入"
clearable
></el-input>
<el-input v-model="ruleForm.batchName" placeholder="请输入" clearable></el-input>
</el-form-item>
<!-- <el-form-item label="后评估批次状态:" prop="batchState" class="fromItem">
<el-select v-model="ruleForm.batchState" placeholder="请选择" clearable>
......@@ -32,30 +23,13 @@
</el-form-item> -->
<el-form-item label="项目编码:" prop="projectId" class="fromItem">
<el-input
v-model="ruleForm.projectId"
placeholder="请输入"
clearable
></el-input>
<el-input v-model="ruleForm.projectId" placeholder="请输入" clearable></el-input>
</el-form-item>
<el-form-item
label="项目名称:"
prop="projectName"
class="fromItem"
show-overflow-tooltip
>
<el-input
v-model="ruleForm.projectName"
placeholder="请输入"
clearable
></el-input>
<el-form-item label="项目名称:" prop="projectName" class="fromItem" show-overflow-tooltip>
<el-input v-model="ruleForm.projectName" placeholder="请输入" clearable></el-input>
</el-form-item>
<el-form-item label="项目年度:" prop="projectYear" class="fromItem">
<el-select
v-model="ruleForm.projectYear"
placeholder="请选择"
clearable
>
<el-select v-model="ruleForm.projectYear" placeholder="请选择" clearable>
<el-option
v-for="(item, index) in yearsList"
:key="index"
......@@ -65,11 +39,7 @@
</el-select>
</el-form-item>
<el-form-item label="项目审核状态:" prop="postEvalState" class="fromItem">
<el-select
v-model="ruleForm.postEvalState"
placeholder="请选择"
clearable
>
<el-select v-model="ruleForm.postEvalState" placeholder="请选择" clearable>
<!-- <el-option label="材料未上传" value="0"></el-option> -->
<el-option label="待评估" value="1"></el-option>
<el-option label="需整改" value="2"></el-option>
......@@ -101,17 +71,18 @@
<el-button @click="detailsForm()">
<img class="buttonIcon" src="../../assets/ck.png" />详情</el-button
>
<el-button
@click="confirm()"
:disabled="confirmdisabled"
:class="confirmdisabled ? 'noclick' : ''"
>
<i class="el-icon-chat-dot-square"></i
>&nbsp;&nbsp;&nbsp;问题整改</el-button
<i class="el-icon-chat-dot-square"></i>&nbsp;&nbsp;&nbsp;问题整改</el-button
>
<el-button @click="submitNexts()" :disabled="subdisabled" :class="subdisabled?'noclick':''"
<el-button
@click="submitNexts()"
:disabled="subdisabled"
:class="subdisabled ? 'noclick' : ''"
><i class="el-icon-finished"></i> 材料已重新上传</el-button
>
</el-form-item>
......@@ -128,73 +99,46 @@
:row-class-name="tableRowClassName"
border
>
<el-table-column label="序号" width="55" type="index">
</el-table-column>
<el-table-column label="序号" width="55" type="index"> </el-table-column>
<el-table-column type="selection"> </el-table-column>
<el-table-column label="批次年度" prop="batchYear" width="120">
<template slot-scope="scope"> {{ scope.row.batchYear }}</template>
</el-table-column>
<el-table-column prop="batchName" label="后评估批次名称">
</el-table-column>
<el-table-column prop="batchName" label="后评估批次名称"> </el-table-column>
<el-table-column prop="expertName" label="评审专家"> </el-table-column>
<el-table-column prop="projectCode" label="项目编码"> </el-table-column>
<el-table-column
prop="projectName"
label="项目名称"
show-overflow-tooltip
>
<el-table-column prop="projectName" label="项目名称" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="issueYear" label="项目年度" width="120">
<template slot-scope="scope">
<span v-show="scope.row.issueYear">
{{ scope.row.issueYear }}</span
>
<span v-show="scope.row.issueYear"> {{ scope.row.issueYear }}</span>
</template>
</el-table-column>
<el-table-column prop="projectType" label="项目类型" width="120">
<template slot-scope="scope">
<span v-show="scope.row.projectType">
{{ scope.row.projectType | proType }}</span
>
<span v-show="scope.row.projectType"> {{ scope.row.projectType | proType }}</span>
</template>
</el-table-column>
<el-table-column prop="constructionForm" label="建设形式" width="120">
</el-table-column>
<el-table-column
prop="postEvalStateText"
label="项目审核状态"
width="120"
>
<template v-slot="scope">
<el-table-column prop="constructionForm" label="建设形式" width="120"> </el-table-column>
<el-table-column prop="postEvalStateText" label="项目审核状态" width="120">
<template v-slot="scope">
<router-link
v-if=" scope.row.postEvalStateText=='已退回'"
:to="{
path: '/assesszc/projectView',
query: { projectId: scope.row.projectCode },
}"
v-if="scope.row.postEvalStateText == '已退回'"
:to="{
path: '/assesszc/projectView',
query: { projectId: scope.row.projectCode },
}"
>
<el-button type="text" size="small">{{
scope.row.postEvalStateText
}}</el-button>
<el-button type="text" size="small">{{ scope.row.postEvalStateText }}</el-button>
</router-link>
<span v-else>{{ scope.row.postEvalStateText }}</span>
<span v-else>{{ scope.row.postEvalStateText }}</span>
</template>
</el-table-column>
<el-table-column
prop="contractNumber"
label="合同编号"
show-overflow-tooltip
>
<el-table-column prop="contractNumber" label="合同编号" show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="contractName"
label="合同名称"
width="auto"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="planReviewDate" label="计划评估日期">
<el-table-column prop="contractName" label="合同名称" width="auto" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="planReviewDate" label="计划评估日期"> </el-table-column>
</el-table>
</div>
<el-pagination
......@@ -230,25 +174,14 @@
<el-form-item label="后评估名称:" prop="batchName" class="fromItem">
<el-input v-model="ruleFormdialog.batchName" disabled></el-input>
</el-form-item>
<el-form-item
label="计划评估日期:"
prop="planReviewDate"
class="fromItem"
>
<el-input
v-model="ruleFormdialog.planReviewDate"
disabled
></el-input>
<el-form-item label="计划评估日期:" prop="planReviewDate" class="fromItem">
<el-input v-model="ruleFormdialog.planReviewDate" disabled></el-input>
</el-form-item>
<el-form-item label="后评估专家:" prop="expertName" class="fromItem">
<el-input v-model="ruleFormdialog.expertName" disabled></el-input>
</el-form-item>
<el-form-item label="工作组织情况:" class="textarea">
<el-input
type="textarea"
v-model="ruleFormdialog.desc"
disabled
></el-input>
<el-input type="textarea" v-model="ruleFormdialog.desc" disabled></el-input>
</el-form-item>
</el-form>
......@@ -264,18 +197,11 @@
:row-class-name="tableRowClassName"
border
>
<el-table-column label="序号" width="55" type="index">
</el-table-column>
<el-table-column label="序号" width="55" type="index"> </el-table-column>
<el-table-column label="材料类别" prop="projectStagetext">
</el-table-column>
<el-table-column label="资料类型" prop="materialName">
</el-table-column>
<el-table-column
prop="fullName"
label="资料名称"
show-overflow-tooltip
>
<el-table-column label="材料类别" prop="projectStagetext"> </el-table-column>
<el-table-column label="资料类型" prop="materialName"> </el-table-column>
<el-table-column prop="fullName" label="资料名称" show-overflow-tooltip>
</el-table-column>
<!-- <el-table-column prop="fullName" label="资料名称">
<template slot-scope="scope" v-if="scope.row.fullName">
......@@ -317,32 +243,19 @@
ref="myTable"
border
>
<el-table-column
label="项目环节"
prop="projectStagetext"
width="110"
>
</el-table-column>
<el-table-column label="序号" width="50" type="index">
<el-table-column label="项目环节" prop="projectStagetext" width="110">
</el-table-column>
<el-table-column label="序号" width="50" type="index"> </el-table-column>
<el-table-column
label="问题检查项"
prop="quesCheckItem"
width="200"
>
<el-table-column label="问题检查项" prop="quesCheckItem" width="200">
</el-table-column>
<el-table-column
label="评估问题"
prop="evalQues"
show-overflow-tooltip
>
<el-table-column label="评估问题" prop="evalQues" show-overflow-tooltip>
</el-table-column>
<el-table-column label="问题响应" width="100">
<template slot-scope="scope">
<el-switch
:disabled="scope.row.rectificationStatus == 2"
v-if="scope.row.evalQues"
v-model="scope.row.confirmStatus"
active-color="#C0C0C0"
......@@ -362,24 +275,34 @@
</el-switch>
</template>
</el-table-column>
<el-table-column
label="上传档案材料"
prop="dacl"
width="120"
>
<template slot-scope="scope">
<router-link :to="{path:'/assesszc/projectView',query:{projectId:scope.row.projectId}}">
<el-button type="text" size="small">上传材料</el-button>
</router-link>
</template>
<el-table-column label="上传档案材料" prop="dacl" width="120">
<template slot-scope="scope">
<el-button
disabled
v-if="scope.row.rectificationStatus == 2"
type="text"
size="small"
>上传材料</el-button
>
<router-link
v-else
:to="{
path: '/assesszc/projectView',
query: { projectId: scope.row.projectId },
}"
>
<el-button type="text" size="small">上传材料</el-button>
</router-link>
</template>
</el-table-column>
<el-table-column label="解释批注" width="220">
<template slot-scope="scope">
<el-input
v-model="scope.row.feedback"
v-if="scope.row.confirmStatus == '1'"
type="textarea"
:rows="3"
:disabled="scope.row.rectificationStatus == 2"
type="textarea"
:rows="3"
></el-input>
</template>
</el-table-column>
......@@ -389,31 +312,19 @@
v-if="scope.row.evalQues && scope.row.confirmStatus == '1'"
>
<input
:disabled="scope.row.rectificationStatus == 2"
type="file"
@change="handleFileUploadZG($event, scope.row, 'fileId')"
/>
</template>
</el-table-column>
<el-table-column
label="检查说明"
prop="checkDesc"
show-overflow-tooltip
>
<el-table-column label="检查说明" prop="checkDesc" show-overflow-tooltip>
</el-table-column>
<el-table-column label="复核情况说明" prop="zgqkFileId" width="auto" >
<el-table-column label="复核情况说明" prop="zgqkFileId" width="auto">
</el-table-column>
<el-table-column
label="整改复核状态"
prop="checkDesc"
>
<template slot-scope="scope" >
<el-select
v-model="scope.row.rectificationStatus"
placeholder="请选择"
disabled
>
<el-table-column label="整改复核状态" prop="checkDesc">
<template slot-scope="scope">
<el-select v-model="scope.row.rectificationStatus" placeholder="请选择" disabled>
<el-option label="待复核" :value="null"></el-option>
<el-option label="问题未整改" :value="0"></el-option>
<el-option label="整改不合格" :value="1"></el-option>
......@@ -421,7 +332,7 @@
</el-select>
</template>
</el-table-column>
<!-- <el-table-column label="材料整改" prop="filed" width="600">
<template slot-scope="scope" v-if="scope.row.filed">
<div v-for="(item, index) in scope.row.filed" :key="index">
......@@ -464,7 +375,7 @@
</div>
</template>
</el-table-column> -->
<!--
<!--
<el-table-column label="情况说明" prop="zgqkFileId" width="400">
<template slot-scope="scope" v-if="scope.row.evalQues">
<input
......@@ -488,7 +399,7 @@
</template>
<script>
import { MaterialsList } from "@/utils/cache";
import { MaterialsList } from '@/utils/cache'
import {
evaluationMaterials,
clqdevaluationMaterials,
......@@ -500,29 +411,29 @@ import {
wtzgxfProblemRectification,
ossuploadStr,
MaterialWarehous,
postEvalQuesInfocxtj
} from "@/api/index";
import { generateYearOptions, constructionFormText } from "@/utils/cache";
postEvalQuesInfocxtj,
} from '@/api/index'
import { generateYearOptions, constructionFormText } from '@/utils/cache'
export default {
data() {
return {
yearsList: generateYearOptions(),
dialogXQ: false,
file: "",
file: '',
showButton: true,
ruleForm: {
batchYear: "",
batchName: "",
postEvalState: "",
projectName: "",
projectId: "",
batchYear: '',
batchName: '',
postEvalState: '',
projectName: '',
projectId: '',
dates: [],
},
ruleFormdialog: {
batchYear: "",
batchName: "",
planReviewDate: "",
fullName: "",
batchYear: '',
batchName: '',
planReviewDate: '',
fullName: '',
},
tableData: [],
MaterialsList: JSON.parse(JSON.stringify(MaterialsList())),
......@@ -542,29 +453,29 @@ export default {
fileList: [],
subdisabled: false,
confirmdisabled: false,
};
}
},
filters: {
proType(val) {
if (val == 1) {
return "咨询设计类";
return '咨询设计类'
} else if (val == 2) {
return "开发实施类";
return '开发实施类'
} else if (val == 3) {
return "业务运营类";
return '业务运营类'
} else if (val == 4) {
return "数据工程类";
return '数据工程类'
} else if (val == 5) {
return "产品购置类";
return '产品购置类'
}
},
},
watch: {
// 监听路由对象中的参数部分
"$route.params": {
'$route.params': {
immediate: true,
handler(newParams, oldParams) {
this.submitForm();
this.submitForm()
},
},
},
......@@ -575,499 +486,487 @@ export default {
timeChange(time) {
if (time) {
//给后端的参数
this.ruleForm.planStartTime = time[0];
this.ruleForm.planEndTime = time[1];
this.ruleForm.planStartTime = time[0]
this.ruleForm.planEndTime = time[1]
} else {
//给后端的参数
this.ruleForm.planStartTime = "";
this.ruleForm.planEndTime = "";
this.ruleForm.planStartTime = ''
this.ruleForm.planEndTime = ''
}
},
//问题整改
async confirm() {
this.mergingPos = 0;
this.mergingRows = [];
this.mergingPos = 0
this.mergingRows = []
if (this.checkedList.length != 1) {
this.$message("请选择一条数据进行整改");
return;
this.$message('请选择一条数据进行整改')
return
}
if (this.checkedList[0].postEvalStateText == "已申诉") {
this.$message("请选择未申诉的数据");
return;
if (this.checkedList[0].postEvalStateText == '已申诉') {
this.$message('请选择未申诉的数据')
return
}
if (this.checkedList[0].reviewStatusText == "整改提交") {
this.$message("整改已经提交");
return;
if (this.checkedList[0].reviewStatusText == '整改提交') {
this.$message('整改已经提交')
return
}
this.dialogQR = true;
this.dialogQR = true
let params = {
projectId: this.checkedList[0].projectCode,
batchId: this.checkedList[0].batchId,
};
}
let res = await wtssSelProblemRectification(params);
if (res.code == "200") {
let res = await wtssSelProblemRectification(params)
if (res.code == '200') {
let paramsMat = {
proType: this.checkedList[0].projectType,
contractNumber: this.checkedList[0].contractNumber,
prjId: this.checkedList[0].projectCode,
};
}
// let resMat = await MaterialWarehous(paramsMat);
this.tableDataQR = res.data.records;
let arr=[]
this.tableDataQR = res.data.records
let arr = []
this.tableDataQR.forEach((item) => {
if (!item.confirmStatus) {
this.$set(item, "confirmStatus", "2");
this.$set(item, 'confirmStatus', '2')
}
if (item.evalQues) {
arr.push(item.projectStage)
}
arr.push(item.projectStage)
}
switch (item.projectStage) {
case "1":
case '1':
// this.$set(
// item,
// "filed",
// this.filtersTable(1, resMat.data.records)
// );
this.$set(item, "projectStagetext", "1.可研");
break;
case "2":
this.$set(item, 'projectStagetext', '1.可研')
break
case '2':
// this.$set(
// item,
// "filed",
// this.filtersTable(2, resMat.data.records)
// );
this.$set(item, "projectStagetext", "2.计划");
break;
case "3":
this.$set(item, 'projectStagetext', '2.计划')
break
case '3':
// this.$set(
// item,
// "filed",
// this.filtersTable(3, resMat.data.records)
// );
this.$set(item, "projectStagetext", "3.采购");
break;
case "4":
this.$set(item, 'projectStagetext', '3.采购')
break
case '4':
// this.$set(
// item,
// "filed",
// this.filtersTable(4, resMat.data.records)
// );
this.$set(item, "projectStagetext", "4.合同");
break;
case "5":
this.$set(item, 'projectStagetext', '4.合同')
break
case '5':
// this.$set(
// item,
// "filed",
// this.filtersTable(5, resMat.data.records)
// );
this.$set(item, "projectStagetext", "5.执行");
break;
case "6":
this.$set(item, 'projectStagetext', '5.执行')
break
case '6':
// this.$set(
// item,
// "filed",
// this.filtersTable(6, resMat.data.records)
// );
this.$set(item, "projectStagetext", "6.结决算及转资");
break;
this.$set(item, 'projectStagetext', '6.结决算及转资')
break
}
});
this.tableDataQR.forEach(val=>{
this.$set(val,'prob',Array.from(new Set(arr) ))
})
this.dataPretreatment();
this.tableDataQR.forEach((val) => {
this.$set(val, 'prob', Array.from(new Set(arr)))
})
this.dataPretreatment()
}
},
fileupdate(items, list) {
console.log(items, list, "list");
this.fileList.push(list.file);
this.debounce(this.submitFile, 500, items);
console.log(items, list, 'list')
this.fileList.push(list.file)
this.debounce(this.submitFile, 500, items)
},
debounce(fn, waits, items) {
if (this.timer) {
clearTimeout(this.timer);
this.timer = null;
clearTimeout(this.timer)
this.timer = null
}
this.timer = setTimeout(() => {
fn.apply(this, arguments); // 把参数传进去
}, waits);
fn.apply(this, arguments) // 把参数传进去
}, waits)
},
submitFile() {
console.log(arguments[2], "arguments");
console.log(arguments[2], 'arguments')
if (this.fileList.length === 0) {
this.$message.success("请上传文件");
return;
this.$message.success('请上传文件')
return
}
this.uploadLoading = true;
let formData = new FormData(); // 用FormData存放上传文件
this.uploadLoading = true
let formData = new FormData() // 用FormData存放上传文件
this.fileList.forEach((file) => {
formData.append("file", file); // file.raw
});
formData.append("typeCode", arguments[2].mid);
formData.append("prjId", this.checkedList[0].projectCode);
formData.append("bathId", this.checkedList[0].contractNumber);
formData.append('file', file) // file.raw
})
formData.append('typeCode', arguments[2].mid)
formData.append('prjId', this.checkedList[0].projectCode)
formData.append('bathId', this.checkedList[0].contractNumber)
ossuploadStr(formData)
.then((response) => {
if (response.code == "200") {
this.fileList = [];
this.confirm();
if (response.code == '200') {
this.fileList = []
this.confirm()
// this.MaterialWarehous(this.upprojectType);
console.log(this.$refs.upload, "this.$refs.upload");
this.$refs.upload.clearFiles();
this.$message("上传成功");
console.log(this.$refs.upload, 'this.$refs.upload')
this.$refs.upload.clearFiles()
this.$message('上传成功')
} else {
this.$message("上传失败");
this.$message('上传失败')
}
})
.catch((error) => {});
.catch((error) => {})
},
filtersTable() {
let newArr = arguments[1].filter((items) => {
return items.projectStage == arguments[0];
});
let msg = [];
return items.projectStage == arguments[0]
})
let msg = []
newArr.forEach((item) => {
if (item.fullName) {
msg.push({
names: item.materialName,
values: item.fullName,
mid: item.mid,
});
})
// msg=msg.concat(item.materialName+':'+item.fullName+"<br>");
}
});
return msg;
})
return msg
},
dataPretreatment() {
for (let i = 0; i < this.tableDataQR.length; i++) {
// tabledata 表格数据源
if (i === 0) {
this.mergingRows.push(1);
this.mergingPos = 0;
this.mergingRows.push(1)
this.mergingPos = 0
} else {
if (
this.tableDataQR[i].projectStage ===
this.tableDataQR[i - 1].projectStage
) {
if (this.tableDataQR[i].projectStage === this.tableDataQR[i - 1].projectStage) {
//哪些数据是要合并的 合并的条件是什么
this.mergingRows[this.mergingPos] += 1;
this.mergingRows.push(0);
this.mergingRows[this.mergingPos] += 1
this.mergingRows.push(0)
} else {
this.mergingRows.push(1);
this.mergingPos = i;
this.mergingRows.push(1)
this.mergingPos = i
}
}
}
},
closed() {
console.log("关闭");
this.handleSelectionChange();
console.log('关闭')
this.handleSelectionChange()
},
async saveSS() {
let res = await qrProblemAssistedFeedback(this.tableDataQR);
if (res.code == "200") {
this.$message("保存成功");
let res = await qrProblemAssistedFeedback(this.tableDataQR)
if (res.code == '200') {
this.$message('保存成功')
// this.dialogQR = false;
// this.resetForm();
} else {
this.$message("保存失败");
this.$message('保存失败')
}
},
async saveSubmit() {
let res = await wtzgxfProblemRectification(this.tableDataQR);
this.$refs.myTable.doLayout(); // 解决表格错位
if (res.code == "200") {
this.$message("提交成功");
this.dialogQR = false;
this.resetForm();
let res = await wtzgxfProblemRectification(this.tableDataQR)
this.$refs.myTable.doLayout() // 解决表格错位
if (res.code == '200') {
this.$message('提交成功')
this.dialogQR = false
this.resetForm()
} else {
this.$message("整改提交失败");
this.$message('整改提交失败')
}
},
cancelSS() {
this.dialogQR = false;
this.dialogQR = false
},
arraySpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0 ) {
if (columnIndex === 0) {
//第一列
const _row = this.mergingRows[rowIndex];
const _col = _row > 0 ? 1 : 0;
const _row = this.mergingRows[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col,
};
}
}
},
//问题确认开关
controlSwitch(val, row) {
console.log("333", val, row);
console.log('333', val, row)
},
async submitForm() {
let params = {
current: this.currentPage,
pageSize: this.pageSize,
module: 0,
};
Object.assign(params, this.ruleForm);
console.log(params);
}
Object.assign(params, this.ruleForm)
console.log(params)
let res = await evaluationMaterials(params);
let res = await evaluationMaterials(params)
if (res.code == "200") {
this.tableData = res.data.records;
if (res.code == '200') {
this.tableData = res.data.records
this.tableData.forEach((item) => {
if (item.postEvalState == "" || item.postEvalState == null) {
if (item.postEvalState == '' || item.postEvalState == null) {
// this.$set(item, "postEvalStateText", "材料未上传");
} else if (item.postEvalState == 0) {
this.$set(item, "postEvalStateText", "已退回");
this.$set(item, 'postEvalStateText', '已退回')
} else if (item.postEvalState == 1) {
this.$set(item, "postEvalStateText", "待评估");
this.$set(item, 'postEvalStateText', '待评估')
} else if (item.postEvalState == 2) {
this.$set(item, "postEvalStateText", "需整改");
this.$set(item, 'postEvalStateText', '需整改')
} else if (item.postEvalState == 3) {
this.$set(item, "postEvalStateText", "已整改");
this.$set(item, 'postEvalStateText', '已整改')
} else if (item.postEvalState == 4) {
this.$set(item, "postEvalStateText", "已归档");
this.$set(item, 'postEvalStateText', '已归档')
}
this.$set(
item,
"constructionForm",
constructionFormText(item.constructionForm)
);
});
this.total = res.data.total * 1;
this.$set(item, 'constructionForm', constructionFormText(item.constructionForm))
})
this.total = res.data.total * 1
}
},
resetForm() {
this.$refs.formName.resetFields();
this.currentPage = 1;
this.pageSize = 10;
this.ruleForm.planStartTime = "";
this.ruleForm.planEndTime = "";
this.ruleForm.dates = [];
this.submitForm();
this.$refs.formName.resetFields()
this.currentPage = 1
this.pageSize = 10
this.ruleForm.planStartTime = ''
this.ruleForm.planEndTime = ''
this.ruleForm.dates = []
this.submitForm()
},
//提交评估材料
async submitNexts() {
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
this.$message('请选择')
return
}
this.$confirm(
"材料是否材重新上传完成?",
"提示",
{
confirmButtonText: "是",
cancelButtonText: "否",
type: "warning",
}
).then(async () => {
let params={
...this.checkedList[0]
}
let res= await postEvalQuesInfocxtj(params)
if (res.code == "200") {
this.$message("重新上传成功");
this.resetForm();
} else {
this.$message("重新上传失败");
}
});
this.$confirm('材料是否材重新上传完成?', '提示', {
confirmButtonText: '是',
cancelButtonText: '否',
type: 'warning',
}).then(async () => {
let params = {
...this.checkedList[0],
}
let res = await postEvalQuesInfocxtj(params)
if (res.code == '200') {
this.$message('重新上传成功')
this.resetForm()
} else {
this.$message('重新上传失败')
}
})
},
//详情
async detailsForm() {
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
this.$message('请选择')
return
}
let params = {
proType: this.checkedList[0].projectType,
contractNumber: this.checkedList[0].contractNumber,
prjId: this.checkedList[0].projectCode,
};
let res = await MaterialWarehous(params);
this.tableDataQD = res.data.records;
this.dialogXQ = true;
}
let res = await MaterialWarehous(params)
this.tableDataQD = res.data.records
this.dialogXQ = true
this.tableDataQD.forEach((item) => {
switch (item.projectStage) {
case "1":
this.$set(item, "projectStagetext", "可研");
break;
case "2":
this.$set(item, "projectStagetext", "计划");
break;
case "3":
this.$set(item, "projectStagetext", "采购");
break;
case "4":
this.$set(item, "projectStagetext", "合同");
break;
case "5":
this.$set(item, "projectStagetext", "执行");
break;
case "6":
this.$set(item, "projectStagetext", "结决算及转资");
break;
case '1':
this.$set(item, 'projectStagetext', '可研')
break
case '2':
this.$set(item, 'projectStagetext', '计划')
break
case '3':
this.$set(item, 'projectStagetext', '采购')
break
case '4':
this.$set(item, 'projectStagetext', '合同')
break
case '5':
this.$set(item, 'projectStagetext', '执行')
break
case '6':
this.$set(item, 'projectStagetext', '结决算及转资')
break
}
});
})
},
//表格颜色
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return "warning-row";
return 'warning-row'
}
return "";
return ''
},
//主列表选中行信息
handleSelectionChange(selection) {
this.confirmdisabled = false;
this.subdisabled = false;
this.confirmdisabled = false
this.subdisabled = false
if (Array.isArray(selection) && selection.length > 1) {
this.$refs.multipleTable.toggleRowSelection(selection[0], false);
this.$refs.multipleTable.toggleRowSelection(selection[1], true);
this.$refs.multipleTable.toggleRowSelection(selection[0], false)
this.$refs.multipleTable.toggleRowSelection(selection[1], true)
}
this.checkedList = this.$refs.multipleTable.selection;
this.checkedList = this.$refs.multipleTable.selection
if (this.checkedList[0]) {
this.ruleFormdialog = this.checkedList[0];
if (this.checkedList[0].postEvalStateText != "需整改") {
this.confirmdisabled = true;
this.ruleFormdialog = this.checkedList[0]
if (this.checkedList[0].postEvalStateText != '需整改') {
this.confirmdisabled = true
}
if (this.checkedList[0].postEvalStateText != "已退回") {
this.subdisabled = true;
if (this.checkedList[0].postEvalStateText != '已退回') {
this.subdisabled = true
}
}
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.pageSize = val;
this.submitForm();
console.log(`每页 ${val} 条`)
this.pageSize = val
this.submitForm()
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.currentPage = val;
this.submitForm();
console.log(`当前页: ${val}`)
this.currentPage = val
this.submitForm()
},
handleSizeChangetjcl(val) {
console.log(`每页 ${val} 条`);
this.pageSizetjcl = val;
console.log(`每页 ${val} 条`)
this.pageSizetjcl = val
},
handleCurrentChangetjcl(val) {
console.log(`当前页: ${val}`);
this.currentPagetjcl = val;
console.log(`当前页: ${val}`)
this.currentPagetjcl = val
},
cancel() {
this.dialog = false;
this.dialog = false
// this.dialogXQ = false;
},
preserve() {
this.dialog = false;
this.dialog = false
// this.dialogXQ = false;
},
closeDialog() {
console.log("guanbi");
this.showButton = true;
console.log('guanbi')
this.showButton = true
},
async save(type) {
this.dialog = false;
this.dialog = false
let params = {
projectId: this.checkedList[0].projectCode,
batchId: this.checkedList[0].batchId,
};
let res = await qrscevaluationMaterials(params);
this.resetForm();
}
let res = await qrscevaluationMaterials(params)
this.resetForm()
},
handleFileUploadZG(event, row, id) {
console.log("来了么");
this.file = event.target.files[0];
this.submitFileZG(row, id);
console.log('来了么')
this.file = event.target.files[0]
this.submitFileZG(row, id)
},
handleFileUploadmul(event, row, id) {
this.fileList = event.target.files;
this.submitFileStr(row, id);
this.fileList = event.target.files
this.submitFileStr(row, id)
},
submitFileStr(row, type) {
if (this.fileList) {
const formData = new FormData();
let fileDom = this.fileList;
const formData = new FormData()
let fileDom = this.fileList
for (var i = 0; i < fileDom.length; i++) {
formData.append("file", fileDom[i]);
formData.append('file', fileDom[i])
}
formData.append("typeCode", row.typeText);
formData.append("prjId", this.checkedList[0].projectCode);
formData.append("bathId", this.checkedList[0].batchId);
formData.append('typeCode', row.typeText)
formData.append('prjId', this.checkedList[0].projectCode)
formData.append('bathId', this.checkedList[0].batchId)
ossuploadStr(formData)
.then((response) => {
console.log(response, "试试");
this.fileList = [];
let fileId = "";
console.log(response, '试试')
this.fileList = []
let fileId = ''
response.data.list.forEach((item) => {
fileId = fileId.concat(item.fileId + ",");
});
fileId = fileId.substring(0, fileId.length - 1);
this.$set(row, type, fileId);
fileId = fileId.concat(item.fileId + ',')
})
fileId = fileId.substring(0, fileId.length - 1)
this.$set(row, type, fileId)
})
.catch((error) => {
console.error(error);
});
console.error(error)
})
} else {
this.$message("请先选择文件");
this.$message('请先选择文件')
}
},
submitFileZG(row, type) {
// return;
console.log(row);
console.log(row)
if (this.file) {
const formData = new FormData();
formData.append("file", this.file);
const formData = new FormData()
formData.append('file', this.file)
ossupload(formData)
.then((response) => {
console.log(response);
this.file = [];
this.$set(row, type, response.data.fileId);
console.log(response)
this.file = []
this.$set(row, type, response.data.fileId)
})
.catch((error) => {
console.error(error);
});
console.error(error)
})
} else {
this.$message("请先选择文件");
this.$message('请先选择文件')
}
},
handleSuccess(response, file, fileList) {
// 提交保存成功后清空已上传的文件
this.$refs.upload.clearFiles();
this.$refs.upload.clearFiles()
},
async handleClickXZ(scope) {
console.log(scope.fileId);
console.log(scope.fileId)
let response = await downloadObject({
fileId: scope.fileId * 1,
});
let blob = new Blob([response]);
if ("download" in document.createElement("a")) {
let elink = document.createElement("a");
elink.download = scope.fileName;
elink.style.display = "none";
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
URL.revokeObjectURL(elink.href); // 释放URL 对象
document.body.removeChild(elink);
})
let blob = new Blob([response])
if ('download' in document.createElement('a')) {
let elink = document.createElement('a')
elink.download = scope.fileName
elink.style.display = 'none'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href) // 释放URL 对象
document.body.removeChild(elink)
}
},
handleMouseEnter(msg) {
console.log(this.$refs[msg], "this.$refs[msg].style");
console.log(this.$refs[msg], 'this.$refs[msg].style')
// this.$refs[msg].style.whiteSpace = 'normal';
},
handleMouseLeave(msg) {
// this.$refs[msg].style.whiteSpace = 'nowrap';
},
},
};
}
</script>
<style scoped lang="scss">
.main {
......@@ -1377,7 +1276,7 @@ h3 {
}
}
.setTable {
height:490px;
height: 490px;
overflow-y: auto;
overflow-x: scroll;
position: relative;
......@@ -1409,36 +1308,34 @@ h3 {
}
.filedp {
text-align: left;
width:600px;
width: 600px;
p{
display: inline-block;
width: 88%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
height: 30px;
margin-top: 5px;
}
.tips{
p {
display: inline-block;
width: 88%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
height: 30px;
margin-top: 5px;
}
.tips {
font-weight: 600;
}
span {
// margin-right: 8px;
display: inline-block;
width: 50%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
overflow: hidden;
text-overflow: ellipsis;
}
}
.upload-demo {
display: inline-block;
vertical-align: top;
}
.upload_box{
.upload_box {
vertical-align: top;
}
......@@ -1453,4 +1350,4 @@ h3 {
/deep/.el-upload-list__item-name {
display: none;
}
</style>
\ No newline at end of file
</style>
<!-- 评估材料获取 -->
<template>
<div class="main">
<el-form
:model="ruleForm"
ref="formName"
label-width="100px"
class="demo-ruleForm"
>
<el-form :model="ruleForm" ref="formName" label-width="100px" class="demo-ruleForm">
<el-form-item label="批次年度:" prop="batchYear" class="fromItem">
<el-select v-model="ruleForm.batchYear" placeholder="请选择" clearable>
<el-option
......@@ -18,11 +13,7 @@
</el-select>
</el-form-item>
<el-form-item label="后评估批次名称:" prop="batchName" class="fromItem">
<el-input
v-model="ruleForm.batchName"
placeholder="请输入"
clearable
></el-input>
<el-input v-model="ruleForm.batchName" placeholder="请输入" clearable></el-input>
</el-form-item>
<!-- <el-form-item label="后评估批次状态:" prop="batchState" class="fromItem">
<el-select v-model="ruleForm.batchState" placeholder="请选择" clearable>
......@@ -32,30 +23,13 @@
</el-form-item> -->
<el-form-item label="项目编码:" prop="projectId" class="fromItem">
<el-input
v-model="ruleForm.projectId"
placeholder="请输入"
clearable
></el-input>
<el-input v-model="ruleForm.projectId" placeholder="请输入" clearable></el-input>
</el-form-item>
<el-form-item
label="项目名称:"
prop="projectName"
class="fromItem"
show-overflow-tooltip
>
<el-input
v-model="ruleForm.projectName"
placeholder="请输入"
clearable
></el-input>
<el-form-item label="项目名称:" prop="projectName" class="fromItem" show-overflow-tooltip>
<el-input v-model="ruleForm.projectName" placeholder="请输入" clearable></el-input>
</el-form-item>
<el-form-item label="项目年度:" prop="projectYear" class="fromItem">
<el-select
v-model="ruleForm.projectYear"
placeholder="请选择"
clearable
>
<el-select v-model="ruleForm.projectYear" placeholder="请选择" clearable>
<el-option
v-for="(item, index) in yearsList"
:key="index"
......@@ -65,11 +39,7 @@
</el-select>
</el-form-item>
<el-form-item label="项目审核状态:" prop="postEvalState" class="fromItem">
<el-select
v-model="ruleForm.postEvalState"
placeholder="请选择"
clearable
>
<el-select v-model="ruleForm.postEvalState" placeholder="请选择" clearable>
<!-- <el-option label="材料未上传" value="0"></el-option> -->
<el-option label="待评估" value="1"></el-option>
<el-option label="需整改" value="2"></el-option>
......@@ -101,17 +71,18 @@
<el-button @click="detailsForm()">
<img class="buttonIcon" src="../../assets/ck.png" />详情</el-button
>
<el-button
@click="confirm()"
:disabled="confirmdisabled"
:class="confirmdisabled ? 'noclick' : ''"
>
<i class="el-icon-chat-dot-square"></i
>&nbsp;&nbsp;&nbsp;问题整改</el-button
<i class="el-icon-chat-dot-square"></i>&nbsp;&nbsp;&nbsp;问题整改</el-button
>
<el-button @click="submitNexts()" :disabled="subdisabled" :class="subdisabled?'noclick':''"
<el-button
@click="submitNexts()"
:disabled="subdisabled"
:class="subdisabled ? 'noclick' : ''"
><i class="el-icon-finished"></i> 材料已重新上传</el-button
>
</el-form-item>
......@@ -128,73 +99,46 @@
:row-class-name="tableRowClassName"
border
>
<el-table-column label="序号" width="55" type="index">
</el-table-column>
<el-table-column label="序号" width="55" type="index"> </el-table-column>
<el-table-column type="selection"> </el-table-column>
<el-table-column label="批次年度" prop="batchYear" width="120">
<template slot-scope="scope"> {{ scope.row.batchYear }}</template>
</el-table-column>
<el-table-column prop="batchName" label="后评估批次名称">
</el-table-column>
<el-table-column prop="batchName" label="后评估批次名称"> </el-table-column>
<el-table-column prop="expertName" label="评审专家"> </el-table-column>
<el-table-column prop="projectCode" label="项目编码"> </el-table-column>
<el-table-column
prop="projectName"
label="项目名称"
show-overflow-tooltip
>
<el-table-column prop="projectName" label="项目名称" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="issueYear" label="项目年度" width="120">
<template slot-scope="scope">
<span v-show="scope.row.issueYear">
{{ scope.row.issueYear }}</span
>
<span v-show="scope.row.issueYear"> {{ scope.row.issueYear }}</span>
</template>
</el-table-column>
<el-table-column prop="projectType" label="项目类型" width="120">
<template slot-scope="scope">
<span v-show="scope.row.projectType">
{{ scope.row.projectType | proType }}</span
>
<span v-show="scope.row.projectType"> {{ scope.row.projectType | proType }}</span>
</template>
</el-table-column>
<el-table-column prop="constructionForm" label="建设形式" width="120">
</el-table-column>
<el-table-column
prop="postEvalStateText"
label="项目审核状态"
width="120"
>
<template v-slot="scope">
<el-table-column prop="constructionForm" label="建设形式" width="120"> </el-table-column>
<el-table-column prop="postEvalStateText" label="项目审核状态" width="120">
<template v-slot="scope">
<router-link
v-if=" scope.row.postEvalStateText=='已退回'"
:to="{
path: '/assesszc/projectView',
query: { projectId: scope.row.projectCode },
}"
v-if="scope.row.postEvalStateText == '已退回'"
:to="{
path: '/assesszc/projectView',
query: { projectId: scope.row.projectCode },
}"
>
<el-button type="text" size="small">{{
scope.row.postEvalStateText
}}</el-button>
<el-button type="text" size="small">{{ scope.row.postEvalStateText }}</el-button>
</router-link>
<span v-else>{{ scope.row.postEvalStateText }}</span>
<span v-else>{{ scope.row.postEvalStateText }}</span>
</template>
</el-table-column>
<el-table-column
prop="contractNumber"
label="合同编号"
show-overflow-tooltip
>
<el-table-column prop="contractNumber" label="合同编号" show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="contractName"
label="合同名称"
width="auto"
show-overflow-tooltip
>
</el-table-column>
<el-table-column prop="planReviewDate" label="计划评估日期">
<el-table-column prop="contractName" label="合同名称" width="auto" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="planReviewDate" label="计划评估日期"> </el-table-column>
</el-table>
</div>
<el-pagination
......@@ -230,25 +174,14 @@
<el-form-item label="后评估名称:" prop="batchName" class="fromItem">
<el-input v-model="ruleFormdialog.batchName" disabled></el-input>
</el-form-item>
<el-form-item
label="计划评估日期:"
prop="planReviewDate"
class="fromItem"
>
<el-input
v-model="ruleFormdialog.planReviewDate"
disabled
></el-input>
<el-form-item label="计划评估日期:" prop="planReviewDate" class="fromItem">
<el-input v-model="ruleFormdialog.planReviewDate" disabled></el-input>
</el-form-item>
<el-form-item label="后评估专家:" prop="expertName" class="fromItem">
<el-input v-model="ruleFormdialog.expertName" disabled></el-input>
</el-form-item>
<el-form-item label="工作组织情况:" class="textarea">
<el-input
type="textarea"
v-model="ruleFormdialog.desc"
disabled
></el-input>
<el-input type="textarea" v-model="ruleFormdialog.desc" disabled></el-input>
</el-form-item>
</el-form>
......@@ -264,18 +197,11 @@
:row-class-name="tableRowClassName"
border
>
<el-table-column label="序号" width="55" type="index">
</el-table-column>
<el-table-column label="序号" width="55" type="index"> </el-table-column>
<el-table-column label="材料类别" prop="projectStagetext">
</el-table-column>
<el-table-column label="资料类型" prop="materialName">
</el-table-column>
<el-table-column
prop="fullName"
label="资料名称"
show-overflow-tooltip
>
<el-table-column label="材料类别" prop="projectStagetext"> </el-table-column>
<el-table-column label="资料类型" prop="materialName"> </el-table-column>
<el-table-column prop="fullName" label="资料名称" show-overflow-tooltip>
</el-table-column>
<!-- <el-table-column prop="fullName" label="资料名称">
<template slot-scope="scope" v-if="scope.row.fullName">
......@@ -317,32 +243,19 @@
ref="myTable"
border
>
<el-table-column
label="项目环节"
prop="projectStagetext"
width="110"
>
</el-table-column>
<el-table-column label="序号" width="50" type="index">
<el-table-column label="项目环节" prop="projectStagetext" width="110">
</el-table-column>
<el-table-column label="序号" width="50" type="index"> </el-table-column>
<el-table-column
label="问题检查项"
prop="quesCheckItem"
width="200"
>
<el-table-column label="问题检查项" prop="quesCheckItem" width="200">
</el-table-column>
<el-table-column
label="评估问题"
prop="evalQues"
show-overflow-tooltip
>
<el-table-column label="评估问题" prop="evalQues" show-overflow-tooltip>
</el-table-column>
<el-table-column label="问题响应" width="100">
<template slot-scope="scope">
<el-switch
:disabled="scope.row.rectificationStatus == 2"
v-if="scope.row.evalQues"
v-model="scope.row.confirmStatus"
active-color="#C0C0C0"
......@@ -362,24 +275,34 @@
</el-switch>
</template>
</el-table-column>
<el-table-column
label="上传档案材料"
prop="dacl"
width="120"
>
<template slot-scope="scope">
<router-link :to="{path:'/assesszc/projectView',query:{projectId:scope.row.projectId}}">
<el-button type="text" size="small">上传材料</el-button>
</router-link>
</template>
<el-table-column label="上传档案材料" prop="dacl" width="120">
<template slot-scope="scope">
<el-button
disabled
v-if="scope.row.rectificationStatus == 2"
type="text"
size="small"
>上传材料</el-button
>
<router-link
v-else
:to="{
path: '/assesszc/projectView',
query: { projectId: scope.row.projectId },
}"
>
<el-button type="text" size="small">上传材料</el-button>
</router-link>
</template>
</el-table-column>
<el-table-column label="解释批注" width="220">
<template slot-scope="scope">
<el-input
v-model="scope.row.feedback"
v-if="scope.row.confirmStatus == '1'"
type="textarea"
:rows="3"
type="textarea"
:disabled="scope.row.rectificationStatus == 2"
:rows="3"
></el-input>
</template>
</el-table-column>
......@@ -389,31 +312,19 @@
v-if="scope.row.evalQues && scope.row.confirmStatus == '1'"
>
<input
:disabled="scope.row.rectificationStatus == 2"
type="file"
@change="handleFileUploadZG($event, scope.row, 'fileId')"
/>
</template>
</el-table-column>
<el-table-column
label="检查说明"
prop="checkDesc"
show-overflow-tooltip
>
<el-table-column label="检查说明" prop="checkDesc" show-overflow-tooltip>
</el-table-column>
<el-table-column label="复核情况说明" prop="zgqkFileId" width="auto" >
<el-table-column label="复核情况说明" prop="zgqkFileId" width="auto">
</el-table-column>
<el-table-column
label="整改复核状态"
prop="checkDesc"
>
<template slot-scope="scope" >
<el-select
v-model="scope.row.rectificationStatus"
placeholder="请选择"
disabled
>
<el-table-column label="整改复核状态" prop="checkDesc">
<template slot-scope="scope">
<el-select v-model="scope.row.rectificationStatus" placeholder="请选择" disabled>
<el-option label="待复核" :value="null"></el-option>
<el-option label="问题未整改" :value="0"></el-option>
<el-option label="整改不合格" :value="1"></el-option>
......@@ -421,7 +332,7 @@
</el-select>
</template>
</el-table-column>
<!-- <el-table-column label="材料整改" prop="filed" width="600">
<template slot-scope="scope" v-if="scope.row.filed">
<div v-for="(item, index) in scope.row.filed" :key="index">
......@@ -464,7 +375,7 @@
</div>
</template>
</el-table-column> -->
<!--
<!--
<el-table-column label="情况说明" prop="zgqkFileId" width="400">
<template slot-scope="scope" v-if="scope.row.evalQues">
<input
......@@ -488,7 +399,7 @@
</template>
<script>
import { MaterialsList } from "@/utils/cache";
import { MaterialsList } from '@/utils/cache'
import {
evaluationMaterials,
clqdevaluationMaterials,
......@@ -500,29 +411,29 @@ import {
wtzgxfProblemRectification,
ossuploadStr,
MaterialWarehous,
postEvalQuesInfocxtj
} from "@/api/indexzc";
import { generateYearOptions, constructionFormText } from "@/utils/cache";
postEvalQuesInfocxtj,
} from '@/api/indexzc'
import { generateYearOptions, constructionFormText } from '@/utils/cache'
export default {
data() {
return {
yearsList: generateYearOptions(),
dialogXQ: false,
file: "",
file: '',
showButton: true,
ruleForm: {
batchYear: "",
batchName: "",
postEvalState: "",
projectName: "",
projectId: "",
batchYear: '',
batchName: '',
postEvalState: '',
projectName: '',
projectId: '',
dates: [],
},
ruleFormdialog: {
batchYear: "",
batchName: "",
planReviewDate: "",
fullName: "",
batchYear: '',
batchName: '',
planReviewDate: '',
fullName: '',
},
tableData: [],
MaterialsList: JSON.parse(JSON.stringify(MaterialsList())),
......@@ -542,29 +453,29 @@ export default {
fileList: [],
subdisabled: false,
confirmdisabled: false,
};
}
},
filters: {
proType(val) {
if (val == 1) {
return "咨询设计类";
return '咨询设计类'
} else if (val == 2) {
return "开发实施类";
return '开发实施类'
} else if (val == 3) {
return "业务运营类";
return '业务运营类'
} else if (val == 4) {
return "数据工程类";
return '数据工程类'
} else if (val == 5) {
return "产品购置类";
return '产品购置类'
}
},
},
watch: {
// 监听路由对象中的参数部分
"$route.params": {
'$route.params': {
immediate: true,
handler(newParams, oldParams) {
this.submitForm();
this.submitForm()
},
},
},
......@@ -575,499 +486,487 @@ export default {
timeChange(time) {
if (time) {
//给后端的参数
this.ruleForm.planStartTime = time[0];
this.ruleForm.planEndTime = time[1];
this.ruleForm.planStartTime = time[0]
this.ruleForm.planEndTime = time[1]
} else {
//给后端的参数
this.ruleForm.planStartTime = "";
this.ruleForm.planEndTime = "";
this.ruleForm.planStartTime = ''
this.ruleForm.planEndTime = ''
}
},
//问题整改
async confirm() {
this.mergingPos = 0;
this.mergingRows = [];
this.mergingPos = 0
this.mergingRows = []
if (this.checkedList.length != 1) {
this.$message("请选择一条数据进行整改");
return;
this.$message('请选择一条数据进行整改')
return
}
if (this.checkedList[0].postEvalStateText == "已申诉") {
this.$message("请选择未申诉的数据");
return;
if (this.checkedList[0].postEvalStateText == '已申诉') {
this.$message('请选择未申诉的数据')
return
}
if (this.checkedList[0].reviewStatusText == "整改提交") {
this.$message("整改已经提交");
return;
if (this.checkedList[0].reviewStatusText == '整改提交') {
this.$message('整改已经提交')
return
}
this.dialogQR = true;
this.dialogQR = true
let params = {
projectId: this.checkedList[0].projectCode,
batchId: this.checkedList[0].batchId,
};
}
let res = await wtssSelProblemRectification(params);
if (res.code == "200") {
let res = await wtssSelProblemRectification(params)
if (res.code == '200') {
let paramsMat = {
proType: this.checkedList[0].projectType,
contractNumber: this.checkedList[0].contractNumber,
prjId: this.checkedList[0].projectCode,
};
}
// let resMat = await MaterialWarehous(paramsMat);
this.tableDataQR = res.data.records;
let arr=[]
this.tableDataQR = res.data.records
let arr = []
this.tableDataQR.forEach((item) => {
if (!item.confirmStatus) {
this.$set(item, "confirmStatus", "2");
this.$set(item, 'confirmStatus', '2')
}
if (item.evalQues) {
arr.push(item.projectStage)
}
arr.push(item.projectStage)
}
switch (item.projectStage) {
case "1":
case '1':
// this.$set(
// item,
// "filed",
// this.filtersTable(1, resMat.data.records)
// );
this.$set(item, "projectStagetext", "1.可研");
break;
case "2":
this.$set(item, 'projectStagetext', '1.可研')
break
case '2':
// this.$set(
// item,
// "filed",
// this.filtersTable(2, resMat.data.records)
// );
this.$set(item, "projectStagetext", "2.计划");
break;
case "3":
this.$set(item, 'projectStagetext', '2.计划')
break
case '3':
// this.$set(
// item,
// "filed",
// this.filtersTable(3, resMat.data.records)
// );
this.$set(item, "projectStagetext", "3.采购");
break;
case "4":
this.$set(item, 'projectStagetext', '3.采购')
break
case '4':
// this.$set(
// item,
// "filed",
// this.filtersTable(4, resMat.data.records)
// );
this.$set(item, "projectStagetext", "4.合同");
break;
case "5":
this.$set(item, 'projectStagetext', '4.合同')
break
case '5':
// this.$set(
// item,
// "filed",
// this.filtersTable(5, resMat.data.records)
// );
this.$set(item, "projectStagetext", "5.执行");
break;
case "6":
this.$set(item, 'projectStagetext', '5.执行')
break
case '6':
// this.$set(
// item,
// "filed",
// this.filtersTable(6, resMat.data.records)
// );
this.$set(item, "projectStagetext", "6.结决算及转资");
break;
this.$set(item, 'projectStagetext', '6.结决算及转资')
break
}
});
this.tableDataQR.forEach(val=>{
this.$set(val,'prob',Array.from(new Set(arr) ))
})
this.dataPretreatment();
this.tableDataQR.forEach((val) => {
this.$set(val, 'prob', Array.from(new Set(arr)))
})
this.dataPretreatment()
}
},
fileupdate(items, list) {
console.log(items, list, "list");
this.fileList.push(list.file);
this.debounce(this.submitFile, 500, items);
console.log(items, list, 'list')
this.fileList.push(list.file)
this.debounce(this.submitFile, 500, items)
},
debounce(fn, waits, items) {
if (this.timer) {
clearTimeout(this.timer);
this.timer = null;
clearTimeout(this.timer)
this.timer = null
}
this.timer = setTimeout(() => {
fn.apply(this, arguments); // 把参数传进去
}, waits);
fn.apply(this, arguments) // 把参数传进去
}, waits)
},
submitFile() {
console.log(arguments[2], "arguments");
console.log(arguments[2], 'arguments')
if (this.fileList.length === 0) {
this.$message.success("请上传文件");
return;
this.$message.success('请上传文件')
return
}
this.uploadLoading = true;
let formData = new FormData(); // 用FormData存放上传文件
this.uploadLoading = true
let formData = new FormData() // 用FormData存放上传文件
this.fileList.forEach((file) => {
formData.append("file", file); // file.raw
});
formData.append("typeCode", arguments[2].mid);
formData.append("prjId", this.checkedList[0].projectCode);
formData.append("bathId", this.checkedList[0].contractNumber);
formData.append('file', file) // file.raw
})
formData.append('typeCode', arguments[2].mid)
formData.append('prjId', this.checkedList[0].projectCode)
formData.append('bathId', this.checkedList[0].contractNumber)
ossuploadStr(formData)
.then((response) => {
if (response.code == "200") {
this.fileList = [];
this.confirm();
if (response.code == '200') {
this.fileList = []
this.confirm()
// this.MaterialWarehous(this.upprojectType);
console.log(this.$refs.upload, "this.$refs.upload");
this.$refs.upload.clearFiles();
this.$message("上传成功");
console.log(this.$refs.upload, 'this.$refs.upload')
this.$refs.upload.clearFiles()
this.$message('上传成功')
} else {
this.$message("上传失败");
this.$message('上传失败')
}
})
.catch((error) => {});
.catch((error) => {})
},
filtersTable() {
let newArr = arguments[1].filter((items) => {
return items.projectStage == arguments[0];
});
let msg = [];
return items.projectStage == arguments[0]
})
let msg = []
newArr.forEach((item) => {
if (item.fullName) {
msg.push({
names: item.materialName,
values: item.fullName,
mid: item.mid,
});
})
// msg=msg.concat(item.materialName+':'+item.fullName+"<br>");
}
});
return msg;
})
return msg
},
dataPretreatment() {
for (let i = 0; i < this.tableDataQR.length; i++) {
// tabledata 表格数据源
if (i === 0) {
this.mergingRows.push(1);
this.mergingPos = 0;
this.mergingRows.push(1)
this.mergingPos = 0
} else {
if (
this.tableDataQR[i].projectStage ===
this.tableDataQR[i - 1].projectStage
) {
if (this.tableDataQR[i].projectStage === this.tableDataQR[i - 1].projectStage) {
//哪些数据是要合并的 合并的条件是什么
this.mergingRows[this.mergingPos] += 1;
this.mergingRows.push(0);
this.mergingRows[this.mergingPos] += 1
this.mergingRows.push(0)
} else {
this.mergingRows.push(1);
this.mergingPos = i;
this.mergingRows.push(1)
this.mergingPos = i
}
}
}
},
closed() {
console.log("关闭");
this.handleSelectionChange();
console.log('关闭')
this.handleSelectionChange()
},
async saveSS() {
let res = await qrProblemAssistedFeedback(this.tableDataQR);
if (res.code == "200") {
this.$message("保存成功");
let res = await qrProblemAssistedFeedback(this.tableDataQR)
if (res.code == '200') {
this.$message('保存成功')
// this.dialogQR = false;
// this.resetForm();
} else {
this.$message("保存失败");
this.$message('保存失败')
}
},
async saveSubmit() {
let res = await wtzgxfProblemRectification(this.tableDataQR);
this.$refs.myTable.doLayout(); // 解决表格错位
if (res.code == "200") {
this.$message("提交成功");
this.dialogQR = false;
this.resetForm();
let res = await wtzgxfProblemRectification(this.tableDataQR)
this.$refs.myTable.doLayout() // 解决表格错位
if (res.code == '200') {
this.$message('提交成功')
this.dialogQR = false
this.resetForm()
} else {
this.$message("整改提交失败");
this.$message('整改提交失败')
}
},
cancelSS() {
this.dialogQR = false;
this.dialogQR = false
},
arraySpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0 ) {
if (columnIndex === 0) {
//第一列
const _row = this.mergingRows[rowIndex];
const _col = _row > 0 ? 1 : 0;
const _row = this.mergingRows[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col,
};
}
}
},
//问题确认开关
controlSwitch(val, row) {
console.log("333", val, row);
console.log('333', val, row)
},
async submitForm() {
let params = {
current: this.currentPage,
pageSize: this.pageSize,
module: 1,
};
Object.assign(params, this.ruleForm);
console.log(params);
}
Object.assign(params, this.ruleForm)
console.log(params)
let res = await evaluationMaterials(params);
let res = await evaluationMaterials(params)
if (res.code == "200") {
this.tableData = res.data.records;
if (res.code == '200') {
this.tableData = res.data.records
this.tableData.forEach((item) => {
if (item.postEvalState == "" || item.postEvalState == null) {
if (item.postEvalState == '' || item.postEvalState == null) {
// this.$set(item, "postEvalStateText", "材料未上传");
} else if (item.postEvalState == 0) {
this.$set(item, "postEvalStateText", "已退回");
this.$set(item, 'postEvalStateText', '已退回')
} else if (item.postEvalState == 1) {
this.$set(item, "postEvalStateText", "待评估");
this.$set(item, 'postEvalStateText', '待评估')
} else if (item.postEvalState == 2) {
this.$set(item, "postEvalStateText", "需整改");
this.$set(item, 'postEvalStateText', '需整改')
} else if (item.postEvalState == 3) {
this.$set(item, "postEvalStateText", "已整改");
this.$set(item, 'postEvalStateText', '已整改')
} else if (item.postEvalState == 4) {
this.$set(item, "postEvalStateText", "已归档");
this.$set(item, 'postEvalStateText', '已归档')
}
this.$set(
item,
"constructionForm",
constructionFormText(item.constructionForm)
);
});
this.total = res.data.total * 1;
this.$set(item, 'constructionForm', constructionFormText(item.constructionForm))
})
this.total = res.data.total * 1
}
},
resetForm() {
this.$refs.formName.resetFields();
this.currentPage = 1;
this.pageSize = 10;
this.ruleForm.planStartTime = "";
this.ruleForm.planEndTime = "";
this.ruleForm.dates = [];
this.submitForm();
this.$refs.formName.resetFields()
this.currentPage = 1
this.pageSize = 10
this.ruleForm.planStartTime = ''
this.ruleForm.planEndTime = ''
this.ruleForm.dates = []
this.submitForm()
},
//提交评估材料
async submitNexts() {
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
this.$message('请选择')
return
}
this.$confirm(
"材料是否材重新上传完成?",
"提示",
{
confirmButtonText: "是",
cancelButtonText: "否",
type: "warning",
}
).then(async () => {
let params={
...this.checkedList[0]
}
let res= await postEvalQuesInfocxtj(params)
if (res.code == "200") {
this.$message("重新上传成功");
this.resetForm();
} else {
this.$message("重新上传失败");
}
});
this.$confirm('材料是否材重新上传完成?', '提示', {
confirmButtonText: '是',
cancelButtonText: '否',
type: 'warning',
}).then(async () => {
let params = {
...this.checkedList[0],
}
let res = await postEvalQuesInfocxtj(params)
if (res.code == '200') {
this.$message('重新上传成功')
this.resetForm()
} else {
this.$message('重新上传失败')
}
})
},
//详情
async detailsForm() {
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
this.$message('请选择')
return
}
let params = {
proType: this.checkedList[0].projectType,
contractNumber: this.checkedList[0].contractNumber,
prjId: this.checkedList[0].projectCode,
};
let res = await MaterialWarehous(params);
this.tableDataQD = res.data.records;
this.dialogXQ = true;
}
let res = await MaterialWarehous(params)
this.tableDataQD = res.data.records
this.dialogXQ = true
this.tableDataQD.forEach((item) => {
switch (item.projectStage) {
case "1":
this.$set(item, "projectStagetext", "可研");
break;
case "2":
this.$set(item, "projectStagetext", "计划");
break;
case "3":
this.$set(item, "projectStagetext", "采购");
break;
case "4":
this.$set(item, "projectStagetext", "合同");
break;
case "5":
this.$set(item, "projectStagetext", "执行");
break;
case "6":
this.$set(item, "projectStagetext", "结决算及转资");
break;
case '1':
this.$set(item, 'projectStagetext', '可研')
break
case '2':
this.$set(item, 'projectStagetext', '计划')
break
case '3':
this.$set(item, 'projectStagetext', '采购')
break
case '4':
this.$set(item, 'projectStagetext', '合同')
break
case '5':
this.$set(item, 'projectStagetext', '执行')
break
case '6':
this.$set(item, 'projectStagetext', '结决算及转资')
break
}
});
})
},
//表格颜色
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return "warning-row";
return 'warning-row'
}
return "";
return ''
},
//主列表选中行信息
handleSelectionChange(selection) {
this.confirmdisabled = false;
this.subdisabled = false;
this.confirmdisabled = false
this.subdisabled = false
if (Array.isArray(selection) && selection.length > 1) {
this.$refs.multipleTable.toggleRowSelection(selection[0], false);
this.$refs.multipleTable.toggleRowSelection(selection[1], true);
this.$refs.multipleTable.toggleRowSelection(selection[0], false)
this.$refs.multipleTable.toggleRowSelection(selection[1], true)
}
this.checkedList = this.$refs.multipleTable.selection;
this.checkedList = this.$refs.multipleTable.selection
if (this.checkedList[0]) {
this.ruleFormdialog = this.checkedList[0];
if (this.checkedList[0].postEvalStateText != "需整改") {
this.confirmdisabled = true;
this.ruleFormdialog = this.checkedList[0]
if (this.checkedList[0].postEvalStateText != '需整改') {
this.confirmdisabled = true
}
if (this.checkedList[0].postEvalStateText != "已退回") {
this.subdisabled = true;
if (this.checkedList[0].postEvalStateText != '已退回') {
this.subdisabled = true
}
}
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.pageSize = val;
this.submitForm();
console.log(`每页 ${val} 条`)
this.pageSize = val
this.submitForm()
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.currentPage = val;
this.submitForm();
console.log(`当前页: ${val}`)
this.currentPage = val
this.submitForm()
},
handleSizeChangetjcl(val) {
console.log(`每页 ${val} 条`);
this.pageSizetjcl = val;
console.log(`每页 ${val} 条`)
this.pageSizetjcl = val
},
handleCurrentChangetjcl(val) {
console.log(`当前页: ${val}`);
this.currentPagetjcl = val;
console.log(`当前页: ${val}`)
this.currentPagetjcl = val
},
cancel() {
this.dialog = false;
this.dialog = false
// this.dialogXQ = false;
},
preserve() {
this.dialog = false;
this.dialog = false
// this.dialogXQ = false;
},
closeDialog() {
console.log("guanbi");
this.showButton = true;
console.log('guanbi')
this.showButton = true
},
async save(type) {
this.dialog = false;
this.dialog = false
let params = {
projectId: this.checkedList[0].projectCode,
batchId: this.checkedList[0].batchId,
};
let res = await qrscevaluationMaterials(params);
this.resetForm();
}
let res = await qrscevaluationMaterials(params)
this.resetForm()
},
handleFileUploadZG(event, row, id) {
console.log("来了么");
this.file = event.target.files[0];
this.submitFileZG(row, id);
console.log('来了么')
this.file = event.target.files[0]
this.submitFileZG(row, id)
},
handleFileUploadmul(event, row, id) {
this.fileList = event.target.files;
this.submitFileStr(row, id);
this.fileList = event.target.files
this.submitFileStr(row, id)
},
submitFileStr(row, type) {
if (this.fileList) {
const formData = new FormData();
let fileDom = this.fileList;
const formData = new FormData()
let fileDom = this.fileList
for (var i = 0; i < fileDom.length; i++) {
formData.append("file", fileDom[i]);
formData.append('file', fileDom[i])
}
formData.append("typeCode", row.typeText);
formData.append("prjId", this.checkedList[0].projectCode);
formData.append("bathId", this.checkedList[0].batchId);
formData.append('typeCode', row.typeText)
formData.append('prjId', this.checkedList[0].projectCode)
formData.append('bathId', this.checkedList[0].batchId)
ossuploadStr(formData)
.then((response) => {
console.log(response, "试试");
this.fileList = [];
let fileId = "";
console.log(response, '试试')
this.fileList = []
let fileId = ''
response.data.list.forEach((item) => {
fileId = fileId.concat(item.fileId + ",");
});
fileId = fileId.substring(0, fileId.length - 1);
this.$set(row, type, fileId);
fileId = fileId.concat(item.fileId + ',')
})
fileId = fileId.substring(0, fileId.length - 1)
this.$set(row, type, fileId)
})
.catch((error) => {
console.error(error);
});
console.error(error)
})
} else {
this.$message("请先选择文件");
this.$message('请先选择文件')
}
},
submitFileZG(row, type) {
// return;
console.log(row);
console.log(row)
if (this.file) {
const formData = new FormData();
formData.append("file", this.file);
const formData = new FormData()
formData.append('file', this.file)
ossupload(formData)
.then((response) => {
console.log(response);
this.file = [];
this.$set(row, type, response.data.fileId);
console.log(response)
this.file = []
this.$set(row, type, response.data.fileId)
})
.catch((error) => {
console.error(error);
});
console.error(error)
})
} else {
this.$message("请先选择文件");
this.$message('请先选择文件')
}
},
handleSuccess(response, file, fileList) {
// 提交保存成功后清空已上传的文件
this.$refs.upload.clearFiles();
this.$refs.upload.clearFiles()
},
async handleClickXZ(scope) {
console.log(scope.fileId);
console.log(scope.fileId)
let response = await downloadObject({
fileId: scope.fileId * 1,
});
let blob = new Blob([response]);
if ("download" in document.createElement("a")) {
let elink = document.createElement("a");
elink.download = scope.fileName;
elink.style.display = "none";
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
URL.revokeObjectURL(elink.href); // 释放URL 对象
document.body.removeChild(elink);
})
let blob = new Blob([response])
if ('download' in document.createElement('a')) {
let elink = document.createElement('a')
elink.download = scope.fileName
elink.style.display = 'none'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href) // 释放URL 对象
document.body.removeChild(elink)
}
},
handleMouseEnter(msg) {
console.log(this.$refs[msg], "this.$refs[msg].style");
console.log(this.$refs[msg], 'this.$refs[msg].style')
// this.$refs[msg].style.whiteSpace = 'normal';
},
handleMouseLeave(msg) {
// this.$refs[msg].style.whiteSpace = 'nowrap';
},
},
};
}
</script>
<style scoped lang="scss">
.main {
......@@ -1410,36 +1309,34 @@ h3 {
}
.filedp {
text-align: left;
width:600px;
width: 600px;
p{
display: inline-block;
width: 88%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
height: 30px;
margin-top: 5px;
}
.tips{
p {
display: inline-block;
width: 88%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
height: 30px;
margin-top: 5px;
}
.tips {
font-weight: 600;
}
span {
// margin-right: 8px;
display: inline-block;
width: 50%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
overflow: hidden;
text-overflow: ellipsis;
}
}
.upload-demo {
display: inline-block;
vertical-align: top;
}
.upload_box{
.upload_box {
vertical-align: top;
}
......@@ -1454,4 +1351,4 @@ h3 {
/deep/.el-upload-list__item-name {
display: none;
}
</style>
\ No newline at end of file
</style>
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!