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/rectify/components/rectifyDialog.vue | 417 +++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 245 insertions(+), 172 deletions(-) diff --git a/src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/rectify/components/rectifyDialog.vue b/src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/rectify/components/rectifyDialog.vue index 855b925..77dd094 100644 --- a/src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/rectify/components/rectifyDialog.vue +++ b/src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/rectify/components/rectifyDialog.vue @@ -1,160 +1,104 @@ <template> - <el-dialog title="整改" :visible.sync="dialogFormVisible" - :modal-append-to-body="false" :close-on-click-modal="false" width="800px"> - <el-form ref="dataForm" :rules="dataFormRules" :model="dataForm" label-position="right" label-width="140px" - style="" element-loading-text="保存中..."> + <div> + <el-dialog title="查看" :visible.sync="dialogFormVisible" + :modal-append-to-body="false" :close-on-click-modal="false" width="800px"> + <el-form ref="dataForm" :rules="dataFormRules" :model="dataForm" label-position="right" label-width="140px" + style="" element-loading-text="保存中..."> + <el-row :gutter="35"> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="整改内容说明" prop="rectifyDesc"> + <el-input class="analyseUnit_input" type="textarea" :rows="2" v-model.trim="dataForm.rectifyDesc" readonly></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="整改类型" prop="rectifyType"> + <el-select class="analyseUnit_input" v-model="dataForm.rectifyType" readonly> + <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="24" class="mb20"> + <el-form-item label="整改部门" prop="rectifyDepId"> + <el-select v-model="dataForm.rectifyDepId" class="analyseUnit_input" 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-form-item label="隐患级别:"> - <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-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" 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 userList" :key="item.id" :label="item.realname" :value="item.id"></el-option> + </el-select> + </el-form-item> + </el-col> - <el-form-item label="整改措施:" > - <el-input - style="width: 400px" - type="textarea" - :rows="3" - :disabled="isView" - placeholder="请输入内容" - v-model="dataForm.rectifymeasure"> - </el-input> - </el-form-item> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="整改资金" prop="dangerResult"> + <el-input class="analyseUnit_input" type="number" v-model="dataForm.cost" readonly> </el-input> + </el-form-item> + </el-col> + </el-row> - <el-form-item label="整改期限:" > - <el-date-picker - v-model="dataForm.rectifydeadline" - type="datetime" - :disabled="isView" - format="yyyy-MM-dd HH:mm" - value-format="yyyy-MM-dd HH:mm" - placeholder="选择日期时间"> - </el-date-picker> - </el-form-item> + </el-form> - <el-form-item label="上报说明:" > - <el-input - style="width: 400px" - type="textarea" - :rows="3" - :disabled="isView" - placeholder="请输入内容" - v-model="dataForm.createnote"> - </el-input> - </el-form-item> + </el-dialog> + <el-dialog title="整改" :visible.sync="isShowRectifyDialog" :modal-append-to-body="false" :close-on-click-modal="false" width="600px"> + <el-form :model="rectifyForm" :rules="rectifyFormRules" ref="rectifyFormRef" size="default" label-width="120px"> + <el-row :gutter="35"> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="整改说明" prop="rectifyInfo"> + <el-input class="analyseUnit_input" type="textarea" :rows="2" v-model.trim="rectifyForm.rectifyInfo" placeholder="请输入整改说明" clearable></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="整改时间" prop="applyTime"> + <el-date-picker type="datetime" value-format="yyyy-MM-dd HH:mm:ss" class="analyseUnit_input" v-model="rectifyForm.applyTime" placeholder="请选择整改时间" clearable> </el-date-picker> + </el-form-item> + </el-col> + </el-row> + </el-form> + <div align="right" class="dialog-footer"> + <el-button @click="isShowRectifyDialog = !isShowRectifyDialog" size="default">取 消</el-button> + <el-button type="primary" @click="submitRectify" size="default">确 定</el-button> + </div> + </el-dialog> + <el-dialog title="延期" :visible.sync="isShowDelayDialog" width="600px"> + <el-form :model="delayForm" :rules="delayFormRules" ref="delayFormRef" size="default" label-width="120px"> + <el-row :gutter="35"> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="延期说明" prop="timeOutDesc"> + <el-input class="analyseUnit_input" type="textarea" :rows="2" v-model.trim="delayForm.timeOutDesc" placeholder="请输入延期说明" clearable></el-input> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" 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="delayForm.rectifyTime" placeholder="请选择整改期限" clearable> </el-date-picker> + </el-form-item> + </el-col> + </el-row> + </el-form> + <div align="right" class="dialog-footer"> + <el-button @click="isShowDelayDialog = !isShowDelayDialog" size="default">取 消</el-button> + <el-button type="primary" @click="submitDelay" size="default">确 定</el-button> + </div> + </el-dialog> + </div> - <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 && imgUrls.length > 0" > - <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 10px 10px 2px;border-radius: 3px" - > - </el-image> - </el-form-item> - - <el-form-item label="驳回整改说明:" v-if="dataForm.status === '驳回待整改'"> - <el-input - style="width: 400px" - type="textarea" - :rows="3" - placeholder="请输入内容" - :disabled="isView" - v-model="dataForm.rectifynote"> - </el-input> - </el-form-item> - - <el-form-item label="驳回整改图片:" v-if="dataForm.status === '驳回待整改'"> - <el-image - class="upload-img" - v-for='item in imgUrls2' - :key='item.id' - :src="item.url" - :disabled="isView" - :preview-src-list="imgPreviewUrls2" - style="width:100px;height: 100px;margin: 10px 15px 10px 2px;border-radius: 3px" - > - </el-image> - </el-form-item> - - <el-form-item label="驳回原因:" v-if="dataForm.status === '驳回待整改'"> - <el-input - style="width: 400px" - type="textarea" - :rows="3" - placeholder="请输入内容" - :disabled="isView" - v-model="dataForm.rejectnote"> - </el-input> - </el-form-item> - - - - <el-form-item label="整改说明:" > - <el-input - style="width: 400px" - type="textarea" - :rows="3" - placeholder="请输入内容" - v-model="dataForm.note"> - </el-input> - </el-form-item> - - <el-form-item label="整改图片:" > - <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> - - <div style="margin-top: 20px;margin-left: 140px;" class="dialog-footer" > - <el-button @click="dialogFormVisible = false">取消</el-button> - <el-button type="primary" @click="trigger2Submit()" :disabled="submiting">整改提交</el-button> - </div> - - </el-dialog> </template> <script> import { hiddenDangerRectify } from '@/api/hiddenDanger'; import { getToken} from "@/utils/auth"; + import {getDepartmentList} from "../../../../../../api/departmentManage"; + import {safetyInspectionItemName} from "../../../../../../api/safetySelfInspection"; + import {delayHiddenDangerReport, submitHiddenDangerReport} from "../../../../../../api/hiddenDanger"; export default { name: "rectifyDialog", @@ -165,8 +109,12 @@ headers: { 'Authorization': getToken() }, - imgUrls:[], - imgUrls2:[], + userList:[], + departmentList:[], + rectifyTypeList: [ + { id: 1, name: '即查即改' }, + { id: 2, name: '限期整改' } + ], imgPreviewUrls:[], imgPreviewUrls2:[], fileList:[], @@ -178,16 +126,45 @@ {"key":"COMMON","value":"一般隐患"}, ], dataForm: { - id:'', - note: '', - level:'', - rectifynote:'', - rectifydeadline:'', - rectifymeasure:'', - createnote: '', - rejectnote:'', + rectifyType: null, + rectifyDepId: null, + liablePersonId: null, + rectifyTime: null, + cost: null, + rectifyDesc: null }, + isShowCheckInfoDialog: false, + checkInfoForm: { + rectifyDepId: null, + liablePersonId: null + }, + isShowDelayDialog: false, + isShowRectifyDialog: false, + rectifyForm: { + id: null, + dangerManagerId: null, + rectifyInfo: null, + applyTime: null + }, + delayForm: { + id: null, + dangerManagerId: null, + rectifyTime: null, + timeOutDesc: null + }, + rectifyFormRules: { + rectifyInfo: [{ required: true, message: '请填写整改说明', trigger: 'blur' }], + applyTime: [{ required: true, message: '请选择整改时间', trigger: 'change' }] + }, + delayFormRules: { + timeOutDesc: [{ required: true, message: '请填写延期说明', trigger: 'blur' }], + rectifyTime: [{ required: true, message: '请选择整改期限', trigger: 'change' }] + } } + }, + created(){ + this.getDepartmentData(); + this.getUser(); }, methods:{ resetDataForm(){ @@ -204,23 +181,82 @@ this.imgUrls =[] this.imgPreviewUrls = [] }, - show(row){ - this.resetDataForm(); - this.isView = true - this.dataForm.id = row.id - this.dataForm.level = row.level - this.dataForm.status = row.status - this.dataForm.createnote = row.createnote - this.dataForm.rectifydeadline = row.rectifydeadline - this.dataForm.rectifymeasure = row.rectifymeasure - this.dataForm.rectifynote = row.rectifynote - this.dataForm. rejectnote = row.rejectnote - this.imgUrls = row.reportResources.map(item=>{return {url:process.env.IMG_API+item.url,name:item.id}}) - this.imgUrls2 = row.rectifyResources.map(item=>{return {url:process.env.IMG_API+item.url,name:item.id}}) - this.imgPreviewUrls = row.reportResources.map(item=>{ return process.env.IMG_API + item.url }) - this.imgPreviewUrls2 = row.rectifyResources.map(item=>{ return process.env.IMG_API + item.url }) - this.dialogFormVisible = true + showDialog(type,row){ + if (type === '延期') { + this.isShowDelayDialog = true; + const delayForm = JSON.parse(JSON.stringify(row)); + this.delayForm.id = delayForm.id; + this.delayForm.dangerManagerId = delayForm.dangerManagerId; + this.delayForm.timeOutDesc = null; + this.delayForm.rectifyTime = null; + }else if(type == '整改'){ + this.isShowRectifyDialog = true; + const rectifyForm = JSON.parse(JSON.stringify(row)); + this.rectifyForm.id = rectifyForm.id; + this.rectifyForm.dangerManagerId = rectifyForm.dangerManagerId; + this.rectifyForm.rectifyInfo = null; + this.rectifyForm.applyTime = null; + }else{ + this.dialogFormVisible = true + this.dataForm = row + } + }, + + submitRectify () { + this.$refs['rectifyFormRef'].validate( async(valid) => { + if (valid) { + let res = await submitHiddenDangerReport(this.rectifyForm); + if (res.data.code === '200') { + this.$message({ + type: 'success', + message: '整改提交成功', + duration: 2000 + }); + this.isShowRectifyDialog = false; + this.$emit('refreshRectify'); + } else { + this.$message({ + type: 'warning', + message: res.data.msg + }); + } + } else { + this.$message({ + type: 'warning', + message: '请完善基本信息' + }); + } + }); + }, + + submitDelay() { + this.$refs["delayFormRef"].validate(async (valid) => { + if (valid) { + let res = await delayHiddenDangerReport(this.delayForm); + if (res.data.code === '200') { + this.$message({ + type: 'success', + message: '隐患延期成功', + duration: 2000 + }); + this.isShowDelayDialog = false; + this.$emit('refreshRectify'); + } else { + this.$message({ + type: 'warning', + message: res.data.msg + }); + } + } else { + this.$message({ + type: 'warning', + message: '请完善基本信息' + }); + } + }); + }, + trigger2Submit(){ let formData = new FormData(); formData.append('id',this.dataForm.id) @@ -249,6 +285,34 @@ this.submiting = false }) }, + + 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 = [] + } + } + }, + + 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' + }) + } + }, + handleChange(file, fileList) { this.fileList = fileList }, @@ -257,5 +321,14 @@ </script> <style scoped> - +.basic_search{ + display:inline-block; + padding-bottom: 10px; +} +.analyseUnit_input{ + width:90%; +} +.analyseUnit_box{ + width:200px; +} </style> -- Gitblit v1.9.2