Commit fdc7db0b by liangzhen

新增页面

1 parent e25ec54b
...@@ -142,6 +142,16 @@ export const routes = [ ...@@ -142,6 +142,16 @@ export const routes = [
name: 'attachSynchronousArchiving', name: 'attachSynchronousArchiving',
component: () => import('@/views/assessChecks/attachSynchronousArchiving.vue'), component: () => import('@/views/assessChecks/attachSynchronousArchiving.vue'),
}, },
{
path: '/compliance/checkRules',
name: 'checkRules',
component: () => import('@/views/compliance/checkRules.vue'),
},
{
path: '/compliance/taskConfigure',
name: 'taskConfigure',
component: () => import('@/views/compliance/taskConfigure.vue'),
},
] ]
}, },
{ {
......
<template>
<div class="main">
<el-form
:model="ruleForm"
ref="ruleForm"
label-width="100px"
class="demo-ruleForm"
>
<el-form-item label="规则名称:" prop="batchName" class="fromItem">
<el-input v-model="ruleForm.batchName" placeholder="请输入" clearable></el-input>
</el-form-item>
<el-form-item label="规则类型:" prop="batchYear" class="fromItem">
<el-select v-model="ruleForm.batchYear" placeholder="请选择" clearable>
<el-option label="2024年" value="2024"></el-option>
<el-option label="2023年" value="2023"></el-option>
<el-option label="2022年" value="2022"></el-option>
<el-option label="2021年" value="2021"></el-option>
</el-select>
</el-form-item>
<el-form-item label="规则状态:" prop="postEvalState" class="fromItem">
<el-select v-model="ruleForm.postEvalState" placeholder="请选择" clearable>
<el-option label="开启" value="0"></el-option>
<el-option label="关闭" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="创建人:" prop="projectName" class="fromItem">
<el-input
v-model="ruleForm.projectName"
placeholder="请输入"
clearable
></el-input>
</el-form-item>
<el-form-item label="评审时间:" prop="projectId" class="fromItem">
<el-date-picker
v-model="reviewTime"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item class="button">
<el-button @click="submitForm()">
<img class="buttonIcon" src="../../assets/cx.png" />查询</el-button
>
<el-button @click="resetForm('ruleForm')">
<img class="buttonIcon" src="../../assets/cz.png" />重置</el-button
>
<el-button @click="detailsForm('ruleForm')">
<img class="buttonIcon" src="../../assets/ck.png" />详情</el-button
>
</el-form-item>
</el-form>
<div class="setscroll">
<el-table
@selection-change="handleSelectionChange"
ref="multipleTable"
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
header-cell-class-name="custom-th-background"
class="eltable"
:row-class-name="tableRowClassName"
border
>
<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="规则状态" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="projectCategory" label="创建人">
</el-table-column>
<el-table-column prop="projectStatus" label="创建时间">
</el-table-column>
</el-table>
</div>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 15, 20, 50]"
:page-size="100"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
class="elpagination"
>
</el-pagination>
<el-dialog
title="详情"
:visible.sync="dialog"
width="90%"
:modal-append-to-body="false"
:append-to-body="false"
>
<div class="dialog">
<h3>
项目名称:一期项目-电力营销-2023年网上国网(网上国网V1.0)-设计开发项目
</h3>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="基本信息" name="first">
<div>
<p class="title"><span></span>项目基本信息</p>
<div class="content">
<p><label>项目编号:</label>{{ listData.projectId }}</p>
<p><label>项目下达年度:</label>{{ listData.projectYear }}</p>
<p><label>项目名称:</label> <span>{{ listData.projectName }}</span> </p>
<p><label>建设形式:</label>{{ listData.projectCategory }}</p>
<p>
<label>总投资计划(万元)-成本金:</label
>{{ listData.costAmountTotal }}
</p>
<p>
<label>总投资计划(万元)-资本金:</label
>{{ listData.capitalAmountTotal }}
</p>
<p><label>部门:</label>{{ listData.department }}</p>
<p><label>创建人:</label>{{ listData.inputuser }}</p>
<p><label>创建时间:</label>{{ listData.inputuser }}</p>
<p><label>修改人:</label>{{ listData.lastUpdatedby }}</p>
<p><label>修改时间:</label>{{ listData.lastUpdateTime }}</p>
</div>
<div class="table">
<p>项目后评估资料:</p>
<el-table
@selection-change="handleSelectionChange"
:data="qdtableData"
tooltip-effect="dark"
style="width: 100%"
header-cell-class-name="custom-th-background"
class="eltable tablepg"
:row-class-name="tableRowClassName"
border
>
<el-table-column label="序号" width="55" type="index">
</el-table-column>
<el-table-column label="类别" prop="batchtype">
</el-table-column>
<el-table-column prop="typeCode" label="资料类型">
</el-table-column>
<el-table-column prop="fileName" label="资料名称">
</el-table-column>
</el-table>
</div>
<p class="title"><span></span>批次详情</p>
<div class="content">
<p><label>批次年度:</label>{{ listData.batchYear }}</p>
<p><label>后评估批次名称:</label>{{ listData.batchName }}</p>
<p><label>计划评审日期:</label>{{ listData.planReviewDate }}</p>
</div>
<p class="title"><span></span>评审专家</p>
<div class="content">
<p><label>评审专家:</label>{{ listData.expertName }}</p>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="问题清单" name="second">
<p class="title"><span></span>项目基本信息</p>
<el-table
:data="xxtableData"
tooltip-effect="dark"
style="width: 100%"
header-cell-class-name="custom-th-background"
class="eltable"
:row-class-name="tableRowClassName"
:span-method="arraySpanMethod"
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">
<!-- <template slot-scope="scope">
<el-input v-model="scope.row.evalQues"></el-input>
</template> -->
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="评审流程" name="third">
<el-table
:data="lctableData"
tooltip-effect="dark"
style="width: 100%"
header-cell-class-name="custom-th-background"
class="eltable"
:row-class-name="tableRowClassName"
border
>
<el-table-column
label="流程节点"
prop="processNodes"
width="150"
>
</el-table-column>
<el-table-column label="状态" prop="state"> </el-table-column>
<el-table-column label="处理人" prop="processedBy">
</el-table-column>
<el-table-column label="处理时间" prop="processingTime">
</el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
</div>
<p class="close"><span @click="cancel()">关闭</span></p>
</el-dialog>
</div>
</template>
<script>
import { MaterialsList } from '@/utils/cache'
import {
fzcxselect,
fzcxXqselect,
wtqdqselect,
clqdselect,
selLcb,
} from "@/api/index";
export default {
data() {
return {
listData: {},
qdtableData: JSON.parse(JSON.stringify(MaterialsList())),
tableDataNew:MaterialsList(),
xxtableData:[],
showButton: true,
ruleForm: {
batchYear: "",
batchName: "",
postEvalState: "",
projectName: "",
projectId: "",
},
ruleFormdialog: {
batchYear: "",
batchName: "",
planReviewDate: "",
fullName: "",
},
tableData: [],
checkedList: [],
currentPage: 1,
pageSize: 10,
currentPagetjcl: 1,
pageSizetjcl: 10,
total: 0,
dialog: false,
activeName: "first",
mergingRows: [],
lctableData:[],
};
},
mounted() {
this.submitForm();
},
methods: {
async submitForm() {
let params = {
current: this.currentPage,
pageSize: this.pageSize,
};
Object.assign(params, this.ruleForm);
console.log(params);
let res = await fzcxselect(params);
if (res.code == "200") {
this.tableData = res.data.records;
this.total = res.data.total * 1;
}
},
resetForm(formName) {
this.$refs[formName].resetFields();
this.currentPage = 1;
this.pageSize = 10;
this.submitForm();
},
//详情
detailsForm() {
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
}
this.dialog = true;
let params = {
batchId: this.checkedList[0].batchId,
projectId: this.checkedList[0].projectId,
};
Promise.all([fzcxXqselect(params), clqdselect(params)]).then((res) => {
console.log(res[0], res[1], "2222222");
this.listData = res[0].data.records[0];
this.qdtableData=this.tableDataNew
if (res[1].data.records.length > 0) {
// this.qdtableData = res[1].data.records;
this.qdtableData = this.qdtableData.concat(res[1].data.records)
.reduce((accumulator, currentObj) => {
const existingObj = accumulator.find(
(obj) => obj.typeCode == currentObj.typeCode
);
if (existingObj) {
Object.assign(existingObj, currentObj);
} else {
accumulator.push(currentObj);
}
return accumulator;
}, []);
console.log( this.tableDataQD,' mergedArray mergedArray mergedArray')
// this.tableDataQD.forEach((item) => {
// // this.$set(item, "batchtype", "开发、实施类");
// });
}
});
},
//表格颜色
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return "warning-row";
}
return "";
},
arraySpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
//第一列
const _row = this.mergingRows[rowIndex];
const _col = _row > 0 ? 1 : 0;
return {
rowspan: _row,
colspan: _col,
};
}
},
dataPretreatment() {
this.mergingRows=[]
this.mergingPos = 0;
for (let i = 0; i < this.xxtableData.length; i++) {
// tabledata 表格数据源
if (i == 0) {
this.mergingRows.push(1);
this.mergingPos = 0;
} else {
if (
this.xxtableData[i].projectStage ===
this.xxtableData[i - 1].projectStage
) {
//哪些数据是要合并的 合并的条件是什么
this.mergingRows[this.mergingPos] += 1;
this.mergingRows.push(0);
} else {
this.mergingRows.push(1);
this.mergingPos = i;
}
}
}
},
async handleClick() {
console.log(this.activeName, "this.activeName");
if (this.activeName == "second") {
let params = {
batchId: this.checkedList[0].batchId,
projectId: this.checkedList[0].projectId,
};
this.xxtableData=[]
let res = await wtqdqselect(params);
if (res.code == "200") {
this.xxtableData = res.data.records;
this.total = res.data.total * 1;
}
this.xxtableData.forEach((item) => {
switch (item.projectStage) {
case 1:
this.$set(item, "projectStagetext", "1.可研");
break;
case 2:
this.$set(item, "projectStagetext", "2.计划");
break;
case 3:
this.$set(item, "projectStagetext", "3.采购");
break;
case 4:
this.$set(item, "projectStagetext", "4.合同");
break;
case 5:
this.$set(item, "projectStagetext", "5.执行");
break;
case 6:
this.$set(item, "projectStagetext", "6.结决算及转资");
break;
}
});
this.dataPretreatment();
} else if (this.activeName == "third") {
let params = {
batchId: this.checkedList[0].batchId,
projectId: this.checkedList[0].projectId,
};
let res = await selLcb(params);
if (res.code == "200") {
this.lctableData = res.data;
}
}
},
//主列表选中行信息
handleSelectionChange(selection) {
if (Array.isArray(selection) && selection.length > 1) {
this.$refs.multipleTable.toggleRowSelection(selection[0], false);
this.$refs.multipleTable.toggleRowSelection(selection[1], true);
}
this.checkedList = this.$refs.multipleTable.selection;
this.ruleFormdialog = this.checkedList[0];
console.log(this.checkedList, "2222");
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.pageSize = val;
this.submitForm()
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.currentPage = val;
this.submitForm()
},
cancel() {
this.dialog = false;
},
},
};
</script>
<style scoped lang="scss">
.main {
font-size: 14px;
position: relative;
height: 100%;
width: 100%;
box-sizing: border-box;
overflow-x: hidden;
}
.el-form {
display: flex;
width: 100%;
flex-wrap: wrap;
border-top: 2px solid #23c6c8;
border-left: 1px solid #dee5e7;
border-right: 1px solid #dee5e7;
border-bottom: 1px solid #dee5e7;
padding: 20px 10px;
margin-bottom: 20px;
.fromItem {
min-width: 24%;
margin: 0 0.5%;
margin-bottom: 20px;
.el-input {
width: 226px;
}
.el-select {
width: 226px;
}
}
/deep/ .el-form-item__content {
text-align: left;
display: inline-block;
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;
}
}
}
.eltable {
width: 100%;
box-sizing: border-box;
}
/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;
// height: 500px;
// box-sizing: border-box;
// overflow-y: auto;
}
/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;
}
}
.dialog {
.title {
text-align: left;
font-size: 18px;
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
font-weight: 400;
font-style: normal;
font-size: 16px;
color: #1ec695;
text-align: left;
height: 20px;
margin-top: 0;
span {
border-radius: 2px;
display: inline-block;
width: 5px;
height: 18px;
background-color: #1ec695;
margin-right: 14px;
vertical-align: middle;
}
}
.content {
width: 100%;
display: flex;
flex-wrap: wrap;
p {
width: 24%;
text-align: left;
display: flex;
label {
display: inline-block;
width: 150px;
flex-shrink: 0;
text-align: right;
font-weight: bold;
margin-right: 20px;
vertical-align: middle;
}
span{
display: inline-block;
text-align: left
}
}
}
.table {
width: 100%;
display: flex;
p {
width: 150px;
text-align: right;
font-weight: bold;
}
.tablepg {
margin-top: 20px;
margin-left: 5px;
}
}
}
.textarea {
width: 100%;
.el-textarea {
width: 60%;
}
}
.Btn {
width: 200px;
margin: 0 auto;
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;
}
/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-dialog__body {
padding: 0 10px;
h3 {
margin: 10px 0;
}
}
/deep/ .el-descriptions-item__container .el-descriptions-item__label {
font-weight: bold;
width: 100px;
text-align: right;
}
/deep/.el-tabs__content {
overflow: auto;
height: 500px;
padding-bottom: 20px;
}
.close {
width: 100%;
height: 40px;
line-height: 20px;
span {
display: inline-block;
width: 80px;
height: 30px;
line-height: 30px;
border: 1px solid grey;
border-radius: 5px;
}
}
.setscroll {
width: 100%;
height: 650px;
position: relative;
overflow: auto;
}
.setscrolldialog {
width: 100%;
height: 300px;
overflow: auto;
box-sizing: border-box;
/deep/ .el-table {
width: 96% !important;
height: 300px;
overflow: auto;
}
}
</style>
\ No newline at end of file
<template>
<div class="main">
<el-form
:model="ruleForm"
ref="ruleForm"
label-width="100px"
class="demo-ruleForm"
>
<el-form-item label="稽核名称:" prop="batchName" class="fromItem">
<el-input v-model="ruleForm.batchName" placeholder="请输入" clearable></el-input>
</el-form-item>
<el-form-item label="稽核开始时间:" prop="projectId" class="fromItem">
<el-date-picker
v-model="reviewTime"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="稽核结束时间:" prop="projectId" class="fromItem">
<el-date-picker
v-model="reviewTime"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="稽核频率:" prop="batchYear" class="fromItem">
<el-select v-model="ruleForm.batchYear" placeholder="请选择" clearable>
<el-option label="2024年" value="2024"></el-option>
<el-option label="2023年" value="2023"></el-option>
<el-option label="2022年" value="2022"></el-option>
<el-option label="2021年" value="2021"></el-option>
</el-select>
</el-form-item>
<el-form-item label="稽核项目范围:" prop="postEvalState" class="fromItem">
<el-select v-model="ruleForm.postEvalState" placeholder="请选择" clearable>
<el-option label="开启" value="0"></el-option>
<el-option label="关闭" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item class="button">
<el-button @click="submitForm()">
<img class="buttonIcon" src="../../assets/cx.png" />查询</el-button
>
<el-button @click="resetForm('ruleForm')">
<img class="buttonIcon" src="../../assets/cz.png" />重置</el-button
>
<el-button @click="detailsForm('ruleForm')">
<img class="buttonIcon" src="../../assets/ck.png" />详情</el-button
>
<el-button @click="add()">
<img class="buttonIcon" src="../../assets/xz.png" /> 新增
</el-button>
<el-button @click="edit()">
<img class="buttonIcon" src="../../assets/bj.png" /> 编辑
</el-button>
<el-button @click="deletes()">
<img class="buttonIcon" src="../../assets/sc.png" /> 删除
</el-button>
</el-form-item>
</el-form>
<div class="setscroll">
<el-table
@selection-change="handleSelectionChange"
ref="multipleTable"
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
header-cell-class-name="custom-th-background"
class="eltable"
:row-class-name="tableRowClassName"
border
>
<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="规则状态" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="projectCategory" label="创建人">
</el-table-column>
<el-table-column prop="projectStatus" label="创建时间">
</el-table-column>
</el-table>
</div>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 15, 20, 50]"
:page-size="100"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
class="elpagination"
>
</el-pagination>
<el-dialog
title="详情"
:visible.sync="dialog"
width="90%"
:modal-append-to-body="false"
:append-to-body="false"
>
<div class="dialog">
<h3>
项目名称:一期项目-电力营销-2023年网上国网(网上国网V1.0)-设计开发项目
</h3>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="基本信息" name="first">
<div>
<p class="title"><span></span>项目基本信息</p>
<div class="content">
<p><label>项目编号:</label>{{ listData.projectId }}</p>
<p><label>项目下达年度:</label>{{ listData.projectYear }}</p>
<p><label>项目名称:</label> <span>{{ listData.projectName }}</span> </p>
<p><label>建设形式:</label>{{ listData.projectCategory }}</p>
<p>
<label>总投资计划(万元)-成本金:</label
>{{ listData.costAmountTotal }}
</p>
<p>
<label>总投资计划(万元)-资本金:</label
>{{ listData.capitalAmountTotal }}
</p>
<p><label>部门:</label>{{ listData.department }}</p>
<p><label>创建人:</label>{{ listData.inputuser }}</p>
<p><label>创建时间:</label>{{ listData.inputuser }}</p>
<p><label>修改人:</label>{{ listData.lastUpdatedby }}</p>
<p><label>修改时间:</label>{{ listData.lastUpdateTime }}</p>
</div>
<div class="table">
<p>项目后评估资料:</p>
<el-table
@selection-change="handleSelectionChange"
:data="qdtableData"
tooltip-effect="dark"
style="width: 100%"
header-cell-class-name="custom-th-background"
class="eltable tablepg"
:row-class-name="tableRowClassName"
border
>
<el-table-column label="序号" width="55" type="index">
</el-table-column>
<el-table-column label="类别" prop="batchtype">
</el-table-column>
<el-table-column prop="typeCode" label="资料类型">
</el-table-column>
<el-table-column prop="fileName" label="资料名称">
</el-table-column>
</el-table>
</div>
<p class="title"><span></span>批次详情</p>
<div class="content">
<p><label>批次年度:</label>{{ listData.batchYear }}</p>
<p><label>后评估批次名称:</label>{{ listData.batchName }}</p>
<p><label>计划评审日期:</label>{{ listData.planReviewDate }}</p>
</div>
<p class="title"><span></span>评审专家</p>
<div class="content">
<p><label>评审专家:</label>{{ listData.expertName }}</p>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="问题清单" name="second">
<p class="title"><span></span>项目基本信息</p>
<el-table
:data="xxtableData"
tooltip-effect="dark"
style="width: 100%"
header-cell-class-name="custom-th-background"
class="eltable"
:row-class-name="tableRowClassName"
:span-method="arraySpanMethod"
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">
<!-- <template slot-scope="scope">
<el-input v-model="scope.row.evalQues"></el-input>
</template> -->
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="评审流程" name="third">
<el-table
:data="lctableData"
tooltip-effect="dark"
style="width: 100%"
header-cell-class-name="custom-th-background"
class="eltable"
:row-class-name="tableRowClassName"
border
>
<el-table-column
label="流程节点"
prop="processNodes"
width="150"
>
</el-table-column>
<el-table-column label="状态" prop="state"> </el-table-column>
<el-table-column label="处理人" prop="processedBy">
</el-table-column>
<el-table-column label="处理时间" prop="processingTime">
</el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
</div>
<p class="close"><span @click="cancel()">关闭</span></p>
</el-dialog>
</div>
</template>
<script>
import { MaterialsList } from '@/utils/cache'
import {
fzcxselect,
fzcxXqselect,
wtqdqselect,
clqdselect,
selLcb,
} from "@/api/index";
export default {
data() {
return {
listData: {},
qdtableData: JSON.parse(JSON.stringify(MaterialsList())),
tableDataNew:MaterialsList(),
xxtableData:[],
showButton: true,
ruleForm: {
batchYear: "",
batchName: "",
postEvalState: "",
projectName: "",
projectId: "",
},
ruleFormdialog: {
batchYear: "",
batchName: "",
planReviewDate: "",
fullName: "",
},
tableData: [],
checkedList: [],
currentPage: 1,
pageSize: 10,
currentPagetjcl: 1,
pageSizetjcl: 10,
total: 0,
dialog: false,
activeName: "first",
mergingRows: [],
lctableData:[],
};
},
mounted() {
this.submitForm();
},
methods: {
async submitForm() {
let params = {
current: this.currentPage,
pageSize: this.pageSize,
};
Object.assign(params, this.ruleForm);
console.log(params);
let res = await fzcxselect(params);
if (res.code == "200") {
this.tableData = res.data.records;
this.total = res.data.total * 1;
}
},
resetForm(formName) {
this.$refs[formName].resetFields();
this.currentPage = 1;
this.pageSize = 10;
this.submitForm();
},
//详情
detailsForm() {
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
}
this.dialog = true;
let params = {
batchId: this.checkedList[0].batchId,
projectId: this.checkedList[0].projectId,
};
Promise.all([fzcxXqselect(params), clqdselect(params)]).then((res) => {
console.log(res[0], res[1], "2222222");
this.listData = res[0].data.records[0];
this.qdtableData=this.tableDataNew
if (res[1].data.records.length > 0) {
// this.qdtableData = res[1].data.records;
this.qdtableData = this.qdtableData.concat(res[1].data.records)
.reduce((accumulator, currentObj) => {
const existingObj = accumulator.find(
(obj) => obj.typeCode == currentObj.typeCode
);
if (existingObj) {
Object.assign(existingObj, currentObj);
} else {
accumulator.push(currentObj);
}
return accumulator;
}, []);
console.log( this.tableDataQD,' mergedArray mergedArray mergedArray')
// this.tableDataQD.forEach((item) => {
// // this.$set(item, "batchtype", "开发、实施类");
// });
}
});
},
//表格颜色
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return "warning-row";
}
return "";
},
arraySpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
//第一列
const _row = this.mergingRows[rowIndex];
const _col = _row > 0 ? 1 : 0;
return {
rowspan: _row,
colspan: _col,
};
}
},
dataPretreatment() {
this.mergingRows=[]
this.mergingPos = 0;
for (let i = 0; i < this.xxtableData.length; i++) {
// tabledata 表格数据源
if (i == 0) {
this.mergingRows.push(1);
this.mergingPos = 0;
} else {
if (
this.xxtableData[i].projectStage ===
this.xxtableData[i - 1].projectStage
) {
//哪些数据是要合并的 合并的条件是什么
this.mergingRows[this.mergingPos] += 1;
this.mergingRows.push(0);
} else {
this.mergingRows.push(1);
this.mergingPos = i;
}
}
}
},
async handleClick() {
console.log(this.activeName, "this.activeName");
if (this.activeName == "second") {
let params = {
batchId: this.checkedList[0].batchId,
projectId: this.checkedList[0].projectId,
};
this.xxtableData=[]
let res = await wtqdqselect(params);
if (res.code == "200") {
this.xxtableData = res.data.records;
this.total = res.data.total * 1;
}
this.xxtableData.forEach((item) => {
switch (item.projectStage) {
case 1:
this.$set(item, "projectStagetext", "1.可研");
break;
case 2:
this.$set(item, "projectStagetext", "2.计划");
break;
case 3:
this.$set(item, "projectStagetext", "3.采购");
break;
case 4:
this.$set(item, "projectStagetext", "4.合同");
break;
case 5:
this.$set(item, "projectStagetext", "5.执行");
break;
case 6:
this.$set(item, "projectStagetext", "6.结决算及转资");
break;
}
});
this.dataPretreatment();
} else if (this.activeName == "third") {
let params = {
batchId: this.checkedList[0].batchId,
projectId: this.checkedList[0].projectId,
};
let res = await selLcb(params);
if (res.code == "200") {
this.lctableData = res.data;
}
}
},
//主列表选中行信息
handleSelectionChange(selection) {
if (Array.isArray(selection) && selection.length > 1) {
this.$refs.multipleTable.toggleRowSelection(selection[0], false);
this.$refs.multipleTable.toggleRowSelection(selection[1], true);
}
this.checkedList = this.$refs.multipleTable.selection;
this.ruleFormdialog = this.checkedList[0];
console.log(this.checkedList, "2222");
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.pageSize = val;
this.submitForm()
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.currentPage = val;
this.submitForm()
},
cancel() {
this.dialog = false;
},
},
};
</script>
<style scoped lang="scss">
.main {
font-size: 14px;
position: relative;
height: 100%;
width: 100%;
box-sizing: border-box;
overflow-x: hidden;
}
.el-form {
display: flex;
width: 100%;
flex-wrap: wrap;
border-top: 2px solid #23c6c8;
border-left: 1px solid #dee5e7;
border-right: 1px solid #dee5e7;
border-bottom: 1px solid #dee5e7;
padding: 20px 10px;
margin-bottom: 20px;
.fromItem {
min-width: 24%;
margin: 0 0.5%;
margin-bottom: 20px;
.el-input {
width: 226px;
}
.el-select {
width: 226px;
}
}
/deep/ .el-form-item__content {
text-align: left;
display: inline-block;
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;
}
}
}
.eltable {
width: 100%;
box-sizing: border-box;
}
/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;
// height: 500px;
// box-sizing: border-box;
// overflow-y: auto;
}
/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;
}
}
.dialog {
.title {
text-align: left;
font-size: 18px;
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
font-weight: 400;
font-style: normal;
font-size: 16px;
color: #1ec695;
text-align: left;
height: 20px;
margin-top: 0;
span {
border-radius: 2px;
display: inline-block;
width: 5px;
height: 18px;
background-color: #1ec695;
margin-right: 14px;
vertical-align: middle;
}
}
.content {
width: 100%;
display: flex;
flex-wrap: wrap;
p {
width: 24%;
text-align: left;
display: flex;
label {
display: inline-block;
width: 150px;
flex-shrink: 0;
text-align: right;
font-weight: bold;
margin-right: 20px;
vertical-align: middle;
}
span{
display: inline-block;
text-align: left
}
}
}
.table {
width: 100%;
display: flex;
p {
width: 150px;
text-align: right;
font-weight: bold;
}
.tablepg {
margin-top: 20px;
margin-left: 5px;
}
}
}
.textarea {
width: 100%;
.el-textarea {
width: 60%;
}
}
.Btn {
width: 200px;
margin: 0 auto;
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;
}
/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-dialog__body {
padding: 0 10px;
h3 {
margin: 10px 0;
}
}
/deep/ .el-descriptions-item__container .el-descriptions-item__label {
font-weight: bold;
width: 100px;
text-align: right;
}
/deep/.el-tabs__content {
overflow: auto;
height: 500px;
padding-bottom: 20px;
}
.close {
width: 100%;
height: 40px;
line-height: 20px;
span {
display: inline-block;
width: 80px;
height: 30px;
line-height: 30px;
border: 1px solid grey;
border-radius: 5px;
}
}
.setscroll {
width: 100%;
height: 650px;
position: relative;
overflow: auto;
}
.setscrolldialog {
width: 100%;
height: 300px;
overflow: auto;
box-sizing: border-box;
/deep/ .el-table {
width: 96% !important;
height: 300px;
overflow: auto;
}
}
</style>
\ No newline at end of file
...@@ -730,8 +730,8 @@ export default { ...@@ -730,8 +730,8 @@ export default {
name: "合规性检查规则库构建", name: "合规性检查规则库构建",
url: "", url: "",
children: [ children: [
{ name: "检查规则编制", url: "", children: [] }, { name: "检查规则编制", url: "/compliance/checkRules", children: [] },
{ name: "自动稽核任务配置", url: "", children: [] }, { name: "自动稽核任务配置", url: "/compliance/taskConfigure", children: [] },
], ],
}, },
{ {
...@@ -822,9 +822,6 @@ export default { ...@@ -822,9 +822,6 @@ export default {
} else { } else {
this.activeIndex = this.$route.path; this.activeIndex = this.$route.path;
} }
// this.$refs.kzMenu.open(0-0,['0','0-0'])
// this.handleOpen(0-0,['0','0-0'])
}, },
methods: { methods: {
......
<template>
<div class="main">
<el-table
@selection-change="handleSelectionChange"
ref="multipleTable"
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
header-cell-class-name="custom-th-background"
class="eltable"
:row-class-name="tableRowClassName"
border
>
<el-table-column label="序号" width="55" type="index">
</el-table-column>
<el-table-column type="selection"> </el-table-column>
<el-table-column label="批次年度" width="auto" prop="batchYear">
</el-table-column>
<el-table-column prop="batchName" label="后评估批次名称" width="auto">
</el-table-column>
<el-table-column
prop="planReviewDate"
label="计划评审日期"
width="auto"
>
</el-table-column>
<el-table-column prop="expertName" label="后评估专家" width="auto">
</el-table-column>
<el-table-column prop="postEvalState" label="批次下发状态" width="auto"></el-table-column>
<el-table-column prop="status" label="后评估状态" width="auto">
</el-table-column>
<el-table-column prop="creator" label="创建人" width="auto">
</el-table-column>
<el-table-column prop="createTime" label="创建时间" width="auto">
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[5, 10, 20, 50]"
:page-size="100"
layout="total, sizes, prev, pager, next, jumper"
:total="tableData.length"
class="elpagination">
</el-pagination>
</div>
</template>
<script>
import { number } from 'echarts';
export default {
data() {
return {
currentPage:1,
pageSize:"5",
}
},
props: {
tableData: {
type: Array,
default:[],
},
total:{
type:Number,
default: "",
},
tbtyps:{
type: String,
default: "",
}
},
methods: {
handleSelectionChange(selection) {
if (Array.isArray(selection) && selection.length > 1) {
this.$refs.multipleTable.toggleRowSelection(selection[0],false);
this.$refs.multipleTable.toggleRowSelection(selection[1],true);
}
console.log( this.$refs.multipleTable.selection,'this.$refs.multipleTable.selection')
this.$emit('sendselection',this.$refs.multipleTable.selection)
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.$emit('pageSize',this.pageSize)
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.currentPage=val
this.$emit('currentPage',this.currentPage)
},
tableRowClassName({row, rowIndex}) {
// console.log(rowIndex % 2,'333')
if (rowIndex % 2 == 1) {
return 'warning-row';
}
return ''
}
},
};
</script>
<style lang="scss" scoped>
.main {
font-size: 14px;
width: 100%;
height:70%;
.eltable{
height: 94%;
}
.elpagination{
text-align: right;
margin-right: 100px;
}
}
/deep/ .cell {
text-align: center;
}
/deep/ .el-table__header th {
background-color: #eeeeee;
font-weight: bold;
.cell {
color: #333;
}
}
/deep/ .el-table__body .el-checkbox__input.is-checked .el-checkbox__inner {
background-color: #333; /* 你想要的任何颜色 */
opacity: 0.7;
border-color: #333;
}
/deep/ .el-checkbox .is-checked .el-checkbox__inner {
background-color: #333; /* 你想要的任何颜色 */
opacity: 0.7;
border-color: #333;
}
/deep/ .el-checkbox__input.is-indeterminate .el-checkbox__inner{
background-color: #333; /* 你想要的任何颜色 */
opacity: 0.7;
border-color: #333;
}
/deep/ .el-table .warning-row {
background: #f0ffff;
// color: #2785E6;
}
</style>
\ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!