Commit 768fc7ab authored by 陈晓晋's avatar 陈晓晋

任务管理列表修改20230724-1

parent 44d5e8b3
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="任务名称" prop="name"> <el-form-item label="任务名称" prop="name">
<el-input <el-input v-model="queryParams.name" placeholder="请输入任务名称" clearable @keyup.enter.native="handleQuery" />
v-model="queryParams.name"
placeholder="请输入任务名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
type="primary" <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table v-loading="loading" :data="planList" @selection-change="handleSelectionChange">
v-loading="loading"
:data="planList"
@selection-change="handleSelectionChange"
>
<el-table-column label="序号" align="center"> <el-table-column label="序号" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.$index + 1 }}</span> <span>{{ scope.$index + 1 }}</span>
...@@ -48,59 +24,39 @@ ...@@ -48,59 +24,39 @@
<el-table-column label="创建单位" align="center" prop="createDeptName" /> <el-table-column label="创建单位" align="center" prop="createDeptName" />
<el-table-column label="负责人" align="center" prop="leaderUserName" /> <el-table-column label="负责人" align="center" prop="leaderUserName" />
<el-table-column label="执行人员" align="center" prop="workUserNames" /> <el-table-column label="执行人员" align="center" prop="workUserNames" />
<el-table-column <el-table-column label="开始时间" align="center" prop="startTime" width="180">
label="开始时间"
align="center"
prop="startTime"
width="180"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.startTime, "{y}-{m}-{d}") }}</span> <span>{{ parseTime(scope.row.startTime, "{y}-{m}-{d}") }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="结束时间" align="center" prop="endTime" width="180">
label="结束时间"
align="center"
prop="endTime"
width="180"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.endTime, "{y}-{m}-{d}") }}</span> <span>{{ parseTime(scope.row.endTime, "{y}-{m}-{d}") }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="状态" align="center" prop="statusName" /> <el-table-column label="状态" align="center" prop="statusName" />
<el-table-column <el-table-column label="操作" align="center" :show-overflow-tooltip="true">
label="操作"
align="center"
:show-overflow-tooltip="true"
>
<template slot-scope="scope"> <template slot-scope="scope">
<router-link <router-link :to="'/risk/plan/ledgerdata/index/' + scope.row.id" class="link-type">
:to="'/risk/plan/ledgerdata/index/' + scope.row.id" <el-button size="mini" type="text" icon="el-icon-view">详情</el-button>
class="link-type"
>
<el-button size="mini" type="text" icon="el-icon-view"
>详情</el-button
>
</router-link> </router-link>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
v-show="total > 0" @pagination="getList" />
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div> </div>
</template> </template>
<script> <script>
import { listPlan, addPlan, updatePlan } from "@/api/risk/plan"; import {
listPlan,
addPlan,
updatePlan
} from "@/api/risk/plan";
export default { export default {
name: "Plan", name: "Plan",
data() { data() {
return { return {
...@@ -202,5 +158,5 @@ export default { ...@@ -202,5 +158,5 @@ export default {
this.multiple = !selection.length; this.multiple = !selection.length;
}, },
}, },
}; };
</script> </script>
\ No newline at end of file
<template> <template>
<div class="wrapper"> <div class="wrapper">
<el-descriptions <el-descriptions :title="InfoList.detailsDto.name" class="margin-top" :column="3" :size="size" border>
:title="InfoList.detailsDto.name"
class="margin-top" <el-descriptions-item label="所属项目">{{ InfoList.detailsDto.projectName }}</el-descriptions-item>
:column="3" <el-descriptions-item label="所属楼栋">{{ InfoList.detailsDto.buildingNames }}</el-descriptions-item>
:size="size" <el-descriptions-item label="所属单位">{{ InfoList.detailsDto.deptName }}</el-descriptions-item>
border
>
<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="所属省市">苏州市</el-descriptions-item>
<el-descriptions-item label="项目负责人">{{ <el-descriptions-item label="项目负责人">{{ InfoList.detailsDto.leaderUserName }}</el-descriptions-item>
InfoList.detailsDto.leaderUserName <el-descriptions-item label="评估组成员">{{ InfoList.detailsDto.workUserNames }}</el-descriptions-item>
}}</el-descriptions-item> <el-descriptions-item label="开始时间">{{ InfoList.startTime }}</el-descriptions-item>
<el-descriptions-item label="评估组成员">{{ <el-descriptions-item label="结束时间">{{ InfoList.endTime }}</el-descriptions-item>
InfoList.detailsDto.workUserNames <el-descriptions-item label="项目状态">{{ InfoList.status }}</el-descriptions-item>
}}</el-descriptions-item> <el-descriptions-item label="创建人">{{ InfoList.createUserName }}</el-descriptions-item>
<el-descriptions-item label="开始时间">{{ <el-descriptions-item label="创建单位">{{ InfoList.detailsDto.createDeptName }}</el-descriptions-item>
InfoList.startTime <el-descriptions-item label="创建时间">{{ InfoList.detailsDto.createTime }}</el-descriptions-item>
}}</el-descriptions-item>
<el-descriptions-item label="结束时间">{{
InfoList.endTime
}}</el-descriptions-item>
<el-descriptions-item label="项目状态">{{
InfoList.status
}}</el-descriptions-item>
<el-descriptions-item label="创建人">{{
InfoList.createUserName
}}</el-descriptions-item>
<el-descriptions-item label="创建单位">{{
InfoList.detailsDto.createDeptName
}}</el-descriptions-item>
<el-descriptions-item label="创建时间">{{
InfoList.detailsDto.createTime
}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-tabs v-model="activeName" @tab-click="handleClick"> <el-tabs v-model="activeName" type="border-card" style="margin-top: 10px;" @tab-click="handleClick">
<el-tab-pane label="风险评估清单" name="first"> <el-tab-pane label="风险评估清单" name="first">
<!-- <el-form <!-- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
:model="queryParams" label-width="82px">
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="82px"
>
<el-form-item label="风险源名称" prop="name"> <el-form-item label="风险源名称" prop="name">
<el-input <el-input v-model="queryParams.name" placeholder="请输入风险源名称" clearable
v-model="queryParams.name" @keyup.enter.native="handleQuery" />
placeholder="请输入风险源名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="风险等级" prop="level"> <el-form-item label="风险等级" prop="level">
<el-input <el-input v-model="queryParams.level" placeholder="请输入风险等级" clearable
v-model="queryParams.level" @keyup.enter.native="handleQuery" />
placeholder="请输入风险等级"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="风险类型" prop="factor"> <el-form-item label="风险类型" prop="factor">
<el-input <el-input v-model="queryParams.factor" placeholder="请输入风险因素" clearable
v-model="queryParams.factor" @keyup.enter.native="handleQuery" />
placeholder="请输入风险因素"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="存在部位" prop="referenceBasis"> <el-form-item label="存在部位" prop="referenceBasis">
<el-input <el-input v-model="queryParams.referenceBasis" placeholder="请输入参考依据" clearable
v-model="queryParams.referenceBasis" @keyup.enter.native="handleQuery" />
placeholder="请输入参考依据"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
type="primary" <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item> </el-form-item>
</el-form> --> </el-form> -->
<el-button <el-button type="warning" plain icon="el-icon-download" size="mini" @click="downList(InfoList.detailsDto.id)"
style="margin-bottom: 10px" style="float: right;margin-bottom: 8px;">导出风险清单</el-button>
@click="downList(InfoList.detailsDto.id)" <el-table v-loading="loading" :data="listList" @selection-change="handleSelectionChange">
>导 出</el-button <el-table-column label="序号" align="center">
> <template slot-scope="scope">
<el-table v-loading="loading" :data="listList"> <span>{{ scope.$index + 1 }}</span>
<!-- <el-table-column type="selection" width="55" align="center" /> --> </template>
<el-table-column type="index" width="50" label="序号" /> </el-table-column>
<!-- <el-table-column label="id" align="center" prop="id" /> -->
<el-table-column label="风险名称" align="center" prop="name" /> <el-table-column label="风险名称" align="center" prop="name" />
<el-table-column <el-table-column label="所属建筑" align="center" prop="buildingName" />
label="所属建筑"
align="center"
prop="buildingName"
/>
<el-table-column label="所属楼层" align="center" prop="floorName" /> <el-table-column label="所属楼层" align="center" prop="floorName" />
<el-table-column label="所属房间" align="center" prop="roomName" /> <el-table-column label="所属房间" align="center" prop="roomName" />
<el-table-column <el-table-column label="风险等级(系数)" align="center" prop="level" />
label="风险等级(系数)"
align="center"
prop="level"
/>
<el-table-column label="风险因素" align="center" prop="factor" /> <el-table-column label="风险因素" align="center" prop="factor" />
<el-table-column label="准事故类型" align="center" prop="type" /> <el-table-column label="准事故类型" align="center" prop="type" />
<el-table-column <el-table-column label="存在部位" align="center" prop="presenceLocation" />
label="存在部位"
align="center"
prop="presenceLocation"
/>
<el-table-column label="操作" align="center" prop="describe"> <el-table-column label="操作" align="center" prop="describe">
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
<el-button <el-button size="mini" type="text" icon="el-icon-download"
size="mini" @click="exportList(scope.row.id)">下载风险告知卡</el-button>
type="text" <el-button size="mini" type="text" icon="el-icon-view"
icon="el-icon-download" @click="showDrawCanvas(scope.row.floorId)">查看四色图</el-button>
@click="exportList(scope.row.id)"
>下载风险告知卡</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="showDrawCanvas(scope.row.floorId)"
>查看四色图</el-button
>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
v-show="total > 0" :limit.sync="queryParams.pageSize" @pagination="getRiskList" />
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getRiskList"
/>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="评估结果审核" name="second"> <el-tab-pane label="评估结果审核" name="second">
<div class="approveResult"> <div class="approveResult">
<div class="approveL"> <div class="approveL">
<div class="titles">审批流程</div> <div class="titles">审批流程</div>
<el-steps direction="vertical" :active="999"> <el-steps direction="vertical" :active="999">
<el-step <el-step v-for="approveDto in InfoList.approveListDtos" :title="approveDto.taskName"
v-for="approveDto in InfoList.approveListDtos" :key="approveDto.taskId" icon="el-icon-success">
:title="approveDto.taskName"
:key="approveDto.taskId"
icon="el-icon-success"
>
<template slot="description"> <template slot="description">
<el-card
class="box-card" <el-card class="box-card" style="line-height: 25px;font-size: 14px;margin: 15px;">
style="line-height: 25px; font-size: 14px; margin: 15px" <span style="display: block;"><b>操作时间: </b>{{ approveDto.startTime}}</span>
> <span style="display: block;"><b> 操作人:</b>{{ approveDto.approvalUserName}}</span>
<span style="display: block" <span style="display: block;"><b>任务节点: </b>{{ approveDto.taskName}}</span>
><b>操作时间: </b>{{ approveDto.startTime }}</span <span style="display: block;" v-if="approveDto.taskOpinion!=null"><b>审批意见:
> </b>{{'' + approveDto.taskOpinion}}</span>
<span style="display: block"
><b> 操作人:</b>{{ approveDto.approvalUserName }}</span
>
<span style="display: block"
><b>任务节点: </b>{{ approveDto.taskName }}</span
>
<span
style="display: block"
v-if="approveDto.taskOpinion != null"
><b>审批意见: </b>{{ "" + approveDto.taskOpinion }}</span
>
</el-card> </el-card>
</template> </template>
</el-step> </el-step>
</el-steps> </el-steps>
</div> </div>
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="风险评估报告" name="third"> <el-tab-pane label="风险评估报告" name="third">
...@@ -202,32 +108,30 @@ ...@@ -202,32 +108,30 @@
<el-table-column label="所属建筑" align="center" prop="name" /> <el-table-column label="所属建筑" align="center" prop="name" />
<el-table-column label="所属承租户" align="center" prop="type" /> <el-table-column label="所属承租户" align="center" prop="type" />
<el-table-column label="操作" align="center" prop="describe"> <el-table-column label="操作" align="center" prop="describe">
<template> <template slot-scope="scope">
<div> <div>
<el-button size="mini" type="text" icon="el-icon-download" <el-button size="mini" type="text" icon="el-icon-download">下载</el-button>
>下载</el-button
>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
</template> </template>
<script> <script>
import { import {
getPlan, getPlan,
riskListInfo, riskListInfo,
riskList, riskList,
exportRiskList, exportRiskList
} from "@/api/risk/plan"; } from "@/api/risk/plan";
export default {
export default {
data() { data() {
return { return {
activeName: "first", activeName: 'first',
// 遮罩层 // 遮罩层
loading: true, loading: true,
// 选中数组 // 选中数组
...@@ -273,12 +177,12 @@ export default { ...@@ -273,12 +177,12 @@ export default {
rules: {}, rules: {},
reportList: [], reportList: [],
InfoList: {}, InfoList: {},
}; }
}, },
mounted() { mounted() {
// console.log(this.$route.params, 'lll') // console.log(this.$route.params, 'lll')
this.getInfo(this.$route.params.id); this.getInfo(this.$route.params.id)
this.getRiskList(this.$route.params.id); this.getRiskList(this.$route.params.id)
}, },
methods: { methods: {
downList(planId) { downList(planId) {
...@@ -293,22 +197,26 @@ export default { ...@@ -293,22 +197,26 @@ export default {
}); });
}, },
getInfo(id) { getInfo(id) {
riskListInfo(id).then((res) => { riskListInfo(id).then(res => {
this.InfoList = res.data; this.InfoList = res.data
}); })
}, },
getRiskList(id) { getRiskList(id) {
riskList({ planId: id }).then((res) => { riskList({
this.loading = false; planId: id
this.listList = res.rows; }).then(res => {
}); this.loading = false
this.listList = res.rows
})
}, },
exportList(id) { exportList(id) {
console.log(id, "kkkk"); console.log(id, 'kkkk')
this.download("system/risk/plan/exportWord/riskNotification/" + id, {}); this.download('system/risk/plan/exportWord/riskNotification/' + id, {}, `风险告知卡.docx`)
}
}, },
handleClick() {
}, },
handleClick() {},
// 表单重置 // 表单重置
reset() { reset() {
this.form = { this.form = {
...@@ -333,7 +241,7 @@ export default { ...@@ -333,7 +241,7 @@ export default {
createBy: null, createBy: null,
createTime: null, createTime: null,
updateBy: null, updateBy: null,
updateTime: null, updateTime: null
}; };
this.resetForm("form"); this.resetForm("form");
}, },
...@@ -347,33 +255,35 @@ export default { ...@@ -347,33 +255,35 @@ export default {
this.resetForm("queryForm"); this.resetForm("queryForm");
this.handleQuery(); this.handleQuery();
}, },
handleSelectionChange() {}, handleSelectionChange() {
};
}
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.wrapper { .wrapper {
height: 100%; height: 100%;
width: 100%; width: 100%;
padding: 10px; padding: 10px;
box-sizing: border-box; box-sizing: border-box;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
::v-deep .el-tabs__content { ::v-deep .el-tabs__content {
height: calc(100vh - 334px) !important; height: calc(100vh - 334px) !important;
} }
.titles { .titles {
position: relative; position: relative;
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
margin: 10px 0 10px 20px; margin: 10px 0 10px 20px;
color: #666666; color: #666666;
} }
.titles::before { .titles::before {
content: ""; content: "";
width: 8px; width: 8px;
height: 20px; height: 20px;
...@@ -381,9 +291,9 @@ export default { ...@@ -381,9 +291,9 @@ export default {
position: absolute; position: absolute;
left: -14px; left: -14px;
top: 0; top: 0;
} }
.approveResult { .approveResult {
flex: 1; flex: 1;
width: 100%; width: 100%;
height: calc(100vh - 360px) !important; height: calc(100vh - 360px) !important;
...@@ -402,5 +312,6 @@ export default { ...@@ -402,5 +312,6 @@ export default {
padding: 0 0 0 30px; padding: 0 0 0 30px;
border-left: 1px solid #d7d7d7d7; border-left: 1px solid #d7d7d7d7;
} }
}
}
</style> </style>
\ No newline at end of file
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