From c819024e241b9f7c54cc3786373ad0d2998f2190 Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期五, 05 五月 2023 08:55:46 +0800 Subject: [PATCH] 修改 --- src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue | 387 +++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 262 insertions(+), 125 deletions(-) diff --git a/src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue b/src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue index 96ca670..b12f906 100644 --- a/src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue +++ b/src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue @@ -1,148 +1,275 @@ <template> <div class="app-container"> - <el-dialog title="巡检记录详情" :visible.sync="inspectionRecordFormVisible" append-to-body :close-on-click-modal="false" width="40%"> - <el-form ref="inspectionRecordForm" :model="inspectionRecordForm" label-position="right" label-width="120px"> - <el-row> - <el-col :span="12"> - <el-form-item label="任务名称" prop="title"> - <el-input v-model="inspectionRecordForm.title" class="analyseUnit_input" :disabled="ifShow"> - </el-input> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="检查类型" prop="type"> - <el-select v-model="inspectionRecordForm.type" class="analyseUnit_input" :disabled="ifShow"> - <el-option - v-for="item in typeList" - :key=item.id - :label=item.name - :value=item.id - ></el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="任务名称" prop="noticeUname"> - <el-input v-model="inspectionRecordForm.noticeUname" class="analyseUnit_input" :disabled="ifShow"> - </el-input> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="检查类型" prop="execUname"> - <el-input v-model="inspectionRecordForm.execUname" class="analyseUnit_input" :disabled="ifShow"> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="巡检开始时间" prop="startTime"> - <el-date-picker v-model="inspectionRecordForm.execUname" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="周期开始时间" class="analyseUnit_input" :disabled="ifShow" ></el-date-picker> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="巡检结束时间" prop="startTime"> - <el-date-picker v-model="inspectionRecordForm.execUname" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="周期开始时间" class="analyseUnit_input" :disabled="ifShow"></el-date-picker> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="巡检提交时间" prop="execUname"> - <el-date-picker v-model="inspectionRecordForm.execUname" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="周期开始时间" class="analyseUnit_input" :disabled="ifShow"></el-date-picker> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="任务状态" prop="status"> - <el-select v-model="inspectionRecordForm.status" class="analyseUnit_input" :disabled="ifShow"> - <el-option - v-for="item in statusList" - :key="item.id" - :label="item.name" - :value="item.id" - > - </el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - </el-form> - </el-dialog> - <el-dialog title="巡检单元详情" :visible.sync="inspectionRecordDetailFormVisible" append-to-body :close-on-click-modal="false" width="30%"> - <el-form ref="inspectionRecordDetailForm" :model="inspectionRecordDetailForm" label-position="right" label-width="120px"> - <el-row> - <el-col :span="24"> - <el-form-item label="隐患排查内容" prop="content"> - <el-input v-model="inspectionRecordDetailForm.content" class="input" :disabled="ifShow"> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="上报说明" prop="info"> - <el-input v-model="inspectionRecordDetailForm.info" class="input" :disabled="ifShow"> - </el-input> - </el-form-item> - </el-col> - - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="上报照片" prop="img"> - <el-input v-model="inspectionRecordDetailForm.img" class="input" :disabled="ifShow"> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="状态" prop="status"> - <el-select v-model="inspectionRecordDetailForm.status" class="input" :disabled="ifShow"> - <el-option - v-for="item in statusList" - :key="item.id" - :label="item.name" - :value="item.id" - > - </el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - </el-form> - </el-dialog> + <el-dialog title="查看" :visible.sync="isShowRecordDialog" append-to-body :close-on-click-modal="false" width="600px"> + <div class="record-form"> + <el-form :model="recordForm" ref="recordFormRef" size="default" label-width="100px"> + <el-row :gutter="35"> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-form-item label="检查内容" prop="checkContent"> + <el-input class="analyseUnit_input" type="textarea" :rows="3" v-model.trim="recordForm.checkContent" placeholder="检查内容"> </el-input> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + </el-dialog> + <el-dialog title="提交" :visible.sync="isShowSubmitDialog" width="600px"> + <el-form :model="submitForm" 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="checkResult"> + <el-select class="analyseUnit_input" v-model="checkResults.checkResult" placeholder="请输入处理结果"> + <el-option v-for="item in resultList" :label="item.name" :key="item.id" :value="item.id"></el-option> + </el-select> + </el-form-item> + </el-col> + </el-row> + </el-form> + <div align="right" class="dialog-footer"> + <el-button @click="isShowSubmitDialog = !isShowSubmitDialog" size="default">取 消</el-button> + <el-button type="primary" @click="submitRecord" size="default">确 定</el-button> + </div> + </el-dialog> </div> </template> <script> + import Cookies from "js-cookie"; + import {submitTaskRecord, submitUnitOne} from "../../../../../api/inspectionTask"; + export default { name: "detail", data(){ + const validateImg = (rule, value, callback) => { + if (!this.inspectionRecordDetailForm.img) { + callback(new Error('请上传图片')) + } else { + callback() + } + } return{ - inspectionRecordForm:{}, + fileRoad:process.env.BASE_API + '/task/web/upload', + uploadForm:{ + }, + disabled:false, + header:{Authorization:''}, + dialogImageUrl:false, + dialogVisible:false, + titleDetail:'', + inspectionRecordForm:{ + + }, inspectionRecordFormVisible:false, - inspectionRecordDetailForm:{}, + inspectionRecordDetailForm:{ + execUid: null, + fixTime: null, + fixUid: null, + imgInfoList: [], + info: null, + noticeUid: null, + result: null, + taskId: null, + unitId: null, + fixDepId:null, + noticeDepId:null, + }, + inspectionRecordDetailFormRules:{ + img: [{ required: true, validator: validateImg, trigger: 'blur' }], + result: [{ required: true, message: '巡检结果不能为空', trigger: 'blur' }], + noticeUid: [{ required: true, message: '异常通知人员不能为空', trigger: 'change' }], + fixTime: [{ required: true, message: '整改时间不能为空', trigger: 'change' }], + fixUid: [{ required: true, message: '描整改人员不能为空', trigger: 'change' }], + info: [{ required: true, message: '巡检结果备注不能为空', trigger: 'blur' }], + fixDepId: [{ required: true, message: '异常整改部门不能为空', trigger: 'blur' }], + noticeDepId: [{ required: true, message: '异常通知部门不能为空', trigger: 'blur' }], + }, inspectionRecordDetailFormVisible:false, ifShow:true, + ifNormal:false, + ifLook:false, + ifConfirm:false, + userList:[], + noticeUserList:[], + fixUserList:[], + departmentList:[], + fileList:[], typeList:[{id:1,name:'日常检查'},{id:2,name:'周期检查'}], statusList:[{id:1,name:'待巡检'},{id:2,name:'巡检中'},{id:3,name:'已完成'},{id:4,name:'超时未巡检'},{id:5,name:'已取消'}], + isShowSubmitDialog: false, + isShowRecordDialog: false, + recordForm: { + taskCode: null, + checkContent: null, + checkResult: null, + checkTaskId: null, + classify1: null, + classify2: null, + classify3: null, + controlMeasureCode: null, + controlMeasureId: null, + controlType: null, + measureDesc: null + }, + submitForm: { + id: null, + execUserId: null, + checkResults: [] + }, + checkResults: { + id: null, + controlMeasureId: null, + checkResult: null + }, + resultList: [ + { id: 1, name: '正常' }, + { id: 2, name: '不正常' } + ] } }, components:{ - + }, methods:{ - showInspectionRecordForm(value) { - this.inspectionRecordFormVisible = true - this.inspectionRecordForm = JSON.parse(JSON.stringify(value)) + showInspectionRecordForm(type,value) { + if (type === '查看') { + this.isShowRecordDialog = true; + let recordFormValue = JSON.parse(JSON.stringify(value)); + this.recordForm.taskCode = recordFormValue.taskCode; + this.recordForm.checkContent = recordFormValue.checkContent; + } else { + this.title = '提交'; + this.isShowSubmitDialog = true; + this.submitForm.id = JSON.parse(JSON.stringify(value)).checkTaskId; + this.checkResults.id = JSON.parse(JSON.stringify(value)).id; + this.checkResults.controlMeasureId = JSON.parse(JSON.stringify(value)).controlMeasureId; + } + }, - showInspectionRecordDetailForm(value) { - this.inspectionRecordDetailFormVisible = true - this.inspectionRecordDetailForm = value - } + + async submitRecord(){ + if (this.checkResults.checkResult !== null) { + + this.submitForm.checkResults.push(this.checkResults); + let res = await submitTaskRecord(this.submitForm); + if (res.data.code === '200') { + this.$message({ + type: 'success', + message: '排查记录提交成功', + duration: 2000 + }); + this.isShowSubmitDialog = false; + this.$emit('refreshRecord'); + } else { + this.$message({ + type: 'warning', + message: res.data.msg + }); + + } + } else { + this.$message({ + type: 'warning', + message: '请完善基本信息' + }); + } + }, + submitInspectionRecordDetail() { + if(this.ifNormal === false){ + this.inspectionRecordDetailForm.noticeUid = null + this.inspectionRecordDetailForm.fixTime = null + this.inspectionRecordDetailForm.fixUid = null + this.inspectionRecordDetailForm.info = null + this.inspectionRecordDetailForm.imgInfoList = [] + this.inspectionRecordDetailForm.noticeDepId = null + this.inspectionRecordDetailForm.fixDepId = null + } + this.$refs["inspectionRecordDetailForm"].validate((valid) =>{ + if(valid){ + if(this.inspectionRecordDetailForm.result === 0){ + this.$message({ + type:'warning', + message:'请选择正确的巡检结果' + }) + return + } + this.inspectionRecordDetailForm.imgInfoList = this.inspectionRecordDetailForm.imgInfoList.map(item =>{ return { imagePath:item.imagePath}}) + submitUnitOne(this.inspectionRecordDetailForm).then( res =>{ + if(res.data.code === '200'){ + this.inspectionRecordDetailFormVisible = false + this.$emit('getList') + this.$message({ + type:'success', + message:'上报成功', + duration:2000, + title:'成功' + }) + + }else{ + this.$message({ + message:res.data.message, + type:'warning' + }) + } + }) + }else{ + this.$message({ + message:'请完善基本信息', + type:'warning' + }) + } + }) + }, + changeDepartment(type){ + if(type === 'notice'){ + if(this.inspectionRecordDetailForm.noticeDepId === ''){ + this.noticeUserList = [] + }else{ + let department = this.departmentList.find(item => item.id === this.inspectionRecordDetailForm.noticeDepId).department + this.noticeUserList = this.userList.filter ( item => item.department === department) + } + }else{ + if(this.inspectionRecordDetailForm.fixDepId === ''){ + this.fixUserList = [] + }else{ + let department = this.departmentList.find(item => item.id === this.inspectionRecordDetailForm.fixDepId).department + this.fixUserList = this.userList.filter ( item => item.department === department) + } + } + }, + handleChangeFile(){ + this.header.Authorization = Cookies.get('token') + }, + onFileSuccess(response){ + if(response.code === '200'){ + this.inspectionRecordDetailForm.imgInfoList.push({imagePath:response.result.path,name:response.result.name,}) + this.fileList.push({url:process.env.IMG_API + response.result.path,name:response.result.name,}) + this.$notify({ + type:'success', + duration:2000, + message:'上传成功', + title:'成功', + }) + }else{ + this.$message({ + message:res.data.message, + type:'warning' + }) + } + }, + handleFile(file){ + this.dialogImageUrl = file.url; + this.dialogVisible = true; + }, + handleRemove(file){ + return this.$confirm(`确定移除 ${ file.name }?`,'提示',{ + confirmButtonText:'确定', + cancelButtonText:'取消', + type:'warning', + }).then(()=> { + this.inspectionRecordDetailForm.imgInfoList.splice(this.inspectionRecordDetailForm.imgInfoList.findIndex(item =>item.name === file.name),1) + this.fileList.splice(this.inspectionRecordDetailForm.imgInfoList.findIndex(item =>item.name === file.name),1) + }) + }, } } </script> @@ -155,6 +282,16 @@ width:200px; } .input{ - width:400px; + width:300px; } +.basic_search{ + display:inline-block; + padding-bottom: 10px; +} +.analyseUnit_input{ + width:90%; +} +.analyseUnit_box{ + width:200px; +} </style> -- Gitblit v1.9.2