Commit 7882de70 by liangzhen

下载功能

1 parent e603c8d3
// import request from '@/utils/request' // import request from '@/utils/request'
// let mainURL="192.168.8.248:18101" // let mainURL="192.168.8.248:18101"
var qs = require('qs')
import { get, post, download } from '@/utils/http' import { get, post, download } from '@/utils/http'
...@@ -250,4 +251,9 @@ export function tjrectificationVerification(params) { ...@@ -250,4 +251,9 @@ export function tjrectificationVerification(params) {
//列表 //列表
export function materialSync(params) { export function materialSync(params) {
return post(`/arch-evaluation/materialSync/`, params) return post(`/arch-evaluation/materialSync/`, params)
} }
\ No newline at end of file
//下载
export function downloadObject(params) {
return post(`/arch-evaluation/oss/downloadObject`, qs.stringify(params))
}
...@@ -26,6 +26,10 @@ function decryptStringBySM4_CBC(str) {//使用sm4-cbc算法给字符串解密 ...@@ -26,6 +26,10 @@ function decryptStringBySM4_CBC(str) {//使用sm4-cbc算法给字符串解密
axios.interceptors.request.use(config => { axios.interceptors.request.use(config => {
config.headers['X-USER'] =sessionStorage.getItem('author'); config.headers['X-USER'] =sessionStorage.getItem('author');
config.headers['X-USER-NAME']=sessionStorage.getItem('authorName') config.headers['X-USER-NAME']=sessionStorage.getItem('authorName')
console.log(config.url.indexOf('oss/downloadObject')!='-1','config.url')
if(config.url.indexOf('oss/downloadObject')!='-1'){
config.headers["Content-Type"] ='application/x-www-form-urlencoded'
}
// config.headers.token = JSON.parse(localStorage.getItem('token')).token; // config.headers.token = JSON.parse(localStorage.getItem('token')).token;
......
<template> <template>
<div class="main"> <div class="main">
<el-form :model="ruleForm" label-width="100px" class="demo-ruleForm" ref="formName"> <el-form
<el-form-item label="批次年度:" prop="batchYear" class="fromItem" > :model="ruleForm"
<el-select v-model="ruleForm.batchYear" placeholder="请选择" clearable> label-width="100px"
<el-option label="2024年" value="2024"></el-option> class="demo-ruleForm"
<el-option label="2023年" value="2023"></el-option> ref="formName"
<el-option label="2022年" value="2022"></el-option> >
<el-option label="2021年" value="2021"></el-option> <el-form-item label="批次年度:" prop="batchYear" class="fromItem">
</el-select> <el-select v-model="ruleForm.batchYear" placeholder="请选择" clearable>
</el-form-item> <el-option label="2024年" value="2024"></el-option>
<el-form-item label="后评估批次名称:" prop="batchName" class="fromItem"> <el-option label="2023年" value="2023"></el-option>
<el-input v-model="ruleForm.batchName" placeholder="请输入" clearable></el-input> <el-option label="2022年" value="2022"></el-option>
</el-form-item> <el-option label="2021年" value="2021"></el-option>
<el-form-item label="后评估状态:" prop="postEvalState" class="fromItem"> </el-select>
<el-select v-model="ruleForm.postEvalState" placeholder="请选择" clearable> </el-form-item>
<el-option label="未下发" value="0"></el-option> <el-form-item label="后评估批次名称:" prop="batchName" class="fromItem">
<el-option label="已下发" value="1"></el-option> <el-input
<el-option label="已撤回" value="2"></el-option> v-model="ruleForm.batchName"
</el-select> placeholder="请输入"
</el-form-item> clearable
<el-form-item class="button"> ></el-input>
<el-button @click="submitForm()"> </el-form-item>
<img class="buttonIcon" src="../../assets/cx.png" />查询</el-button <el-form-item label="后评估状态:" prop="postEvalState" class="fromItem">
> <el-select
<el-button @click="resetForm('ruleForm')"> v-model="ruleForm.postEvalState"
<img class="buttonIcon" src="../../assets/cz.png" />重置</el-button placeholder="请选择"
> clearable
<el-button @click="confirm()"> >
<i class="el-icon-chat-dot-square"></i <el-option label="未下发" value="0"></el-option>
>&nbsp;&nbsp;&nbsp;问题复核</el-button <el-option label="已下发" value="1"></el-option>
> <el-option label="已撤回" value="2"></el-option>
<el-button @click="appeal()"> </el-select>
<i class="el-icon-document-remove"></i </el-form-item>
>&nbsp;&nbsp;&nbsp;问题下发</el-button <el-form-item class="button">
> <el-button @click="submitForm()">
</el-form-item> <img class="buttonIcon" src="../../assets/cx.png" />查询</el-button
</el-form> >
<div class="setscroll"> <el-button @click="resetForm('ruleForm')">
<el-table <img class="buttonIcon" src="../../assets/cz.png" />重置</el-button
@selection-change="handleSelectionChange" >
ref="multipleTable" <el-button @click="confirm()">
:data="tableData" <i class="el-icon-chat-dot-square"></i
tooltip-effect="dark" >&nbsp;&nbsp;&nbsp;问题复核</el-button
header-cell-class-name="custom-th-background" >
class="eltable" <el-button @click="appeal()">
:row-class-name="tableRowClassName" <i class="el-icon-document-remove"></i
border >&nbsp;&nbsp;&nbsp;问题下发</el-button
> >
<el-table-column label="序号" width="55" type="index"> </el-table-column> </el-form-item>
<el-table-column type="selection"> </el-table-column> </el-form>
<el-table-column label="批次年度" prop="batchYear"> </el-table-column> <div class="setscroll">
<el-table-column prop="batchName" label="后评估批次名称"> <el-table
</el-table-column> @selection-change="handleSelectionChange"
ref="multipleTable"
<el-table-column prop="projectName" label="评估项目名称"> :data="tableData"
</el-table-column> tooltip-effect="dark"
<el-table-column prop="projectCategory" label="建设形式"> header-cell-class-name="custom-th-background"
</el-table-column> class="eltable"
<el-table-column prop="projectStatus" label="项目建设阶段"> :row-class-name="tableRowClassName"
</el-table-column> border
<!-- <el-table-column prop="createTime" label="历史审核状态"> >
<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"> </el-table-column>
<el-table-column prop="batchName" label="后评估批次名称">
</el-table-column>
<el-table-column prop="projectName" label="评估项目名称">
</el-table-column>
<el-table-column prop="projectCategory" label="建设形式">
</el-table-column>
<el-table-column prop="projectStatus" label="项目建设阶段">
</el-table-column>
<!-- <el-table-column prop="createTime" label="历史审核状态">
</el-table-column> --> </el-table-column> -->
<el-table-column prop="expertName" label="评审专家名单"> <el-table-column prop="expertName" label="评审专家名单">
</el-table-column> </el-table-column>
<el-table-column prop="appealDeadline" label="问题申诉截止时间"> <el-table-column prop="appealDeadline" label="问题申诉截止时间">
</el-table-column> </el-table-column>
<el-table-column prop="rectificationDeadline" label="问题整改截止时间"> <el-table-column prop="rectificationDeadline" label="问题整改截止时间">
</el-table-column> </el-table-column>
<el-table-column prop="postEvalStateText" label="复核状态"> </el-table-column> <el-table-column prop="postEvalStateText" label="复核状态">
<!-- <el-table-column prop="reviewStatus" label="后评估状态"> </el-table-column> --> </el-table-column>
<el-table-column prop="reviewDate" label="评估日期"> </el-table-column> <!-- <el-table-column prop="reviewStatus" label="后评估状态"> </el-table-column> -->
</el-table> <el-table-column prop="reviewDate" label="评估日期"> </el-table-column>
</div> </el-table>
<el-pagination </div>
@size-change="handleSizeChange" <el-pagination
@current-change="handleCurrentChange" @size-change="handleSizeChange"
:current-page="currentPage" @current-change="handleCurrentChange"
:page-sizes="[10, 15, 20, 50]" :current-page="currentPage"
:page-size="100" :page-sizes="[10, 15, 20, 50]"
layout="total, sizes, prev, pager, next, jumper" :page-size="100"
:total="total" layout="total, sizes, prev, pager, next, jumper"
class="elpagination" :total="total"
> class="elpagination"
</el-pagination> >
<!-- 问题复核 --> </el-pagination>
<el-dialog <!-- 问题复核 -->
title="问题确认" <el-dialog
:visible.sync="dialogQR" title="问题确认"
width="79%" :visible.sync="dialogQR"
:modal-append-to-body="false" width="79%"
:append-to-body="false" :modal-append-to-body="false"
@close="closed" :append-to-body="false"
> @close="closed"
<div class="dialog"> >
<h3> <div class="dialog">
项目名称:一期项目-电力营销-2023年网上国网(网上国网V1.0)-设计开发项目 <h3>
</h3> 项目名称:一期项目-电力营销-2023年网上国网(网上国网V1.0)-设计开发项目
<div class="continer"> </h3>
<p class="xqtitle"><span></span>问题清单</p> <div class="continer">
<el-table <p class="xqtitle"><span></span>问题清单</p>
:data="tableDataQR" <el-table
tooltip-effect="dark" :data="tableDataQR"
style="width: 100%" tooltip-effect="dark"
header-cell-class-name="custom-th-background" style="width: 100%"
class="eltable" header-cell-class-name="custom-th-background"
:row-class-name="tableRowClassName" class="eltable"
:span-method="arraySpanMethod" :row-class-name="tableRowClassName"
border :span-method="arraySpanMethod"
> border
<el-table-column >
label="项目环节" <el-table-column
prop="projectStagetext" label="项目环节"
width="150" prop="projectStagetext"
> width="150"
</el-table-column> >
<el-table-column label="序号" width="100" prop="questionId"> </el-table-column>
</el-table-column> <el-table-column label="序号" width="100" prop="questionId">
</el-table-column>
<el-table-column label="问题检查项" prop="quesCheckItem">
</el-table-column> <el-table-column label="问题检查项" prop="quesCheckItem">
<el-table-column label="检查说明" prop="checkDesc" show-overflow-tooltip> </el-table-column>
</el-table-column> <el-table-column
<el-table-column label="评估问题" prop="evalQues"> label="检查说明"
</el-table-column> prop="checkDesc"
<el-table-column label="问题确认" width="auto"> show-overflow-tooltip
<template slot-scope="scope"> >
<el-switch </el-table-column>
v-model="scope.row.confirmStatus" <el-table-column label="评估问题" prop="evalQues">
active-color="#C0C0C0" </el-table-column>
inactive-color="#13ce66" <el-table-column label="问题确认" width="auto">
active-value="2" <template slot-scope="scope">
inactive-value="1" <el-switch
active-text="无异议" v-model="scope.row.confirmStatus"
inactive-text="有异议" active-color="#C0C0C0"
@change="controlSwitch($event, scope.row)" inactive-color="#13ce66"
> active-value="2"
<template v-slot:active> inactive-value="1"
<span>开启</span> active-text="无异议"
</template> inactive-text="有异议"
<template v-slot:inactive> @change="controlSwitch($event, scope.row)"
<span>关闭</span> >
</template> <template v-slot:active>
</el-switch> <span>开启</span>
</template> </template>
</el-table-column> <template v-slot:inactive>
<el-table-column label="解释批注" > <span>关闭</span>
<template slot-scope="scope"> </template>
<el-input v-model="scope.row.feedback"></el-input> </el-switch>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="附加解释材料" prop="fileId" width="400"> <el-table-column label="解释批注">
<template slot-scope="scope"> <template slot-scope="scope" v-if="scope.row.confirmStatus == '1'">
<input type="file" @change="handleFileUpload"> <el-input
<button @click="submitFile(scope.row)">上传</button> v-model="scope.row.feedback"
</template>
</el-table-column> ></el-input>
<el-table-column label="复核情况" prop="rectificationStatus"> </template>
<template slot-scope="scope"> </el-table-column>
<el-select v-model="scope.row.appealStatus" placeholder="请选择"> <el-table-column label="附加解释材料" width="400">
<el-option label="请选择" value=""></el-option> <template slot-scope="scope" v-if="scope.row.confirmStatus == '1'&&scope.row.fileId">
<el-option label="未申诉" :value="0"></el-option> {{
<el-option label="已申诉" :value="1"></el-option> scope.row.fileName
<el-option label="申诉驳回" :value="2"></el-option> }} <el-button @click="handleClickXZ(scope.row)">下载</el-button>
<el-option label="申诉通过" :value="3"></el-option> </template>
</el-select> <!-- <template slot-scope="scope">
</template>
</el-table-column>
</el-table>
</div>
</div>
<p class="midBtn">
<span @click="cancelSS()">取消</span
><span @click="saveSS()">保存</span>
</p>
</el-dialog>
<!-- 复核下发 -->
<el-dialog
title="复核情况"
:visible.sync="dialogSS"
width="79%"
:modal-append-to-body="false"
:append-to-body="false"
>
<div class="dialog">
<h3>
项目名称:一期项目-电力营销-2023年网上国网(网上国网V1.0)-设计开发项目
</h3>
<div class="continer">
<p class="xqtitle"><span></span>问题清单</p>
<el-table
:data="tableDataSS"
tooltip-effect="dark"
style="width: 100%"
header-cell-class-name="custom-th-background"
class="eltable"
:row-class-name="tableRowClassName"
:span-method="arraySpanMethodss"
border
>
<el-table-column
label="项目环节"
prop="projectStagetext"
width="150"
>
</el-table-column>
<el-table-column label="序号" width="100" prop="questionId">
</el-table-column>
<el-table-column label="问题检查项" prop="quesCheckItem">
</el-table-column>
<el-table-column label="检查说明" prop="checkDesc" show-overflow-tooltip>
</el-table-column>
<el-table-column label="评估问题" prop="evalQues">
</el-table-column>
<el-table-column label="问题确认" width="auto">
<template slot-scope="scope">
<el-switch
v-model="scope.row.confirmStatus"
active-color="#C0C0C0"
inactive-color="#13ce66"
active-value="2"
inactive-value="1"
active-text="无异议"
inactive-text="有异议"
@change="controlSwitch($event, scope.row)"
>
<template v-slot:active>
<span>开启</span>
</template>
<template v-slot:inactive>
<span>关闭</span>
</template>
</el-switch>
</template>
</el-table-column>
<el-table-column label="解释批注" >
<template slot-scope="scope">
<el-input v-model="scope.row.feedback"></el-input>
</template>
</el-table-column>
<el-table-column label="附加解释材料" prop="fileId" width="400">
<template slot-scope="scope">
<input type="file" @change="handleFileUpload"> <input type="file" @change="handleFileUpload">
<button @click="submitFile(scope.row)">上传</button> <button @click="submitFile(scope.row)">上传</button>
</template> </template> -->
</el-table-column> </el-table-column>
<el-table-column label="复核情况" prop="rectificationStatus"> <el-table-column label="复核情况" prop="rectificationStatus">
<template slot-scope="scope"> <template slot-scope="scope" v-if="scope.row.confirmStatus == '1'">
<el-select v-model="scope.row.appealStatus" placeholder="请选择"> <el-select
<el-option label="请选择" :value="null"></el-option> v-model="scope.row.appealStatus"
<el-option label="未申诉" :value="0"></el-option> placeholder="请选择"
<el-option label="已申诉" :value="1"></el-option>
<el-option label="申诉驳回" :value="2"></el-option> >
<el-option label="申诉通过" :value="3"></el-option> <el-option label="请选择" value=""></el-option>
</el-select> <el-option label="未申诉" :value="0"></el-option>
</template> <el-option label="已申诉" :value="1"></el-option>
</el-table-column> <el-option label="申诉驳回" :value="2"></el-option>
</el-table> <el-option label="申诉通过" :value="3"></el-option>
</div> </el-select>
</template>
</div> </el-table-column>
<p class="midBtn"> </el-table>
<span @click="cancel()">取消</span </div>
><span @click="save()">问题下发</span> </div>
</p> <p class="midBtn">
</el-dialog> <span @click="cancelSS()">取消</span><span @click="saveSS()">保存</span>
</p>
</div> </el-dialog>
</template> <!-- 复核下发 -->
<el-dialog
title="复核情况"
:visible.sync="dialogSS"
width="79%"
:modal-append-to-body="false"
:append-to-body="false"
>
<div class="dialog">
<h3>
项目名称:一期项目-电力营销-2023年网上国网(网上国网V1.0)-设计开发项目
</h3>
<div class="continer">
<p class="xqtitle"><span></span>问题清单</p>
<el-table
:data="tableDataSS"
tooltip-effect="dark"
style="width: 100%"
header-cell-class-name="custom-th-background"
class="eltable"
:row-class-name="tableRowClassName"
:span-method="arraySpanMethodss"
border
>
<el-table-column
label="项目环节"
prop="projectStagetext"
width="150"
>
</el-table-column>
<el-table-column label="序号" width="100" prop="questionId">
</el-table-column>
<el-table-column label="问题检查项" prop="quesCheckItem">
</el-table-column>
<el-table-column
label="检查说明"
prop="checkDesc"
show-overflow-tooltip
>
</el-table-column>
<el-table-column label="评估问题" prop="evalQues">
</el-table-column>
<el-table-column label="问题确认" width="auto">
<template slot-scope="scope">
<el-switch
v-model="scope.row.confirmStatus"
active-color="#C0C0C0"
inactive-color="#13ce66"
active-value="2"
inactive-value="1"
active-text="无异议"
inactive-text="有异议"
@change="controlSwitch($event, scope.row)"
>
<template v-slot:active>
<span>开启</span>
</template>
<template v-slot:inactive>
<span>关闭</span>
</template>
</el-switch>
</template>
</el-table-column>
<el-table-column label="解释批注">
<template slot-scope="scope" v-if="scope.row.confirmStatus == '1'">
<el-input v-model="scope.row.feedback"></el-input>
</template>
</el-table-column>
<el-table-column label="附加解释材料" width="400">
<template slot-scope="scope" v-if="scope.row.confirmStatus == '1'&&scope.row.fileId">
{{
scope.row.fileName
}} <el-button @click="handleClickXZ(scope.row)">下载</el-button>
</template>
</el-table-column>
<el-table-column label="复核情况" prop="rectificationStatus">
<template slot-scope="scope" v-if="scope.row.confirmStatus == '1'">
<el-select
v-model="scope.row.appealStatus"
placeholder="请选择"
>
<el-option label="请选择" :value="null"></el-option>
<el-option label="未申诉" :value="0"></el-option>
<el-option label="已申诉" :value="1"></el-option>
<el-option label="申诉驳回" :value="2"></el-option>
<el-option label="申诉通过" :value="3"></el-option>
</el-select>
</template>
</el-table-column>
</el-table>
</div>
</div>
<p class="midBtn">
<span @click="cancel()">取消</span><span @click="save()">问题下发</span>
</p>
</el-dialog>
</div>
</template>
<script> <script>
import { appealAssistanceConfirmatio,ossupload, wtfhappealAssistanceConfirmatio,xfappealAssistanceConfirmatio,wtssSelAssistanceConfirmatio} from "@/api/index"; import {
export default { appealAssistanceConfirmatio,
data() { ossupload,
return { wtfhappealAssistanceConfirmatio,
dialogSS:false, xfappealAssistanceConfirmatio,
ruleForm: { wtssSelAssistanceConfirmatio,
batchYear: "", downloadObject
batchName: "", } from "@/api/index";
postEvalState: "", export default {
}, data() {
ruleFormdialogBJ: { return {
appealDeadline: "", dialogSS: false,
rectificationDeadline: "", ruleForm: {
}, batchYear: "",
rules: { batchName: "",
appealDeadline: [ postEvalState: "",
{ },
required: true, ruleFormdialogBJ: {
message: "请选择问题申诉截止时间", appealDeadline: "",
trigger: "change", rectificationDeadline: "",
}, },
], rules: {
rectificationDeadline: [ appealDeadline: [
{ {
required: true, required: true,
message: "问题整改截止时间", message: "请选择问题申诉截止时间",
trigger: "change", trigger: "change",
}, },
], ],
}, rectificationDeadline: [
tableData: [], {
tableDataQR: [], required: true,
tableDataSS:[], message: "问题整改截止时间",
checkedList: [], trigger: "change",
currentPage: 1, },
pageSizetjcl: 10, ],
total: 0, },
dialogQR: false, tableData: [],
pageSize: 10, tableDataQR: [],
mergingPos: 0, tableDataSS: [],
mergingRows: [], checkedList: [],
mergingPosss: 0, currentPage: 1,
mergingRowsss: [], pageSizetjcl: 10,
}; total: 0,
}, dialogQR: false,
mounted() { pageSize: 10,
this.submitForm(); mergingPos: 0,
}, mergingRows: [],
methods: { mergingPosss: 0,
async submitForm() { mergingRowsss: [],
let params = { };
current: this.currentPage, },
pageSize: this.pageSize, mounted() {
}; this.submitForm();
Object.assign(params, this.ruleForm); },
console.log(params); methods: {
let res = await appealAssistanceConfirmatio(params); async submitForm() {
if (res.code == "200") { let params = {
this.tableData = res.data.records; current: this.currentPage,
this.tableData.forEach((item) => { pageSize: this.pageSize,
if (item.reviewStatus >= "4") { };
this.$set(item, "postEvalStateText", "复核已下发"); Object.assign(params, this.ruleForm);
} else { console.log(params);
this.$set(item, "postEvalStateText", "复核未下发"); let res = await appealAssistanceConfirmatio(params);
} if (res.code == "200") {
}); this.tableData = res.data.records;
this.total = res.data.total * 1; this.tableData.forEach((item) => {
} if (item.reviewStatus >= "4") {
}, this.$set(item, "postEvalStateText", "复核已下发");
resetForm() { } else {
this.$refs.formName.resetFields(); this.$set(item, "postEvalStateText", "复核未下发");
this.currentPage = 1; }
this.pageSize = 10; });
this.submitForm(); this.total = res.data.total * 1;
}, }
//问题复核 },
async confirm() { resetForm() {
this.mergingPos=0; this.$refs.formName.resetFields();
this.mergingRows=[] this.currentPage = 1;
if (this.checkedList.length != 1) { this.pageSize = 10;
this.$message("请选择一条数据进行复核"); this.submitForm();
return; },
} //问题复核
this.dialogQR = true; async confirm() {
let params = { this.mergingPos = 0;
projectId: this.checkedList[0].projectId, this.mergingRows = [];
batchId: this.checkedList[0].batchId, if (this.checkedList.length != 1) {
}; this.$message("请选择一条数据进行复核");
return;
let res = await wtssSelAssistanceConfirmatio(params); }
if (res.code == "200") { this.dialogQR = true;
this.tableDataQR = res.data.records; let params = {
this.tableDataQR.forEach((item) => { projectId: this.checkedList[0].projectId,
batchId: this.checkedList[0].batchId,
switch (item.projectStage) { };
case "1":
this.$set(item, "projectStagetext", "1.可研"); let res = await wtssSelAssistanceConfirmatio(params);
break; if (res.code == "200") {
case "2": this.tableDataQR = res.data.records;
this.$set(item, "projectStagetext", "2.计划"); this.tableDataQR.forEach((item) => {
break; switch (item.projectStage) {
case "3": case "1":
this.$set(item, "projectStagetext", "3.采购"); this.$set(item, "projectStagetext", "1.可研");
break; break;
case "4": case "2":
this.$set(item, "projectStagetext", "4.合同"); this.$set(item, "projectStagetext", "2.计划");
break; break;
case "5": case "3":
this.$set(item, "projectStagetext", "5.执行"); this.$set(item, "projectStagetext", "3.采购");
break; break;
case "6": case "4":
this.$set(item, "projectStagetext", "6.结决算及转资"); this.$set(item, "projectStagetext", "4.合同");
break; break;
} case "5":
this.$set(item, "projectStagetext", "5.执行");
}); break;
console.log(this.tableDataQR,'加不进去?') case "6":
this.dataPretreatment(); this.$set(item, "projectStagetext", "6.结决算及转资");
} break;
}, }
dataPretreatment() { });
for (let i = 0; i < this.tableDataQR.length; i++) { console.log(this.tableDataQR, "加不进去?");
// tabledata 表格数据源 this.dataPretreatment();
if (i === 0) { }
this.mergingRows.push(1); },
this.mergingPos = 0; dataPretreatment() {
} else { for (let i = 0; i < this.tableDataQR.length; i++) {
if ( // tabledata 表格数据源
this.tableDataQR[i].projectStage === if (i === 0) {
this.tableDataQR[i - 1].projectStage this.mergingRows.push(1);
) { this.mergingPos = 0;
//哪些数据是要合并的 合并的条件是什么 } else {
this.mergingRows[this.mergingPos] += 1; if (
this.mergingRows.push(0); this.tableDataQR[i].projectStage ===
} else { this.tableDataQR[i - 1].projectStage
this.mergingRows.push(1); ) {
this.mergingPos = i; //哪些数据是要合并的 合并的条件是什么
} this.mergingRows[this.mergingPos] += 1;
} this.mergingRows.push(0);
} } else {
}, this.mergingRows.push(1);
dataPretreatmentSS() { this.mergingPos = i;
for (let i = 0; i < this.tableDataSS.length; i++) { }
// tabledata 表格数据源 }
if (i === 0) { }
this.mergingRowsss.push(1); },
this.mergingPosss = 0; dataPretreatmentSS() {
} else { for (let i = 0; i < this.tableDataSS.length; i++) {
if ( // tabledata 表格数据源
this.tableDataSS[i].projectStage === if (i === 0) {
this.tableDataSS[i - 1].projectStage this.mergingRowsss.push(1);
) { this.mergingPosss = 0;
//哪些数据是要合并的 合并的条件是什么 } else {
this.mergingRowsss[this.mergingPosss] += 1; if (
this.mergingRowsss.push(0); this.tableDataSS[i].projectStage ===
} else { this.tableDataSS[i - 1].projectStage
this.mergingRowsss.push(1); ) {
this.mergingPosss = i; //哪些数据是要合并的 合并的条件是什么
} this.mergingRowsss[this.mergingPosss] += 1;
} this.mergingRowsss.push(0);
} } else {
}, this.mergingRowsss.push(1);
this.mergingPosss = i;
}
//表格颜色 }
tableRowClassName({ row, rowIndex }) { }
if (rowIndex % 2 == 1) { },
return "warning-row";
} //表格颜色
return ""; tableRowClassName({ row, rowIndex }) {
}, if (rowIndex % 2 == 1) {
//主列表选中行信息 return "warning-row";
handleSelectionChange(selection) { }
console.log('222222') return "";
},
if (Array.isArray(selection) && selection.length > 1) { //主列表选中行信息
console.log('222222333',this.checkedList) handleSelectionChange(selection) {
this.$refs.multipleTable.toggleRowSelection(selection[0], false); console.log("222222");
this.$refs.multipleTable.toggleRowSelection(selection[1], true);
} if (Array.isArray(selection) && selection.length > 1) {
this.checkedList = this.$refs.multipleTable.selection; console.log("222222333", this.checkedList);
this.$forceUpdate(); this.$refs.multipleTable.toggleRowSelection(selection[0], false);
console.log(this.checkedList, "2222"); this.$refs.multipleTable.toggleRowSelection(selection[1], true);
}, }
handleSizeChange(val) { this.checkedList = this.$refs.multipleTable.selection;
console.log(`每页 ${val} 条`); this.$forceUpdate();
this.pageSize = val; console.log(this.checkedList, "2222");
}, },
handleCurrentChange(val) { handleSizeChange(val) {
console.log(`当前页: ${val}`); console.log(`每页 ${val} 条`);
this.currentPage = val; this.pageSize = val;
}, },
arraySpanMethod({ row, column, rowIndex, columnIndex }) { handleCurrentChange(val) {
if (columnIndex === 0) { console.log(`当前页: ${val}`);
//第一列 this.currentPage = val;
const _row = this.mergingRows[rowIndex]; },
const _col = _row > 0 ? 1 : 0; arraySpanMethod({ row, column, rowIndex, columnIndex }) {
return { if (columnIndex === 0) {
rowspan: _row, //第一列
colspan: _col, const _row = this.mergingRows[rowIndex];
}; const _col = _row > 0 ? 1 : 0;
} return {
}, rowspan: _row,
arraySpanMethodss({ row, column, rowIndex, columnIndex }) { colspan: _col,
if (columnIndex === 0) { };
//第一列 }
const _row = this.mergingRowsss[rowIndex]; },
const _col = _row > 0 ? 1 : 0; arraySpanMethodss({ row, column, rowIndex, columnIndex }) {
return { if (columnIndex === 0) {
rowspan: _row, //第一列
colspan: _col, const _row = this.mergingRowsss[rowIndex];
}; const _col = _row > 0 ? 1 : 0;
} return {
}, rowspan: _row,
//问题确认开关 colspan: _col,
controlSwitch(val, row) { };
console.log("333", val, row); }
}, },
cancelSS(){ //问题确认开关
this.dialogQR=false controlSwitch(val, row) {
}, console.log("333", val, row);
async save(){ },
let res= await xfappealAssistanceConfirmatio(this.tableDataSS) cancelSS() {
if(res.code=='200'){ this.dialogQR = false;
this.dialogSS=false },
this.resetForm() async save() {
}else{ let res = await xfappealAssistanceConfirmatio(this.tableDataSS);
this.$message('复核下发失败') if (res.code == "200") {
} this.dialogSS = false;
this.resetForm();
}, } else {
cancel(){ this.$message("复核下发失败");
this.dialogSS=false }
}, },
async saveSS(){ cancel() {
let res= await wtfhappealAssistanceConfirmatio(this.tableDataQR) this.dialogSS = false;
if(res.code=='200'){ },
this.dialogQR=false async saveSS() {
this.resetForm() let res = await wtfhappealAssistanceConfirmatio(this.tableDataQR);
} if (res.code == "200") {
}, this.dialogQR = false;
//问题下发 this.resetForm();
async appeal(){ }
this.mergingPosss=0; },
this.mergingRowsss=[]; //问题下发
if (this.checkedList.length != 1) { async appeal() {
this.$message("请选择一条数据进行下发"); this.mergingPosss = 0;
return; this.mergingRowsss = [];
} if (this.checkedList.length != 1) {
if(this.checkedList[0].postEvalStateText=='复核已下发'){ this.$message("请选择一条数据进行下发");
return;
}
if (this.checkedList[0].postEvalStateText == "复核已下发") {
this.$message("请选择未下发的数据"); this.$message("请选择未下发的数据");
return return;
} }
this.dialogSS = true; this.dialogSS = true;
let params = { let params = {
projectId: this.checkedList[0].projectId, projectId: this.checkedList[0].projectId,
batchId: this.checkedList[0].batchId, batchId: this.checkedList[0].batchId,
}; };
let res = await wtssSelAssistanceConfirmatio(params); let res = await wtssSelAssistanceConfirmatio(params);
if (res.code == "200") { if (res.code == "200") {
this.tableDataSS = res.data.records; this.tableDataSS = res.data.records;
this.tableDataSS.forEach((item) => { this.tableDataSS.forEach((item) => {
if(!item.confirmStatus){ if (!item.confirmStatus) {
this.$set(item, "confirmStatus", "2") this.$set(item, "confirmStatus", "2");
} }
switch (item.projectStage) { switch (item.projectStage) {
case "1": case "1":
this.$set(item, "projectStagetext", "1.可研"); this.$set(item, "projectStagetext", "1.可研");
break; break;
case "2": case "2":
...@@ -558,397 +595,419 @@ ...@@ -558,397 +595,419 @@
case "6": case "6":
this.$set(item, "projectStagetext", "6.结决算及转资"); this.$set(item, "projectStagetext", "6.结决算及转资");
break; break;
} }
});
}); console.log(this.tableDataSS);
console.log(this.tableDataSS) this.dataPretreatmentSS();
this.dataPretreatmentSS(); }
},
} handleFileUpload(event) {
}, console.log("来了么");
handleFileUpload(event) { this.file = event.target.files[0];
console.log('来了么') },
this.file = event.target.files[0]; submitFile(row) {
}, this.$message("上传还没做");
submitFile(row) { return;
this.$message('上传还没做') console.log(row);
return if (this.file) {
console.log(row) const formData = new FormData();
if (this.file) { formData.append("file", this.file);
const formData = new FormData(); formData.append("prjId", this.checkedList[0].projectId);
formData.append('file', this.file); formData.append("typeCode", row.typeCode);
formData.append('prjId',this.checkedList[0].projectId);
formData.append('typeCode',row.typeCode); ossupload(formData)
.then((response) => {
console.log(response);
this.$set(row, "fileName", response.data.fileName);
})
.catch((error) => {
console.error(error);
});
}
},
closed() {
console.log("关闭");
this.handleSelectionChange();
},
async handleClickXZ(scope) {
console.log(scope.fileId);
let response=await downloadObject({
fileId:scope.fileId*1
})
// const url = window.URL.createObjectURL(new Blob([response]));
// const link = document.createElement('a');
// link.href = url;
// link.setAttribute('download', 'file.pdf');
// document.body.appendChild(link);
// link.click();
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);
}
ossupload(formData).then(response => { },
console.log(response); },
this.$set(row,'fileName',response.data.fileName) };
</script>
})
.catch(error => {
console.error(error);
});
}
},
closed(){
console.log("关闭")
this.handleSelectionChange()
}
},
};
</script>
<style scoped lang="scss"> <style scoped lang="scss">
.main { .main {
font-size: 14px; font-size: 14px;
position: relative; position: relative;
height: 100%; height: 100%;
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
overflow-x: hidden; overflow-x: hidden;
} }
.el-form { .el-form {
display: flex; display: flex;
width: 99%; width: 99%;
flex-wrap: wrap; flex-wrap: wrap;
border-top: 2px solid #23c6c8; border-top: 2px solid #23c6c8;
border-left: 1px solid #dee5e7; border-left: 1px solid #dee5e7;
border-right: 1px solid #dee5e7; border-right: 1px solid #dee5e7;
border-bottom: 1px solid #dee5e7; border-bottom: 1px solid #dee5e7;
padding: 20px 10px; padding: 20px 10px;
margin-bottom: 20px; margin-bottom: 20px;
.fromItem { .fromItem {
min-width: 24%; min-width: 24%;
margin: 0 0.5%; margin: 0 0.5%;
margin-bottom: 20px; margin-bottom: 20px;
.el-input { .el-input {
width: 226px; width: 226px;
} }
.el-select { .el-select {
width: 226px; width: 226px;
} }
} }
/deep/ .el-form-item__content { /deep/ .el-form-item__content {
text-align: left; text-align: left;
display: inline-block; display: inline-block;
margin-left: 10px !important; margin-left: 10px !important;
}
/deep/ .el-form-item__label {
font-weight: bold;
color: #000;
width: 160px !important;
}
.button {
display: inline-block;
width: 100%;
text-align: left;
/deep/ .el-form-item__content {
margin-left: 20px !important;
text-align: left;
img {
width: 14px;
height: 14px;
margin-right: 15px;
vertical-align: middle;
}
}
.el-button {
background-color: #23c6c8;
border-color: #23c6c8;
color: #fff;
}
}
} }
/deep/ .el-form-item__label {
font-weight: bold;
color: #000;
width: 160px !important;
}
.button {
display: inline-block;
width: 100%;
text-align: left;
/deep/ .el-form-item__content {
margin-left: 20px !important;
text-align: left;
img {
width: 14px;
height: 14px;
margin-right: 15px;
vertical-align: middle;
}
}
.el-button {
background-color: #23c6c8;
border-color: #23c6c8;
color: #fff;
}
}
}
.eltable {
box-sizing: border-box;
text-align: center;
width: 150%;
min-width: 150%;
// margin-right: 210px;
// margin-top: 3vh;
}
/deep/ .el-table .warning-row {
background: #f0ffff;
// color: #2785e6;
}
.elpagination {
text-align: right;
margin-right: 100px;
}
/deep/ .el-dialog {
border-radius: 10px;
margin-top: 3vh !important;
margin-left: 3vw !important;
}
/deep/.el-table th.el-table__cell.is-leaf,
.el-table td.el-table__cell {
text-align: center;
}
/deep/ .el-dialog__wrapper {
position: absolute;
}
/deep/ .v-modal {
position: absolute;
}
/deep/ .el-dialog__header {
background-color: #0d867f;
padding-bottom: 20px;
text-align: left;
border-radius: 10px 10px 0 0;
.el-dialog__title {
color: #fff;
}
}
/deep/ .el-table__header th {
background-color: #eeeeee;
font-weight: bold;
.cell {
color: #333;
}
}
/deep/.el-table {
// width: 100%;
.el-table__header-wrapper table,
.el-table__body-wrapper table {
// width: 100% !important;
}
.el-table__body,
.el-table__footer,
.el-table__header {
table-layout: auto;
}
}
.textarea {
width: 100%;
.el-textarea {
width: 60%;
}
}
.Btn {
width: 200px;
margin: 0 auto;
height: 30px;
line-height: 30px;
span {
display: inline-block;
width: 80px;
height: 25px;
line-height: 25px;
text-align: center;
border-radius: 4px;
margin-right: 12px;
}
span:first-of-type {
border: 1px solid #000;
}
span:last-of-type {
background-color: #0d867f;
border: 1px solid #0d867f;
color: #fff;
}
}
/deep/ .el-dialog__headerbtn .el-dialog__close {
color: #fff;
}
.zjBtn {
width: 400px;
text-align: left;
vertical-align: middle;
span {
display: inline-block;
width: 140px;
height: 25px;
line-height: 25px;
text-align: center;
border-radius: 5px;
vertical-align: middle;
}
span:last-of-type {
background-color: #4ca6a7;
color: #fff;
padding: 5px 10px;
margin-left: 10px;
}
}
/deep/ .el-icon-position {
margin-right: 10px;
}
/deep/ .el-icon-folder-delete {
margin-right: 10px;
}
.cxItem {
text-align: right;
width: 20%;
.zjquery {
display: inline-block;
background-color: #4ca6a7;
width: 89px;
height: 40px;
color: #fff;
text-align: center;
line-height: 40px;
border-radius: 5px;
}
}
.midBtn {
margin: 0 auto;
margin-top: 20px;
span {
display: inline-block;
width: 80px;
height: 29px;
line-height: 29px;
text-align: center;
margin-right: 10px;
border-radius: 5px;
box-sizing: border-box;
}
span:first-of-type {
border: 1px solid grey;
}
span:last-of-type {
background-color: #4ca6a7;
color: #fff;
border: 1px solid #4ca6a7;
}
}
.dialog {
height: 680px;
overflow-y: auto;
.xqtitle {
text-align: left;
font-size: 18px;
border-bottom: 1px solid gainsboro;
padding-bottom: 10px;
span {
display: inline-block;
width: 5px;
height: 20px;
background: #0d867f;
margin-right: 14px;
vertical-align: middle;
}
}
/deep/ .el-form {
width: 65%;
flex-wrap: wrap;
padding: 0 10px;
text-align: center;
margin: 100px auto;
border: none;
.fromItem {
text-align: center;
width: 51%;
margin: 0 auto;
margin-bottom: 20px;
.el-input {
width: 226px;
}
.el-select {
width: 226px;
}
}
/deep/ .el-form-item__content {
text-align: left;
}
/deep/ .el-form-item__label {
font-weight: 400;
// color: #000;
width: 160px !important;
}
}
}
/deep/.el-table th.el-table__cell.is-leaf,
.el-table td.el-table__cell {
text-align: center;
}
/deep/ .el-table__cell {
text-align: center;
}
h3 {
text-align: left;
}
/deep/.el-switch__core {
height: 30px;
width: 79px !important;
border-radius: 20px;
}
/deep/.el-switch.is-checked .el-switch__core::after {
margin-left: -28px;
}
/deep/ .el-switch_label {
height: 30px;
line-height: 30px;
}
/deep/.el-switch {
height: 30px;
line-height: 30px;
border-radius: 20px;
}
/deep/ .el-switch__label * {
font-size: 12px;
}
/deep/.el-switch__core:after {
width: 26px;
height: 26px;
}
/deep/.el-switch__label--left {
position: absolute;
left: 30px;
color: #fff;
z-index: -1111;
cursor: default;
user-select: none;
}
/deep/.el-switch__label--right {
position: absolute;
right: 30px;
color: #fff;
z-index: -1111;
cursor: default;
user-select: none;
}
/deep/.el-switch__label--right.is-active {
z-index: 1111;
color: grey !important;
height: 30px;
line-height: 30px;
}
/deep/.el-switch__label--left.is-active {
z-index: 1111;
color: #fff !important;
height: 30px;
line-height: 30px;
}
/deep/ .el-dialog__body {
padding-bottom: 5px;
}
.setscroll {
width: 100%;
height: 650px;
overflow: auto;
padding-right: 500px;
}
.dialog {
.eltable { .eltable {
box-sizing: border-box; box-sizing: border-box;
text-align: center; text-align: center;
width: 150%; width: 100%;
min-width: 150%; min-width: 100%;
// margin-right: 210px; // margin-right: 210px;
// margin-top: 3vh; // margin-top: 3vh;
} }
/deep/ .el-table .warning-row { }
background: #f0ffff;
// color: #2785e6;
}
.elpagination {
text-align: right;
margin-right: 100px;
}
/deep/ .el-dialog {
border-radius: 10px;
margin-top: 3vh !important;
margin-left: 3vw !important;
}
/deep/.el-table th.el-table__cell.is-leaf,
.el-table td.el-table__cell {
text-align: center;
}
/deep/ .el-dialog__wrapper {
position: absolute;
}
/deep/ .v-modal {
position: absolute;
}
/deep/ .el-dialog__header {
background-color: #0d867f;
padding-bottom: 20px;
text-align: left;
border-radius: 10px 10px 0 0;
.el-dialog__title {
color: #fff;
}
}
/deep/ .el-table__header th {
background-color: #eeeeee;
font-weight: bold;
.cell {
color: #333;
}
}
/deep/.el-table {
// width: 100%;
.el-table__header-wrapper table,
.el-table__body-wrapper table {
// width: 100% !important;
}
.el-table__body,
.el-table__footer,
.el-table__header {
table-layout: auto;
}
}
.textarea {
width: 100%;
.el-textarea {
width: 60%;
}
}
.Btn {
width: 200px;
margin: 0 auto;
height: 30px;
line-height: 30px;
span {
display: inline-block;
width: 80px;
height: 25px;
line-height: 25px;
text-align: center;
border-radius: 4px;
margin-right: 12px;
}
span:first-of-type {
border: 1px solid #000;
}
span:last-of-type {
background-color: #0d867f;
border: 1px solid #0d867f;
color: #fff;
}
}
/deep/ .el-dialog__headerbtn .el-dialog__close {
color: #fff;
}
.zjBtn {
width: 400px;
text-align: left;
vertical-align: middle;
span {
display: inline-block;
width: 140px;
height: 25px;
line-height: 25px;
text-align: center;
border-radius: 5px;
vertical-align: middle;
}
span:last-of-type {
background-color: #4ca6a7;
color: #fff;
padding: 5px 10px;
margin-left: 10px;
}
}
/deep/ .el-icon-position {
margin-right: 10px;
}
/deep/ .el-icon-folder-delete {
margin-right: 10px;
}
.cxItem {
text-align: right;
width: 20%;
.zjquery {
display: inline-block;
background-color: #4ca6a7;
width: 89px;
height: 40px;
color: #fff;
text-align: center;
line-height: 40px;
border-radius: 5px;
}
}
.midBtn {
margin: 0 auto;
margin-top: 20px;
span {
display: inline-block;
width: 80px;
height: 29px;
line-height: 29px;
text-align: center;
margin-right: 10px;
border-radius: 5px;
box-sizing: border-box;
}
span:first-of-type {
border: 1px solid grey;
}
span:last-of-type {
background-color: #4ca6a7;
color: #fff;
border: 1px solid #4ca6a7;
}
}
.dialog {
height: 680px;
overflow-y: auto;
.xqtitle {
text-align: left;
font-size: 18px;
border-bottom: 1px solid gainsboro;
padding-bottom: 10px;
span {
display: inline-block;
width: 5px;
height: 20px;
background: #0d867f;
margin-right: 14px;
vertical-align: middle;
}
}
/deep/ .el-form {
width: 65%;
flex-wrap: wrap;
padding: 0 10px;
text-align: center;
margin: 100px auto;
border: none;
.fromItem {
text-align: center;
width: 51%;
margin: 0 auto;
margin-bottom: 20px;
.el-input {
width: 226px;
}
.el-select {
width: 226px;
}
}
/deep/ .el-form-item__content {
text-align: left;
}
/deep/ .el-form-item__label {
font-weight: 400;
// color: #000;
width: 160px !important;
}
}
}
/deep/.el-table th.el-table__cell.is-leaf,
.el-table td.el-table__cell {
text-align: center;
}
/deep/ .el-table__cell {
text-align: center;
}
h3 {
text-align: left;
}
/deep/.el-switch__core {
height: 30px;
width: 79px !important;
border-radius: 20px;
}
/deep/.el-switch.is-checked .el-switch__core::after {
margin-left: -28px;
}
/deep/ .el-switch_label {
height: 30px;
line-height: 30px;
}
/deep/.el-switch {
height: 30px;
line-height: 30px;
border-radius: 20px;
}
/deep/ .el-switch__label * {
font-size: 12px;
}
/deep/.el-switch__core:after {
width: 26px;
height: 26px;
}
/deep/.el-switch__label--left {
position: absolute;
left: 30px;
color: #fff;
z-index: -1111;
cursor: default;
user-select: none;
}
/deep/.el-switch__label--right {
position: absolute;
right: 30px;
color: #fff;
z-index: -1111;
cursor: default;
user-select: none;
}
/deep/.el-switch__label--right.is-active {
z-index: 1111;
color: grey !important;
height: 30px;
line-height: 30px;
}
/deep/.el-switch__label--left.is-active {
z-index: 1111;
color: #fff !important;
height: 30px;
line-height: 30px;
}
/deep/ .el-dialog__body{
padding-bottom: 5px;
}
.setscroll{
width: 100%;
height: 650px;
overflow: auto;
padding-right: 500px;
}
.dialog{
.eltable {
box-sizing: border-box;
text-align: center;
width: 100%;
min-width: 100%;
// margin-right: 210px;
// margin-top: 3vh;
}
}
// ::-webkit-scrollbar { // ::-webkit-scrollbar {
// width: 6px; // 横向滚动条 // width: 6px; // 横向滚动条
...@@ -956,5 +1015,4 @@ ...@@ -956,5 +1015,4 @@
// height: 6px; // 纵向滚动条必写 // height: 6px; // 纵向滚动条必写
// } // }
</style>
</style> \ No newline at end of file
\ No newline at end of file
<template> <template>
<div class="main"> <div class="main">
<el-form :model="ruleForm" label-width="100px" class="demo-ruleForm" ref="formName"> <el-form
:model="ruleForm"
label-width="100px"
class="demo-ruleForm"
ref="formName"
>
<el-form-item label="批次年度:" prop="batchYear" class="fromItem"> <el-form-item label="批次年度:" prop="batchYear" class="fromItem">
<el-select v-model="ruleForm.batchYear" placeholder="请选择" clearable> <el-select v-model="ruleForm.batchYear" placeholder="请选择" clearable>
<el-option label="2024年" value="2024"></el-option> <el-option label="2024年" value="2024"></el-option>
...@@ -11,10 +16,18 @@ ...@@ -11,10 +16,18 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="后评估批次名称:" prop="batchName" class="fromItem"> <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>
<el-form-item label="后评估状态:" prop="postEvalState" class="fromItem"> <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="0"></el-option>
<el-option label="已下发" value="1"></el-option> <el-option label="已下发" value="1"></el-option>
<el-option label="已撤回" value="2"></el-option> <el-option label="已撤回" value="2"></el-option>
...@@ -38,43 +51,49 @@ ...@@ -38,43 +51,49 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="setscroll"> <div class="setscroll">
<el-table <el-table
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
ref="multipleTable" ref="multipleTable"
:data="tableData" :data="tableData"
tooltip-effect="dark" tooltip-effect="dark"
style="width: 100%" style="width: 100%"
header-cell-class-name="custom-th-background" header-cell-class-name="custom-th-background"
class="eltable" class="eltable"
:row-class-name="tableRowClassName" :row-class-name="tableRowClassName"
border border
> >
<el-table-column label="序号" width="55" type="index"> </el-table-column> <el-table-column label="序号" width="55" type="index">
<el-table-column type="selection"> </el-table-column> </el-table-column>
<el-table-column label="批次年度" prop="batchYear"> </el-table-column> <el-table-column type="selection"> </el-table-column>
<el-table-column prop="batchName" label="后评估批次名称"> <el-table-column label="批次年度" prop="batchYear"> </el-table-column>
</el-table-column> <el-table-column prop="batchName" label="后评估批次名称">
</el-table-column>
<el-table-column prop="projectName" label="评估项目名称" show-overflow-tooltip> <el-table-column
</el-table-column> prop="projectName"
<el-table-column prop="projectCategory" label="建设形式"> label="评估项目名称"
</el-table-column> show-overflow-tooltip
<el-table-column prop="projectStatus" label="项目建设阶段"> >
</el-table-column> </el-table-column>
<!-- <el-table-column prop="createTime" label="历史审核状态"> <el-table-column prop="projectCategory" label="建设形式">
</el-table-column>
<el-table-column prop="projectStatus" label="项目建设阶段">
</el-table-column>
<!-- <el-table-column prop="createTime" label="历史审核状态">
</el-table-column> --> </el-table-column> -->
<el-table-column prop="expertName" label="评审专家名单"> <el-table-column prop="expertName" label="评审专家名单">
</el-table-column> </el-table-column>
<el-table-column prop="appealDeadline" label="问题申诉截止时间"> <el-table-column prop="appealDeadline" label="问题申诉截止时间">
</el-table-column> </el-table-column>
<el-table-column prop="rectificationDeadline" label="问题整改截止时间"> <el-table-column prop="rectificationDeadline" label="问题整改截止时间">
</el-table-column> </el-table-column>
<el-table-column prop="postEvalStateText" label="申诉状态"> </el-table-column> <el-table-column prop="postEvalStateText" label="申诉状态">
<!-- <el-table-column prop="reviewStatus" label="后评估状态"> </el-table-column> --> </el-table-column>
<el-table-column prop="reviewDate" label="评估日期"> </el-table-column> <!-- <el-table-column prop="reviewStatus" label="后评估状态"> </el-table-column> -->
</el-table> <el-table-column prop="reviewDate" label="评估日期"> </el-table-column>
</div> </el-table>
</div>
<el-pagination <el-pagination
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
...@@ -122,7 +141,11 @@ ...@@ -122,7 +141,11 @@
<el-table-column label="问题检查项" prop="quesCheckItem"> <el-table-column label="问题检查项" prop="quesCheckItem">
</el-table-column> </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>
<el-table-column label="评估问题" prop="evalQues"> <el-table-column label="评估问题" prop="evalQues">
</el-table-column> </el-table-column>
...@@ -150,15 +173,13 @@ ...@@ -150,15 +173,13 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
</div> </div>
<p class="midBtn"> <p class="midBtn">
<span @click="cancelSS()">取消</span <span @click="cancelSS()">取消</span><span @click="saveSS()">确认</span>
><span @click="saveSS()">确认</span> </p>
</p>
</el-dialog> </el-dialog>
<!-- 申诉 --> <!-- 申诉 -->
<el-dialog <el-dialog
title="申诉" title="申诉"
:visible.sync="dialogSS" :visible.sync="dialogSS"
width="90%" width="90%"
...@@ -192,7 +213,11 @@ ...@@ -192,7 +213,11 @@
<el-table-column label="问题检查项" prop="quesCheckItem"> <el-table-column label="问题检查项" prop="quesCheckItem">
</el-table-column> </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>
<el-table-column label="评估问题" prop="evalQues"> <el-table-column label="评估问题" prop="evalQues">
</el-table-column> </el-table-column>
...@@ -218,36 +243,51 @@ ...@@ -218,36 +243,51 @@
</el-switch> </el-switch>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="解释批注" > <el-table-column label="解释批注">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.feedback" v-if="scope.row.confirmStatus=='1'"></el-input> <el-input
</template> v-model="scope.row.feedback"
v-if="scope.row.confirmStatus == '1'"
></el-input>
</template>
</el-table-column> </el-table-column>
<el-table-column label="附加解释材料" prop="fileId" width="400"> <el-table-column label="附加解释材料" prop="fileId" width="400">
<template slot-scope="scope"> <template slot-scope="scope">
<input type="file" @change="handleFileUpload" v-if="scope.row.confirmStatus=='1'"> <input
<button @click="submitFile(scope.row)" v-if="scope.row.confirmStatus=='1'">上传</button> type="file"
</template> @change="handleFileUpload"
v-if="scope.row.confirmStatus == '1'"
/>
<button
@click="submitFile(scope.row)"
v-if="scope.row.confirmStatus == '1'"
>
上传
</button>
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
</div> </div>
<p class="midBtn"> <p class="midBtn">
<span @click="cancel()">取消</span <span @click="cancel()">取消</span><span @click="save()">申诉</span>
><span @click="save()">申诉</span> </p>
</p>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { ProblemAssistedFeedback,ossupload,qrProblemAssistedFeedback,wtssSelProblemAssistedFeedback,ssProblemAssistedFeedback } from "@/api/index"; import {
ProblemAssistedFeedback,
ossupload,
qrProblemAssistedFeedback,
wtssSelProblemAssistedFeedback,
ssProblemAssistedFeedback,
} from "@/api/index";
export default { export default {
data() { data() {
return { return {
dialogSS:false, dialogSS: false,
ruleForm: { ruleForm: {
batchYear: "", batchYear: "",
batchName: "", batchName: "",
...@@ -275,7 +315,7 @@ export default { ...@@ -275,7 +315,7 @@ export default {
}, },
tableData: [], tableData: [],
tableDataQR: [], tableDataQR: [],
tableDataSS:[], tableDataSS: [],
checkedList: [], checkedList: [],
currentPage: 1, currentPage: 1,
pageSizetjcl: 10, pageSizetjcl: 10,
...@@ -324,12 +364,12 @@ export default { ...@@ -324,12 +364,12 @@ export default {
}, },
//确认问题 //确认问题
async confirm() { async confirm() {
this.mergingPos=0; this.mergingPos = 0;
this.mergingRows=[] this.mergingRows = [];
if (this.checkedList.length != 1) { if (this.checkedList.length != 1) {
this.$message("请选择一条数据进行确认"); this.$message("请选择一条数据进行确认");
return; return;
} }
this.dialogQR = true; this.dialogQR = true;
let params = { let params = {
projectId: this.checkedList[0].projectId, projectId: this.checkedList[0].projectId,
...@@ -340,10 +380,10 @@ export default { ...@@ -340,10 +380,10 @@ export default {
if (res.code == "200") { if (res.code == "200") {
this.tableDataQR = res.data.records; this.tableDataQR = res.data.records;
this.tableDataQR.forEach((item) => { this.tableDataQR.forEach((item) => {
if(!item.confirmStatus){ if (!item.confirmStatus) {
this.$set(item, "confirmStatus", "2") this.$set(item, "confirmStatus", "2");
} }
switch (item.projectStage) { switch (item.projectStage) {
case "1": case "1":
this.$set(item, "projectStagetext", "1.可研"); this.$set(item, "projectStagetext", "1.可研");
...@@ -364,9 +404,8 @@ export default { ...@@ -364,9 +404,8 @@ export default {
this.$set(item, "projectStagetext", "6.结决算及转资"); this.$set(item, "projectStagetext", "6.结决算及转资");
break; break;
} }
}); });
console.log(this.tableDataQR) console.log(this.tableDataQR);
this.dataPretreatment(); this.dataPretreatment();
} }
}, },
...@@ -413,7 +452,6 @@ export default { ...@@ -413,7 +452,6 @@ export default {
} }
}, },
//表格颜色 //表格颜色
tableRowClassName({ row, rowIndex }) { tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) { if (rowIndex % 2 == 1) {
...@@ -423,10 +461,10 @@ export default { ...@@ -423,10 +461,10 @@ export default {
}, },
//主列表选中行信息 //主列表选中行信息
handleSelectionChange(selection) { handleSelectionChange(selection) {
console.log('222222') console.log("222222");
if (Array.isArray(selection) && selection.length > 1) { if (Array.isArray(selection) && selection.length > 1) {
console.log('222222333',this.checkedList) console.log("222222333", this.checkedList);
this.$refs.multipleTable.toggleRowSelection(selection[0], false); this.$refs.multipleTable.toggleRowSelection(selection[0], false);
this.$refs.multipleTable.toggleRowSelection(selection[1], true); this.$refs.multipleTable.toggleRowSelection(selection[1], true);
} }
...@@ -437,12 +475,12 @@ export default { ...@@ -437,12 +475,12 @@ export default {
handleSizeChange(val) { handleSizeChange(val) {
console.log(`每页 ${val} 条`); console.log(`每页 ${val} 条`);
this.pageSize = val; this.pageSize = val;
this.submitForm() this.submitForm();
}, },
handleCurrentChange(val) { handleCurrentChange(val) {
console.log(`当前页: ${val}`); console.log(`当前页: ${val}`);
this.currentPage = val; this.currentPage = val;
this.submitForm() this.submitForm();
}, },
arraySpanMethod({ row, column, rowIndex, columnIndex }) { arraySpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) { if (columnIndex === 0) {
...@@ -470,33 +508,40 @@ export default { ...@@ -470,33 +508,40 @@ export default {
controlSwitch(val, row) { controlSwitch(val, row) {
console.log("333", val, row); console.log("333", val, row);
}, },
cancelSS(){ cancelSS() {
this.dialogQR=false this.dialogQR = false;
}, },
async save(){ async save() {
console.log(this.tableDataSS,'this.tableDataSS') console.log(this.tableDataSS, "this.tableDataSS");
this.tableDataSS.forEach((item) => {
if (item.confirmStatus == "1") {
if (!item.feedback) {
this.$message("有未填写的的解释批注");
throw new Error("主动跳出循环");
}
}
});
// return // return
let res= await ssProblemAssistedFeedback(this.tableDataSS) let res = await ssProblemAssistedFeedback(this.tableDataSS);
if(res.code=='200'){ if (res.code == "200") {
this.dialogSS=false this.dialogSS = false;
this.resetForm() this.resetForm();
} }
}, },
cancel(){ cancel() {
this.dialogSS=false this.dialogSS = false;
}, },
async saveSS(){ async saveSS() {
let res= await qrProblemAssistedFeedback(this.tableDataQR) let res = await qrProblemAssistedFeedback(this.tableDataQR);
if(res.code=='200'){ if (res.code == "200") {
this.dialogQR=false this.dialogQR = false;
this.resetForm() this.resetForm();
} }
}, },
//申诉 //申诉
async appeal(){ async appeal() {
this.mergingPosss=0; this.mergingPosss = 0;
this.mergingRowsss=[]; this.mergingRowsss = [];
if (this.checkedList.length != 1) { if (this.checkedList.length != 1) {
this.$message("请选择一条数据进行申诉"); this.$message("请选择一条数据进行申诉");
return; return;
...@@ -505,7 +550,7 @@ export default { ...@@ -505,7 +550,7 @@ export default {
// this.$message("请选择未申诉的数据"); // this.$message("请选择未申诉的数据");
// return // return
// } // }
this.dialogSS = true; this.dialogSS = true;
let params = { let params = {
projectId: this.checkedList[0].projectId, projectId: this.checkedList[0].projectId,
...@@ -516,8 +561,8 @@ export default { ...@@ -516,8 +561,8 @@ export default {
if (res.code == "200") { if (res.code == "200") {
this.tableDataSS = res.data.records; this.tableDataSS = res.data.records;
this.tableDataSS.forEach((item) => { this.tableDataSS.forEach((item) => {
if(!item.confirmStatus){ if (!item.confirmStatus) {
this.$set(item, "confirmStatus", "2") this.$set(item, "confirmStatus", "2");
} }
switch (item.projectStage) { switch (item.projectStage) {
case "1": case "1":
...@@ -539,42 +584,42 @@ export default { ...@@ -539,42 +584,42 @@ export default {
this.$set(item, "projectStagetext", "6.结决算及转资"); this.$set(item, "projectStagetext", "6.结决算及转资");
break; break;
} }
}); });
console.log(this.tableDataSS) console.log(this.tableDataSS);
this.dataPretreatmentSS(); this.dataPretreatmentSS();
} }
}, },
handleFileUpload(event) { handleFileUpload(event) {
console.log('来了么') console.log("来了么");
this.file = event.target.files[0]; this.file = event.target.files[0];
}, },
submitFile(row) { submitFile(row) {
// this.$message('上传还没做') // this.$message('上传还没做')
// return // return
console.log(row) console.log(row);
if (this.file) { if (this.file) {
const formData = new FormData(); const formData = new FormData();
formData.append('file', this.file); formData.append("file", this.file);
ossupload(formData).then(response => { ossupload(formData)
console.log(response); .then((response) => {
this.$set(row,'file_id',response.data.file_id) console.log(response);
// this.tableDataSS.forEach(item=>{ if (response.code == "200") {
this.$set(row, "fileId", response.data.fileId);
// }) this.$message("上传成功");
// this.$set(row,'fileName',response.data.fileName) } else {
this.$message("上传失败");
}) }
.catch(error => { })
console.error(error); .catch((error) => {
}); console.error(error);
this.$message("上传失败");
});
} }
}, },
closed(){ closed() {
console.log("关闭") console.log("关闭");
this.handleSelectionChange() this.handleSelectionChange();
} },
}, },
}; };
</script> </script>
...@@ -596,7 +641,7 @@ export default { ...@@ -596,7 +641,7 @@ export default {
border-right: 1px solid #dee5e7; border-right: 1px solid #dee5e7;
border-bottom: 1px solid #dee5e7; border-bottom: 1px solid #dee5e7;
padding: 20px 10px; padding: 20px 10px;
margin-bottom: 20px; margin-bottom: 20px;
.fromItem { .fromItem {
min-width: 24%; min-width: 24%;
margin: 0 0.5%; margin: 0 0.5%;
...@@ -655,7 +700,6 @@ export default { ...@@ -655,7 +700,6 @@ export default {
/deep/ .el-dialog { /deep/ .el-dialog {
border-radius: 10px; border-radius: 10px;
margin-top: 3vh !important; margin-top: 3vh !important;
} }
/deep/.el-table th.el-table__cell.is-leaf, /deep/.el-table th.el-table__cell.is-leaf,
.el-table td.el-table__cell { .el-table td.el-table__cell {
...@@ -792,7 +836,7 @@ export default { ...@@ -792,7 +836,7 @@ export default {
} }
} }
.dialog { .dialog {
height:680px; height: 680px;
overflow-y: auto; overflow-y: auto;
.xqtitle { .xqtitle {
text-align: left; text-align: left;
...@@ -897,7 +941,6 @@ h3 { ...@@ -897,7 +941,6 @@ h3 {
color: grey !important; color: grey !important;
height: 30px; height: 30px;
line-height: 30px; line-height: 30px;
} }
/deep/.el-switch__label--left.is-active { /deep/.el-switch__label--left.is-active {
...@@ -906,7 +949,7 @@ h3 { ...@@ -906,7 +949,7 @@ h3 {
height: 30px; height: 30px;
line-height: 30px; line-height: 30px;
} }
/deep/ .el-dialog__body{ /deep/ .el-dialog__body {
padding-bottom: 15px; padding-bottom: 15px;
} }
.setscroll { .setscroll {
...@@ -916,10 +959,10 @@ h3 { ...@@ -916,10 +959,10 @@ h3 {
overflow: auto; overflow: auto;
} }
/deep/.el-table th.el-table__cell.is-leaf, /deep/.el-table th.el-table__cell.is-leaf,
.el-table td.el-table__cell { .el-table td.el-table__cell {
text-align: center; text-align: center;
} }
/deep/ .el-table__cell { /deep/ .el-table__cell {
text-align: center; text-align: center;
} }
</style> </style>
\ No newline at end of file
...@@ -546,7 +546,9 @@ export default { ...@@ -546,7 +546,9 @@ export default {
//_blank表示在新窗口打开链接 //_blank表示在新窗口打开链接
// link.target = '_blank' // link.target = '_blank'
// link.href =scope.url // link.href =scope.url
window.open(scope.url, '_blank'); if(scope.url){
window.open(scope.url, "_blank");
}
} }
}, },
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!