| | |
| | | <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> |
| | | <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"/> |
| | |
| | | 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="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="dangerType" label="隐患类型" show-overflow-tooltip min-width="150px"> |
| | | <template slot-scope="scope"> |
| | | <span v-bind:class="{'overdue':new Date(scope.row.rectifydeadline) < new Date() && scope.row.status !== '已完成'}">{{scope.row.rectifydeadline}} |
| | | </span> |
| | | {{ parseNumber(scope.row.dangerType, '隐患类型') }} |
| | | </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 label="操作" align="center" width="240" class-name="small-padding fixed-width"> |
| | | <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"> |
| | | <el-button type="text" @click="viewHandle(scope.row)">查看</el-button> |
| | | <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 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" fixed="right"> |
| | | <template slot-scope="scope"> |
| | | <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> |
| | |
| | | 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", |
| | |
| | | tableKey: 0, |
| | | tableData:[], |
| | | listLoading: true, |
| | | levels:[ |
| | | {"key":"URGENT","value":"紧急"}, |
| | | {"key":"COMMON","value":"一般"}, |
| | | departmentList: [], |
| | | dangerLevelList: [ |
| | | { id: 1, name: '一般隐患' }, |
| | | { id: 2, name: '重大隐患' } |
| | | ], |
| | | reportStatus:[ |
| | | {"key":"TORECTIFY","value":"待整改"}, |
| | | {"key":"TOACCEPT","value":"整改待验收"}, |
| | | {"key":"REJECTED","value":"驳回待整改"}, |
| | | {"key":"COMPLETED","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: '其他' } |
| | | ], |
| | | 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:'', |
| | |
| | | }, |
| | | 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 () { |
| | |
| | | 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) |
| | |
| | | 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'}); |
| | |
| | | |
| | | }, |
| | | |
| | | |
| | | 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; |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | padding: 1px 3px 0 3px; |
| | | |
| | | } |
| | | .basic_search{ |
| | | display:inline-block; |
| | | padding-bottom: 10px; |
| | | } |
| | | .analyseUnit_input{ |
| | | width:90%; |
| | | } |
| | | .analyseUnit_box{ |
| | | width:200px; |
| | | } |
| | | </style> |