“体系文件”中上传的文件目前只能是pdf,其他格式的上传不了,建议能将word、excel及照片的格式上传。
“事件起因”建议去掉,与“原因分析及责任认定”中部分重合。“报出日期”的时间填写意义不大,建议去除。 事故事件中照片只能上传一张,多了就不让上传了,应该能上传多张,限制一下数量即可。附件也是只能上传pdf,其他格式上传不了,应能上传其他格式的文件。pet
							parent
							
								
									1ac52ed70d
								
							
						
					
					
						commit
						4e8847f93f
					
				|  | @ -1,7 +1,7 @@ | |||
| <template> | ||||
|   <div class="app-container"> | ||||
|     <el-form | ||||
|       ref="form" | ||||
|       ref="infoForm" | ||||
|       :model="infoForm" | ||||
|       :rules="rules" | ||||
|       label-width="180px" | ||||
|  | @ -18,11 +18,6 @@ | |||
|           <el-option v-for="item in incidentTypes" :key="item.id" :label="item.name" :value="item.id"/> | ||||
|         </el-select> | ||||
|       </el-form-item> | ||||
|       <!--      <el-form-item :label-width="formLabelWidth" label="事件级别" prop="incidentLevel">--> | ||||
|       <!--        <el-select v-model="infoForm.incidentLevel" :disabled="isDisabled" placeholder="请选择">--> | ||||
|       <!--          <el-option v-for="item in incidentLevels" :key="item.id" :label="item.name" :value="item.id"/>--> | ||||
|       <!--        </el-select>--> | ||||
|       <!--      </el-form-item>--> | ||||
|       <el-form-item :label-width="formLabelWidth" label="事件发生地点" prop="location"> | ||||
|         <el-input v-model="infoForm.location" :disabled="isDisabled" autocomplete="off"/> | ||||
|       </el-form-item> | ||||
|  | @ -49,9 +44,6 @@ | |||
|       <el-form-item :label-width="formLabelWidth" label="重伤人数" prop="seriouslyInjured"> | ||||
|         <el-input v-model="infoForm.seriouslyInjured" :disabled="isDisabled" type="number" autocomplete="off"/> | ||||
|       </el-form-item> | ||||
|       <el-form-item :label-width="formLabelWidth" label="事件起因" prop="cause"> | ||||
|         <el-input v-model="infoForm.cause" :disabled="isDisabled" autocomplete="off"/> | ||||
|       </el-form-item> | ||||
|       <el-form-item :label-width="formLabelWidth" label="事件概述" prop="summary"> | ||||
|         <el-input v-model="infoForm.summary" :disabled="isDisabled" autocomplete="off"/> | ||||
|       </el-form-item> | ||||
|  | @ -67,17 +59,6 @@ | |||
|       <el-form-item :label-width="formLabelWidth" label="填表人" prop="creator"> | ||||
|         <el-input v-model="infoForm.creator" :disabled="isDisabled" autocomplete="off"/> | ||||
|       </el-form-item> | ||||
|       <el-form-item :label-width="formLabelWidth" label="报出日期" prop="reportDate"> | ||||
|         <el-date-picker | ||||
|           v-model="infoForm.reportDate" | ||||
|           :disabled="isDisabled" | ||||
|           type="datetime" | ||||
|           placeholder="请选择报出日期" | ||||
|           style="width: 100%;" | ||||
|           format="yyyy-MM-dd HH:mm:ss" | ||||
|           value-format="yyyy-MM-dd HH:mm:ss" | ||||
|         /> | ||||
|       </el-form-item> | ||||
|       <el-form-item :label-width="formLabelWidth" label="事故照片" prop="fileList"> | ||||
|         <el-upload | ||||
|           ref="upload" | ||||
|  | @ -98,7 +79,7 @@ | |||
|           <i class="el-icon-plus"/> | ||||
|         </el-upload> | ||||
|       </el-form-item> | ||||
|       <el-form-item v-if="!isDisabled" :label-width="formLabelWidth" label="附件" prop="fileAddressList"> | ||||
|       <el-form-item :label-width="formLabelWidth" label="附件" prop="fileAddressList"> | ||||
|         <el-upload | ||||
|           ref="upload" | ||||
|           :disabled="isDisabled" | ||||
|  | @ -108,6 +89,7 @@ | |||
|           :limit="limitNum" | ||||
|           :on-remove="handleRemoveAnnex" | ||||
|           :before-upload="beforeEventUpload" | ||||
|           :on-preview="handleDownloadAnnex" | ||||
|           :on-error="handleError" | ||||
|           :on-exceed="handleExceed" | ||||
|           name="file" | ||||
|  | @ -116,14 +98,6 @@ | |||
|           <el-button :disabled="isDisabled" size="small" type="primary">点击上传</el-button> | ||||
|         </el-upload> | ||||
|       </el-form-item> | ||||
|       <el-form-item v-if="isDisabled" :label-width="formLabelWidth" label="附件" prop="fileAddressList"> | ||||
|         <a | ||||
|           v-if="infoForm.fileAddressList != null && infoForm.fileAddressList.length !== 0" | ||||
|           :href="infoForm.fileAddressList[0].url" | ||||
|           style="display: flex;flex-wrap: wrap;gap: 10px;" | ||||
| 
 | ||||
|         >{{ infoForm.fileAddressList[0].name }}</a> | ||||
|       </el-form-item> | ||||
|     </el-form> | ||||
| 
 | ||||
|     <el-dialog :visible.sync="dialogImgVisible"> | ||||
|  | @ -168,15 +142,13 @@ export default { | |||
|         injured: null, // 受伤人数 | ||||
|         fatalities: null, // 死亡人数 | ||||
|         seriouslyInjured: null, // 重伤人数 | ||||
|         cause: '', // 事件起因 | ||||
|         summary: '', // 事件概述 | ||||
|         fileList: [], // 事件照片 | ||||
|         fileAddressList: [], // 附件地址 | ||||
|         analysis: '', // 原因分析及责任认定 | ||||
|         suggestions: '', // 考核建议 | ||||
|         measures: '', // 整改措施 | ||||
|         creator: '', // 填表人 | ||||
|         reportDate: null // 报出日期 | ||||
|         creator: '' // 填表人 | ||||
|       }, | ||||
|       formLabelWidth: '140px', | ||||
|       /** 事件类型 */ | ||||
|  | @ -185,7 +157,7 @@ export default { | |||
|       incidentLevels: [], | ||||
|       tableName: '', | ||||
|       /** 图片上传限制个数 */ | ||||
|       limitNum: 1, | ||||
|       limitNum: 6, | ||||
|       /** 预览弹窗 */ | ||||
|       dialogImgVisible: false, | ||||
|       rules: { | ||||
|  | @ -195,14 +167,12 @@ export default { | |||
|         incidentNature: [{ required: true, message: '事件性质不能为空', trigger: 'blur' }], | ||||
|         location: [{ required: true, message: '事件发生地点不能为空', trigger: 'blur' }], | ||||
|         incidentDate: [{ required: true, message: '事件发生时间不能为空', trigger: 'blur' }], | ||||
|         cause: [{ required: true, message: '事件起因不能为空', trigger: 'blur' }], | ||||
|         summary: [{ required: true, message: '事件概述不能为空', trigger: 'blur' }], | ||||
|         fileList: [{ required: true, message: '事件照片不能为空', trigger: 'blur' }], | ||||
|         analysis: [{ required: true, message: '原因分析及责任认定不能为空', trigger: 'blur' }], | ||||
|         suggestions: [{ required: true, message: '考核建议不能为空', trigger: 'blur' }], | ||||
|         measures: [{ required: true, message: '整改措施不能为空', trigger: 'blur' }], | ||||
|         creator: [{ required: true, message: '填表人不能为空', trigger: 'blur' }], | ||||
|         reportDate: [{ required: true, message: '报出日期不能为空', trigger: 'blur' }] | ||||
|         creator: [{ required: true, message: '填表人不能为空', trigger: 'blur' }] | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|  | @ -220,32 +190,36 @@ export default { | |||
|     if (id == null || id === '') { | ||||
|       this.infoForm = this.$options.data().infoForm | ||||
|     } else { | ||||
|       // 若有数据项的ID, 则请求接口并回显表单 | ||||
|       requestFN('/accident/' + id, {}).then((data) => { | ||||
|         const fileList = [] | ||||
|         if (data.info.photos != null && data.info.photos !== '') { | ||||
|           JSON.parse(data.info.photos).map((item) => { | ||||
|             fileList.push({ | ||||
|               name: 'photo', | ||||
|               url: config.fileUrl + item, | ||||
|               remotePathName: item | ||||
|             }) | ||||
|           }) | ||||
|         } | ||||
|         const fileAddressList = [] | ||||
|         if (data.info.attachmentAddress != null && data.info.attachmentAddress !== '') { | ||||
|           const names = data.info.attachmentNames == null ? [] : JSON.parse(data.info.attachmentNames) | ||||
|           const address = data.info.attachmentAddress == null ? [] : JSON.parse(data.info.attachmentAddress) | ||||
|           for (let i = 0; i < address.length; i++) { | ||||
|             fileAddressList.push({ | ||||
|               name: names[i] || '附件', | ||||
|               url: config.fileUrl + address[i], | ||||
|               remotePathName: address[i] | ||||
|             }) | ||||
|           } | ||||
|         } | ||||
|         this.infoForm = { | ||||
|           ...data.info, | ||||
|           fileList: [ | ||||
|             { | ||||
|               name: 'photo', | ||||
|               url: config.fileUrl + data.info.photos, | ||||
|               remotePathName: data.info.photos | ||||
|             } | ||||
|           ], | ||||
|           fileAddressList: [ | ||||
|             { | ||||
|               name: '附件', | ||||
|               url: config.fileUrl + data.info.attachmentAddress, | ||||
|               remotePathName: data.info.attachmentAddress | ||||
|             } | ||||
|           ] | ||||
|         } | ||||
|         const fileAddress = this.infoForm.fileAddressList[0].remotePathName | ||||
|         if (fileAddress == null || fileAddress === '') { | ||||
|           this.infoForm.fileAddressList = [] | ||||
|           fileList: fileList, | ||||
|           fileAddressList: fileAddressList | ||||
|         } | ||||
|         this.infoForm.incidentDate = new Date(data.info.incidentDate) | ||||
|         this.infoForm.reportDate = new Date(data.info.reportDate) | ||||
|       }).catch((e) => { | ||||
|       }) | ||||
|     } | ||||
|   }, | ||||
|  | @ -254,13 +228,13 @@ export default { | |||
|     /** | ||||
|      * 文件列表移除文件时的钩子 | ||||
|      */ | ||||
|     handleRemovePicture(file) { | ||||
|     handleRemovePicture(file, fileList) { | ||||
|       if (file.remotePathName) { | ||||
|         requestFN(`/accident/delete/photos`, { | ||||
|           path: file.remotePathName | ||||
|         }).then((res) => { | ||||
|           if (res.result === 'success') { | ||||
|             this.infoForm.fileList = [] | ||||
|             this.infoForm.fileList = fileList | ||||
|             this.$message({ | ||||
|               message: '文件删除成功', | ||||
|               type: 'info', | ||||
|  | @ -274,13 +248,13 @@ export default { | |||
|     /** | ||||
|      * 文件列表移除文件时的钩子 | ||||
|      */ | ||||
|     handleRemoveAnnex(file) { | ||||
|     handleRemoveAnnex(file, fileList) { | ||||
|       if (file.remotePathName) { | ||||
|         requestFN(`/accident/delete/photos`, { | ||||
|           path: file.remotePathName | ||||
|         }).then((res) => { | ||||
|           if (res.result === 'success') { | ||||
|             this.infoForm.fileAddressList = [] | ||||
|             this.infoForm.fileAddressList = fileList | ||||
|             this.$message({ | ||||
|               message: '文件删除成功', | ||||
|               type: 'info', | ||||
|  | @ -299,6 +273,17 @@ export default { | |||
|       this.dialogImageUrl = file.url | ||||
|     }, | ||||
| 
 | ||||
|     /** | ||||
|      * 点击文件列表中已上传的文件时的钩子 | ||||
|      */ | ||||
|     handleDownloadAnnex(file) { | ||||
|       var a = document.createElement('a') | ||||
|       var event = new MouseEvent('click') | ||||
|       a.download = file.name | ||||
|       a.href = file.url | ||||
|       a.dispatchEvent(event) | ||||
|     }, | ||||
| 
 | ||||
|     /** | ||||
|      * 文件上传失败时的钩子处理 | ||||
|      */ | ||||
|  | @ -339,14 +324,11 @@ export default { | |||
|         formData.append('file', file) | ||||
|         upload('/accident/import/photos', formData).then((data) => { | ||||
|           if (data.result === 'success') { | ||||
|             this.infoForm = { | ||||
|               ...this.infoForm, | ||||
|               fileList: [{ | ||||
|                 name: file.name, | ||||
|                 url: config.fileUrl + data.path, | ||||
|                 remotePathName: data.path | ||||
|               }] | ||||
|             } | ||||
|             this.infoForm.fileList.push({ | ||||
|               name: file.name, | ||||
|               url: config.fileUrl + data.path, | ||||
|               remotePathName: data.path | ||||
|             }) | ||||
|           } | ||||
|         }) | ||||
|         return false | ||||
|  | @ -368,14 +350,11 @@ export default { | |||
|       formData.append('file', file) | ||||
|       upload('/accident/import/photos', formData).then((data) => { | ||||
|         if (data.result === 'success') { | ||||
|           this.infoForm = { | ||||
|             ...this.infoForm, | ||||
|             fileAddressList: [{ | ||||
|               name: file.name, | ||||
|               url: config.fileUrl + data.path, | ||||
|               remotePathName: data.path | ||||
|             }] | ||||
|           } | ||||
|           this.infoForm.fileAddressList.push({ | ||||
|             name: file.name, | ||||
|             url: config.fileUrl + data.path, | ||||
|             remotePathName: data.path | ||||
|           }) | ||||
|         } | ||||
|       }) | ||||
|       return false | ||||
|  | @ -425,29 +404,28 @@ export default { | |||
|      * 表单确认按钮 | ||||
|      */ | ||||
|     confirm() { | ||||
|       this.$refs.form.validate(valid => { | ||||
|       this.$refs.infoForm.validate(valid => { | ||||
|         if (!valid) { | ||||
|           return false | ||||
|         } | ||||
|         this.infoForm.incidentDate = formatDate(this.infoForm.incidentDate, 'YYYY-MM-DD HH:mm:ss') | ||||
|         this.infoForm.reportDate = formatDate(this.infoForm.reportDate, 'YYYY-MM-DD HH:mm:ss') | ||||
|         const address = this.infoForm.fileAddressList[0] | ||||
|         console.log(address) | ||||
|         const params = { | ||||
|           ...this.infoForm, | ||||
|           photos: this.infoForm.fileList[0].remotePathName, | ||||
|           attachmentAddress: address == null ? '' : address.remotePathName, | ||||
|           photos: this.infoForm.fileList.map(item => item.remotePathName), | ||||
|           attachmentAddress: this.infoForm.fileAddressList.map(item => item.remotePathName), | ||||
|           attachmentNames: this.infoForm.fileAddressList.map(item => item.name), | ||||
|           type: 1 | ||||
|         } | ||||
|         delete params.fileList | ||||
|         delete params.fileAddressList | ||||
|         requestFN('/accident' + (this.tableName === '修改' ? '/update' : '/save'), params) | ||||
|           .then((response) => { | ||||
|           .then(() => { | ||||
|             // 删除成功后的处理 | ||||
|             this.$message.success(this.tableName + '成功') | ||||
|             this.infoForm = this.$options.data().infoForm | ||||
|             this.$parent.activeName = 'List' | ||||
|             // eslint-disable-next-line handle-callback-err | ||||
|           }).catch((error) => { | ||||
|           }).catch(() => { | ||||
|             this.$message.error(this.tableName + '失败') | ||||
|           }) | ||||
|       }) | ||||
|  |  | |||
|  | @ -24,6 +24,7 @@ | |||
|               <a v-show="row.extension_name == '.txt'" style="color: #1e9fff" @click="goViewTxt(row.FILEPATH)">[预览]</a> | ||||
|               <a v-show="row.extension_name == '.pdf'" style="color: #1e9fff" @click="goViewPdf(row.FILEPATH)">[预览]</a> | ||||
|               <a v-show="row.extension_name == '.mp4'" style="color: #1e9fff" @click="goViewVideo(row.FILEPATH)">[预览]</a> | ||||
|               <a v-show="row.extension_name == '.jpg' || row.extension_name == '.jpeg' || row.extension_name == '.png'" style="color: #1e9fff" @click="goViewImg(row.FILEPATH)">[预览]</a> | ||||
|               <a v-show="row.extension_name == '.doc' || row.extension_name == '.xls' || row.extension_name == '.ppt' || row.extension_name == '.docx' || row.extension_name == '.xlsx' || row.extension_name == '.pptx'" style="color: #1e9fff" @click="goOffice(row.FILEPATH)">[下載]</a> | ||||
| 
 | ||||
|             </template> | ||||
|  | @ -82,12 +83,12 @@ | |||
|           <el-input v-model="form.NAME" placeholder="这里输入名称..." /> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="附件"> | ||||
|           <span v-if="form.FFILE">{{ form.FFILE.name }}</span> | ||||
|           <el-upload | ||||
|             :before-upload="beforeFileUpload" | ||||
|             :on-change="handleChangePDF" | ||||
|             :auto-upload="false" | ||||
|             accept=".pdf" | ||||
|             :limit="1" | ||||
|             accept=".pdf, .doc, .xls, .jpg, .png, .jpeg" | ||||
|             class="avatar-uploader" | ||||
|             action="#"> | ||||
|             <el-button type="primary">上传</el-button> | ||||
|  | @ -115,7 +116,7 @@ | |||
|             :on-change="handleChangePDF2" | ||||
|             :before-upload = "beforeFileUpload2" | ||||
|             :auto-upload="false" | ||||
|             accept=".pdf" | ||||
|             accept=".pdf, .doc, .xls, .jpg, .png, .jpeg" | ||||
|             class="upload-demo" | ||||
|             action="#"> | ||||
|             <el-button slot="trigger" size="small" type="primary">选取文件</el-button> | ||||
|  | @ -162,7 +163,16 @@ | |||
|           class="video-player vjs-custom-skin"/> | ||||
|       </div> | ||||
|     </el-dialog> | ||||
| 
 | ||||
|     <el-dialog :visible.sync="dialogViewImg" title="图片" width="600px"> | ||||
|       <el-image | ||||
|         :src="imgUrl" | ||||
|         :preview-src-list="[imgUrl]" | ||||
|         style="width: 100px; height: 100px"> | ||||
|         <div slot="error" class="image-slot"> | ||||
|           <i class="el-icon-picture-outline"/> | ||||
|         </div> | ||||
|       </el-image> | ||||
|     </el-dialog> | ||||
|   </div> | ||||
| 
 | ||||
| </template> | ||||
|  | @ -180,11 +190,14 @@ export default { | |||
|   directives: { waves }, | ||||
|   data() { | ||||
|     return { | ||||
|       config: config, | ||||
|       txtPre: '', | ||||
|       imgUrl: '', | ||||
|       dialogFormUpload: false, | ||||
|       dialogForm: false, | ||||
|       listLoading: true, | ||||
|       treeLoading: false, | ||||
|       dialogViewImg: false, | ||||
|       dialogBatchUpload: false, | ||||
|       add: false, | ||||
|       del: false, | ||||
|  | @ -259,7 +272,10 @@ export default { | |||
|     this.urlToBlob() | ||||
|   }, | ||||
|   methods: { | ||||
| 
 | ||||
|     goViewImg(filePath) { | ||||
|       this.imgUrl = this.config.fileUrl + filePath | ||||
|       this.dialogViewImg = true | ||||
|     }, | ||||
|     urlToBlob() {}, | ||||
|     // 上一页 | ||||
|     prePage() { | ||||
|  | @ -321,20 +337,18 @@ export default { | |||
|       console.log(file) | ||||
|     }, | ||||
|     handleChangePDF(file, fileList) { | ||||
|       const types = ['application/pdf'] | ||||
|       const isImage = types.includes(file.raw.type) | ||||
|       if (!isImage) { | ||||
|         this.$message.error('上传文件只能是 PDF 格式!') | ||||
|       const types = ['pdf', 'doc', 'xls', 'jpg', 'png', 'jpeg'] | ||||
|       if (!types.includes(file.name.substring(file.name.lastIndexOf('.') + 1))) { | ||||
|         this.$message.error('上传文件只支持【' + types + '】格式!') | ||||
|         fileList.pop() | ||||
|       } else { | ||||
|         this.form.FFILE = file.raw | ||||
|       } | ||||
|     }, | ||||
|     handleChangePDF2(file, fileList) { | ||||
|       const types = ['application/pdf'] | ||||
|       const isImage = types.includes(file.raw.type) | ||||
|       if (!isImage) { | ||||
|         this.$message.error('上传文件只能是 PDF 格式!') | ||||
|       const types = ['pdf', 'doc', 'xls', 'jpg', 'png', 'jpeg'] | ||||
|       if (!types.includes(file.name.substring(file.name.lastIndexOf('.') + 1))) { | ||||
|         this.$message.error('上传文件只支持【' + types + '】格式!') | ||||
|         fileList.pop() | ||||
|       } | ||||
|     }, | ||||
|  | @ -355,23 +369,21 @@ export default { | |||
|     //   return false | ||||
|     // }, | ||||
|     beforeFileUpload2(file) { | ||||
|       var testmsg = file.name.substring(file.name.lastIndexOf('.') + 1) | ||||
|       const extension = testmsg === 'pdf' | ||||
|       if (!extension) { | ||||
|         this.$confirm(`上传文件只能是pdf格式!`) | ||||
|       } else { | ||||
|       const types = ['pdf', 'doc', 'xls', 'jpg', 'png', 'jpeg'] | ||||
|       if (types.includes(file.name.substring(file.name.lastIndexOf('.') + 1))) { | ||||
|         this.fileList.push(file) | ||||
|       } else { | ||||
|         this.$confirm('上传文件只支持【' + types + '】格式!') | ||||
|       } | ||||
|       this.$forceUpdate() | ||||
|       return false | ||||
|     }, | ||||
|     beforeFileUpload(file) { | ||||
|       var testmsg = file.name.substring(file.name.lastIndexOf('.') + 1) | ||||
|       const extension = testmsg === 'pdf' | ||||
|       if (!extension) { | ||||
|         this.$confirm(`上传文件只能是pdf格式!`) | ||||
|       } else { | ||||
|       const types = ['pdf', 'doc', 'xls', 'jpg', 'png', 'jpeg'] | ||||
|       if (types.includes(file.name.substring(file.name.lastIndexOf('.') + 1))) { | ||||
|         this.form.FFILE = file | ||||
|       } else { | ||||
|         this.$confirm('上传文件只支持【' + types + '】格式!') | ||||
|       } | ||||
|       this.$forceUpdate() | ||||
|       return false | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue