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/hiddenDangerReform/accept/components/acceptDialog.vue | 293 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 147 insertions(+), 146 deletions(-) diff --git a/src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/accept/components/acceptDialog.vue b/src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/accept/components/acceptDialog.vue index b077a72..0767b4f 100644 --- a/src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/accept/components/acceptDialog.vue +++ b/src/views/doublePreventAction/hiddenDanger/hiddenDangerReform/accept/components/acceptDialog.vue @@ -1,131 +1,59 @@ <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="保存中..."> - - - <el-form-item label="隐患级别:"> - <el-select v-model="dataForm.level" :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-form-item label="整改措施:" > - <el-input - style="width: 400px" - type="textarea" - :rows="3" - :disabled="isView" - v-model="dataForm.rectifymeasure"> - </el-input> - </el-form-item> - - <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" - > - </el-date-picker> - </el-form-item> - - <el-form-item label="上报说明:" > - <el-input - style="width: 400px" - type="textarea" - :rows="3" - :disabled="isView" - v-model="dataForm.createnote"> - </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 && 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;" - > - </el-image> - </el-form-item> - - - <el-form-item label="整改说明:" v-if="isView"> - <el-input - style="width: 400px" - type="textarea" - :rows="3" - :disabled="isView" - v-model="dataForm.rectifynote"> - </el-input> - </el-form-item> - - <el-form-item label="整改图片:" v-if="isView && imgUrls2.length> 0"> - <el-image - class="upload-img" - v-for='item in imgUrls2' - :key='item.id' - :src="item.url" - :preview-src-list="imgPreviewUrls2" - style="width:100px;height: 100px;margin: 10px;" - > - </el-image> - - </el-form-item> - - <el-form-item label="选择:" > - <el-radio-group v-model="isReject" > - <el-radio :label="false" border>验收</el-radio> - <el-radio :label="true" border>驳回</el-radio> - </el-radio-group> - </el-form-item> - - - <el-form-item label="驳回理由:" v-if="isReject"> - <el-input - style="width: 400px" - type="textarea" - :rows="3" - v-model="dataForm.rejectnote"> - </el-input> - </el-form-item> - + <el-dialog title="验收" :visible.sync="isShowCheckDialog" width="600px"> + <el-form :model="checkForm" :rules="checkFormRules" ref="checkFormRef" 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="checkAcceptDesc"> + <el-input class="input-add" type="textarea" :rows="2" v-model.trim="checkForm.checkAcceptDesc" 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="img"> + <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="dataForm.paths" + :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,file.$index)" + > + <i class="el-icon-delete"></i> + </span> + </span> + </div> + </el-upload> + </el-form-item> + </el-col> + </el-row> </el-form> - - <div style="margin-top: 30px;margin-left: 140px;" class="dialog-footer" > - <el-button @click="dialogFormVisible = false">取消</el-button> - <el-button type="primary" @click="acceptSubmit()" v-if="!isReject" :disabled="submiting">验收</el-button> - <el-button type="primary" class="el-button el-button--danger" @click="rejectSubmit()" v-if="isReject" :disabled="submiting">驳回</el-button> - + <div align="right" class="dialog-footer"> + <el-button @click="isShowCheckDialog = !isShowCheckDialog" size="default">取 消</el-button> + <el-button type="primary" @click="submitCheck" size="default">确 定</el-button> </div> - </el-dialog> </template> @@ -133,15 +61,18 @@ <script> import { hiddenDangerAccept,hiddenDangerReject} from '@/api/hiddenDanger'; import { getToken} from "@/utils/auth"; + import {checkHiddenDangerReport, submitHiddenDangerReport} from "../../../../../../api/hiddenDanger"; + import Cookies from "_js-cookie@2.2.0@js-cookie"; export default { name: "acceptDialog", data(){ return { - headers: { - 'Authorization': getToken() + disabled:false, + fileRoad:process.env.BASE_API + '/task/web/upload', + uploadForm:{ }, - baseUrl: process.env.BASE_API + 'hiddenDanger/report', + header:{Authorization:''}, imgUrls:[], imgUrls2:[], fileList:[], @@ -163,28 +94,66 @@ dialogFormVisible: false, dialogStatus:'', dataFormRules: {}, + checkTypeList: [], + rectifyTypeList: [ + { id: 1, name: '即查即改' }, + { id: 2, name: '限期整改' } + ], + departmentList: [], + userList: [], + isShowCheckDialog: false, + isShowCheckInfoDialog: false, + checkForm: { + id: null, + dangerManagerId: null, + checkAcceptDesc: null + }, + checkInfoForm: { + rectifyDepId: null, + liablePersonId: null, + acceptImages:[] + }, + checkFormRules: { + checkAcceptDesc: [{ required: true, message: '请填写整改说明', trigger: 'blur' }] + } } }, methods:{ showDialog(row){ - this.isView = true - this.dataForm.id = row.id - this.dataForm.level = row.level; - this.dataForm.createnote = row.createnote; - this.dataForm.rectifydeadline = row.rectifydeadline; - this.dataForm.rectifymeasure = row.rectifymeasure; - this.dataForm.rectifynote = row.rectifynote; - 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; + this.isShowCheckDialog = true; + const checkForm = JSON.parse(JSON.stringify(row)); + this.checkForm.id = checkForm.id; + this.checkForm.dangerManagerId = checkForm.dangerManagerId; }, - acceptSubmit(){ - let params = {} - params['id'] = this.dataForm.id - this.submit(params,hiddenDangerAccept) + submitCheck() { + this.$refs['checkFormRef'].validate(async (valid) => { + if (valid) { + this.checkForm.acceptImages = this.fileList.map(item => { + return item.url.substring(process.env.IMG_API.length) + }) + let res = await checkHiddenDangerReport(this.checkForm); + if (res.data.code === '200') { + this.$message({ + type: 'success', + message: '验收成功', + duration: 2000 + }); + this.isShowCheckDialog = false; + this.$emit('refreshCheck'); + } else { + this.$message({ + type: 'warning', + message: res.data.message + }); + } + } else { + this.$message({ + type: 'warning', + message: '请完善基本信息' + }); + } + }); }, rejectSubmit(){ @@ -215,8 +184,40 @@ this.submiting = false }) }, - handleChange(file, fileList) { - this.fileList = fileList + handleChangeFile(){ + this.header.Authorization = Cookies.get('token') + }, + onFileSuccess(response){ + if(response.code === '200'){ + this.fileList.push({url:process.env.IMG_API + response.result.path}) + 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; + }, + showImg(file){ + window.open(file, '_blank') + }, + handleRemove(file,value){ + return this.$confirm(`确定移除 ${ file.uid }?`,'提示',{ + confirmButtonText:'确定', + cancelButtonText:'取消', + type:'warning', + }).then(()=> { + this.fileList.splice(value,1) + }) }, } } -- Gitblit v1.9.2