From 08bf6da5e3164a1b3ee5c79bb5d666e6385b4653 Mon Sep 17 00:00:00 2001 From: lyfO_o <764716047@qq.com> Date: 星期一, 23 五月 2022 18:33:42 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master --- src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue | 240 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 216 insertions(+), 24 deletions(-) diff --git a/src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue b/src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue index c3fc9e0..e3b1d0e 100644 --- a/src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue +++ b/src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue @@ -70,7 +70,7 @@ <el-row> <el-col :span="24"> <el-form-item label="巡检结果" prop="result"> - <el-select v-model="inspectionRecordDetailForm.result" :disabled="ifShow" class="input" @change="ifNormal = !ifNormal"> + <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" @@ -84,10 +84,24 @@ <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 userList" + v-for="item in noticeUserList" :key="item.id" :value="item.id" :label="item.realname" @@ -103,12 +117,26 @@ </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 userList" + v-for="item in fixUserList" :key="item.id" :value="item.id" :label="item.realname" @@ -127,7 +155,7 @@ </el-row> <el-row> <el-col :span="24"> - <el-form-item label="上报图片" prop="img"> + <el-form-item label="上报图片" prop="imgInfoList"> <el-upload accept=".pdf,.jpg,.png" :action="fileRoad" @@ -137,7 +165,7 @@ :data="uploadForm" list-type="picture-card" :file-list="fileList" - v-model="inspectionRecordDetailForm.img" + v-model="inspectionRecordDetailForm.imgInfoList" :on-change="handleChangeFile" :on-success="onFileSuccess" :multiple="false" @@ -169,7 +197,122 @@ </el-col> </el-row> </div> - <div style="text-align: center"> + <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-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> + </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> @@ -212,12 +355,14 @@ execUid: null, fixTime: null, fixUid: null, - img: null, + imgInfoList: [], info: null, noticeUid: null, - result: 1, + result: null, taskId: null, - unitId: null + unitId: null, + fixDepId:null, + noticeDepId:null, }, inspectionRecordDetailFormRules:{ img: [{ required: true, validator: validateImg, trigger: 'blur' }], @@ -226,13 +371,20 @@ 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:[], - resultList:[{id:1,name:'正常'},{id:2,name:'异常'}], + 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:'已取消'}], } @@ -245,47 +397,69 @@ this.inspectionRecordFormVisible = true this.inspectionRecordForm = JSON.parse(JSON.stringify(value)) }, - showInspectionRecordDetailForm(value,type,userList) { + 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.ifShow = true + this.titleDetail = '查看单元上报' + this.ifNormal = false + this.ifLook = true + this.ifConfirm = false this.inspectionRecordDetailForm = JSON.parse(JSON.stringify(value)) - if(value.result === 2){ - this.ifNormal = true + if(this.inspectionRecordDetailForm.problem.imageInfoList === null){ this.fileList = [] - this.fileList.push({url:process.env.IMG_API + value.img}) + }else{ + this.fileList = this.inspectionRecordDetailForm.problem.imageInfoList.map( item => { return { url : process.env.IMG_API + item.imgPath}}) } }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, - img: null, + imgInfoList: [], info: null, noticeUid: null, - result: 1, + result: null, + fixDepId:null, + noticeDepId:null, taskId: value.taskId, unitId: value.id } } }, submitInspectionRecordDetail() { - if(this.ifNormal = false){ + if(this.ifNormal === false){ this.inspectionRecordDetailForm.noticeUid = null this.inspectionRecordDetailForm.fixTime = null this.inspectionRecordDetailForm.fixUid = null this.inspectionRecordDetailForm.info = null - this.inspectionRecordDetailForm.img = 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:'上报成功', @@ -308,13 +482,30 @@ } }) }, + 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.img = response.result.path - this.fileList.push({url:process.env.IMG_API + response.result.path}) + 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, @@ -333,13 +524,14 @@ this.dialogVisible = true; }, handleRemove(file){ + debugger return this.$confirm(`确定移除 ${ file.name }?`,'提示',{ confirmButtonText:'确定', cancelButtonText:'取消', type:'warning', }).then(()=> { - this.inspectionRecordDetailForm.img = null - this.fileList = [] + 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) }) }, } -- Gitblit v1.9.2