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/inspectionRecord/components/detail.vue | 460 +++++++++++++-------------------------------------------- 1 files changed, 104 insertions(+), 356 deletions(-) diff --git a/src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue b/src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue index 0e35e0b..95e6f17 100644 --- a/src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue +++ b/src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue @@ -1,332 +1,41 @@ <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" readonly> - <el-row> - <el-col :span="12"> - <el-form-item label="任务名称" prop="title"> - <el-input v-model="inspectionRecordForm.title" class="analyseUnit_input" readonly> - </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" readonly> - <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="execUname"> - <el-input v-model="inspectionRecordForm.execUname" class="analyseUnit_input" readonly> - </el-input> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="任务状态" prop="status"> - <el-select v-model="inspectionRecordForm.status" class="analyseUnit_input" readonly> - <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-row> - <el-col :span="12"> - <el-form-item label="巡检开始时间" prop="expTime"> - <el-date-picker v-model="inspectionRecordForm.expTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="巡检开始时间" class="analyseUnit_input" readonly></el-date-picker> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="巡检结束时间" prop="endTime"> - <el-date-picker v-model="inspectionRecordForm.endTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="巡检结束时间" class="analyseUnit_input" readonly></el-date-picker> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="12"> - <el-form-item label="巡检提交时间" prop="execTime"> - <el-date-picker v-model="inspectionRecordForm.execTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="巡检提交时间" class="analyseUnit_input" readonly></el-date-picker> - </el-form-item> - </el-col> - - </el-row> - </el-form> - </el-dialog> - <el-dialog :title="titleDetail" :visible.sync="inspectionRecordDetailFormVisible" append-to-body :close-on-click-modal="false" width="500px"> - <el-form ref="inspectionRecordDetailForm" :rules="inspectionRecordDetailFormRules" :model="inspectionRecordDetailForm" label-position="right" label-width="120px"> - <el-row> - <el-col :span="24"> - <el-form-item label="巡检结果" prop="result"> - <el-select v-model="inspectionRecordDetailForm.result" :disabled="ifShow" class="input" @change="ifNormal = (inspectionRecordDetailForm.result === 2 ? true : false)"> - <el-option - v-for="item in resultList" - :key="item.id" - :label="item.name" - :value="item.id" - ></el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - <div v-if="ifNormal"> - <el-row> - <el-col :span="24"> - <el-form-item label="异常通知部门" prop="noticeDepId"> - <el-select v-model="inspectionRecordDetailForm.noticeDepId" filterable clearable class="input" @change="changeDepartment('notice')" :disabled="ifShow"> - <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-row> - <el-row> - <el-col :span="24"> - <el-form-item label="异常通知人员" prop="noticeUid"> - <el-select v-model="inspectionRecordDetailForm.noticeUid" clearable filterable :disabled="ifShow" class="input"> - <el-option - v-for="item in noticeUserList" - :key="item.id" - :value="item.id" - :label="item.realname" - ></el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="整改时间" prop="fixTime"> - <el-date-picker placeholder="选择时间" v-model="inspectionRecordDetailForm.fixTime" class="input" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" :disabled="ifShow"></el-date-picker> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="异常整改部门" prop="fixDepId"> - <el-select v-model="inspectionRecordDetailForm.fixDepId" filterable clearable class="input" :disabled="ifShow" @change="changeDepartment('fix')"> - <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-row> - <el-row > - <el-col :span="24"> - <el-form-item label="整改人" prop="fixUid"> - <el-select v-model="inspectionRecordDetailForm.fixUid" clearable filterable :disabled="ifShow" class="input"> - <el-option - v-for="item in fixUserList" - :key="item.id" - :value="item.id" - :label="item.realname" - ></el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="巡检结果备注" prop="info"> - <el-input type="textarea" :rows="3" v-model="inspectionRecordDetailForm.info" :disabled="ifShow" class="input"> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="上报图片" prop="imgInfoList"> - <el-upload - accept=".pdf,.jpg,.png" - :action="fileRoad" - class="upload-demo" - ref="upload" - :headers="header" - :data="uploadForm" - list-type="picture-card" - :file-list="fileList" - v-model="inspectionRecordDetailForm.imgInfoList" - :on-change="handleChangeFile" - :on-success="onFileSuccess" - :multiple="false" - :auto-upload="true"> - <i slot="default" class="el-icon-plus"></i> - <div slot="file" slot-scope="{file}"> - <img - class="el-upload-list__item-thumbnail" - :src="file.url" alt="" - > - <span class="el-upload-list__item-actions"> - <span - class="el-upload-list__item-preview" - @click="handleFile(file)" - > - <i class="el-icon-zoom-in"></i> - </span> - <span - v-if="!disabled" - class="el-upload-list__item-delete" - @click="handleRemove(file,'one')" - > - <i class="el-icon-delete"></i> - </span> - </span> - </div> - </el-upload> - </el-form-item> - </el-col> - </el-row> + <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> - <div v-if="ifLook"> - <el-row> - <el-col :span="24"> - <el-form-item label="异常通知部门" prop="noticeDepId"> - <el-select v-model="inspectionRecordDetailForm.problem.noticeDepId" filterable clearable class="input" @change="changeDepartment('notice')" readonly> - <el-option - v-for="item in departmentList" - :key="item.id" - :value="item.id" - :label="item.department" - ></el-option> + </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-row> - <el-col :span="24"> - <el-form-item label="异常通知人员" prop="noticeUid"> - <el-select v-model="inspectionRecordDetailForm.problem.noticeUid" clearable filterable readonly class="input"> - <el-option - v-for="item in noticeUserList" - :key="item.id" - :value="item.id" - :label="item.realname" - ></el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="整改时间" prop="fixTime"> - <el-date-picker placeholder="选择时间" v-model="inspectionRecordDetailForm.problem.fixTime" class="input" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" readonly></el-date-picker> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="异常整改部门" prop="fixDepId"> - <el-select v-model="inspectionRecordDetailForm.problem.fixDepId" filterable clearable class="input" readonly> - <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-row> - <el-row > - <el-col :span="24"> - <el-form-item label="整改人" prop="fixUid"> - <el-select v-model="inspectionRecordDetailForm.problem.fixUid" clearable filterable readonly class="input"> - <el-option - v-for="item in fixUserList" - :key="item.id" - :value="item.id" - :label="item.realname" - ></el-option> - </el-select> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="巡检结果备注" prop="info" > - <el-input type="textarea" :rows="3" v-model="inspectionRecordDetailForm.problem.info" aria-readonly="true" class="input"> - </el-input> - </el-form-item> - </el-col> - </el-row> - <el-row> - <el-col :span="24"> - <el-form-item label="上报图片" prop="imgInfoList"> - <el-upload - accept=".pdf,.jpg,.png" - :action="fileRoad" - class="upload-demo" - ref="upload" - :headers="header" - :data="uploadForm" - list-type="picture-card" - :file-list="fileList" - v-model="inspectionRecordDetailForm.imgInfoList" - :on-change="handleChangeFile" - :on-success="onFileSuccess" - :auto-upload="true"> - <i slot="default" class="el-icon-plus"></i> - <div slot="file" slot-scope="{file}"> - <img - class="el-upload-list__item-thumbnail" - :src="file.url" alt="" - > - <span class="el-upload-list__item-actions"> - <span - class="el-upload-list__item-preview" - @click="handleFile(file)" - > - <i class="el-icon-zoom-in"></i> - </span> - <span - v-if="!disabled" - class="el-upload-list__item-delete" - @click="handleRemove(file,'one')" - > - <i class="el-icon-delete"></i> - </span> - </span> - </div> - </el-upload> - </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> - <div style="text-align: center" v-show="ifConfirm"> - <el-button @click="inspectionRecordDetailFormVisible = false">取消</el-button> - <el-button type="primary" @click="submitInspectionRecordDetail()">确认</el-button> - </div> - </el-form> - </el-dialog> - <el-dialog :visible.sync="dialogVisible" :append-to-body="true"> - <img width="100%" :src="dialogImageUrl" alt=""> - </el-dialog> + </el-dialog> </div> </template> <script> import Cookies from "js-cookie"; - import {submitUnitOne} from "../../../../../api/inspectionTask"; + import {submitTaskRecord, submitUnitOne} from "../../../../../api/inspectionTask"; export default { name: "detail", @@ -384,56 +93,85 @@ fixUserList:[], departmentList:[], fileList:[], - resultList:[{id:0,name:'未巡检'},{id:1,name:'正常'},{id:2,name:'异常'}], 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) { + debugger + 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,type,userList,departmentList) { - this.inspectionRecordDetailFormVisible = true - this.$nextTick(() =>{ - this.$refs["inspectionRecordDetailForm"].clearValidate() - }) - this.userList = userList - this.departmentList = departmentList - if(type === '查看'){ - this.titleDetail = '查看单元上报' - this.ifNormal = false - this.ifLook = true - this.ifConfirm = false - this.inspectionRecordDetailForm = JSON.parse(JSON.stringify(value)) - if(this.inspectionRecordDetailForm.problem.imageInfoList === null){ - this.fileList = [] - }else{ - this.fileList = this.inspectionRecordDetailForm.problem.imageInfoList.map( item => { return { url : process.env.IMG_API + item.imgPath}}) + + 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.titleDetail = '巡检单元上报' - this.ifShow = false - this.ifNormal = false - this.ifLook = false - this.ifConfirm = true - this.inspectionRecordDetailForm = { - execUid: Cookies.get('userId'), - fixTime: null, - fixUid: null, - imgInfoList: [], - info: null, - noticeUid: null, - result: null, - fixDepId:null, - noticeDepId:null, - taskId: value.taskId, - unitId: value.id - } + } else { + this.$message({ + type: 'warning', + message: '请完善基本信息' + }); } }, submitInspectionRecordDetail() { @@ -547,4 +285,14 @@ .input{ width:300px; } +.basic_search{ + display:inline-block; + padding-bottom: 10px; +} +.analyseUnit_input{ + width:90%; +} +.analyseUnit_box{ + width:200px; +} </style> -- Gitblit v1.9.2