Commit ae4021fc by henry

添加问题清单查询界面

1 parent 05f8dd62
......@@ -43,11 +43,21 @@ export const routes = [
},
},
{
path: '/mainLayout/problemLlistQuery',
name: 'problemLlistQuery',
component: () => import('@/views/postConcentrationCheck/problemLlistQuery.vue'),
},
{
path: '/mainLayout/sendIssue',
name: 'sendIssue',
component: () => import('@/views/postConcentrationCheck/sendIssue.vue'),
},
{
path: '/mainLayout/problemAppeal',
name: 'sendIssue',
component: () => import('@/views/postConcentrationCheck/problemAppeal.vue'),
},
{
path: '/mainLayout/assistedConfirm',
name: 'assistedConfirm',
component: () => import('@/views/assessChecks/assistedConfirm.vue'),
......
......@@ -101,15 +101,26 @@ export default {
url: "",
children: [
{
name: "问题清单查询",
url: "/mainLayout/problemLlistQuery",
children: [] },
{
name: "下发问题",
url: "/mainLayout/sendIssue",
children: [] },
{ name: "问题申诉", url: "", children: [] },
{ name: "申诉复核", url: "", children: [] },
{ name: "问题整改", url: "", children: [] },
{ name: "整改复核", url: "", children: [] },
{ name: "工作总结", url: "", children: [] },
{ name: "数据维护", url: "", children: [] },
{ name: "问题申诉",
url: "/mainLayout/problemAppeal",
children: [] },
{ name: "申诉复核",
url: "/mainLayout/problemAppeal", children: [] },
{ name: "问题整改",
url: "/mainLayout/problemAppeal", children: [] },
{ name: "整改复核",
url: "/mainLayout/problemAppeal", children: [] },
{ name: "工作总结",
url: "/mainLayout/problemAppeal", children: [] },
{ name: "数据维护",
url: "/mainLayout/problemAppeal", children: [] },
],
},
// {
......
<!-- 问题申诉 -->
<template>
<div class="main">
<el-form :model="ruleForm" label-width="100px" class="demo-ruleForm" ref="formName">
<el-form-item label="批次年度:" prop="batchYear" class="fromItem" >
<el-select v-model="ruleForm.batchYear" placeholder="请选择">
<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="batchName" class="fromItem">
<el-input v-model="ruleForm.batchName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item
label="计划评审日期:"
prop="planReviewDate"
class="fromItem"
>
<el-date-picker
v-model="ruleFormdialogBJ.planReviewDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd hh:mm:ss"
>
</el-date-picker>
</el-form-item>
<el-form-item label="后评估状态:" prop="postEvalState" class="fromItem">
<el-select v-model="ruleForm.postEvalState" placeholder="请选择">
<el-option label="新建" value="0"></el-option>
<el-option label="专家评估" value="1"></el-option>
<el-option label="后评估完成" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="创建人:" prop="creator" class="fromItem">
<el-input v-model="ruleForm.batchName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item
label="创建时间:"
prop="createTime"
class="fromItem"
>
<el-date-picker
v-model="ruleFormdialogBJ.planReviewDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd hh:mm:ss"
>
</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-button @click="configs()"
><i class="el-icon-position"></i> 确认项目评估
</el-button>
<el-button @click="withdraw()">
<i class="el-icon-folder-delete"></i>撤回
</el-button>
</el-form-item>
</el-form>
<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="postAffirmState" label="批次确认状态" width="auto">
</el-table-column>
<el-table-column prop="postProject" label="评估项目" width="auto">
</el-table-column>
<el-table-column prop="selectProjectNum" label="已选择项目数量" width="auto">
</el-table-column>
</el-table>
<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="dialogXQ"
width="90%"
:modal-append-to-body="false"
:append-to-body="false"
>
<div class="dialog">
<el-form
:model="ruleFormdialogBJ"
label-width="100px"
class="demo-ruleForm"
>
<el-form-item label="批次年度:" prop="batchYear" class="fromItem">
<el-input v-model="ruleFormdialogBJ.batchYear" disabled></el-input>
</el-form-item>
<el-form-item label="后评估批次名称:" prop="batchName" class="fromItem">
<el-input v-model="ruleFormdialogBJ.batchName" disabled></el-input>
</el-form-item>
<el-form-item
label="计划评审日期:"
prop="planReviewDate"
class="fromItem"
>
<el-input
v-model="ruleFormdialogBJ.planReviewDate" disabled
></el-input>
</el-form-item>
<el-form-item label="工作组织情况:" class="textarea">
<el-input
type="textarea"
v-model="ruleFormdialogBJ.description"
disabled
></el-input>
</el-form-item>
<el-form-item label="备注:" class="textarea">
<el-input
type="textarea"
v-model="ruleFormdialogBJ.remark"
disabled
></el-input>
</el-form-item>
</el-form>
<el-table
@selection-change="handleSelectionChange"
:data="addtableData"
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 label="单位" width="auto" prop="compId">
</el-table-column>
<el-table-column prop="fullName" label="专家姓名" width="auto">
</el-table-column>
<el-table-column prop="gender" label="性别" width="auto">
</el-table-column>
<el-table-column prop="birthday" label="出生日期" width="auto">
</el-table-column>
<el-table-column prop="qualification" label="学历" width="auto">
</el-table-column>
<el-table-column prop="contact" label="联系方式" width="auto">
</el-table-column>
<el-table-column prop="email" label="邮箱" width="auto">
</el-table-column>
<el-table-column prop="fields" label="专业领域" width="auto">
</el-table-column>
<el-table-column prop="expertLevel" label="专家级别" width="auto">
</el-table-column>
<el-table-column prop="description" label="成果简介" width="auto">
</el-table-column>
<el-table-column prop="expertState" label="专家状态" width="auto">
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChangeBJ"
@current-change="handleCurrentChangeBJ"
:current-page="currentPageBJ"
:page-sizes="[5, 10, 20, 50]"
:page-size="100"
layout="total, sizes, prev, pager, next, jumper"
:total="totalBJ"
class="elpagination"
>
</el-pagination>
</div>
</el-dialog>
<el-dialog
title="新增后评估批次信息"
:visible.sync="dialogAdd"
width="90%"
:modal-append-to-body="false"
:append-to-body="false"
>
<div class="dialog">
<el-form
ref="formName"
:model="ruleFormdialogAdd"
label-width="100px"
class="demo-ruleForm"
:rules="rules"
>
<el-form-item label="批次年度:" prop="batchYear" class="fromItem">
<el-select
v-model="ruleFormdialogAdd.batchYear"
placeholder="请选择"
>
<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="batchName"
class="fromItem"
>
<el-input v-model="ruleFormdialogAdd.batchName"></el-input>
</el-form-item>
<el-form-item
label="计划评审日期:"
prop="planReviewDate"
class="fromItem"
>
<el-date-picker
v-model="ruleFormdialogAdd.planReviewDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd hh:mm:ss"
>
</el-date-picker>
</el-form-item>
<el-form-item label="工作组织情况:" class="textarea">
<el-input
type="textarea"
v-model="ruleFormdialogAdd.description"
placeholder="请输入内容"
></el-input>
</el-form-item>
<el-form-item label="备注:" class="textarea">
<el-input
type="textarea"
v-model="ruleFormdialogAdd.remark"
placeholder="请输入内容"
></el-input>
</el-form-item>
</el-form>
<p class="zjBtn">
后评估专家 <span @click="xzExperts()">选择专家</span>
</p>
<el-table
@selection-change="handleSelectionChange"
:data="addtableData"
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 label="单位" width="auto" prop="compId">
</el-table-column>
<el-table-column prop="fullName" label="专家姓名" width="auto">
</el-table-column>
<el-table-column prop="gender" label="性别" width="auto">
</el-table-column>
<el-table-column prop="birthday" label="出生日期" width="auto">
</el-table-column>
<el-table-column prop="qualification" label="学历" width="auto">
</el-table-column>
<el-table-column prop="contact" label="联系方式" width="auto">
</el-table-column>
<el-table-column prop="email" label="邮箱" width="auto">
</el-table-column>
<el-table-column prop="fields" label="专业领域" width="auto">
</el-table-column>
<el-table-column prop="expertLevel" label="专家级别" width="auto">
</el-table-column>
<el-table-column prop="description" label="成果简介" width="auto">
</el-table-column>
<el-table-column prop="expertState" label="专家状态" width="auto">
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChangeAdd"
@current-change="handleCurrentChangeAdd"
:current-page="addcurrentPage"
:page-sizes="[5, 10, 20, 50]"
:page-size="100"
layout="total, sizes, prev, pager, next, jumper"
:total="addtotal"
class="elpagination"
>
</el-pagination>
<p class="midBtn">
<span @click="cancelXZ()">取消</span
><span @click="saveXZ('add')">保存</span>
</p>
</div>
</el-dialog>
<!-- 选择专家弹窗 -->
<el-dialog
title="选择专家组长"
:visible.sync="dialogAddzj"
width="90%"
:modal-append-to-body="false"
:append-to-body="false"
>
<div class="adzjdialog">
<el-form :model="ruleFormZJ" label-width="100px" class="demo-ruleForm">
<el-form-item label="专家姓名:" prop="fullName" class="fromItem">
<el-input
v-model="ruleFormZJ.fullName"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="专业领域:" prop="fields" class="fromItem">
<el-select v-model="ruleFormZJ.fields" placeholder="请选择">
<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="expertState" class="fromItem">
<el-select v-model="ruleFormZJ.expertState" placeholder="请选择">
<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 class="cxItem">
<span class="zjquery" @click="xzExperts()"> 查询 </span>
</el-form-item>
</el-form>
<el-table
@selection-change="handleSelectionChangeZJ"
ref="multipleTableZJ"
:data="zjtableData"
tooltip-effect="dark"
style="width: 100%"
header-cell-class-name="custom-th-background"
class="eltable"
:row-class-name="tableRowClassName"
>
border >
<el-table-column type="selection"> </el-table-column>
<el-table-column label="序号" width="55" type="index">
<!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
</el-table-column>
<!-- <el-table-column type="selection"> </el-table-column> -->
<el-table-column label="单位" width="auto" prop="compId">
</el-table-column>
<el-table-column prop="fullName" label="专家姓名" width="fullName">
</el-table-column>
<el-table-column prop="gender" label="性别" width="gender">
</el-table-column>
<el-table-column prop="birthday" label="出生日期" width="auto">
</el-table-column>
<el-table-column prop="qualification" label="学历" width="auto">
</el-table-column>
<el-table-column prop="contact" label="联系方式" width="auto">
</el-table-column>
<el-table-column prop="email" label="邮箱" width="auto">
</el-table-column>
<el-table-column prop="fields" label="专业领域" width="auto">
</el-table-column>
<el-table-column prop="expertLevel" label="专家级别" width="auto">
</el-table-column>
<el-table-column prop="description" label="成果简介" width="auto">
</el-table-column>
<el-table-column prop="expertState" label="专家状态" width="auto">
</el-table-column>
<el-table-column
prop="expertId"
label="id"
width="auto"
v-show="false"
>
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChangeZJ"
@current-change="handleCurrentChangeZJ"
:current-page="currentZJ"
:page-sizes="[5, 10, 20, 50]"
:page-size="100"
layout="total, sizes, prev, pager, next, jumper"
:total="zjtotal"
class="elpagination"
>
</el-pagination>
<p class="midBtn">
<span @click="cancelZJ()">取消</span
><span @click="saveZJ()">保存</span>
</p>
</div>
</el-dialog>
<!-- 编辑弹窗 -->
<el-dialog
title="提交评估材料"
:visible.sync="dialogedit"
width="90%"
:modal-append-to-body="false"
:append-to-body="false"
>
<div class="dialog">
<el-form
:model="ruleFormdialogBJ"
label-width="100px"
class="demo-ruleForm"
ref="formNameBJ"
>
<el-form-item label="批次年度:" prop="batchYear" class="fromItem">
<el-select v-model="ruleFormdialogBJ.batchYear" placeholder="请选择">
<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="batchName" class="fromItem">
<el-input v-model="ruleFormdialogBJ.batchName" ></el-input>
</el-form-item>
<el-form-item
label="计划评审日期:"
prop="planReviewDate"
class="fromItem"
>
<el-date-picker
v-model="ruleFormdialogBJ.planReviewDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd hh:mm:ss"
>
</el-date-picker>
</el-form-item>
<el-form-item label="工作组织情况:" class="textarea">
<el-input
type="textarea"
v-model="ruleFormdialogBJ.description"
placeholder="请输入内容"
></el-input>
</el-form-item>
<el-form-item label="备注:" class="textarea">
<el-input
type="textarea"
v-model="ruleFormdialogBJ.remark"
placeholder="请输入内容"
></el-input>
</el-form-item>
</el-form>
<p class="zjBtn">
后评估专家 <span @click="xzExperts()">选择专家</span>
</p>
<el-table
@selection-change="handleSelectionChange"
:data="addtableData"
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 label="单位" width="auto" prop="compId">
</el-table-column>
<el-table-column prop="fullName" label="专家姓名" width="auto">
</el-table-column>
<el-table-column prop="gender" label="性别" width="auto">
</el-table-column>
<el-table-column prop="birthday" label="出生日期" width="auto">
</el-table-column>
<el-table-column prop="qualification" label="学历" width="auto">
</el-table-column>
<el-table-column prop="contact" label="联系方式" width="auto">
</el-table-column>
<el-table-column prop="email" label="邮箱" width="auto">
</el-table-column>
<el-table-column prop="fields" label="专业领域" width="auto">
</el-table-column>
<el-table-column prop="expertLevel" label="专家级别" width="auto">
</el-table-column>
<el-table-column prop="description" label="成果简介" width="auto">
</el-table-column>
<el-table-column prop="expertState" label="专家状态" width="auto">
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChangeBJ"
@current-change="handleCurrentChangeBJ"
:current-page="currentPageBJ"
:page-sizes="[5, 10, 20, 50]"
:page-size="100"
layout="total, sizes, prev, pager, next, jumper"
:total="totalBJ"
class="elpagination"
>
</el-pagination>
<p class="midBtn">
<span @click="cancelBJ()">取消</span
><span @click="saveBJ()">保存</span>
</p>
</div>
</el-dialog>
</div>
</template>
<script>
import {
expertInfo,
expert,
sendEvalBatchInfo,
adEvalBatchInfo,
updEvalBatchInfo,
evalBatchInfo,
delEvalBatchInfo,
chEvalBatchInfo,
} from "@/api/index";
export default {
data() {
return {
category: [
{ name: "2024", id: 1 },
{ name: "2023", id: 2 },
{ name: "2022", id: 3 },
{ name: "2021", id: 4 },
], //专业领域
showButton: true,
ruleForm: {
batchYear: "",
batchName: "",
postEvalState: "",
},
ruleFormdialog: {
batchYear: "",
batchName: "",
planReviewDate: "",
fullName: "",
},
ruleFormZJ: {
fields: "",
expertState: "",
fullName: "",
},
ruleFormdialogAdd: {
batchYear: "",
batchName: "",
planReviewDate: "",
description: "",
remark: "",
},
ruleFormdialogBJ: {
batchYear: "",
batchName: "",
planReviewDate: "",
description: "",
remark: "",
},
rules: {
batchYear: [
{ required: true, message: "请选择批次年度", trigger: "change" },
],
batchName: [
{
required: true,
message: "请选择后评估批次名称",
trigger: "change",
},
],
planReviewDate: [
{
required: true,
message: "请选择计划评审日期",
trigger: "change",
},
],
},
xfParams: "", //下发入参
tableData: [],
tableDataQD: [], //清单列表
checkedList: [],
currentPage: 1,
currentPagetjcl: 1,
pageSizetjcl: 10,
total: 0,
dialogXQ: false,
currentPageBJ:1,
pageSizeBJ:10,
dialogAdd: false,
dialogAddzj: false,
pageSize: 10,
current: 1,
pageSizeZJ: 10,
currentZJ: 1,
addtotal: 0,
currentAdd: 1,
pageSizeAdd: 10,
currentedit: 1,
pageSizeedit: 10,
xfParam: "",
dialogedit: false,
expertIdList: [],
totalBJ:0,
addZJList: [],
expertState: "",
fields: "",
zjfullName: "",
zjtotal: 0,
zjtableData: [],
addcurrentPage: 1,
addtableData: [],
message: {},
};
},
mounted() {
this.submitForm();
},
methods: {
async submitForm(formName) {
let params = {
current: this.currentPage,
pageSize: this.pageSize,
};
Object.assign(params, this.ruleForm);
console.log(params);
let res = await evalBatchInfo(params);
if (res.code == "200") {
this.tableData = res.data.records;
this.tableData.forEach(item=>{
if (item.postEvalState==''||item.postEvalState==null){
// this.$set( item,'postEvalState','')
}else if (item.postEvalState=='0'){
this.$set( item,'postEvalState','未下发')
}else if(item.postEvalState=='2'){
this.$set( item,'postEvalState','已撤回')
}else{
this.$set( item,'postEvalState','已下发')
}
})
this.total = res.data.total * 1;
}
},
resetForm() {
this.$refs.formName.resetFields();
this.currentPage = 1;
this.pageSize = 10;
this.submitForm();
},
//点击新增
async add() {
this.dialogAdd = true;
this.addtableData=[];//每次新增清空不然点了还是这几个人
},
//详情
async detailsForm() {
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
}
console.log("222",this.checkedList);
this.dialogXQ = true;
this.ruleFormdialogBJ=this.checkedList[0]
let params = {
current: this.currentedit,
pageSize: this.pageSizeedit,
batchId:this.checkedList[0].batchId
};
console.log(params,'params')
let res = await expert(params);
this.addtableData=res.data.records
this.totalBJ=res.data.total * 1;
},
//表格颜色
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return "warning-row";
}
return "";
},
//主列表选中行信息
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;
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.currentPage = val;
},
handleSizeChangeZJ(val) {
console.log(`每页 ${val} 条`);
this.pageSizeZJ = val;
},
handleCurrentChangeZJ(val) {
console.log(`当前页: ${val}`);
this.currentZJ = val;
},
handleSizeChangetjcl(val) {
console.log(`每页 ${val} 条`);
this.pageSizetjcl = val;
},
handleCurrentChangetjcl(val) {
console.log(`当前页: ${val}`);
this.currentPagetjcl = val;
},
handleSizeChangeAdd(val) {
this.pageSizeAdd = val;
},
handleCurrentChangeAdd(val) {
this.currentAdd = val;
},
handleSizeChangeBJ(val) {
console.log(`每页 ${val} 条`);
this.pageSizeBJ = val;
},
handleCurrentChangeBJ(val) {
console.log(`当前页: ${val}`);
this.currentPageBJ = val;
},
cancel() {
this.dialog = false;
},
async save(type) {
this.dialog = false;
if (type == "add") {
let params = {};
let res = await qrscevaluationMaterials(params);
}
},
//保存专家
saveZJ() {
if (this.addZJList.length < 1) {
this.$message("请选择专家");
return;
}
this.addtableData=this.addZJList;
console.log(this.addtableData, "addtableData");
this.addtotal = this.addtableData.length;
this.dialogAddzj = false;
},
cancelZJ() {
this.dialogAddzj = false;
},
cancelBJ() {
this.dialogedit = false;
},
async xzExperts() {
this.dialogAddzj = true;
let params = {
current: this.currentZJ,
pageSize: this.pageSizeZJ,
};
Object.assign(params, this.ruleFormZJ);
console.log("查询专家", params);
let res = await expertInfo(params);
this.zjtableData = res.data.records;
this.zjtotal = res.data.total * 1;
console.log(res, "xxx");
},
cancelBJ() {
this.dialogedit = false;
},
saveXZ() {
console.log("保存验证", this.$refs);
this.$refs.formName.validate((valid) => {
if (!valid) {
console.log("error submit!!");
return false;
} else {
if (this.addtableData.length < 1) {
this.$message("请选择专家");
}
console.log(this.addZJList, "this.addZJList");
let expertIdList = [];
let expertStr='';
this.addtableData.forEach((item) => {
expertIdList.push(item.expertId);
expertStr = JSON.stringify(expertIdList).slice(1, -1);
});
let params = {
expertStr: expertStr,
};
Object.assign(params, this.ruleFormdialogAdd);
this.xfParams = JSON.parse(JSON.stringify(params));
console.log(params, "222");
adEvalBatchInfo(params).then((res) => {
this.dialogAdd = false;
this.expertIdList=expertIdList
this.resetForm();
});
}
});
// this.$emit("listenToChildEvent", "reset");
// }
},
cancelXZ() {
this.dialogAdd = false;
},
saveBJ() {
console.log("保存编辑验证", this.$refs.formNameBJ);
this.$refs.formNameBJ.validate((valid) => {
if (!valid) {
console.log("error submit!!");
return false;
} else {
if (this.addtableData.length < 1) {
this.$message("请选择专家");
}
console.log(this.addtableData,'addtableData')
let expertIdList = [];
let expertStr='';
this.addtableData.forEach((item) => {
expertIdList.push(item.expertId);
expertStr = JSON.stringify(expertIdList).slice(1, -1);
});
console.log(expertStr,'expertStr')
let params = {
expertStr: expertStr,
};
Object.assign( this.ruleFormdialogBJ,params);
// this.xfParams = JSON.parse(JSON.stringify(params));
console.log(this.ruleFormdialogBJ, "222");
updEvalBatchInfo(this.ruleFormdialogBJ).then((res) => {
this.dialogedit = false;
this.resetForm();
});
}
});
},
//选中的专家
handleSelectionChangeZJ() {
this.addZJList = this.$refs.multipleTableZJ.selection;
console.log(this.$refs.multipleTableZJ.selection, "2222");
},
//点击编辑
async edit() {
//只能选择编辑未下发 待增加
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
}
if(this.checkedList[0].postEvalState=='已下发'){
this.$message("不能编辑已下发的项目");
return;
}
this.ruleFormdialogBJ=this.checkedList[0]
this.dialogedit=true
let params = {
current: this.currentedit,
pageSize: this.pageSizeedit,
batchId:this.checkedList[0].batchId
};
console.log(params,'params')
let res = await expert(params);
this.addtableData=res.data.records
this.totalBJ=res.data.total * 1;
this.addtableData.forEach(item=>{
this.expertIdList.push(item.expertId)
})
},
//点击删除
async deletes() {
console.log("删除")
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
}
let res = await delEvalBatchInfo(this.checkedList[0]);
this.resetForm()
},
//点击下发
async sendMsg(){
//只能选择未下发的 这块需要加一下
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
}
if(this.checkedList[0].postEvalState=='已下发'){
this.$message("该项目已下发");
return;
}
// if(this.checkedList[0].postEvalState=='已撤回'){
// this.$message("该项目已撤回");
// return;
// }
if(this.checkedList[0].postEvalState=='已撤回'){
this.$set(this.checkedList[0],'postEvalState','2')
}else{
this.$set(this.checkedList[0],'postEvalState','0')
}
let res= await sendEvalBatchInfo(this.checkedList[0])
if(res.code=='200'){
this.resetForm()
}
},
//点击撤回
async withdraw(){
//只能选择已下发未确认的 这块需要加一下
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
}
if(this.checkedList[0].postEvalState=='未下发'){
this.$message("该项目未下发");
return;
}
if(this.checkedList[0].postEvalState=='已撤回'){
this.$message("该项目已撤回");
return;
}
this.$set(this.checkedList[0],'postEvalState','2')
let res= await chEvalBatchInfo(this.checkedList[0])
if(res.code=='200'){
this.resetForm()
}
},
},
};
</script>
<style scoped lang="scss">
.main {
font-size: 14px;
position: relative;
height: 100%;
width: 100%;
box-sizing: border-box;
}
.el-form {
display: flex;
width: 99%;
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: 20px 0;
.fromItem {
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;
}
/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 {
widows: 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;
}
/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 {
.xqtitle {
text-align: left;
font-size: 18px;
span {
display: inline-block;
width: 5px;
height: 20px;
background: #0d867f;
margin-right: 14px;
vertical-align: middle;
}
}
}
.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;
}
.zjBtn {
width: 200px;
text-align: left;
span {
display: inline-block;
width: 80px;
height: 25px;
line-height: 25px;
text-align: center;
border-radius: 5px;
}
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;
span {
display: inline-block;
width: 80px;
height: 25px;
line-height: 25px;
text-align: center;
margin-right: 10px;
border-radius: 5px;
}
span:first-of-type {
border: 1px solid grey;
}
span:last-of-type {
background-color: #4ca6a7;
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;
}
</style>
\ No newline at end of file
<!-- 问题清单查询 -->
<template>
<div class="main">
<el-form :model="ruleForm" label-width="100px" class="demo-ruleForm" ref="formName">
<el-form-item label="项目年度:" prop="projectYear" class="fromItem" >
<el-select v-model="ruleForm.projectYear" placeholder="请选择">
<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="projectCode" class="fromItem">
<el-input v-model="ruleForm.projectCode" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="项目名称:" prop="projectName" class="fromItem">
<el-input v-model="ruleForm.projectName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="项目阶段:" prop="projectPhase" class="fromItem" >
<el-select v-model="ruleForm.projectPhase" placeholder="请选择">
<el-option label="项目验收" value="1"></el-option>
<el-option label="项目建设" value="2"></el-option>
<el-option label="项目前期" value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item label="项目环节:" prop="projectLink" class="fromItem" >
<el-select v-model="ruleForm.projectLink" 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="4"></el-option>
<el-option label="计划" value="5"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否申诉:" prop="appealFlag" class="fromItem" >
<el-select v-model="ruleForm.appealFlag" placeholder="请选择">
<el-option label="是" value="Y"></el-option>
<el-option label="否" value="N"></el-option>
</el-select>
</el-form-item>
<el-form-item label="申诉是否通过:" prop="appealPassFlag" class="fromItem" >
<el-select v-model="ruleForm.appealPassFlag" placeholder="请选择">
<el-option label="是" value="Y"></el-option>
<el-option label="否" value="N"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否完成整改:" prop="completeFlag" class="fromItem" >
<el-select v-model="ruleForm.completeFlag" placeholder="请选择">
<el-option label="是" value="Y"></el-option>
<el-option label="否" value="N"></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-form-item>
</el-form>
<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="projectYear">
</el-table-column>
<el-table-column prop="projectCode" label="项目编码" width="auto">
</el-table-column>
<el-table-column prop="projectName" label="项目名称" width="auto">
</el-table-column>
<el-table-column prop="projectPhase" label="项目阶段" width="auto">
</el-table-column>
<el-table-column prop="projectLink" label="项目环节" width="auto">
</el-table-column>
<el-table-column prop="checkProblem" label="问题检查项" width="auto">
</el-table-column>
<el-table-column prop="appealFlag" label="是否申诉" width="auto">
</el-table-column>
<el-table-column prop="appealPassFlag" label="申诉是否通过" width="auto">
</el-table-column>
<el-table-column prop="completeFlag" label="是否完成整改" width="auto">
</el-table-column>
</el-table>
<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="dialogXQ"
width="90%"
:modal-append-to-body="false"
:append-to-body="false"
>
<div class="dialog">
<el-form
:model="ruleFormdialogBJ"
label-width="100px"
class="demo-ruleForm"
>
<el-form-item label="项目年度:" prop="batchYear" class="fromItem">
<el-input v-model="ruleFormdialogBJ.fromItem" disabled></el-input>
</el-form-item>
<el-form-item label="项目编码:" prop="projectCode" class="fromItem">
<el-input v-model="ruleFormdialogBJ.projectCode" disabled></el-input>
</el-form-item>
<el-form-item label="项目名称:" prop="projectName" class="fromItem">
<el-input v-model="ruleFormdialogBJ.projectName" disabled></el-input>
</el-form-item>
<el-form-item label="项目阶段:" prop="projectPhase" class="fromItem">
<el-input v-model="ruleFormdialogBJ.projectPhase" disabled></el-input>
</el-form-item>
<el-form-item label="项目环节:" prop="projectLink" class="fromItem">
<el-input v-model="ruleFormdialogBJ.projectLink" disabled></el-input>
</el-form-item>
<el-form-item label="问题检查项:" class="textarea">
<el-input
type="textarea"
v-model="ruleFormdialogBJ.checkProblem"
disabled
></el-input>
</el-form-item>
<el-form-item label="是否申诉:" prop="appealFlag" class="fromItem">
<el-input v-model="ruleFormdialogBJ.appealFlag" disabled></el-input>
</el-form-item>
<el-form-item label="申诉是否通过:" prop="appealPassFlag" class="fromItem">
<el-input v-model="ruleFormdialogBJ.appealPassFlag" disabled></el-input>
</el-form-item>
<el-form-item label="是否完成整改:" prop="completeFlag" class="fromItem">
<el-input v-model="ruleFormdialogBJ.completeFlag" disabled></el-input>
</el-form-item>
</el-form>
</div>
</el-dialog>
</div>
</template>
<script>
import {
expertInfo,
expert,
sendEvalBatchInfo,
adEvalBatchInfo,
updEvalBatchInfo,
evalBatchInfo,
delEvalBatchInfo,
chEvalBatchInfo,
} from "@/api/index";
export default {
data() {
return {
category: [
{ name: "2024", id: 1 },
{ name: "2023", id: 2 },
{ name: "2022", id: 3 },
{ name: "2021", id: 4 },
], //专业领域
showButton: true,
ruleForm: {
batchYear: "",
batchName: "",
postEvalState: "",
},
ruleFormdialog: {
batchYear: "",
batchName: "",
planReviewDate: "",
fullName: "",
},
ruleFormZJ: {
fields: "",
expertState: "",
fullName: "",
},
ruleFormdialogAdd: {
batchYear: "",
batchName: "",
planReviewDate: "",
description: "",
remark: "",
},
ruleFormdialogBJ: {
batchYear: "",
batchName: "",
planReviewDate: "",
description: "",
remark: "",
},
rules: {
batchYear: [
{ required: true, message: "请选择批次年度", trigger: "change" },
],
batchName: [
{
required: true,
message: "请选择后评估批次名称",
trigger: "change",
},
],
planReviewDate: [
{
required: true,
message: "请选择计划评审日期",
trigger: "change",
},
],
},
xfParams: "", //下发入参
tableData: [],
tableDataQD: [], //清单列表
checkedList: [],
currentPage: 1,
currentPagetjcl: 1,
pageSizetjcl: 10,
total: 0,
dialogXQ: false,
currentPageBJ:1,
pageSizeBJ:10,
dialogAdd: false,
dialogAddzj: false,
pageSize: 10,
current: 1,
pageSizeZJ: 10,
currentZJ: 1,
addtotal: 0,
currentAdd: 1,
pageSizeAdd: 10,
currentedit: 1,
pageSizeedit: 10,
xfParam: "",
dialogedit: false,
expertIdList: [],
totalBJ:0,
addZJList: [],
expertState: "",
fields: "",
zjfullName: "",
zjtotal: 0,
zjtableData: [],
addcurrentPage: 1,
addtableData: [],
message: {},
};
},
mounted() {
this.submitForm();
},
methods: {
async submitForm(formName) {
let params = {
current: this.currentPage,
pageSize: this.pageSize,
};
Object.assign(params, this.ruleForm);
console.log(params);
let res = await evalBatchInfo(params);
if (res.code == "200") {
this.tableData = res.data.records;
this.tableData.forEach(item=>{
if (item.postEvalState==''||item.postEvalState==null){
// this.$set( item,'postEvalState','')
}else if (item.postEvalState=='0'){
this.$set( item,'postEvalState','未下发')
}else if(item.postEvalState=='2'){
this.$set( item,'postEvalState','已撤回')
}else{
this.$set( item,'postEvalState','已下发')
}
})
this.total = res.data.total * 1;
}
},
resetForm() {
this.$refs.formName.resetFields();
this.currentPage = 1;
this.pageSize = 10;
this.submitForm();
},
//点击新增
async add() {
this.dialogAdd = true;
this.addtableData=[];//每次新增清空不然点了还是这几个人
},
//详情
async detailsForm() {
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
}
console.log("222",this.checkedList);
this.dialogXQ = true;
this.ruleFormdialogBJ=this.checkedList[0]
let params = {
current: this.currentedit,
pageSize: this.pageSizeedit,
batchId:this.checkedList[0].batchId
};
console.log(params,'params')
let res = await expert(params);
this.addtableData=res.data.records
this.totalBJ=res.data.total * 1;
},
//表格颜色
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return "warning-row";
}
return "";
},
//主列表选中行信息
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;
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.currentPage = val;
},
handleSizeChangeZJ(val) {
console.log(`每页 ${val} 条`);
this.pageSizeZJ = val;
},
handleCurrentChangeZJ(val) {
console.log(`当前页: ${val}`);
this.currentZJ = val;
},
handleSizeChangetjcl(val) {
console.log(`每页 ${val} 条`);
this.pageSizetjcl = val;
},
handleCurrentChangetjcl(val) {
console.log(`当前页: ${val}`);
this.currentPagetjcl = val;
},
handleSizeChangeAdd(val) {
this.pageSizeAdd = val;
},
handleCurrentChangeAdd(val) {
this.currentAdd = val;
},
handleSizeChangeBJ(val) {
console.log(`每页 ${val} 条`);
this.pageSizeBJ = val;
},
handleCurrentChangeBJ(val) {
console.log(`当前页: ${val}`);
this.currentPageBJ = val;
},
cancel() {
this.dialog = false;
},
async save(type) {
this.dialog = false;
if (type == "add") {
let params = {};
let res = await qrscevaluationMaterials(params);
}
},
//保存专家
saveZJ() {
if (this.addZJList.length < 1) {
this.$message("请选择专家");
return;
}
this.addtableData=this.addZJList;
console.log(this.addtableData, "addtableData");
this.addtotal = this.addtableData.length;
this.dialogAddzj = false;
},
cancelZJ() {
this.dialogAddzj = false;
},
cancelBJ() {
this.dialogedit = false;
},
async xzExperts() {
this.dialogAddzj = true;
let params = {
current: this.currentZJ,
pageSize: this.pageSizeZJ,
};
Object.assign(params, this.ruleFormZJ);
console.log("查询专家", params);
let res = await expertInfo(params);
this.zjtableData = res.data.records;
this.zjtotal = res.data.total * 1;
console.log(res, "xxx");
},
cancelBJ() {
this.dialogedit = false;
},
saveXZ() {
console.log("保存验证", this.$refs);
this.$refs.formName.validate((valid) => {
if (!valid) {
console.log("error submit!!");
return false;
} else {
if (this.addtableData.length < 1) {
this.$message("请选择专家");
}
console.log(this.addZJList, "this.addZJList");
let expertIdList = [];
let expertStr='';
this.addtableData.forEach((item) => {
expertIdList.push(item.expertId);
expertStr = JSON.stringify(expertIdList).slice(1, -1);
});
let params = {
expertStr: expertStr,
};
Object.assign(params, this.ruleFormdialogAdd);
this.xfParams = JSON.parse(JSON.stringify(params));
console.log(params, "222");
adEvalBatchInfo(params).then((res) => {
this.dialogAdd = false;
this.expertIdList=expertIdList
this.resetForm();
});
}
});
// this.$emit("listenToChildEvent", "reset");
// }
},
cancelXZ() {
this.dialogAdd = false;
},
saveBJ() {
console.log("保存编辑验证", this.$refs.formNameBJ);
this.$refs.formNameBJ.validate((valid) => {
if (!valid) {
console.log("error submit!!");
return false;
} else {
if (this.addtableData.length < 1) {
this.$message("请选择专家");
}
console.log(this.addtableData,'addtableData')
let expertIdList = [];
let expertStr='';
this.addtableData.forEach((item) => {
expertIdList.push(item.expertId);
expertStr = JSON.stringify(expertIdList).slice(1, -1);
});
console.log(expertStr,'expertStr')
let params = {
expertStr: expertStr,
};
Object.assign( this.ruleFormdialogBJ,params);
// this.xfParams = JSON.parse(JSON.stringify(params));
console.log(this.ruleFormdialogBJ, "222");
updEvalBatchInfo(this.ruleFormdialogBJ).then((res) => {
this.dialogedit = false;
this.resetForm();
});
}
});
},
//选中的专家
handleSelectionChangeZJ() {
this.addZJList = this.$refs.multipleTableZJ.selection;
console.log(this.$refs.multipleTableZJ.selection, "2222");
},
//点击编辑
async edit() {
//只能选择编辑未下发 待增加
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
}
if(this.checkedList[0].postEvalState=='已下发'){
this.$message("不能编辑已下发的项目");
return;
}
this.ruleFormdialogBJ=this.checkedList[0]
this.dialogedit=true
let params = {
current: this.currentedit,
pageSize: this.pageSizeedit,
batchId:this.checkedList[0].batchId
};
console.log(params,'params')
let res = await expert(params);
this.addtableData=res.data.records
this.totalBJ=res.data.total * 1;
this.addtableData.forEach(item=>{
this.expertIdList.push(item.expertId)
})
},
//点击删除
async deletes() {
console.log("删除")
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
}
let res = await delEvalBatchInfo(this.checkedList[0]);
this.resetForm()
},
//点击下发
async sendMsg(){
//只能选择未下发的 这块需要加一下
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
}
if(this.checkedList[0].postEvalState=='已下发'){
this.$message("该项目已下发");
return;
}
// if(this.checkedList[0].postEvalState=='已撤回'){
// this.$message("该项目已撤回");
// return;
// }
if(this.checkedList[0].postEvalState=='已撤回'){
this.$set(this.checkedList[0],'postEvalState','2')
}else{
this.$set(this.checkedList[0],'postEvalState','0')
}
let res= await sendEvalBatchInfo(this.checkedList[0])
if(res.code=='200'){
this.resetForm()
}
},
//点击撤回
async withdraw(){
//只能选择已下发未确认的 这块需要加一下
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
}
if(this.checkedList[0].postEvalState=='未下发'){
this.$message("该项目未下发");
return;
}
if(this.checkedList[0].postEvalState=='已撤回'){
this.$message("该项目已撤回");
return;
}
this.$set(this.checkedList[0],'postEvalState','2')
let res= await chEvalBatchInfo(this.checkedList[0])
if(res.code=='200'){
this.resetForm()
}
},
},
};
</script>
<style scoped lang="scss">
.main {
font-size: 14px;
position: relative;
height: 100%;
width: 100%;
box-sizing: border-box;
}
.el-form {
display: flex;
width: 99%;
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: 20px 0;
.fromItem {
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;
}
/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 {
widows: 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;
}
/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 {
.xqtitle {
text-align: left;
font-size: 18px;
span {
display: inline-block;
width: 5px;
height: 20px;
background: #0d867f;
margin-right: 14px;
vertical-align: middle;
}
}
}
.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;
}
.zjBtn {
width: 200px;
text-align: left;
span {
display: inline-block;
width: 80px;
height: 25px;
line-height: 25px;
text-align: center;
border-radius: 5px;
}
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;
span {
display: inline-block;
width: 80px;
height: 25px;
line-height: 25px;
text-align: center;
margin-right: 10px;
border-radius: 5px;
}
span:first-of-type {
border: 1px solid grey;
}
span:last-of-type {
background-color: #4ca6a7;
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;
}
</style>
\ No newline at end of file
<!-- 下发问题 --><template>
<!-- 下发问题 -->
<template>
<div class="main">
<div class="form-horizontal">
<div class="form-group" >
<label>批次年度:</label>
<select class="form-control" placeholder="请选择" v-model="modelYear">
<option
v-for="(item, index) in category"
:value="item.id"
:key="item.id"
>
{{ item.name }}
</option>
</select>
</div>
<div class="form-group" >
<label>后评估批次名称:</label>
<input v-model="assessName" type="text" class="form-control" placeholder="请输入内容" />
</div>
<div class="form-group">
<label>计划评审日期:</label>
<el-form :model="ruleForm" label-width="100px" class="demo-ruleForm" ref="formName">
<el-form-item label="批次年度:" prop="batchYear" class="fromItem" >
<el-select v-model="ruleForm.batchYear" placeholder="请选择">
<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="batchName" class="fromItem">
<el-input v-model="ruleForm.batchName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item
label="计划评审日期:"
prop="planReviewDate"
class="fromItem"
>
<el-date-picker
v-model="addplanTime"
v-model="ruleFormdialogBJ.planReviewDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd hh:mm:ss"
>
</el-date-picker>
</div>
<div class="form-group">
<label>后评估专家组长:</label>
<select class="form-control" placeholder="请选择" v-model="experts">
<option
v-for="(item, index) in category"
:value="item.id"
:key="item.id"
>
{{ item.name }}
</option>
</select>
</div>
<div class="form-group" >
<label>创建人:</label>
<input v-model="creator" type="text" class="form-control" placeholder="请输入内容" />
</div>
<div class="form-group">
<label>创建时间:</label>
</el-form-item>
<el-form-item label="后评估专家组长:" prop="expertGroupLeader" class="fromItem">
<el-select v-model="ruleForm.postEvalState" placeholder="请选择">
<el-option label="新建" value="0"></el-option>
</el-select>
</el-form-item>
<el-form-item label="后评估状态:" prop="postEvalState" class="fromItem">
<el-select v-model="ruleForm.postEvalState" placeholder="请选择">
<el-option label="新建" value="0"></el-option>
<el-option label="专家评估" value="1"></el-option>
<el-option label="后评估完成" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="创建人:" prop="creator" class="fromItem">
<el-input v-model="ruleForm.batchName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item
label="创建时间:"
prop="createTime"
class="fromItem"
>
<el-date-picker
v-model="addplanTime"
v-model="ruleFormdialogBJ.planReviewDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd hh:mm:ss"
>
</el-date-picker>
</div>
<div style="width: 100%"></div>
<div class="btn_container">
<p class="btn btn-primary" @click="query()" >
<img class="buttonIcon" src="../../assets/cx.png" />
&nbsp; 查询
</p>
<p class="btn btn-primary" @click="reset()">
<img class="buttonIcon" src="../../assets/cz.png" />
&nbsp; 重置
</p >
<p class="btn btn-primary" @click="details()">
<img class="buttonIcon" src="../../assets/ck.png" />
&nbsp; 详情
</p>
<p class="btn btn-primary" @click="add()">
</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" /> 新增
</p>
<p class="btn btn-primary" @click="edit()">
</el-button>
<el-button @click="edit()">
<img class="buttonIcon" src="../../assets/bj.png" /> 编辑
</p>
<p class="btn btn-primary" @click="deletes()">
</el-button>
<el-button @click="deletes()">
<img class="buttonIcon" src="../../assets/sc.png" /> 删除
</p>
<p class="btn btn-primary" @click="sendMsg()"
</el-button>
<el-button @click="sendMsg()"
><i class="el-icon-position"></i> 下发
</p>
<p class="btn btn-primary" @click="withdraw()">
</el-button>
<el-button @click="withdraw()">
<i class="el-icon-folder-delete"></i>撤回
</el-button>
</el-form-item>
</el-form>
<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="postEvalState" 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="[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="dialogXQ"
width="90%"
:modal-append-to-body="false"
:append-to-body="false"
>
<div class="dialog">
<el-form
:model="ruleFormdialogBJ"
label-width="100px"
class="demo-ruleForm"
>
<el-form-item label="批次年度:" prop="batchYear" class="fromItem">
<el-input v-model="ruleFormdialogBJ.batchYear" disabled></el-input>
</el-form-item>
<el-form-item label="后评估批次名称:" prop="batchName" class="fromItem">
<el-input v-model="ruleFormdialogBJ.batchName" disabled></el-input>
</el-form-item>
<el-form-item
label="计划评审日期:"
prop="planReviewDate"
class="fromItem"
>
<el-input
v-model="ruleFormdialogBJ.planReviewDate" disabled
></el-input>
</el-form-item>
<el-form-item label="工作组织情况:" class="textarea">
<el-input
type="textarea"
v-model="ruleFormdialogBJ.description"
disabled
></el-input>
</el-form-item>
<el-form-item label="备注:" class="textarea">
<el-input
type="textarea"
v-model="ruleFormdialogBJ.remark"
disabled
></el-input>
</el-form-item>
</el-form>
<el-table
@selection-change="handleSelectionChange"
:data="addtableData"
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 label="单位" width="auto" prop="compId">
</el-table-column>
<el-table-column prop="fullName" label="专家姓名" width="auto">
</el-table-column>
<el-table-column prop="gender" label="性别" width="auto">
</el-table-column>
<el-table-column prop="birthday" label="出生日期" width="auto">
</el-table-column>
<el-table-column prop="qualification" label="学历" width="auto">
</el-table-column>
<el-table-column prop="contact" label="联系方式" width="auto">
</el-table-column>
<el-table-column prop="email" label="邮箱" width="auto">
</el-table-column>
<el-table-column prop="fields" label="专业领域" width="auto">
</el-table-column>
<el-table-column prop="expertLevel" label="专家级别" width="auto">
</el-table-column>
<el-table-column prop="description" label="成果简介" width="auto">
</el-table-column>
<el-table-column prop="expertState" label="专家状态" width="auto">
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChangeBJ"
@current-change="handleCurrentChangeBJ"
:current-page="currentPageBJ"
:page-sizes="[5, 10, 20, 50]"
:page-size="100"
layout="total, sizes, prev, pager, next, jumper"
:total="totalBJ"
class="elpagination"
>
</el-pagination>
</div>
</el-dialog>
<el-dialog
title="新增后评估批次信息"
:visible.sync="dialogAdd"
width="90%"
:modal-append-to-body="false"
:append-to-body="false"
>
<div class="dialog">
<el-form
ref="formName"
:model="ruleFormdialogAdd"
label-width="100px"
class="demo-ruleForm"
:rules="rules"
>
<el-form-item label="批次年度:" prop="batchYear" class="fromItem">
<el-select
v-model="ruleFormdialogAdd.batchYear"
placeholder="请选择"
>
<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="batchName"
class="fromItem"
>
<el-input v-model="ruleFormdialogAdd.batchName"></el-input>
</el-form-item>
<el-form-item
label="计划评审日期:"
prop="planReviewDate"
class="fromItem"
>
<el-date-picker
v-model="ruleFormdialogAdd.planReviewDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd hh:mm:ss"
>
</el-date-picker>
</el-form-item>
<el-form-item label="工作组织情况:" class="textarea">
<el-input
type="textarea"
v-model="ruleFormdialogAdd.description"
placeholder="请输入内容"
></el-input>
</el-form-item>
<el-form-item label="备注:" class="textarea">
<el-input
type="textarea"
v-model="ruleFormdialogAdd.remark"
placeholder="请输入内容"
></el-input>
</el-form-item>
</el-form>
<p class="zjBtn">
后评估专家 <span @click="xzExperts()">选择专家</span>
</p>
<el-table
@selection-change="handleSelectionChange"
:data="addtableData"
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 label="单位" width="auto" prop="compId">
</el-table-column>
<el-table-column prop="fullName" label="专家姓名" width="auto">
</el-table-column>
<el-table-column prop="gender" label="性别" width="auto">
</el-table-column>
<el-table-column prop="birthday" label="出生日期" width="auto">
</el-table-column>
<el-table-column prop="qualification" label="学历" width="auto">
</el-table-column>
<el-table-column prop="contact" label="联系方式" width="auto">
</el-table-column>
<el-table-column prop="email" label="邮箱" width="auto">
</el-table-column>
<el-table-column prop="fields" label="专业领域" width="auto">
</el-table-column>
<el-table-column prop="expertLevel" label="专家级别" width="auto">
</el-table-column>
<el-table-column prop="description" label="成果简介" width="auto">
</el-table-column>
<el-table-column prop="expertState" label="专家状态" width="auto">
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChangeAdd"
@current-change="handleCurrentChangeAdd"
:current-page="addcurrentPage"
:page-sizes="[5, 10, 20, 50]"
:page-size="100"
layout="total, sizes, prev, pager, next, jumper"
:total="addtotal"
class="elpagination"
>
</el-pagination>
<p class="midBtn">
<span @click="cancelXZ()">取消</span
><span @click="saveXZ('add')">保存</span>
</p>
</div>
</el-dialog>
<!-- 选择专家弹窗 -->
<el-dialog
title="选择专家组长"
:visible.sync="dialogAddzj"
width="90%"
:modal-append-to-body="false"
:append-to-body="false"
>
<div class="adzjdialog">
<el-form :model="ruleFormZJ" label-width="100px" class="demo-ruleForm">
<el-form-item label="专家姓名:" prop="fullName" class="fromItem">
<el-input
v-model="ruleFormZJ.fullName"
placeholder="请输入"
></el-input>
</el-form-item>
<el-form-item label="专业领域:" prop="fields" class="fromItem">
<el-select v-model="ruleFormZJ.fields" placeholder="请选择">
<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="expertState" class="fromItem">
<el-select v-model="ruleFormZJ.expertState" placeholder="请选择">
<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 class="cxItem">
<span class="zjquery" @click="xzExperts()"> 查询 </span>
</el-form-item>
</el-form>
<el-table
@selection-change="handleSelectionChangeZJ"
ref="multipleTableZJ"
:data="zjtableData"
tooltip-effect="dark"
style="width: 100%"
header-cell-class-name="custom-th-background"
class="eltable"
:row-class-name="tableRowClassName"
>
border >
<el-table-column type="selection"> </el-table-column>
<el-table-column label="序号" width="55" type="index">
<!-- <template slot-scope="scope">{{ scope.row.id }}</template> -->
</el-table-column>
<!-- <el-table-column type="selection"> </el-table-column> -->
<el-table-column label="单位" width="auto" prop="compId">
</el-table-column>
<el-table-column prop="fullName" label="专家姓名" width="fullName">
</el-table-column>
<el-table-column prop="gender" label="性别" width="gender">
</el-table-column>
<el-table-column prop="birthday" label="出生日期" width="auto">
</el-table-column>
<el-table-column prop="qualification" label="学历" width="auto">
</el-table-column>
<el-table-column prop="contact" label="联系方式" width="auto">
</el-table-column>
<el-table-column prop="email" label="邮箱" width="auto">
</el-table-column>
<el-table-column prop="fields" label="专业领域" width="auto">
</el-table-column>
<el-table-column prop="expertLevel" label="专家级别" width="auto">
</el-table-column>
<el-table-column prop="description" label="成果简介" width="auto">
</el-table-column>
<el-table-column prop="expertState" label="专家状态" width="auto">
</el-table-column>
<el-table-column
prop="expertId"
label="id"
width="auto"
v-show="false"
>
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChangeZJ"
@current-change="handleCurrentChangeZJ"
:current-page="currentZJ"
:page-sizes="[5, 10, 20, 50]"
:page-size="100"
layout="total, sizes, prev, pager, next, jumper"
:total="zjtotal"
class="elpagination"
>
</el-pagination>
<p class="midBtn">
<span @click="cancelZJ()">取消</span
><span @click="saveZJ()">保存</span>
</p>
</div>
<!-- <seachList searchtype="TBGD"></seachList> -->
<tableList class="tableList" tbtyps="TBGD"></tableList>
</el-dialog>
<!-- 编辑弹窗 -->
<el-dialog
title="提交评估材料"
:visible.sync="dialogedit"
width="90%"
:modal-append-to-body="false"
:append-to-body="false"
>
<div class="dialog">
<el-form
:model="ruleFormdialogBJ"
label-width="100px"
class="demo-ruleForm"
ref="formNameBJ"
>
<el-form-item label="批次年度:" prop="batchYear" class="fromItem">
<el-select v-model="ruleFormdialogBJ.batchYear" placeholder="请选择">
<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="batchName" class="fromItem">
<el-input v-model="ruleFormdialogBJ.batchName" ></el-input>
</el-form-item>
<el-form-item
label="计划评审日期:"
prop="planReviewDate"
class="fromItem"
>
<el-date-picker
v-model="ruleFormdialogBJ.planReviewDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd hh:mm:ss"
>
</el-date-picker>
</el-form-item>
<el-form-item label="工作组织情况:" class="textarea">
<el-input
type="textarea"
v-model="ruleFormdialogBJ.description"
placeholder="请输入内容"
></el-input>
</el-form-item>
<el-form-item label="备注:" class="textarea">
<el-input
type="textarea"
v-model="ruleFormdialogBJ.remark"
placeholder="请输入内容"
></el-input>
</el-form-item>
</el-form>
<p class="zjBtn">
后评估专家 <span @click="xzExperts()">选择专家</span>
</p>
<el-table
@selection-change="handleSelectionChange"
:data="addtableData"
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 label="单位" width="auto" prop="compId">
</el-table-column>
<el-table-column prop="fullName" label="专家姓名" width="auto">
</el-table-column>
<el-table-column prop="gender" label="性别" width="auto">
</el-table-column>
<el-table-column prop="birthday" label="出生日期" width="auto">
</el-table-column>
<el-table-column prop="qualification" label="学历" width="auto">
</el-table-column>
<el-table-column prop="contact" label="联系方式" width="auto">
</el-table-column>
<el-table-column prop="email" label="邮箱" width="auto">
</el-table-column>
<el-table-column prop="fields" label="专业领域" width="auto">
</el-table-column>
<el-table-column prop="expertLevel" label="专家级别" width="auto">
</el-table-column>
<el-table-column prop="description" label="成果简介" width="auto">
</el-table-column>
<el-table-column prop="expertState" label="专家状态" width="auto">
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChangeBJ"
@current-change="handleCurrentChangeBJ"
:current-page="currentPageBJ"
:page-sizes="[5, 10, 20, 50]"
:page-size="100"
layout="total, sizes, prev, pager, next, jumper"
:total="totalBJ"
class="elpagination"
>
</el-pagination>
<p class="midBtn">
<span @click="cancelBJ()">取消</span
><span @click="saveBJ()">保存</span>
</p>
</div>
</el-dialog>
</div>
</template>
<script>
import tableList from './components/tableList.vue'
export default {
name: 'sendIssue',
components: {
tableList
},
import {
expertInfo,
expert,
sendEvalBatchInfo,
adEvalBatchInfo,
updEvalBatchInfo,
evalBatchInfo,
delEvalBatchInfo,
chEvalBatchInfo,
} from "@/api/index";
export default {
data() {
return{
SplanNum:'',
XTplanNum:"",
typeContiner:"",
typeCode:"",
typeName:"",
modelYear: 1, //批次年度
assessName: "", //后评估批次名称
planTime: "", //计划评审日期
return {
category: [
{ name: "11", id: 1 },
{ name: "21", id: 2 },
{ name: "31", id: 3 },
{ name: "2024", id: 1 },
{ name: "2023", id: 2 },
{ name: "2022", id: 3 },
{ name: "2021", id: 4 },
], //专业领域
showButton: true,
ruleForm: {
batchYear: "",
batchName: "",
postEvalState: "",
},
ruleFormdialog: {
batchYear: "",
batchName: "",
planReviewDate: "",
fullName: "",
},
ruleFormZJ: {
fields: "",
expertState: "",
fullName: "",
},
ruleFormdialogAdd: {
batchYear: "",
batchName: "",
planReviewDate: "",
description: "",
remark: "",
},
ruleFormdialogBJ: {
batchYear: "",
batchName: "",
planReviewDate: "",
description: "",
remark: "",
},
rules: {
batchYear: [
{ required: true, message: "请选择批次年度", trigger: "change" },
],
batchName: [
{
required: true,
message: "请选择后评估批次名称",
trigger: "change",
},
],
planReviewDate: [
{
required: true,
message: "请选择计划评审日期",
trigger: "change",
},
],
},
xfParams: "", //下发入参
tableData: [],
tableDataQD: [], //清单列表
checkedList: [],
currentPage: 1,
currentPagetjcl: 1,
pageSizetjcl: 10,
total: 0,
dialogXQ: false,
currentPageBJ:1,
pageSizeBJ:10,
dialogAdd: false,
dialogAddzj: false,
pageSize: 10,
current: 1,
pageSizeZJ: 10,
currentZJ: 1,
addtotal: 0,
currentAdd: 1,
pageSizeAdd: 10,
currentedit: 1,
pageSizeedit: 10,
xfParam: "",
dialogedit: false,
expertIdList: [],
totalBJ:0,
addZJList: [],
expertState: "",
fields: "",
zjfullName: "",
zjtotal: 0,
zjtableData: [],
addcurrentPage: 1,
addtableData: [],
message: {},
};
},
mounted() {
this.submitForm();
},
methods: {
async submitForm(formName) {
let params = {
current: this.currentPage,
pageSize: this.pageSize,
};
Object.assign(params, this.ruleForm);
console.log(params);
let res = await evalBatchInfo(params);
if (res.code == "200") {
this.tableData = res.data.records;
this.tableData.forEach(item=>{
if (item.postEvalState==''||item.postEvalState==null){
// this.$set( item,'postEvalState','')
}else if (item.postEvalState=='0'){
this.$set( item,'postEvalState','未下发')
}else if(item.postEvalState=='2'){
this.$set( item,'postEvalState','已撤回')
}else{
this.$set( item,'postEvalState','已下发')
}
})
this.total = res.data.total * 1;
}
},
resetForm() {
this.$refs.formName.resetFields();
this.currentPage = 1;
this.pageSize = 10;
this.submitForm();
},
//点击新增
async add() {
this.dialogAdd = true;
this.addtableData=[];//每次新增清空不然点了还是这几个人
},
//详情
async detailsForm() {
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
}
console.log("222",this.checkedList);
this.dialogXQ = true;
this.ruleFormdialogBJ=this.checkedList[0]
let params = {
current: this.currentedit,
pageSize: this.pageSizeedit,
batchId:this.checkedList[0].batchId
};
console.log(params,'params')
let res = await expert(params);
this.addtableData=res.data.records
this.totalBJ=res.data.total * 1;
},
//表格颜色
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 == 1) {
return "warning-row";
}
return "";
},
//主列表选中行信息
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;
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.currentPage = val;
},
handleSizeChangeZJ(val) {
console.log(`每页 ${val} 条`);
this.pageSizeZJ = val;
},
handleCurrentChangeZJ(val) {
console.log(`当前页: ${val}`);
this.currentZJ = val;
},
handleSizeChangetjcl(val) {
console.log(`每页 ${val} 条`);
this.pageSizetjcl = val;
},
handleCurrentChangetjcl(val) {
console.log(`当前页: ${val}`);
this.currentPagetjcl = val;
},
handleSizeChangeAdd(val) {
this.pageSizeAdd = val;
},
handleCurrentChangeAdd(val) {
this.currentAdd = val;
},
handleSizeChangeBJ(val) {
console.log(`每页 ${val} 条`);
this.pageSizeBJ = val;
},
handleCurrentChangeBJ(val) {
console.log(`当前页: ${val}`);
this.currentPageBJ = val;
},
cancel() {
this.dialog = false;
},
async save(type) {
this.dialog = false;
if (type == "add") {
let params = {};
let res = await qrscevaluationMaterials(params);
}
},
//保存专家
saveZJ() {
if (this.addZJList.length < 1) {
this.$message("请选择专家");
return;
}
this.addtableData=this.addZJList;
console.log(this.addtableData, "addtableData");
this.addtotal = this.addtableData.length;
this.dialogAddzj = false;
},
cancelZJ() {
this.dialogAddzj = false;
},
cancelBJ() {
this.dialogedit = false;
},
async xzExperts() {
this.dialogAddzj = true;
let params = {
current: this.currentZJ,
pageSize: this.pageSizeZJ,
};
Object.assign(params, this.ruleFormZJ);
console.log("查询专家", params);
let res = await expertInfo(params);
this.zjtableData = res.data.records;
this.zjtotal = res.data.total * 1;
console.log(res, "xxx");
},
mounted(){
cancelBJ() {
this.dialogedit = false;
},
methods: {
saveXZ() {
console.log("保存验证", this.$refs);
this.$refs.formName.validate((valid) => {
if (!valid) {
console.log("error submit!!");
return false;
} else {
if (this.addtableData.length < 1) {
this.$message("请选择专家");
}
console.log(this.addZJList, "this.addZJList");
let expertIdList = [];
let expertStr='';
this.addtableData.forEach((item) => {
expertIdList.push(item.expertId);
expertStr = JSON.stringify(expertIdList).slice(1, -1);
});
let params = {
expertStr: expertStr,
};
Object.assign(params, this.ruleFormdialogAdd);
this.xfParams = JSON.parse(JSON.stringify(params));
console.log(params, "222");
adEvalBatchInfo(params).then((res) => {
this.dialogAdd = false;
this.expertIdList=expertIdList
this.resetForm();
});
}
});
// this.$emit("listenToChildEvent", "reset");
// }
},
cancelXZ() {
this.dialogAdd = false;
},
saveBJ() {
console.log("保存编辑验证", this.$refs.formNameBJ);
this.$refs.formNameBJ.validate((valid) => {
if (!valid) {
console.log("error submit!!");
return false;
} else {
if (this.addtableData.length < 1) {
this.$message("请选择专家");
}
}
console.log(this.addtableData,'addtableData')
let expertIdList = [];
let expertStr='';
this.addtableData.forEach((item) => {
expertIdList.push(item.expertId);
expertStr = JSON.stringify(expertIdList).slice(1, -1);
});
console.log(expertStr,'expertStr')
let params = {
expertStr: expertStr,
};
Object.assign( this.ruleFormdialogBJ,params);
// this.xfParams = JSON.parse(JSON.stringify(params));
console.log(this.ruleFormdialogBJ, "222");
updEvalBatchInfo(this.ruleFormdialogBJ).then((res) => {
this.dialogedit = false;
this.resetForm();
});
}
});
},
//选中的专家
handleSelectionChangeZJ() {
this.addZJList = this.$refs.multipleTableZJ.selection;
console.log(this.$refs.multipleTableZJ.selection, "2222");
},
//点击编辑
async edit() {
//只能选择编辑未下发 待增加
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
}
if(this.checkedList[0].postEvalState=='已下发'){
this.$message("不能编辑已下发的项目");
return;
}
this.ruleFormdialogBJ=this.checkedList[0]
this.dialogedit=true
let params = {
current: this.currentedit,
pageSize: this.pageSizeedit,
batchId:this.checkedList[0].batchId
};
console.log(params,'params')
let res = await expert(params);
this.addtableData=res.data.records
this.totalBJ=res.data.total * 1;
this.addtableData.forEach(item=>{
this.expertIdList.push(item.expertId)
})
},
//点击删除
async deletes() {
console.log("删除")
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
}
let res = await delEvalBatchInfo(this.checkedList[0]);
this.resetForm()
},
//点击下发
async sendMsg(){
//只能选择未下发的 这块需要加一下
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
}
if(this.checkedList[0].postEvalState=='已下发'){
this.$message("该项目已下发");
return;
}
// if(this.checkedList[0].postEvalState=='已撤回'){
// this.$message("该项目已撤回");
// return;
// }
if(this.checkedList[0].postEvalState=='已撤回'){
this.$set(this.checkedList[0],'postEvalState','2')
}else{
this.$set(this.checkedList[0],'postEvalState','0')
}
let res= await sendEvalBatchInfo(this.checkedList[0])
if(res.code=='200'){
this.resetForm()
}
},
//点击撤回
async withdraw(){
//只能选择已下发未确认的 这块需要加一下
if (this.checkedList.length != 1) {
this.$message("请选择");
return;
}
if(this.checkedList[0].postEvalState=='未下发'){
this.$message("该项目未下发");
return;
}
if(this.checkedList[0].postEvalState=='已撤回'){
this.$message("该项目已撤回");
return;
}
this.$set(this.checkedList[0],'postEvalState','2')
let res= await chEvalBatchInfo(this.checkedList[0])
if(res.code=='200'){
this.resetForm()
}
},
},
};
</script>
<style lang="scss" scoped>
.main {
<style scoped lang="scss">
.main {
font-size: 14px;
}
.estimateBatchConfirmRelease {
position: relative;
height: 100%;
}
.btn_container {
margin-left: 20px;
margin-top: 20px;
margin-bottom: 15px;
}
.btn {
display: inline-block;
margin-right: 5px;
line-height: 20px;
height: 20px;
color: #fff;
border-radius: 5px;
padding: 7px 12px;
}
.buttonIcon {
width: 14px;
margin-bottom: 3px;
height: 14px;
vertical-align: middle;
}
.btn-primary {
background-color: #23c6c8;
border-color: #23c6c8;
}
.btn-primary:hover {
background-color: #23c6c8;
border-color: #23c6c8;
}
.form-horizontal {
width: 100%;
box-sizing: border-box;
}
.el-form {
display: flex;
width: 99%;
flex-wrap: wrap;
border-top: 2px solid #23c6c8;
border-left: 1px solid #dee5e7;
border-right: 1px solid #dee5e7;
border-bottom: 1px solid #dee5e7;
padding-top: 15px;
padding: 20px 10px;
margin: 20px 0;
.fromItem {
width: 24%;
margin: 0 0.5%;
margin-bottom: 20px;
}
.form-group {
width: 20%;
display: flex;
align-items: center;
margin-right: 40px !important;
}
.form-group > label {
width: 150px;
text-align: right;
padding-right: 10px;
display: inline-block;
max-width: 100%;
margin-bottom: 5px;
font-weight: 700;
}
.form-group > select {
.el-input {
width: 226px;
}
.form-group > input {
width: 195px;
}
.pageTitle {
font-size: 20px;
}
.pageLine {
margin-top: 4px;
border-top: 2px solid #e5e5e5;
}
.modal-header {
background-color: #0d867f;
color: #fff;
}
.close {
}
.el-select {
width: 226px;
}
}
/deep/ .el-form-item__content {
text-align: left;
}
/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;
}
.form-group2 {
width: 22%;
display: flex;
align-items: center;
margin-right: 40px !important;
}
.form-group2 > label {
width: 150px;
height: 34px;
line-height: 34px;
text-align: right;
padding-right: 10px;
}
.form-group2 > select {
width: 180px;
}
.form-group2 > input {
width: 180px;
}
.fixed-table-pagination {
margin-top: 400px;
display: flex;
justify-content: flex-end;
}
tbody tr:nth-of-type(even) {
}
}
}
.eltable {
widows: 100%;
box-sizing: border-box;
}
/deep/ .el-table .warning-row {
background: #f0ffff;
color: #2785e6;
}
thead th {
background: #eeeeee;
padding: 6px 0;
}
}
.elpagination {
text-align: right;
margin-right: 100px;
}
/deep/ .el-dialog {
border-radius: 10px;
}
/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;
}
}
select.form-control {
display: block;
/deep/.el-table {
width: 100%;
height: 34px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
color: #555;
background-color: #fff;
background-image: none;
border: 1px solid #ccc;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-webkit-transition: border-color ease-in-out 0.15s,
-webkit-box-shadow ease-in-out 0.15s;
-o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
}
.form-control:focus {
border-color: #66afe9;
outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075),
0 0 8px rgba(102, 175, 233, 0.6);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075),
0 0 8px rgba(102, 175, 233, 0.6);
}
.form-horizontal .form-group {
margin-right: -15px;
margin-left: -15px;
}
.form-group {
margin-bottom: 15px;
}
input.form-control {
box-sizing: border-box;
display: block;
.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 {
.xqtitle {
text-align: left;
font-size: 18px;
span {
display: inline-block;
width: 5px;
height: 20px;
background: #0d867f;
margin-right: 14px;
vertical-align: middle;
}
}
}
.textarea {
width: 100%;
height: 34px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
color: #555;
background-color: #fff;
background-image: none;
border: 1px solid #ccc;
.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;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-webkit-transition: border-color ease-in-out 0.15s,
-webkit-box-shadow ease-in-out 0.15s;
-o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
}
.form-group > input {
width: 195px;
}
.form-group > select {
width: 226px;
}
/deep/ .el-input__inner {
height: 34px;
line-height: 34px;
border: 1px solid #ccc;
}
/deep/.el-input__icon {
line-height: 34px;
}
/deep/ ::placeholder {
color: #999;
}
/deep/.el-date-table td.today span {
color: red !important;
}
/deep/ .el-input__prefix .el-input__icon{
margin-left: 157px;
background-color: #eee;
border: 1px solid #ccc;
width: 34px;
color: #000;
height: 94%;
}
/deep/.el-input__suffix{
border:none
}
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: 200px;
text-align: left;
span {
display: inline-block;
width: 80px;
height: 25px;
line-height: 25px;
text-align: center;
border-radius: 5px;
}
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;
span {
display: inline-block;
width: 80px;
height: 25px;
line-height: 25px;
text-align: center;
margin-right: 10px;
border-radius: 5px;
}
span:first-of-type {
border: 1px solid grey;
}
span:last-of-type {
background-color: #4ca6a7;
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;
}
</style>
\ No newline at end of file
......@@ -4,7 +4,7 @@ const { defineConfig } = require('@vue/cli-service')
// const ip = '172.20.10.9'; // 何鹏
// const ip = '192.168.0.120';
// const ip = '192.168.0.13';
const ip = '192.168.0.102';
const ip = '192.168.8.120';
module.exports = defineConfig({
transpileDependencies: true,
//如果是hash模式, publicPath:"";如果是history, publicPath:"/"
......@@ -13,7 +13,7 @@ module.exports = defineConfig({
hot: true,
proxy: {
'/api':{
target: `http://192.168.8.248:18101`, // pin
target: `http://192.168.8.120:18101`, // pin
changeOrigin: true,
pathRewrite:{
"^/api":""
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!