Commit b01edaf0 authored by kaitly205422@163.com's avatar kaitly205422@163.com

Merge branch 'develop' of http://git.censoft.com.cn/rongtong/ruoyi-ui into develop

parents cde37b70 fcc624d2
...@@ -57,6 +57,7 @@ ...@@ -57,6 +57,7 @@
"js-cookie": "3.0.1", "js-cookie": "3.0.1",
"jsencrypt": "3.0.0-rc.1", "jsencrypt": "3.0.0-rc.1",
"jspdf": "^2.5.1", "jspdf": "^2.5.1",
"moment": "^2.29.4",
"nprogress": "0.2.0", "nprogress": "0.2.0",
"postcss-pxtorem": "^5.1.1", "postcss-pxtorem": "^5.1.1",
"quill": "1.3.7", "quill": "1.3.7",
......
import request from '@/utils/request'
// 查询巡查执行管理列表
export function riskUserPatrolList(query) {
return request({
url: '/risk/riskUserPatrol/list',
method: 'get',
params: query
})
}
\ No newline at end of file
...@@ -181,6 +181,20 @@ export const dynamicRoutes = [ ...@@ -181,6 +181,20 @@ export const dynamicRoutes = [
}, },
], ],
}, },
{
path: "/riskLedger/detail",
component: Layout,
hidden: true,
permissions: ["system:dict:list"],
children: [
{
path: "riskDetail",
component: () => import("@/views/riskLedger/detail"),
name: "riskDetail",
meta: { title: "风险台账", activeMenu: "/riskLedger/detail" },
},
],
},
{ {
path: "/risk/plan/inherentdata", path: "/risk/plan/inherentdata",
component: Layout, component: Layout,
......
...@@ -77,14 +77,14 @@ ...@@ -77,14 +77,14 @@
<p>暂无数据请通过添加方式创建巡查岗位</p> <p>暂无数据请通过添加方式创建巡查岗位</p>
</div> </div>
<!-- 添加或修改现状风险岗位对话框 --> <!-- 添加或修改现状风险岗位对话框 -->
<el-dialog :title="title" :visible.sync="open" width="50%" append-to-body> <el-dialog :title="title" :visible.sync="open" width="60%" append-to-body>
<el-tabs v-model="activeName"> <el-tabs v-model="activeName">
<el-tab-pane label="基础信息" name="first"> <el-tab-pane label="基础信息" name="first">
<el-form ref="form" :model="form" :rules="rules" label-width="84px"> <el-form ref="form" :model="form" :rules="rules" label-width="84px">
<el-form-item label="岗位名称" prop="riskPostName"> <el-form-item label="岗位名称" prop="riskPostName">
<el-input v-model="form.riskPostName" placeholder="请输入岗位名称" /> <el-input v-model="form.riskPostName" placeholder="请输入岗位名称" />
</el-form-item> </el-form-item>
<el-form-item label="岗位类型" prop="patrolType"> <!-- <el-form-item label="岗位类型" prop="patrolType">
<el-select v-model="form.patrolType" placeholder="请选择岗位类型" style="width:100%"> <el-select v-model="form.patrolType" placeholder="请选择岗位类型" style="width:100%">
<el-option <el-option
v-for="dict in patrolTypeList" v-for="dict in patrolTypeList"
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
:value="dict.value" :value="dict.value"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item> -->
<el-form-item label="岗位描述" prop="riskPostDesc"> <el-form-item label="岗位描述" prop="riskPostDesc">
<el-input type="textarea" v-model="form.riskPostDesc" placeholder="请输入岗位描述" /> <el-input type="textarea" v-model="form.riskPostDesc" placeholder="请输入岗位描述" />
</el-form-item> </el-form-item>
...@@ -109,7 +109,40 @@ ...@@ -109,7 +109,40 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="清单匹配" name="second"></el-tab-pane> <el-tab-pane label="清单匹配" name="second">
<el-form ref="listForm" :model="listForm" :rules="listRules" label-width="120px" label-position="top">
<el-form-item label="匹配模式" prop="postState">
<el-radio-group v-model="listForm.postState" @change="radioChange">
<el-radio label="1">一岗一人巡查模式</el-radio>
<el-radio label="0">一岗多人巡查模式</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="岗位清单配置" prop="hdType" v-if="listForm.postState == '1'">
<el-input v-model="listForm.hdType" style="width:80%;margin-right:20px"></el-input>
<el-button type="primary">隐患清单库</el-button>
</el-form-item>
<el-form-item label="岗位清单配置" prop="hdType" v-if="listForm.postState == '0'">
<el-table :data="listUserTabel" >
<el-table-column type="index" label="序号" width="50"/>
<el-table-column label="姓名" align="center" prop="userName" width="140" :show-overflow-tooltip="true"/>
<el-table-column label="工号" align="center" prop="nickName" width="140" :show-overflow-tooltip="true" />
<el-table-column label="状态" align="center" prop="postName" width="140" :show-overflow-tooltip="true" />
<el-table-column label="巡查清单" align="center" prop="postName" :show-overflow-tooltip="true" />
<el-table-column label="操作" align="center" width="140">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="selectList(scope.row)"
>清单库选择</el-button>
</template>
</el-table-column>
</el-table>
</el-form-item>
<p> <span style="color: red;">系统提示:可根据工程进度调整巡查类型及内容。</span></p>
</el-form>
</el-tab-pane>
</el-tabs> </el-tabs>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
...@@ -157,7 +190,14 @@ export default { ...@@ -157,7 +190,14 @@ export default {
rules:{ rules:{
riskPostName:[{ required: true, message: '请输入岗位名称', trigger: 'blur' }] riskPostName:[{ required: true, message: '请输入岗位名称', trigger: 'blur' }]
}, },
activeName:'first' activeName:'first',
listRules:{
postState:[{ required: true, message: '请选择匹配模式', trigger: 'change' }]
},
listForm:{//清单匹配
postState:'1'
} ,
listUserTabel:[]
}; };
}, },
created() { created() {
...@@ -356,4 +396,7 @@ export default { ...@@ -356,4 +396,7 @@ export default {
margin-left: 10px; margin-left: 10px;
cursor: pointer; cursor: pointer;
} }
::v-deep .el-form-item--medium .el-form-item__content{
margin-left: 20px;
}
</style> </style>
<template>
<div class="app-container">
<el-row>
<el-col :span="5">
<h3>巡查日历</h3>
<el-calendar v-model="calendarDate" ></el-calendar>
</el-col>
<el-col :span="19" style="padding: 0 40px;">
<h3>今日巡查信息</h3>
<div class="projectName">
<div>
<el-select v-model="queryParams.projectId" placeholder="请选择项目" style="width:250px;" @change="projectChange">
<el-option
v-for="item in projectList"
:key="item.projectId"
:label="item.projectName"
:value="item.projectId">
</el-option>
</el-select>
<el-select v-model="queryParams.userId" placeholder="请选择人员" style="width:150px;margin: 0 20px">
<el-option
v-for="item in projectUserList"
:key="item.userId"
:label="item.nickName"
:value="item.userId">
</el-option>
</el-select>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</div>
<div class="projectData">
<span class="shuxian"></span>
<span class="dataWrap">
<span>已巡查人数</span>
<span>3</span>
</span>
<span class="shuxian"></span>
<span class="dataWrap">
<span>未巡查人数</span>
<span>3</span>
</span>
<span class="shuxian"></span>
<span class="dataWrap">
<span>上报异常</span>
<span>3</span>
</span>
<span class="shuxian"></span>
</div>
</div>
<div>
<el-tabs v-model="activeName" @tab-click="tabChange">
<el-tab-pane label="全部" name="0">
</el-tab-pane>
<el-tab-pane label="已完成" name="1">
</el-tab-pane>
<el-tab-pane label="未完成" name="2">
</el-tab-pane>
</el-tabs>
<el-table :data="patrolInfo" v-loading="loading" :span-method="objectSpanMethod">
<el-table-column label="人员信息" align="center" prop="nickName" width="350">
<template slot-scope="scope">
<span>{{scope.row.nickName}}</span>
<span style="margin:0 20px;">{{scope.row.riskPostName}}</span>
</template>
</el-table-column>
<el-table-column label="巡查信息" align="center" prop="">
<template slot-scope="scope">
<span class="infoWrap">
<span>{{scope.row.patrolType}}</span>
<span style="margin:0 60px;">{{scope.row.status}}</span>
<span v-if="scope.row.status == '已巡查'">上报异常:{{scope.row.delFlag}}</span>
<span v-if="scope.row.status == '未巡查'">截止时间:{{scope.row.validityTime}}</span>
</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="200">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="getDetail(scope.row)"
>查看</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</el-col>
</el-row>
</div>
</template>
<script type="text/ecmascript-6">
import { riskUserPatrolList } from '@/api/risk/riskUserPatrol'
import { listCurrentProject } from '@/api/risk/currentProject'
import { userCurrentRiskPost } from "@/api/system/currentRiskPost";
let moment = require("moment");
export default {
name: '',
data() {
return {
calendarDate: new Date(),
projectList:[],
projectUserList:[],
patrolInfo:[],
activeName:'0',
loading: true,
total:0,
queryParams:{
pageNum: 1,
pageSize: 10,
startTime:'',
status:'',
projectId:'',
userId:''
},
spanArr:[],
pos:'',
}
},
watch:{
calendarDate(val, oldVal) {
if (val && moment(val).format("YYYY-MM-DD") == moment().format("YYYY-MM-DD")) {
console.log("点击了‘今天’按钮");
} else if (val && moment(val).toDate() < moment(oldVal).startOf("month").toDate()) {
console.log("点击了‘上个月’按钮");
} else if (val && moment(val).toDate() > moment(oldVal).endOf("month").toDate()) {
console.log("点击了‘下个月’按钮");
} else {
console.log("点击了" + moment(val).format("YYYY-MM") + "-" + this.calendarDate.getDate());
this.queryParams.startTime = `${moment(val).format("YYYY-MM")}-${this.calendarDate.getDate()}`
}
},
},
created(){
this.getProjectList()
},
mounted() {
this.getList();
},
methods: {
/** 查询基础数据-项目列表 */
getList() {
this.loading = true;
riskUserPatrolList(this.queryParams).then((response) => {
this.patrolInfo = response.rows;
this.patrolInfo.forEach((item) => {
if (item.status == '0' ) {
item.status = '未巡查'
}else if (item.status == '1') {
item.status = '已巡查'
}else if (item.status == '2') {
item.status = '已请假'
}else if (item.status == '3') {
item.status = '已过期'
}
if (item.patrolType == '0' ) {
item.patrolType = '日查'
}else if (item.patrolType == '1') {
item.patrolType = '周查'
}else if (item.patrolType == '2') {
item.patrolType = '月查'
}else if (item.patrolType == '3') {
item.patrolType = '季查'
}else if (item.patrolType == '4') {
item.patrolType = '年查'
}
})
this.spanArr = [],
this.pos = ''
this.patrolInfo = this.groupArr(this.patrolInfo, 'nickName')
this.getSpanArrData(this.patrolInfo, 'nickName')
this.total = response.total;
this.loading = false;
});
},
// 项目列表
getProjectList() {
let params = {
pageNum: 1,
pageSize: 999,
userId : this.$store.getters.userId
}
listCurrentProject(params).then((response) => {
this.projectList = response.rows;
});
},
/** 查询人员列表 */
getUserList() {
let params = {
pageNum: 1,
pageSize: 999,
projectId : this.queryParams.projectId
}
userCurrentRiskPost(params).then(response => {
this.projectUserList = response.rows;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
startTime:'',
status:'',
projectId:'',
userId:''
}
this.activeName = '0'
this.handleQuery();
},
tabChange(e){
if (e.name == '2') {
this.queryParams.status = '0'
}else if (e.name == '1') {
this.queryParams.status = '1'
}else{
this.queryParams.status = ''
}
this.getList();
},
// 选择项目是查询成员
projectChange(e){
this.getUserList()
},
// 详情
getDetail(){
},
//把相同项目名称排序到一起
groupArr(list,field){
let fieldList = [];
let groupList=[];
// 获取数组指定字段值,并去重
list.map((element)=>{
if(fieldList.indexOf(element[field])===-1){
fieldList.push(element[field])
}
})
for(let i=0;i<fieldList.length;i++){
//过滤出匹配到的数据
let arr = list.filter((element)=>{
return element[field]===fieldList[i];
})
groupList.push(arr)
}
let data = []
groupList.forEach((item,index )=> {
data = [...data, ...item]
});
return data;
},
//获取合并行数据
getSpanArrData(data, name) {
for (let i = 0; i < data.length; i++) {
//如果是第一条记录(索引为0),向数组中加入1,并设置索引位置
if (i === 0) {
this.spanArr.push(1);
this.pos = 0; //spanArr的索引
} else {
//如果不是第一条记录,则判断它与前一条记录是否相等
//根据相同 扣分类别名称 进行合并,根据需要可进行修改
if (data[i][name] === data[i - 1][name]) {
//如果相等,则向spanArr中添入元素0,并将前一位元素+1,表示合并行数+1
this.spanArr[this.pos] += 1;
this.spanArr.push(0);
} else {
this.spanArr.push(1);
this.pos = i;
}
}
}
},
// 合并行
objectSpanMethod({ row, column, rowIndex, columnIndex }){
if (columnIndex === 0) {
const _row = this.spanArr[rowIndex];
const _col = _row > 0 ? 1 : 0;
return {
// [0,0] 表示这一行不显示, [2,1]表示行的合并数
rowspan: _row,
colspan: _col,
};
}
},
}
}
</script>
<style scoped lang='scss'>
.app-container{
padding-top: 0 !important;
}
::v-deep .el-calendar-table .el-calendar-day{
height: 50px;
}
.projectName{
display: flex;
align-items: center;
justify-content: space-between;
padding-right: 0px;
}
.projectData{
display: flex;
align-items: center;
justify-content: space-evenly;
.dataWrap{
height: 100px;
font-size: 14px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-evenly;
padding: 0 40px;
color: #7c7c7c;
:last-child{
color: #278CFB;
font-size: 28px;
}
}
.shuxian{
display: inline-block;
width: 2px;
height: 40px;
background-color: #e7e5e5;
}
}
.infoWrap{
display: flex;
align-items: center;
justify-content: start;
padding: 0 50px 0 80px;
}
</style>
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="90px"
>
<el-form-item label="区域公司" prop="deptName">
<el-input
v-model="queryParams.deptName"
placeholder="请输入区域公司"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.projectName"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="所属城市" prop="city">
<el-input
v-model="queryParams.city"
placeholder="请输入所属城市"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目业态" prop="businessFormat">
<el-input
v-model="queryParams.businessFormat"
placeholder="请输入项目业态"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="固有风险危险源名称" prop="inherentName">
<el-input
v-model="queryParams.inherentName"
placeholder="请输入固有风险危险源名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="固有风险风险等级" prop="inherentLevel">
<el-select
v-model="queryParams.inherentLevel"
placeholder="请选择固有风险风险等级"
clearable
>
<el-option
v-for="dict in dict.type.risk_plan_level"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="现有风险危险源名称" prop="existingName">
<el-input
v-model="queryParams.existingName"
placeholder="请输入现有风险危险源名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="现有风险风险等级" prop="existingLevel">
<el-select
v-model="queryParams.existingLevel"
placeholder="请选择现有风险风险等级"
clearable
>
<el-option
v-for="dict in dict.type.risk_plan_level"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="风险点位置" prop="presenceLocation">
<el-input
v-model="queryParams.presenceLocation"
placeholder="请输入风险点位置"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="可能导致的事故后果" prop="listType">
<el-input
v-model="queryParams.listType"
placeholder="请输入可能导致的事故后果"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
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>
<el-row class="mb8">
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出</el-button
>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList">
</right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="inherentList"
@selection-change="handleSelectionChange"
>
<el-table-column label="项目信息" align="center" fixed width="500">
<el-table-column
label="区域公司"
align="center"
prop="deptName"
width="100"
/>
<el-table-column
label="项目名称"
align="center"
prop="projectName"
width="100"
>
<template slot-scope="scope">
<el-popover
placement="top-start"
title="项目名称"
width="200"
trigger="hover"
:content="scope.row.projectName"
>
<span slot="reference">{{
scope.row.projectName.length > 10
? scope.row.projectName.substring(0, 10) + "..."
: scope.row.projectName
}}</span>
</el-popover>
</template>
</el-table-column>
<el-table-column
label="所属城市"
align="center"
prop="city"
width="100"
/>
<el-table-column
label="项目业态"
align="center"
prop="businessFormat"
width="100"
/>
<el-table-column
label="项目类型"
align="center"
prop="type"
width="100"
/>
</el-table-column>
<el-table-column label="项目风险清单" align="center">
<el-table-column label="固有风险" align="center">
<el-table-column
label="危险源名称"
align="center"
prop="inherentName"
width="100"
/>
<el-table-column
label="风险等级"
align="center"
prop="inherentLevel"
width="100"
/>
</el-table-column>
<el-table-column label="现有风险" align="center">
<el-table-column
label="危险源名称"
align="center"
prop="existingName"
width="100"
/>
<el-table-column
label="风险等级"
align="center"
prop="existingLevel"
width="100"
/>
</el-table-column>
<el-table-column
label="风险点位置"
align="center"
prop="presenceLocation"
width="100"
/>
<el-table-column
label="可能导致的事故后果"
align="center"
prop="listType"
width="100"
>
<template slot-scope="scope">
<el-popover
placement="top-start"
title="项目名称"
width="200"
trigger="hover"
:content="scope.row.listType"
>
<span slot="reference">{{
scope.row.listType.length > 10
? scope.row.listType.substring(0, 10) + "..."
: scope.row.listType
}}</span>
</el-popover>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="项目整体风险等级" align="center">
<el-table-column
label="固有风险"
align="center"
prop="inherentProjectLevel"
width="100"
/>
<el-table-column
label="现状风险"
align="center"
prop="existingProjectLevel"
width="100"
/>
</el-table-column>
<el-table-column label="风险管控" align="center">
<el-table-column
label="应采取的管控措施"
align="center"
prop="inherentMeasuresAdministration"
width="100"
>
<template slot-scope="scope">
<el-popover
placement="top-start"
title="应采取的管控措施"
width="200"
trigger="hover"
:content="scope.row.inherentMeasuresAdministration"
>
<span slot="reference">{{
scope.row.inherentMeasuresAdministration &&
scope.row.inherentMeasuresAdministration.length > 10
? scope.row.inherentMeasuresAdministration.substring(0, 10) +
"..."
: scope.row.inherentMeasuresAdministration
}}</span>
</el-popover>
</template>
</el-table-column>
<el-table-column
label="已采取的管控措施"
align="center"
prop="existingMeasuresAdministration"
width="100"
>
<template slot-scope="scope">
<el-popover
placement="top-start"
title="已采取的管控措施"
width="200"
trigger="hover"
:content="scope.row.existingMeasuresAdministration"
>
<span slot="reference">{{
scope.row.existingMeasuresAdministration &&
scope.row.existingMeasuresAdministration.length > 10
? scope.row.existingMeasuresAdministration.substring(0, 10) +
"..."
: scope.row.existingMeasuresAdministration
}}</span>
</el-popover>
</template>
</el-table-column>
<el-table-column label="分级管控" align="center">
<el-table-column
label="管控责任单位"
align="center"
prop="measuresDeptName"
width="100"
/>
<el-table-column
label="管控责任人"
align="center"
prop="measuresUserName"
width="100"
/>
<el-table-column
label="人员联系方式"
align="center"
prop="measuresUserPhone"
width="100"
/>
</el-table-column>
</el-table-column>
<el-table-column label="重大危险源管理" align="center">
<el-table-column
label="是否存在重大危险源"
align="center"
prop="majorHazardSource"
width="100"
/>
<el-table-column
label="重大危险源名称"
align="center"
prop="hazardSourceName"
width="100"
/>
<el-table-column
label="重大危险源描述"
align="center"
prop="majorHazardDescription"
width="100"
/>
</el-table-column>
<el-table-column
label="判定依据"
align="center"
prop="referenceBasis"
width="100"
/>
<el-table-column label="操作" align="center" prop="describe">
<template slot-scope="scope">
<div>
<router-link
:to="'/risk/plan/inherentdata/index/' + scope.row.id"
class="link-type"
>
<el-button size="mini" type="text" icon="el-icon-view"
>详情</el-button
>
</router-link>
</div>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import { inherentListList } from "@/api/risk/existing";
export default {
name: "inherent",
dicts: ["risk_plan_level"],
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 固有风险清单库表格数据
inherentList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
name: null,
buildingName: null,
floorName: null,
roomName: null,
level: null,
factor: null,
type: null,
presenceLocation: null,
},
// 表单参数
form: {},
// 表单校验
rules: {},
};
},
created() {
this.getList();
},
methods: {
/** 查询固有风险清单库列表 */
getList() {
this.loading = true;
inherentListList(this.queryParams).then((response) => {
this.inherentList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
name: null,
buildingName: null,
floorName: null,
roomName: null,
level: null,
factor: null,
type: null,
level: null,
riskLikelihood: null,
riskSeverity: null,
presenceLocation: null,
pictureFileIds: null,
measuresProject: null,
measuresProjectFileIds: null,
measuresAdministration: null,
measuresDeptName: null,
measuresUserName: null,
measuresUserPhone: null,
measuresAdministrationFileIds: null,
hazardSourceName: null,
majorHazardSource: null,
majorHazardSourceDescription: null,
measuresEmergency: null,
measuresEmergencyFileIds: null,
referenceBasis: null,
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
exportList(id) {
this.download("system/risk/plan/exportWord/riskNotification/" + id, {});
},
showDrawCanvas(floorId) {
this.$router.push({
name: "drawCanvas",
params: {
floorId: floorId,
},
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"/system/risk/plan/exportExcel/InherentList",
{
...this.queryParams,
},
`固有风险台账_${new Date().getTime()}.xls`
);
},
},
};
</script>
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="项目名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="经营状态" prop="businessStatus">
<el-input
v-model="queryParams.businessStatus"
placeholder="请输入经营状态"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目业态" prop="business">
<el-select
v-model="queryParams.business"
placeholder="请选择项目业态"
clearable
>
<el-option
v-for="dict in dict.type.risk_project_business"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="所属区域" prop="deptId">
<treeselect
v-model="queryParams.deptId"
:options="deptOptions"
:show-count="true"
placeholder="请选择所属区域"
style="width: 250px"
/>
</el-form-item>
<el-form-item label="所在城市" prop="city">
<el-input
v-model="queryParams.city"
placeholder="请输入所在城市"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="详细地址" prop="address">
<el-input
v-model="queryParams.address"
placeholder="请输入详细地址"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="物业" prop="propertyManagement">
<el-select
v-model="queryParams.propertyManagement"
placeholder="请选择是否为物业"
clearable
>
<el-option key="1" label="是" value="true" />
<el-option key="0" label="否" value="false" />
</el-select>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="queryParams.status"
placeholder="请选择状态"
clearable
>
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="primary"
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>
<el-row>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="projectList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" align="center">
<template slot-scope="scope">
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="项目名称" align="center" prop="name" />
<el-table-column label="项目类型" align="center" prop="type" />
<el-table-column label="项目业态" align="center" prop="business" />
<el-table-column label="所属区域" align="center" prop="deptName" />
<el-table-column label="所在城市" align="center" prop="city" />
<el-table-column label="详细地址" align="center" prop="address" />
<el-table-column label="状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag
:options="dict.type.sys_normal_disable"
:value="scope.row.status"
/>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="showDetail(scope.row)"
>查看风险台账</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import { listProject } from "@/api/ledger/project/";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "Project",
dicts: ["sys_normal_disable", "data_source", "risk_project_business"],
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
userTotal: 0,
// 基础数据-项目表格数据
projectList: [],
// 部门树选项
deptOptions: undefined,
// 弹出层标题
title: "",
// 用户表格数据
userList: null,
// 是否显示弹出层
open: false,
powerOpen: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
name: null,
type: null,
deptId: null,
city: null,
address: null,
source: null,
status: null,
},
queryUserParams: {
pageNum: 1,
pageSize: 10,
projectId: undefined,
userName: undefined,
},
// 表单参数
form: {
businessStatus: "",
},
// 表单校验
rules: {},
projectId: "",
userPost: null,
postList: [],
userInfoData: {},
};
},
watch: {
// 根据名称筛选部门树
deptName(val) {
this.$refs.tree.filter(val);
},
},
created() {
this.getList();
},
methods: {
/** 查询基础数据-项目列表 */
getList() {
this.loading = true;
listProject(this.queryParams).then((response) => {
this.projectList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
name: null,
type: null,
deptId: null,
city: null,
address: null,
source: null,
status: null,
delFlag: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
showDetail(obj) {
this.$router.push({
name: "/riskLe",
params: {
projectId: obj.id,
},
});
},
},
};
</script>
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