From ca151ff4c1cdc4a029f13ac6da7d42e4f8147287 Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期六, 06 八月 2022 16:18:50 +0800 Subject: [PATCH] 重构双重预防 --- src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/report/index.vue | 285 ++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 194 insertions(+), 91 deletions(-) diff --git a/src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/report/index.vue b/src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/report/index.vue index 9eaf8b7..ed85ce3 100644 --- a/src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/report/index.vue +++ b/src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/report/index.vue @@ -1,51 +1,34 @@ <template> <div class="app-container"> <div style="margin: 10px"> - <span class="span-filter-label">单号</span> - <el-input style="width: 140px" v-model="filter.filter.code" ></el-input> - <span class="span-filter-label">状态</span> - <el-select - v-model="filter.filter.status" - class="filter-item" - clearable - @clear="clearStatus" - style="width:150px;margin-bottom: 10px"> - <el-option - v-for="item in reportStatus" - :key="item.key" - :label="item.value" - :value="item.key"> - </el-option> - </el-select> - <span class="span-filter-label">隐患等级</span> - <el-select v-model="filter.filter.level" - clearable - @clear="clearLevel" - placeholder="请选择"> - <el-option - v-for="item in levels" - :key="item.key" - :label="item.value" - :value="item.key"> - </el-option> - </el-select> - - <span class="span-filter-label">整改人</span> - <el-input style="width: 160px" v-model="filter.filter.rectifierName"></el-input> - - <span class="span-filter-label">隐患来源</span> - <el-select v-model="filter.filter.source" clearable placeholder="请选择"> - <el-option - v-for="item in sources" - :key="item.key" - :label="item.value" - :value="item.key"> - </el-option> - </el-select> + <div class="basic_search"> + <span>隐患等级:</span> + <el-select class="analyseUnit_box" v-model="filter.dangerLevel" placeholder="隐患等级" filterable clearable> + <el-option v-for="item in dangerLevelList" :key="item.id" :label="item.name" :value="item.id"></el-option> + </el-select> + </div> + <div class="basic_search"> + <span>隐患来源:</span> + <el-select class="analyseUnit_box" v-model="filter.dangerSource" placeholder="隐患来源" filterable clearable> + <el-option v-for="item in dangerSourceList" :key="item.id" :label="item.name" :value="item.id"></el-option> + </el-select> + </div> + <div class="basic_search"> + <span>隐患状态:</span> + <el-select class="analyseUnit_box" v-model="filter.dangerStatus" placeholder="隐患状态" filterable clearable> + <el-option v-for="item in dangerStatusList" :key="item.id" :label="item.name" :value="item.id"></el-option> + </el-select> + </div> + <div class="basic_search"> + <span>隐患类型:</span> + <el-select class="analyseUnit_box" v-model="filter.dangerType" placeholder="隐患类型" filterable clearable> + <el-option v-for="item in dangerTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option> + </el-select> + </div> <el-button class="filter-item" style="margin-left: 10px;" type="primary" - icon="el-icon-plus" @click="showCreateHandle">新增 + icon="el-icon-plus" @click="showCreateHandle('新增', '')">新增 </el-button> <el-button class="filter-item" style="margin-left: 10px;" type="primary" icon="el-icon-search" @click="queryHandle"/> @@ -60,41 +43,41 @@ highlight-current-row style="width: 100%;" > - <el-table-column type="index" label="序号" align="center" width="80"/> - <el-table-column label="单号" prop="code" align="center" /> - <el-table-column label="状态" prop="status" align="center" > + <el-table-column type="index" label="序号" width="60" /> + <el-table-column prop="dangerDesc" label="隐患情况描述" show-overflow-tooltip min-width="150px"></el-table-column> + <el-table-column prop="produceDeviceName" label="生产装置名称" show-overflow-tooltip min-width="150px"></el-table-column> + <el-table-column prop="riskUnitName" label="风险分析单元名称" show-overflow-tooltip min-width="150px"></el-table-column> + <el-table-column prop="dangerSource" label="隐患来源" show-overflow-tooltip min-width="150px"> <template slot-scope="scope"> - <span >{{scope.row.status}}</span> - <span v-if="new Date(scope.row.rectifydeadline) < new Date() && scope.row.status !== '已完成'" class="overdue-img">逾期</span> + {{ parseNumber(scope.row.dangerSource, '隐患来源') }} </template> </el-table-column> - <el-table-column label="隐患等级" prop="level" align="center" > + <el-table-column prop="dangerLevel" label="隐患等级" show-overflow-tooltip min-width="150px" align="center"> <template slot-scope="scope"> - <el-tag :type="scope.row.level == '重大隐患'?'danger':'warning'">{{scope.row.level}}</el-tag> + <el-tag :type="scope.row.dangerLevel === 1 ? 'warning' : 'danger'"> + {{ parseNumber(scope.row.dangerLevel, '隐患等级') }} + </el-tag> </template> </el-table-column> - <el-table-column label="隐患来源" prop="source" align="center" > + <el-table-column prop="dangerType" label="隐患类型" show-overflow-tooltip min-width="150px"> <template slot-scope="scope"> - <span>{{sources.find(item=>item.key === scope.row.source).value}}</span> + {{ parseNumber(scope.row.dangerType, '隐患类型') }} </template> </el-table-column> - <el-table-column label="上报人" prop="requestor" align="center" /> - <el-table-column label="上报时间" prop="createtime" align="center" /> - <el-table-column label="整改人" prop="rectifier" align="center" /> - - <el-table-column label="整改期限" prop="rectifydeadline" align="center" > + <el-table-column prop="dangerReason" label="隐患产生原因分析" show-overflow-tooltip min-width="150px"></el-table-column> + <el-table-column prop="dangerResult" label="隐患可能导致后果" show-overflow-tooltip min-width="150px" align="center"> <template slot-scope="scope"> - <span v-bind:class="{'overdue':new Date(scope.row.rectifydeadline) < new Date() && scope.row.status !== '已完成'}">{{scope.row.rectifydeadline}} - </span> + <el-tag :type="scope.row.dangerResult === 1 ? 'success' : scope.row.dangerResult === 2 ? 'info' : scope.row.dangerResult === 3 ? 'warning' : 'danger'"> {{ parseNumber(scope.row.dangerResult, '隐患可能导致后果') }}</el-tag> </template> </el-table-column> - <el-table-column label="整改时间" prop="rectifytime" align="center" > - </el-table-column> - <el-table-column label="验收时间" prop="accepttime" align="center" > - </el-table-column> + <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip min-width="150px"></el-table-column> + <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip min-width="200px"></el-table-column> + <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip min-width="150px"></el-table-column> + <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip min-width="200px"></el-table-column> <el-table-column label="操作" align="center" width="240" class-name="small-padding fixed-width"> <template slot-scope="scope"> - <el-button type="text" @click="viewHandle(scope.row)">查看</el-button> + <el-button type="text" @click="showCreateHandle('修改', scope.row)">修改</el-button> + <el-button type="text" style="color: red" @click="deleteById(scope.row)">删除</el-button> </template> </el-table-column> </el-table> @@ -124,6 +107,11 @@ import {hiddenDangerReportList} from '@/api/hiddenDanger'; import reportView from '../components/reportView' import reportDialog from './components/reportDialog' + import {getAllProductionDeviceList} from "../../../../../api/riskSource"; + import {getAllSafetyRiskAnalyseUnitList} from "../../../../../api/riskLevelManage"; + import {getDepartmentList} from "../../../../../api/departmentManage"; + import {safetyInspectionItemName} from "../../../../../api/safetySelfInspection"; + import {deleteHiddenDangerReport} from "../../../../../api/hiddenDanger"; export default { name: "report", @@ -137,20 +125,48 @@ tableKey: 0, tableData:[], listLoading: true, - levels:[ - {"key":"URGENT","value":"重大隐患"}, - {"key":"COMMON","value":"一般隐患"}, + departmentList: [], + dangerLevelList: [ + { id: 1, name: '一般隐患' }, + { id: 2, name: '重大隐患' } ], - sources:[ - {"key":1,"value":"隐患上报"}, - {"key":2,"value":"巡检上报"}, + dangerSourceList: [ + { id: 1, name: '日常排查' }, + { id: 2, name: '综合性排查' }, + { id: 3, name: '专业性排查' }, + { id: 4, name: '季节性排查' }, + { id: 5, name: '重点时段及节假日前排查' }, + { id: 6, name: '事故类比排查' }, + { id: 7, name: '复产复工前排查' }, + { id: 8, name: '外聘专家诊断式排查' }, + { id: 9, name: '管控措施失效' }, + { id: 10, name: '其他' } ], - reportStatus:[ - {"key":"TORECTIFY","value":"待整改"}, - {"key":"TOACCEPT","value":"整改待验收"}, - {"key":"REJECTED","value":"驳回待整改"}, - {"key":"COMPLETED","value":"已完成"}, + dangerStatusList: [ + { id: 0, name: '整改中' }, + { id: 1, name: '待验收' }, + { id: 2, name: '延期整改' }, + { id: 4, name: '超期未整改' }, + { id: 9, name: '已验收' } ], + dangerTypeList: [ + { id: 1, name: '安全' }, + { id: 2, name: '工艺' }, + { id: 3, name: '电气' }, + { id: 4, name: '仪表' }, + { id: 5, name: '消防' }, + { id: 6, name: '总图' }, + { id: 7, name: '设备' }, + { id: 8, name: '其他' } + ], + dangerResultList: [ + { id: 1, name: '无' }, + { id: 2, name: '轻伤' }, + { id: 3, name: '重伤' }, + { id: 4, name: '死亡' } + ], + allProduceDeviceData: [], + allSafetyRiskUnitData: [], dataForm: { rectifydeadline:'', rectifymeasure:'', @@ -161,20 +177,22 @@ }, isSupervision: '', filter:{ - pageIndex:1, - pageSize:10, - filter:{ - code:'', - status:null, - level:null, - rectifierName:'', - } + pageIndex: 1, + pageSize: 10, + dangerLevel: null, + dangerSource: null, + dangerStatus: null, + dangerType: null }, } }, created() { this.hiddenDangerList(); + this.getDepartmentData(); + this.getUser(); + this.getAllProduceDeviceData(); + this.getAllSafetyRiskEventData(); }, methods: { queryHandle: function () { @@ -191,8 +209,8 @@ level:'' } }, - showCreateHandle() { - this.$refs.reportDialog.show() + showCreateHandle(type, value) { + this.$refs.reportDialog.show(type, value,this.userList, this.departmentList, this.allProduceDeviceData, this.allSafetyRiskUnitData) }, viewHandle: function (row) { this.$refs.reportView.showDialog("查看",row) @@ -222,8 +240,8 @@ hiddenDangerReportList(this.filter) .then(res=>{ if (res.data.code === '200') { - this.tableData = res.data.result.records - this.recordTotal = res.data.result.total + this.tableData = res.data.data + this.recordTotal = res.data.count } else{ this.$message({message: res.data.message, type: 'warning'}); @@ -239,12 +257,87 @@ }, - - clearStatus(){ - this.filter.filter.status = null + async getUser(){ + let res = await safetyInspectionItemName() + if(res.data.code === '200'){ + this.userList = res.data.result + }else{ + this.$message({ + message:res.data.message, + type:'warning' + }) + } }, - clearLevel(){ - this.filter.filter.level = null + + //获取生产装置列表 + async getAllProduceDeviceData () { + let res = await getAllProductionDeviceList(); + if (res.data.code === '200') { + this.allProduceDeviceData = JSON.parse(JSON.stringify(res.data.data)); + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + }, + + // 获取安全风险分析单元数据 + async getAllSafetyRiskEventData () { + let res = await getAllSafetyRiskAnalyseUnitList(); + if (res.data.code === '200') { + this.allSafetyRiskUnitData = JSON.parse(JSON.stringify(res.data.data)); + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + }, + + async getDepartmentData(){ + let res = await getDepartmentList({pageSize:1000,pageIndex:1}) + if(res.data.code === '200'){ + this.departmentList = res.data.result.result + }else{ + this.$message({ + message:res.data.message, + type:'warning' + }) + if(res.data.code === '50001'){ + this.riskSourceData = [] + } + } + }, + + deleteById(val){ + this.$confirm('删除此条信息,是否继续','提示',{ + confirmButtonText:'确定', + cancelButtonText:'取消', + type:'warning', + }).then(()=> { + deleteHiddenDangerReport({id:val.id}).then( ()=>{ + this.hiddenDangerList() + this.$notify({ + title:'成功', + message:'删除成功', + type:'success', + duration:2000, + }) + }) + }) + }, + + parseNumber(value, type){ + if (type === '隐患来源') { + return this.dangerSourceList.find((item) => item.id === value).name; + } else if (type === '隐患等级') { + return this.dangerLevelList.find((item) => item.id === value).name; + } else if (type === '隐患类型') { + return this.dangerTypeList.find((item) => item.id === value).name; + } else { + return this.dangerResultList.find((item) => item.id === value).name; + } } } @@ -277,4 +370,14 @@ padding: 1px 3px 0 3px; } + .basic_search{ + display:inline-block; + padding-bottom: 10px; + } + .analyseUnit_input{ + width:90%; + } + .analyseUnit_box{ + width:200px; + } </style> -- Gitblit v1.9.2