Commit ae4021fc by henry

添加问题清单查询界面

1 parent 05f8dd62
...@@ -43,11 +43,21 @@ export const routes = [ ...@@ -43,11 +43,21 @@ export const routes = [
}, },
}, },
{ {
path: '/mainLayout/problemLlistQuery',
name: 'problemLlistQuery',
component: () => import('@/views/postConcentrationCheck/problemLlistQuery.vue'),
},
{
path: '/mainLayout/sendIssue', path: '/mainLayout/sendIssue',
name: 'sendIssue', name: 'sendIssue',
component: () => import('@/views/postConcentrationCheck/sendIssue.vue'), component: () => import('@/views/postConcentrationCheck/sendIssue.vue'),
}, },
{ {
path: '/mainLayout/problemAppeal',
name: 'sendIssue',
component: () => import('@/views/postConcentrationCheck/problemAppeal.vue'),
},
{
path: '/mainLayout/assistedConfirm', path: '/mainLayout/assistedConfirm',
name: 'assistedConfirm', name: 'assistedConfirm',
component: () => import('@/views/assessChecks/assistedConfirm.vue'), component: () => import('@/views/assessChecks/assistedConfirm.vue'),
......
...@@ -101,15 +101,26 @@ export default { ...@@ -101,15 +101,26 @@ export default {
url: "", url: "",
children: [ children: [
{ {
name: "问题清单查询",
url: "/mainLayout/problemLlistQuery",
children: [] },
{
name: "下发问题", name: "下发问题",
url: "/mainLayout/sendIssue", url: "/mainLayout/sendIssue",
children: [] }, children: [] },
{ name: "问题申诉", url: "", children: [] }, { name: "问题申诉",
{ name: "申诉复核", url: "", children: [] }, url: "/mainLayout/problemAppeal",
{ name: "问题整改", url: "", children: [] }, children: [] },
{ name: "整改复核", url: "", children: [] }, { name: "申诉复核",
{ name: "工作总结", url: "", children: [] }, url: "/mainLayout/problemAppeal", children: [] },
{ name: "数据维护", url: "", 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="main">
<div class="form-horizontal"> <el-form :model="ruleForm" label-width="100px" class="demo-ruleForm" ref="formName">
<div class="form-group" > <el-form-item label="批次年度:" prop="batchYear" class="fromItem" >
<label>批次年度:</label> <el-select v-model="ruleForm.batchYear" placeholder="请选择">
<select class="form-control" placeholder="请选择" v-model="modelYear"> <el-option label="2024年" value="2024"></el-option>
<option <el-option label="2023年" value="2023"></el-option>
v-for="(item, index) in category" <el-option label="2022年" value="2022"></el-option>
:value="item.id" <el-option label="2021年" value="2021"></el-option>
:key="item.id" </el-select>
> </el-form-item>
{{ item.name }} <el-form-item label="后评估批次名称:" prop="batchName" class="fromItem">
</option> <el-input v-model="ruleForm.batchName" placeholder="请输入"></el-input>
</select> </el-form-item>
</div> <el-form-item
<div class="form-group" > label="计划评审日期:"
<label>后评估批次名称:</label> prop="planReviewDate"
<input v-model="assessName" type="text" class="form-control" placeholder="请输入内容" /> class="fromItem"
</div> >
<div class="form-group">
<label>计划评审日期:</label>
<el-date-picker <el-date-picker
v-model="addplanTime" v-model="ruleFormdialogBJ.planReviewDate"
type="date" type="date"
placeholder="选择日期" placeholder="选择日期"
value-format="yyyy-MM-dd hh:mm:ss" value-format="yyyy-MM-dd hh:mm:ss"
> >
</el-date-picker> </el-date-picker>
</div> </el-form-item>
<div class="form-group"> <el-form-item label="后评估专家组长:" prop="expertGroupLeader" class="fromItem">
<label>后评估专家组长:</label> <el-select v-model="ruleForm.postEvalState" placeholder="请选择">
<select class="form-control" placeholder="请选择" v-model="experts"> <el-option label="新建" value="0"></el-option>
<option </el-select>
v-for="(item, index) in category" </el-form-item>
:value="item.id" <el-form-item label="后评估状态:" prop="postEvalState" class="fromItem">
:key="item.id" <el-select v-model="ruleForm.postEvalState" placeholder="请选择">
> <el-option label="新建" value="0"></el-option>
{{ item.name }} <el-option label="专家评估" value="1"></el-option>
</option> <el-option label="后评估完成" value="2"></el-option>
</select> </el-select>
</div> </el-form-item>
<div class="form-group" > <el-form-item label="创建人:" prop="creator" class="fromItem">
<label>创建人:</label> <el-input v-model="ruleForm.batchName" placeholder="请输入"></el-input>
<input v-model="creator" type="text" class="form-control" placeholder="请输入内容" /> </el-form-item>
</div> <el-form-item
<div class="form-group"> label="创建时间:"
<label>创建时间:</label> prop="createTime"
class="fromItem"
>
<el-date-picker <el-date-picker
v-model="addplanTime" v-model="ruleFormdialogBJ.planReviewDate"
type="date" type="date"
placeholder="选择日期" placeholder="选择日期"
value-format="yyyy-MM-dd hh:mm:ss" value-format="yyyy-MM-dd hh:mm:ss"
> >
</el-date-picker> </el-date-picker>
</div> </el-form-item>
<div style="width: 100%"></div> <el-form-item class="button">
<div class="btn_container"> <el-button @click="submitForm()">
<p class="btn btn-primary" @click="query()" > <img class="buttonIcon" src="../../assets/cx.png" />查询</el-button
<img class="buttonIcon" src="../../assets/cx.png" /> >
&nbsp; 查询 <el-button @click="resetForm('ruleForm')">
</p> <img class="buttonIcon" src="../../assets/cz.png" />重置</el-button
<p class="btn btn-primary" @click="reset()"> >
<img class="buttonIcon" src="../../assets/cz.png" /> <el-button @click="detailsForm('ruleForm')">
&nbsp; 重置 <img class="buttonIcon" src="../../assets/ck.png" />详情</el-button
</p > >
<el-button @click="add()">
<p class="btn btn-primary" @click="details()">
<img class="buttonIcon" src="../../assets/ck.png" />
&nbsp; 详情
</p>
<p class="btn btn-primary" @click="add()">
<img class="buttonIcon" src="../../assets/xz.png" /> 新增 <img class="buttonIcon" src="../../assets/xz.png" /> 新增
</p> </el-button>
<p class="btn btn-primary" @click="edit()"> <el-button @click="edit()">
<img class="buttonIcon" src="../../assets/bj.png" /> 编辑 <img class="buttonIcon" src="../../assets/bj.png" /> 编辑
</p> </el-button>
<p class="btn btn-primary" @click="deletes()"> <el-button @click="deletes()">
<img class="buttonIcon" src="../../assets/sc.png" /> 删除 <img class="buttonIcon" src="../../assets/sc.png" /> 删除
</p> </el-button>
<p class="btn btn-primary" @click="sendMsg()" <el-button @click="sendMsg()"
><i class="el-icon-position"></i> 下发 ><i class="el-icon-position"></i> 下发
</p> </el-button>
<p class="btn btn-primary" @click="withdraw()"> <el-button @click="withdraw()">
<i class="el-icon-folder-delete"></i>撤回 <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> </p>
</div> </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> </div>
<!-- <seachList searchtype="TBGD"></seachList> --> </el-dialog>
<tableList class="tableList" tbtyps="TBGD"></tableList> <!-- 编辑弹窗 -->
<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> </div>
</template> </template>
<script> <script>
import tableList from './components/tableList.vue' import {
expertInfo,
export default { expert,
name: 'sendIssue', sendEvalBatchInfo,
components: { adEvalBatchInfo,
tableList updEvalBatchInfo,
}, evalBatchInfo,
delEvalBatchInfo,
chEvalBatchInfo,
} from "@/api/index";
export default {
data() { data() {
return{ return {
SplanNum:'',
XTplanNum:"",
typeContiner:"",
typeCode:"",
typeName:"",
modelYear: 1, //批次年度
assessName: "", //后评估批次名称
planTime: "", //计划评审日期
category: [ category: [
{ name: "11", id: 1 }, { name: "2024", id: 1 },
{ name: "21", id: 2 }, { name: "2023", id: 2 },
{ name: "31", id: 3 }, { 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> </script>
<style lang="scss" scoped> <style scoped lang="scss">
.main { .main {
font-size: 14px; font-size: 14px;
} position: relative;
.estimateBatchConfirmRelease {
height: 100%; height: 100%;
} width: 100%;
box-sizing: border-box;
.btn_container { }
margin-left: 20px; .el-form {
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 {
display: flex; display: flex;
width: 99%;
flex-wrap: wrap; flex-wrap: wrap;
border-top: 2px solid #23c6c8; border-top: 2px solid #23c6c8;
border-left: 1px solid #dee5e7; border-left: 1px solid #dee5e7;
border-right: 1px solid #dee5e7; border-right: 1px solid #dee5e7;
border-bottom: 1px solid #dee5e7; border-bottom: 1px solid #dee5e7;
padding-top: 15px; padding: 20px 10px;
margin: 20px 0;
.fromItem {
width: 24%;
margin: 0 0.5%;
margin-bottom: 20px; margin-bottom: 20px;
} .el-input {
.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 {
width: 226px; width: 226px;
} }
.form-group > input { .el-select {
width: 195px; width: 226px;
} }
.pageTitle { }
font-size: 20px; /deep/ .el-form-item__content {
} text-align: left;
.pageLine { }
margin-top: 4px; /deep/ .el-form-item__label {
border-top: 2px solid #e5e5e5; font-weight: bold;
} color: #000;
.modal-header { width: 160px !important;
background-color: #0d867f; }
color: #fff; .button {
} display: inline-block;
.close { 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; color: #fff;
} }
.form-group2 { }
width: 22%; }
display: flex; .eltable {
align-items: center; widows: 100%;
margin-right: 40px !important; box-sizing: border-box;
} }
.form-group2 > label { /deep/ .el-table .warning-row {
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) {
background: #f0ffff; background: #f0ffff;
color: #2785e6; color: #2785e6;
} }
thead th { .elpagination {
background: #eeeeee; text-align: right;
padding: 6px 0; 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 { /deep/.el-table {
display: block;
width: 100%; width: 100%;
height: 34px; .el-table__header-wrapper table,
padding: 6px 12px; .el-table__body-wrapper table {
font-size: 14px; width: 100% !important;
line-height: 1.42857143; }
color: #555; .el-table__body,
background-color: #fff; .el-table__footer,
background-image: none; .el-table__header {
border: 1px solid #ccc; table-layout: auto;
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); .dialog {
-webkit-transition: border-color ease-in-out 0.15s, .xqtitle {
-webkit-box-shadow ease-in-out 0.15s; text-align: left;
-o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; font-size: 18px;
transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
} span {
.form-control:focus { display: inline-block;
border-color: #66afe9; width: 5px;
outline: 0; height: 20px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), background: #0d867f;
0 0 8px rgba(102, 175, 233, 0.6); margin-right: 14px;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), vertical-align: middle;
0 0 8px rgba(102, 175, 233, 0.6); }
} }
.form-horizontal .form-group { }
margin-right: -15px; .textarea {
margin-left: -15px;
}
.form-group {
margin-bottom: 15px;
}
input.form-control {
box-sizing: border-box;
display: block;
width: 100%; width: 100%;
height: 34px; .el-textarea {
padding: 6px 12px; width: 60%;
font-size: 14px; }
line-height: 1.42857143; }
color: #555; .Btn {
background-color: #fff; width: 200px;
background-image: none; margin: 0 auto;
border: 1px solid #ccc; span {
display: inline-block;
width: 80px;
height: 25px;
line-height: 25px;
text-align: center;
border-radius: 4px; border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); margin-right: 12px;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }
-webkit-transition: border-color ease-in-out 0.15s, span:first-of-type {
-webkit-box-shadow ease-in-out 0.15s; border: 1px solid #000;
-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; span:last-of-type {
} background-color: #0d867f;
.form-group > input { border: 1px solid #0d867f;
width: 195px; color: #fff;
} }
.form-group > select { }
width: 226px; /deep/ .el-dialog__headerbtn .el-dialog__close {
} color: #fff;
}
/deep/ .el-input__inner { .zjBtn {
height: 34px; width: 200px;
line-height: 34px; text-align: left;
border: 1px solid #ccc; span {
} display: inline-block;
/deep/.el-input__icon { width: 80px;
line-height: 34px; height: 25px;
} line-height: 25px;
/deep/ ::placeholder { text-align: center;
color: #999; border-radius: 5px;
} }
/deep/.el-date-table td.today span { span:last-of-type {
color: red !important; background-color: #4ca6a7;
} color: #fff;
/deep/ .el-input__prefix .el-input__icon{ padding: 5px 10px;
margin-left: 157px; margin-left: 10px;
background-color: #eee; }
border: 1px solid #ccc; }
width: 34px; /deep/ .el-icon-position {
color: #000; margin-right: 10px;
height: 94%; }
} /deep/ .el-icon-folder-delete {
/deep/.el-input__suffix{ margin-right: 10px;
border:none }
} .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> </style>
\ No newline at end of file
...@@ -4,7 +4,7 @@ const { defineConfig } = require('@vue/cli-service') ...@@ -4,7 +4,7 @@ const { defineConfig } = require('@vue/cli-service')
// const ip = '172.20.10.9'; // 何鹏 // const ip = '172.20.10.9'; // 何鹏
// const ip = '192.168.0.120'; // const ip = '192.168.0.120';
// const ip = '192.168.0.13'; // const ip = '192.168.0.13';
const ip = '192.168.0.102'; const ip = '192.168.8.120';
module.exports = defineConfig({ module.exports = defineConfig({
transpileDependencies: true, transpileDependencies: true,
//如果是hash模式, publicPath:"";如果是history, publicPath:"/" //如果是hash模式, publicPath:"";如果是history, publicPath:"/"
...@@ -13,7 +13,7 @@ module.exports = defineConfig({ ...@@ -13,7 +13,7 @@ module.exports = defineConfig({
hot: true, hot: true,
proxy: { proxy: {
'/api':{ '/api':{
target: `http://192.168.8.248:18101`, // pin target: `http://192.168.8.120:18101`, // pin
changeOrigin: true, changeOrigin: true,
pathRewrite:{ pathRewrite:{
"^/api":"" "^/api":""
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!