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/components/reportDialog.vue | 446 ++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 311 insertions(+), 135 deletions(-) diff --git a/src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/report/components/reportDialog.vue b/src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/report/components/reportDialog.vue index 649f583..fac85d8 100644 --- a/src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/report/components/reportDialog.vue +++ b/src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/report/components/reportDialog.vue @@ -1,91 +1,125 @@ <template> - <el-dialog title="新增" :visible.sync="dialogFormVisible" :close-on-click-modal="false" width="800px"> + <el-dialog :title="title" :visible.sync="dialogFormVisible" :close-on-click-modal="false" width="50%"> <el-form ref="dataForm" :rules="dataFormRules" :model="dataForm" label-position="right" label-width="140px" style="" element-loading-text="保存中..."> - <el-form-item label="隐患级别:" prop="level"> - <el-select v-model="dataForm.level" placeholder="请选择" :disabled="isView"> - <el-option - v-for="item in levels" - :key="item.key" - :label="item.value" - :value="item.key"> - </el-option> - </el-select> - </el-form-item> + <el-row :gutter="25"> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> + <el-form-item label="隐患描述" prop="dangerDesc"> + <el-input class="analyseUnit_input" v-model.trim="dataForm.dangerDesc" placeholder="请输入隐患情况描述" clearable></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> + <el-form-item label="隐患名称" prop="dangerCode"> + <el-input class="analyseUnit_input" v-model.trim="dataForm.dangerCode" placeholder="请输入隐患名称" clearable></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> + <el-form-item label="隐患所属部门" prop="depId"> + <el-select v-model="dataForm.depId" class="analyseUnit_input" placeholder="请选择所属部门"> + <el-option + v-for="item in departmentList" + :key="item.id" + :value="item.id" + :label="item.department" + ></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> + <el-form-item label="生产装置" prop="produceDeviceId"> + <el-select class="analyseUnit_input" v-model="dataForm.produceDeviceId" placeholder="请输入生产装置" clearable filterable @change="changeUnit"> + <el-option v-for="item in allProduceDeviceData" :key="item.id" :label="item.produceDeviceName" :value="item.id"></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> + <el-form-item label="风险分析单元" prop="riskUnitId"> + <el-select class="analyseUnit_input" v-model.trim="dataForm.riskUnitId" placeholder="请输入风险分析单元" clearable filterable> + <el-option v-for="item in safetyRiskUnitData" :key="item.id" :label="item.riskUnitName" :value="item.id"></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> + <el-form-item label="隐患来源" prop="dangerSource"> + <el-select class="analyseUnit_input" v-model="dataForm.dangerSource" placeholder="请选择隐患来源" clearable filterable> + <el-option v-for="item in dangerSourceList" :key="item.id" :label="item.name" :value="item.id"></el-option> + </el-select> + </el-form-item> + </el-col> - <el-form-item label="选择整改人:" prop="rectifier"> - <el-input v-model="dataForm.rectifier" readonly style="width: 205px" placeholder="请选择" > + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> + <el-form-item label="隐患等级" prop="dangerLevel"> + <el-select class="analyseUnit_input" v-model="dataForm.dangerLevel" placeholder="请选择隐患等级" clearable filterable> + <el-option v-for="item in dangerLevelList" :key="item.id" :label="item.name" :value="item.id"></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> + <el-form-item label="隐患类型" prop="dangerType"> + <el-select class="analyseUnit_input" v-model="dataForm.dangerType" placeholder="请选择隐患类型" clearable filterable> + <el-option v-for="item in dangerTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> + <el-form-item label="隐患可能后果" prop="dangerResult"> + <el-select class="analyseUnit_input" v-model="dataForm.dangerResult" placeholder="请选择隐患可能后果" clearable filterable> + <el-option v-for="item in dangerResultList" :key="item.id" :label="item.name" :value="item.id"></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12"> + <el-form-item label="隐患产生原因" prop="dangerReason"> + <el-input class="analyseUnit_input" type="textarea" :rows="2" style="padding-bottom: 10px" v-model.trim="dataForm.dangerReason" placeholder="请输入隐患产生原因"></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> + <el-form-item label="整改类型" prop="rectifyType"> + <el-select class="analyseUnit_input" v-model="dataForm.rectifyType" placeholder="请选择整改类型" clearable filterable> + <el-option v-for="item in rectifyTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> + <el-form-item label="整改期限" prop="rectifyTime"> + <el-date-picker type="datetime" value-format="yyyy-MM-dd HH:mm:ss" class="analyseUnit_input" v-model="dataForm.rectifyTime" placeholder="请选择整改期限" clearable> </el-date-picker> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> + <el-form-item label="整改部门" prop="rectifyDepId"> + <el-select v-model="dataForm.rectifyDepId" class="analyseUnit_input" @change="changeExec" placeholder="请选择所属部门" clearable filterable> + <el-option + v-for="item in departmentList" + :key="item.id" + :value="item.id" + :label="item.department" + ></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> + <el-form-item label="整改责任人" prop="liablePersonId"> + <el-select class="analyseUnit_input" v-model="dataForm.liablePersonId" placeholder="请选择整改责任人" clearable filterable> + <el-option v-for="item in execUidList" :key="item.id" :label="item.realname" :value="item.id"></el-option> + </el-select> + </el-form-item> + </el-col> - </el-input> - <el-button style="margin-left: 10px;" type="primary" - @click="showPersonSelect">选择 - </el-button> - </el-form-item> - - <el-form-item label="整改措施:" prop="rectifymeasure"> - <el-input - style="width: 400px" - type="textarea" - :rows="3" - :disabled="isView" - placeholder="请输入内容" - v-model="dataForm.rectifymeasure"> - </el-input> - </el-form-item> - <el-form-item label="整改期限:" prop="rectifydeadline"> - <el-date-picker - v-model="dataForm.rectifydeadline" - type="datetime" - format="yyyy-MM-dd HH:mm" - :picker-options="pickerOptions" - value-format="yyyy-MM-dd HH:mm" - placeholder="选择日期时间"> - </el-date-picker> - </el-form-item> - <el-form-item label="上报说明:" prop="note"> - <el-input - style="width: 400px" - type="textarea" - :rows="3" - :disabled="isView" - placeholder="请输入内容" - v-model="dataForm.note"> - </el-input> - </el-form-item> - - <el-form-item label="上报图片:" v-if="!isView"> - <el-upload - ref="upload" - :action="baseUrl" - :auto-upload="false" - :headers="headers" - :on-change="handleChange" - name="file" - :file-list="fileList" - list-type="picture-card" - multiple - > - <i class="el-icon-plus"></i> - </el-upload> - - </el-form-item> - - <el-form-item label="上报图片:" v-if="isView" > - <el-image - class="upload-img" - v-for='item in imgUrls' - :key='item.id' - :src="item.url" - :preview-src-list="imgPreviewUrls" - style="width:100px;height: 100px;margin: 10px;" - > - </el-image> - </el-form-item> - + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> + <el-form-item label="整改资金" prop="cost"> + <el-input class="analyseUnit_input" type="number" v-model="dataForm.cost" placeholder="请选择整改资金"> </el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12"> + <el-form-item label="整改措施" prop="rectifyDesc"> + <el-input class="analyseUnit_input" type="textarea" :rows="2" style="padding-bottom: 10px" v-model.trim="dataForm.rectifyDesc" placeholder="请输入整改措施"></el-input> + </el-form-item> + </el-col> + </el-row> </el-form> - <div style="margin-top: 20px;margin-left: 140px;" class="dialog-footer" v-if="!isView"> + <div align="right" class="dialog-footer" v-if="!isView"> <el-button @click="dialogFormVisible = false">取消</el-button> <el-button type="primary" @click="trigger2Submit" :disabled="submiting">上报</el-button> </div> @@ -97,18 +131,58 @@ import personSelect from './personSelect' import { hiddenDangerReport } from '@/api/hiddenDanger'; import {getToken} from "@/utils/auth"; + import {modHiddenDangerReport} from "../../../../../../api/hiddenDanger"; export default { name: "reportDialog", data(){ return { + title:'', baseUrl: process.env.BASE_API + 'hiddenDanger/report', headers: { 'Authorization': getToken() }, submiting:false, - levels:[ - {"key":"URGENT","value":"重大隐患"}, - {"key":"COMMON","value":"一般隐患"}, + departmentList: [], + userList: [], + execUidList:[], + allProduceDeviceData: [], + allSafetyRiskUnitData: [], + safetyRiskUnitData: [], + dangerLevelList: [ + { id: 1, name: '一般隐患' }, + { id: 2, name: '重大隐患' } + ], + 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: '其他' } + ], + dangerResultList: [ + { id: 1, name: '无' }, + { id: 2, name: '轻伤' }, + { id: 3, name: '重伤' }, + { id: 4, 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: '其他' } + ], + rectifyTypeList: [ + { id: 1, name: '即查即改' }, + { id: 2, name: '限期整改' } ], pickerOptions:{ disabledDate(now){ @@ -117,19 +191,40 @@ }, fileList: [], dataForm: { - rectifydeadline:'', - rectifymeasure:'', - rectifier:'', - rectifierid:'', - note: '', - level:'' + dangerDesc: null, + dangerCode: null, + depId: null, + produceDeviceId: null, + riskUnitId: null, + dangerSource: null, + dangerLevel: null, + dangerType: null, + dangerReason: null, + dangerResult: null, + rectifyType: null, + rectifyDepId: null, + liablePersonId: null, + rectifyTime: null, + cost: null, + rectifyDesc: null }, dataFormRules:{ - level: [{ required: true, message: '隐患级别不能为空', trigger: 'change' }], - rectifier: [{ required: true, message: '整改人不能为空', trigger: 'change' }], - rectifymeasure: [{ required: true, message: '整改措施不能为空', trigger: 'blur' }], - rectifydeadline: [{ required: true, message: '整改期限不能为空', trigger: 'change' }], - note: [{ required: true, message: '上报说明不能为空', trigger: 'blur' }], + dangerDesc: [{ required: true, message: '请填写隐患情况描述', trigger: 'blur' }], + dangerCode: [{ required: true, message: '请填写隐患名称', trigger: 'blur' }], + depId: [{ required: true, message: '请选择隐患所属部门', trigger: 'change' }], + produceDeviceId: [{ required: true, message: '请选择生产装置', trigger: 'change' }], + riskUnitId: [{ required: true, message: '请选择风险分析单元', trigger: 'change' }], + dangerSource: [{ required: true, message: '请选择隐患来源', trigger: 'change' }], + dangerLevel: [{ required: true, message: '请选择隐患等级', trigger: 'change' }], + dangerType: [{ required: true, message: '请选择隐患类型', trigger: 'change' }], + dangerReason: [{ required: true, message: '请填写隐患产生原因分析', trigger: 'blur' }], + dangerResult: [{ required: true, message: '请选择隐患可能后果', trigger: 'change' }], + rectifyType: [{ required: true, message: '请选择整改类型', trigger: 'change' }], + rectifyDepId: [{ required: true, message: '请选择整改单位', trigger: 'change' }], + liablePersonId: [{ required: true, message: '请选择整改责任人', trigger: 'change' }], + rectifyTime: [{ required: true, message: '请选择整改期限', trigger: 'change' }], + cost: [{ required: true, message: '请选择整改资金', trigger: 'blur' }], + rectifyDesc: [{ required: true, message: '请填写整改内容', trigger: 'blur' }] }, dialogFormVisible: false, isView:false, @@ -141,57 +236,115 @@ methods:{ resetDataForm(){ this.dataForm = { - rectifydeadline:'', - rectifymeasure:'', - rectifier:'', - rectifierid:'', - note: '', - level:'' + dangerDesc: null, + dangerCode: null, + depId: null, + produceDeviceId: null, + riskUnitId: null, + dangerSource: null, + dangerLevel: null, + dangerType: null, + dangerReason: null, + dangerResult: null, + rectifyType: null, + rectifyDepId: null, + liablePersonId: null, + rectifyTime: null, + cost: null, + rectifyDesc: null } }, - show(){ + show(type, value, userList,departmentList, allProduceDeviceData, allSafetyRiskUnitData){ + this.title = type this.dialogFormVisible = true - this.isView = false - this.resetDataForm() + this.userList = JSON.parse(JSON.stringify(userList)) + this.departmentList = departmentList; + this.allProduceDeviceData = JSON.parse(JSON.stringify(allProduceDeviceData)); + this.allSafetyRiskUnitData = allSafetyRiskUnitData; + if(type === '新增'){ + this.dataForm = { + dangerDesc: null, + dangerCode: null, + depId: null, + produceDeviceId: null, + riskUnitId: null, + dangerSource: null, + dangerLevel: null, + dangerType: null, + dangerReason: null, + dangerResult: null, + rectifyType: null, + rectifyDepId: null, + liablePersonId: null, + rectifyTime: null, + cost: null, + rectifyDesc: null + } + }else if(type === '修改'){ + for( let key in this.dataForm){ + this.dataForm[key] = JSON.parse(JSON.stringify(value))[key] + } + this.dataForm.id = JSON.parse(JSON.stringify(value)).id + } + }, trigger2Submit(){ this.$refs["dataForm"].validate(valid =>{ if(valid){ - this.submiting = true - let formData = new FormData() - formData.append('rectifier', this.dataForm.rectifier) - formData.append("rectifierid",this.dataForm.rectifierid) - formData.append("level",this.dataForm.level) - formData.append("rectifymeasure",this.dataForm.rectifymeasure) - formData.append("rectifydeadline",this.dataForm.rectifydeadline) - formData.append("note",this.dataForm.note) - this.fileList.forEach(file=>{ - formData.append("files",file.raw) - }) - hiddenDangerReport(formData).then(res=>{ - if (res.data.code === '200') { - this.dialogFormVisible = false + if(this.title === '新增'){ + this.submiting = true + hiddenDangerReport(this.dataForm).then(res=>{ + if (res.data.code === '200') { + this.dialogFormVisible = false + this.$message({ + message: '创建成功', + type: 'success' + }); + this.$emit("refresh") + }else{ + this.$message({ + message: res.data.message, + type: 'warning' + }); + } + this.fileList = [] + }).catch(err=>{ + console.log(err) this.$message({ - message: '创建成功', - type: 'success' - }); - this.$emit("refresh") - }else{ - this.$message({ - message: res.data.message, + message: "接口错误,请联系管理员", type: 'warning' }); - } - this.fileList = [] - }).catch(err=>{ - console.log(err) - this.$message({ - message: "接口错误,请联系管理员", - type: 'warning' - }); - }).finally(()=>{ + }).finally(()=>{ this.submiting = false - }) + }) + }else{ + this.submiting = true + modHiddenDangerReport(this.dataForm).then(res=>{ + if (res.data.code === '200') { + this.dialogFormVisible = false + this.$message({ + message: '修改成功', + type: 'success' + }); + this.$emit("refresh") + }else{ + this.$message({ + message: res.data.message, + type: 'warning' + }); + } + this.fileList = [] + }).catch(err=>{ + console.log(err) + this.$message({ + message: "接口错误,请联系管理员", + type: 'warning' + }); + }).finally(()=>{ + this.submiting = false + }) + } + }else{ this.$message({ type:'warning', @@ -201,6 +354,20 @@ }) }, + + changeUnit() { + this.dataForm.riskUnitId = null; + this.safetyRiskUnitData = this.allSafetyRiskUnitData.filter((item) => item.produceDeviceId === this.dataForm.produceDeviceId); + }, + + changeExec(){ + if(this.dataForm.rectifyDepId === '') { + this.execUidList = [] + } + this.dataForm.liablePersonId = '' + this.execUidList = this.userList.filter ( item => item.department === this.dataForm.rectifyDepId) + }, + showPersonSelect(){ this.$refs.selectPerson.show(); }, @@ -220,7 +387,16 @@ </script> <style scoped> - +.basic_search{ + display:inline-block; + padding-bottom: 10px; +} +.analyseUnit_input{ + width:90%; +} +.analyseUnit_box{ + width:200px; +} .el-picker-panel__footer .el-button--text.el-picker-panel__link-btn { display: none; } -- Gitblit v1.9.2