Commit 1e43bf03 authored by 陈晓晋's avatar 陈晓晋

任务新增和任务详情20230726

parent b7aed31b
......@@ -20,7 +20,7 @@ export function getPlan(id) {
// 新增风险计划
export function addPlan(data) {
return request({
url: '/system/risk/plan',
url: 'app-api/risk/plan',
method: 'post',
data: data
})
......@@ -63,4 +63,32 @@ export function exportRiskList(inherentId) {
url: '/system/risk/plan/exportWord/riskNotification/'+inherentId,
method: 'get',
})
}
\ No newline at end of file
}
//项目列表
export function getProjectList(projectName) {
return request({
url: '/system/ledger/project/listByQuery/'+projectName,
method: 'get',
})
}
//楼栋列表
export function getBuildingList(projectId) {
return request({
url: '/app-api/risk/plan/building/list/'+projectId,
method: 'get',
})
}
//根据单位id查询用户列表
export function getUserListByDeptId(deptId) {
return request({
url: '/app-api/risk/plan/user/list/'+deptId,
method: 'get',
})
}
......@@ -110,8 +110,9 @@
<!-- 添加或修改风险计划对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="创建人员" prop="createUserId">
<el-input v-model="user.nickName" placeholder="请输入创建人员" />
<el-input v-model="user.userName" placeholder="请输入创建人员" required="true" />
</el-form-item>
<el-form-item label="创建单位" prop="createDeptId">
<el-input v-model="user.dept.deptName" placeholder="请输入创建单位" />
......@@ -120,20 +121,36 @@
<el-input v-model="form.name" placeholder="请输入任务名称" />
</el-form-item>
<el-form-item label="关联项目" prop="projectId">
<el-input v-model="form.projectId" placeholder="请输入关联项目" />
<el-select v-model="form.projectId" @change="getBuildingList(form.projectId)" filterable remote
reserve-keyword placeholder="请输入项目关键词" :remote-method="remoteMethod" :loading="loading">
<el-option v-for="item in projectOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="评估楼栋" prop="buildingIds">
<el-input v-model="form.buildingIds" placeholder="请输入评估楼栋" />
<el-select v-model="form.buildingIds" multiple medium placeholder="请选择评估楼栋">
<el-option v-for="item in buildingOption" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
<!-- <el-input v-model="form.buildingIds" placeholder="请输入评估楼栋" /> -->
</el-form-item>
<el-form-item label="评估小组选择" prop="leaderUserId">
<treeselect v-model="user.dept.deptName" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
<el-form-item label="评估小组选择" prop="deptId">
<treeselect v-model="user.dept.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
<!-- <el-input v-model="user.dept.deptName" placeholder="请输评估小组选择" /> -->
</el-form-item>
<el-form-item label="评估小组组长" prop="leaderUserId">
<el-input v-model="form.leaderUserId" placeholder="请输入评估小组组长" />
<!-- <el-input v-model="form.leaderUserId" placeholder="请输入评估小组组长" /> -->
<el-select v-model="form.leaderUserId" placeholder="请选择评估小组组长">
<el-option v-for="item in userOptions" :key="item.userId" :label="item.nickName" :value="item.userId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="评估小组成员" prop="workUserIds">
<el-input v-model="form.workUserIds" placeholder="请输入评估小组成员" />
<!-- <el-input v-model="form.workUserIds" placeholder="请输入评估小组成员" /> -->
<el-select v-model="form.workUserIds" multiple placeholder="请选择评评估小组成员">
<el-option v-for="item in userOptions" :key="item.userId" :label="item.nickName" :value="item.userId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="任务开始时间" prop="startTime">
<el-date-picker clearable v-model="form.startTime" type="date" value-format="yyyy-MM-dd"
......@@ -156,13 +173,25 @@
</template>
<script>
import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus, deptTreeSelect } from "@/api/system/user";
import {
listUser,
getUser,
delUser,
addUser,
updateUser,
resetUserPwd,
changeUserStatus,
deptTreeSelect
} from "@/api/system/user";
import {
listPlan,
getPlan,
delPlan,
addPlan,
updatePlan
updatePlan,
getProjectList,
getBuildingList,
getUserListByDeptId,
} from "@/api/risk/plan";
import {
getUserProfile
......@@ -172,10 +201,20 @@
export default {
name: "Plan",
components: { Treeselect },
components: {
Treeselect
},
data() {
return {
user: {},
userOptions: [], //用户列表
projectOptions: [], //项目列表
buildingOption: [], //楼栋列表
user: {
dept:{
deptName:'',
deptId:'',
}
},
// 遮罩层
loading: true,
// 选中数组
......@@ -213,9 +252,78 @@
status: null,
},
// 表单参数
form: {},
form: {
deptId: '',
createUserId:'',
createDeptId:'',
},
// 表单校验
rules: {}
rules: {
// createUserId: [{
// required: true,
// message: '请输入创建人姓名',
// trigger: 'blur'
// },
// ],
// createDeptId: [{
// required: true,
// message: '请输入创建单位',
// trigger: 'blur'
// },
// ],
name: [{
required: true,
message: '请输入任务名称',
trigger: 'blur'
},
{
min: 1,
max: 50,
message: '长度在 1 到 50个字符',
trigger: 'blur'
}
],
projectId: [{
required: true,
message: '请输入任务名称',
trigger: 'blur'
},
],
buildingIds: [{
required: true,
message: '请输入任务名称',
trigger: 'blur'
},
],
leaderUserId: [{
required: true,
message: '请选择小组负责人',
trigger: 'change'
}],
workUserIds: [{
required: true,
message: '请选择小组成员',
trigger: 'change'
}],
startTime: [{
type: 'string',
required: true,
message: '请选择开始时间',
trigger: 'change'
}],
endTime: [{
type: 'string',
required: true,
message: '请选择结束时间',
trigger: 'change'
}],
}
};
},
watch: {
......@@ -223,17 +331,54 @@
deptName(val) {
this.$refs.tree.filter(val);
}
},
},
created() {
this.getUser();
this.getDeptTree();
this.getDeptTree();
this.getList();
},
mounted() {
},
methods: {
getUserListByDeptId(deptId) {
getUserListByDeptId(deptId).then(response => {
this.userOptions = response.data;
});
},
remoteMethod(query) {
if (query !== '') {
this.loading = true;
getProjectList(query).then(response => {
this.loading = false;
this.projectOptions = response.data;
});
} else {
this.projectOptions = [];
}
},
getUser() {
getUserProfile().then(response => {
this.user = response.data;
this.form.deptId = this.user.deptId;
this.getUserListByDeptId(this.user.dept.deptId);
});
},
getBuildingList(projectId) {
getBuildingList(projectId).then(response => {
this.buildingOption = response.data;
});
},
/** 查询风险计划列表 */
getList() {
......@@ -252,13 +397,16 @@
},
// 筛选节点
filterNode(value, data) {
console.log(" filterNode");
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
// 节点单击事件
handleNodeClick(data) {
console.log(" handleNodeClick");
this.queryParams.deptId = data.id;
this.handleQuery();
// this.form.deptId=data.id;
},
// 取消按钮
cancel() {
......@@ -324,6 +472,8 @@
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.form.buildingIds=this.form.buildingIds.join();
this.form.workUserIds=this.form.workUserIds.join();
if (this.form.id != null) {
updatePlan(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
......
......@@ -5,7 +5,7 @@
<el-descriptions-item label="所属项目">{{ InfoList.detailsDto.projectName }}</el-descriptions-item>
<el-descriptions-item label="所属楼栋">{{ InfoList.detailsDto.buildingNames }}</el-descriptions-item>
<el-descriptions-item label="所属单位">{{ InfoList.detailsDto.deptName }}</el-descriptions-item>
<el-descriptions-item label="所属省市">苏州市</el-descriptions-item>
<el-descriptions-item label="所属省市">{{ InfoList.detailsDto.city}}</el-descriptions-item>
<el-descriptions-item label="项目负责人">{{ InfoList.detailsDto.leaderUserName }}</el-descriptions-item>
<el-descriptions-item label="评估组成员">{{ InfoList.detailsDto.workUserNames }}</el-descriptions-item>
<el-descriptions-item label="开始时间">{{ InfoList.startTime }}</el-descriptions-item>
......@@ -16,8 +16,10 @@
<el-descriptions-item label="创建时间">{{ InfoList.detailsDto.createTime }}</el-descriptions-item>
</el-descriptions>
<el-tabs v-model="activeName" type="border-card" style="margin-top: 10px;" @tab-click="handleClick">
<el-tabs v-model="activeName" type="border-card" style="margin-top: 10px;" >
<el-tab-pane label="风险评估清单" name="first">
<div class="approveResult">
<div class="approveL">
<!-- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="82px">
<el-form-item label="风险源名称" prop="name">
......@@ -43,7 +45,7 @@
</el-form> -->
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="downList(InfoList.detailsDto.id)"
style="float: right;margin-bottom: 8px;">导出风险清单</el-button>
<el-table v-loading="loading" :data="listList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" :data="listList" >
<el-table-column label="序号" align="center">
<template slot-scope="scope">
<span>{{ scope.$index + 1 }}</span>
......@@ -71,6 +73,8 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getRiskList" />
</div>
</div>
</el-tab-pane>
<el-tab-pane label="评估结果审核" name="second">
<div class="approveResult">
......@@ -170,6 +174,7 @@
measuresEmergency: null,
measuresEmergencyFileIds: null,
referenceBasis: null,
planId:null,
},
// 表单参数
form: {},
......@@ -179,10 +184,18 @@
InfoList: {},
}
},
created() {
if(this.$route.params.id){
this.queryParams.planId=this.$route.params.id
this.getRiskList(this.queryParams)
}
},
mounted() {
// console.log(this.$route.params, 'lll')
this.getInfo(this.$route.params.id)
this.getRiskList(this.$route.params.id)
},
methods: {
downList(planId) {
......@@ -202,11 +215,12 @@
})
},
getRiskList(id) {
riskList({
planId: id
}).then(res => {
this.loading = false
this.listList = res.rows
this.loading = true;
riskList(this.queryParams).then(res => {
this.listList = res.rows;
this.total = res.total;
this.loading = false;
})
},
exportList(id) {
......@@ -214,9 +228,7 @@
this.download('system/risk/plan/exportWord/riskNotification/' + id, {}, `风险告知卡.docx`)
}
},
handleClick() {
},
// 表单重置
reset() {
this.form = {
......@@ -314,4 +326,4 @@
}
}
</style>
\ No newline at end of file
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment