mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 18:28:43 +08:00 
			
		
		
		
	Merge branch 'master' of https://gitee.com/zhijiantianya/ruoyi-vue-pro into feature/bpm-back
This commit is contained in:
		| @@ -1,7 +1,7 @@ | ||||
| <template> | ||||
|   <div> | ||||
|     <el-upload | ||||
|       :action="uploadUrl" | ||||
|       :action="uploadFileUrl" | ||||
|       :before-upload="handleBeforeUpload" | ||||
|       :on-success="handleUploadSuccess" | ||||
|       :on-error="handleUploadError" | ||||
| @@ -10,7 +10,7 @@ | ||||
|       :headers="headers" | ||||
|       style="display: none" | ||||
|       ref="upload" | ||||
|       v-if="this.type == 'url'" | ||||
|       v-if="this.type === 'url'" | ||||
|     > | ||||
|     </el-upload> | ||||
|     <div class="editor" ref="editor" :style="styles"></div> | ||||
| @@ -22,7 +22,7 @@ import Quill from "quill"; | ||||
| import "quill/dist/quill.core.css"; | ||||
| import "quill/dist/quill.snow.css"; | ||||
| import "quill/dist/quill.bubble.css"; | ||||
| import { getToken } from "@/utils/auth"; | ||||
| import { getAccessToken } from "@/utils/auth"; | ||||
|  | ||||
| export default { | ||||
|   name: "Editor", | ||||
| @@ -60,10 +60,8 @@ export default { | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       uploadUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址 | ||||
|       headers: { | ||||
|         Authorization: "Bearer " + getToken() | ||||
|       }, | ||||
|       uploadFileUrl: process.env.VUE_APP_BASE_API + "/admin-api/infra/file/upload", // 请求地址 | ||||
|       headers: { Authorization: "Bearer " + getAccessToken() }, // 设置上传的请求头部 | ||||
|       Quill: null, | ||||
|       currentValue: "", | ||||
|       options: { | ||||
| @@ -126,7 +124,7 @@ export default { | ||||
|       const editor = this.$refs.editor; | ||||
|       this.Quill = new Quill(editor, this.options); | ||||
|       // 如果设置了上传地址则自定义图片上传事件 | ||||
|       if (this.type == 'url') { | ||||
|       if (this.type === 'url') { | ||||
|         let toolbar = this.Quill.getModule("toolbar"); | ||||
|         toolbar.addHandler("image", (value) => { | ||||
|           this.uploadType = "image"; | ||||
| @@ -172,11 +170,13 @@ export default { | ||||
|       // 获取富文本组件实例 | ||||
|       let quill = this.Quill; | ||||
|       // 如果上传成功 | ||||
|       if (res.code == 200) { | ||||
|       // edit by 芋道源码 | ||||
|       if (res.code === 200 || res.code === 0) { | ||||
|         // 获取光标所在位置 | ||||
|         let length = quill.getSelection().index; | ||||
|         // 插入图片  res.url为服务器返回的图片地址 | ||||
|         quill.insertEmbed(length, "image", process.env.VUE_APP_BASE_API + res.fileName); | ||||
|         // edit by 芋道源码 | ||||
|         quill.insertEmbed(length, "image", res.data); | ||||
|         // 调整光标到最后 | ||||
|         quill.setSelection(length + 1); | ||||
|       } else { | ||||
|   | ||||
| @@ -28,7 +28,7 @@ | ||||
|     <!-- 文件列表 --> | ||||
|     <transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul"> | ||||
|       <li :key="file.url" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in fileList"> | ||||
|         <el-link :href="`${baseUrl}${file.url}`" :underline="false" target="_blank"> | ||||
|         <el-link :href="`${file.url}`" :underline="false" target="_blank"> | ||||
|           <span class="el-icon-document"> {{ getFileName(file.name) }} </span> | ||||
|         </el-link> | ||||
|         <div class="ele-upload-list__item-content-action"> | ||||
| @@ -40,7 +40,7 @@ | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import { getToken } from "@/utils/auth"; | ||||
| import { getAccessToken } from "@/utils/auth"; | ||||
|  | ||||
| export default { | ||||
|   name: "FileUpload", | ||||
| @@ -72,11 +72,8 @@ export default { | ||||
|     return { | ||||
|       number: 0, | ||||
|       uploadList: [], | ||||
|       baseUrl: process.env.VUE_APP_BASE_API, | ||||
|       uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址 | ||||
|       headers: { | ||||
|         Authorization: "Bearer " + getToken(), | ||||
|       }, | ||||
|       uploadFileUrl: process.env.VUE_APP_BASE_API + "/admin-api/infra/file/upload", // 请求地址 | ||||
|       headers: { Authorization: "Bearer " + getAccessToken() }, // 设置上传的请求头部 | ||||
|       fileList: [], | ||||
|     }; | ||||
|   }, | ||||
| @@ -121,8 +118,7 @@ export default { | ||||
|         } | ||||
|         const isTypeOk = this.fileType.some((type) => { | ||||
|           if (file.type.indexOf(type) > -1) return true; | ||||
|           if (fileExtension && fileExtension.indexOf(type) > -1) return true; | ||||
|           return false; | ||||
|           return !!(fileExtension && fileExtension.indexOf(type) > -1); | ||||
|         }); | ||||
|         if (!isTypeOk) { | ||||
|           this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`); | ||||
| @@ -152,7 +148,8 @@ export default { | ||||
|     }, | ||||
|     // 上传成功回调 | ||||
|     handleUploadSuccess(res) { | ||||
|       this.uploadList.push({ name: res.fileName, url: res.fileName }); | ||||
|       // edit by 芋道源码 | ||||
|       this.uploadList.push({ name: res.data, url: res.data }); | ||||
|       if (this.uploadList.length === this.number) { | ||||
|         this.fileList = this.fileList.concat(this.uploadList); | ||||
|         this.uploadList = []; | ||||
| @@ -181,7 +178,7 @@ export default { | ||||
|       for (let i in list) { | ||||
|         strs += list[i].url + separator; | ||||
|       } | ||||
|       return strs != '' ? strs.substr(0, strs.length - 1) : ''; | ||||
|       return strs !== '' ? strs.substr(0, strs.length - 1) : ''; | ||||
|     } | ||||
|   } | ||||
| }; | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
|   <div class="component-upload-image"> | ||||
|     <el-upload | ||||
|       multiple | ||||
|       :action="uploadImgUrl" | ||||
|       :action="uploadFileUrl" | ||||
|       list-type="picture-card" | ||||
|       :on-success="handleUploadSuccess" | ||||
|       :before-upload="handleBeforeUpload" | ||||
| @@ -43,7 +43,7 @@ | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import { getToken } from "@/utils/auth"; | ||||
| import { getAccessToken } from "@/utils/auth"; | ||||
|  | ||||
| export default { | ||||
|   props: { | ||||
| @@ -76,11 +76,8 @@ export default { | ||||
|       dialogImageUrl: "", | ||||
|       dialogVisible: false, | ||||
|       hideUpload: false, | ||||
|       baseUrl: process.env.VUE_APP_BASE_API, | ||||
|       uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址 | ||||
|       headers: { | ||||
|         Authorization: "Bearer " + getToken(), | ||||
|       }, | ||||
|       uploadFileUrl: process.env.VUE_APP_BASE_API + "/admin-api/infra/file/upload", // 请求地址 | ||||
|       headers: { Authorization: "Bearer " + getAccessToken() }, // 设置上传的请求头部 | ||||
|       fileList: [] | ||||
|     }; | ||||
|   }, | ||||
| @@ -93,11 +90,8 @@ export default { | ||||
|           // 然后将数组转为对象数组 | ||||
|           this.fileList = list.map(item => { | ||||
|             if (typeof item === "string") { | ||||
|               if (item.indexOf(this.baseUrl) === -1) { | ||||
|                 item = { name: this.baseUrl + item, url: this.baseUrl + item }; | ||||
|               } else { | ||||
|                 item = { name: item, url: item }; | ||||
|               } | ||||
|               // edit by 芋道源码 | ||||
|               item = { name: item, url: item }; | ||||
|             } | ||||
|             return item; | ||||
|           }); | ||||
| @@ -127,7 +121,8 @@ export default { | ||||
|     }, | ||||
|     // 上传成功回调 | ||||
|     handleUploadSuccess(res) { | ||||
|       this.uploadList.push({ name: res.fileName, url: res.fileName }); | ||||
|       // edit by 芋道源码 | ||||
|       this.uploadList.push({ name: res.data, url: res.data }); | ||||
|       if (this.uploadList.length === this.number) { | ||||
|         this.fileList = this.fileList.concat(this.uploadList); | ||||
|         this.uploadList = []; | ||||
| @@ -188,7 +183,7 @@ export default { | ||||
|       for (let i in list) { | ||||
|         strs += list[i].url.replace(this.baseUrl, "") + separator; | ||||
|       } | ||||
|       return strs != '' ? strs.substr(0, strs.length - 1) : ''; | ||||
|       return strs !== '' ? strs.substr(0, strs.length - 1) : ''; | ||||
|     } | ||||
|   } | ||||
| }; | ||||
|   | ||||
| @@ -1,68 +0,0 @@ | ||||
| <template> | ||||
|   <div class="component-upload-image"> | ||||
|     <el-upload | ||||
|       :action="uploadImgUrl" | ||||
|       list-type="picture-card" | ||||
|       :on-success="handleUploadSuccess" | ||||
|       :before-upload="handleBeforeUpload" | ||||
|       :on-error="handleUploadError" | ||||
|       name="file" | ||||
|       :show-file-list="false" | ||||
|       :headers="headers" | ||||
|       style="display: inline-block; vertical-align: top" | ||||
|     > | ||||
|       <img v-if="value" :src="value" class="avatar" /> | ||||
|       <i v-else class="el-icon-plus avatar-uploader-icon"></i> | ||||
|     </el-upload> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import { getToken } from "@/utils/auth"; | ||||
|  | ||||
| export default { | ||||
|   components: {}, | ||||
|   data() { | ||||
|     return { | ||||
|       uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址 | ||||
|       headers: { | ||||
|         Authorization: "Bearer " + getToken(), | ||||
|       }, | ||||
|     }; | ||||
|   }, | ||||
|   props: { | ||||
|     value: { | ||||
|       type: String, | ||||
|       default: "", | ||||
|     }, | ||||
|   }, | ||||
|   methods: { | ||||
|     handleUploadSuccess(res) { | ||||
|       this.$emit("input", res.url); | ||||
|       this.loading.close(); | ||||
|     }, | ||||
|     handleBeforeUpload() { | ||||
|       this.loading = this.$loading({ | ||||
|         lock: true, | ||||
|         text: "上传中", | ||||
|         background: "rgba(0, 0, 0, 0.7)", | ||||
|       }); | ||||
|     }, | ||||
|     handleUploadError() { | ||||
|       this.$message({ | ||||
|         type: "error", | ||||
|         message: "上传失败", | ||||
|       }); | ||||
|       this.loading.close(); | ||||
|     }, | ||||
|   }, | ||||
|   watch: {}, | ||||
| }; | ||||
| </script> | ||||
|  | ||||
| <style scoped lang="scss"> | ||||
| .avatar { | ||||
|   width: 100%; | ||||
|   height: 100%; | ||||
| } | ||||
| </style> | ||||
| @@ -292,8 +292,8 @@ export default { | ||||
|           if (task.endTime) { | ||||
|             html += `<p>结束时间:${this.parseTime(task.endTime)}</p>` | ||||
|           } | ||||
|           if (task.comment) { | ||||
|             html += `<p>审批建议:${task.comment}</p>` | ||||
|           if (task.reason) { | ||||
|             html += `<p>审批建议:${task.reason}</p>` | ||||
|           } | ||||
|         } else if (element.type === 'bpmn:EndEvent' && this.processInstance) { | ||||
|           html = `<p>结果:${this.getDictDataLabel(this.DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT, this.processInstance.result)}</p>`; | ||||
|   | ||||
| @@ -499,7 +499,8 @@ export const selectComponents = [ | ||||
|     __slot__: { | ||||
|       'list-type': true | ||||
|     }, | ||||
|     action: 'https://jsonplaceholder.typicode.com/posts/', | ||||
|     // action: process.env.VUE_APP_BASE_API + "/admin-api/infra/file/upload", // 请求地址 | ||||
|     action: '/infra/file/upload', // 请求地址 | ||||
|     disabled: false, | ||||
|     accept: '', | ||||
|     name: 'file', | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| <script> | ||||
| import { deepClone } from '@/utils/index' | ||||
| import render from '@/components/render/render.js' | ||||
| import {getAccessToken} from "@/utils/auth"; | ||||
|  | ||||
| const ruleTrigger = { | ||||
|   'el-input': 'blur', | ||||
| @@ -79,10 +80,51 @@ function formBtns(h) { | ||||
| } | ||||
|  | ||||
| function renderFormItem(h, elementList) { | ||||
|   const that = this | ||||
|   const data = this[this.formConf.formModel] | ||||
|   // const formRef = that.$refs[that.formConf.formRef] // 这里直接添加有问题,此时还找不到表单 $refs | ||||
|   return elementList.map(scheme => { | ||||
|     const config = scheme.__config__ | ||||
|     const layout = layouts[config.layout] | ||||
|  | ||||
|     // edit by 芋道源码,解决 el-upload 上传的问题 | ||||
|     // 参考 https://github.com/JakHuang/form-generator/blob/master/src/components/parser/example/Index.vue 实现 | ||||
|     const vModel = scheme.__vModel__ | ||||
|     const val = data[vModel] | ||||
|     if (scheme.__config__.tag === 'el-upload') { | ||||
|       // 回显图片 | ||||
|       scheme['file-list'] = (val || []).map(url => ({ name: url, url })) | ||||
|       // 上传地址 + 请求头 | ||||
|       scheme.action = process.env.VUE_APP_BASE_API + "/admin-api/infra/file/upload" | ||||
|       scheme.headers = { Authorization: "Bearer " + getAccessToken() } | ||||
|       // 注意 on-success 不能绑定箭头函数!!! | ||||
|       scheme['on-success'] = function (response, file, fileList) { | ||||
|         if (response.code !== 0) { | ||||
|           return; | ||||
|         } | ||||
|         // 添加到 data 中 | ||||
|         const prev = data[vModel] || [] | ||||
|         this.$set(data, vModel, [ | ||||
|           ...prev, | ||||
|           response.data | ||||
|         ]) | ||||
|         // 发起表单校验 | ||||
|         that.$refs[that.formConf.formRef].validateField(vModel) | ||||
|       } | ||||
|       // 注意 on-remove 不能绑定箭头函数!!! | ||||
|       scheme['on-remove'] = function (file, fileList) { | ||||
|         // 移除从 data 中 | ||||
|         const prev = data[vModel] || [] | ||||
|         const index = prev.indexOf(file.response.data) | ||||
|         if (index === -1) { | ||||
|           return | ||||
|         } | ||||
|         prev.splice(index, 1) // 直接移除即可,无需重复 set,因为 array 是引用 | ||||
|         // 发起表单校验 | ||||
|         that.$refs[that.formConf.formRef].validateField(vModel) | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     if (layout) { | ||||
|       return layout.call(this, h, scheme) | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV