{"remainingRequest":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\cssc-fvue\\src\\components\\common\\fileUploadFlow.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\cssc-fvue\\src\\components\\common\\fileUploadFlow.vue","mtime":1667804638696},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { mapState } from \"vuex\";\r\nimport req from \"@/request.js\";\r\nimport utils from \"@/utils.js\";\r\nimport FilePreview from \"@/components/common/FilePreview.vue\";\r\nimport { Loading } from \"element-ui\";\r\nexport default {\r\n props: [\"fileVal\", \"multiples\", \"accept\", \"limit\", \"conf\",\"isSimple\"],\r\n components: { FilePreview },\r\n data() {\r\n return {\r\n src: \"\",\r\n files: [],\r\n fileId: \"\",\r\n fileTree: \"\",\r\n isChecking: true,\r\n num: 0,\r\n list: [],\r\n filesData: [],\r\n maxWidth: \"100%\"\r\n };\r\n },\r\n computed: mapState({\r\n header: state => {\r\n return { Authorization: `Bearer ${state.login.currentUser.token}` };\r\n },\r\n intLimit: function() {\r\n if (!this.multiples) return 1;\r\n return this.limit ? parseInt(this.limit) : 5;\r\n },\r\n actionUrl: function() {\r\n return window.context.portal + \"/file/v1/upload\";\r\n },\r\n acceptType: function() {\r\n if (!this.accept) {\r\n return \"\";\r\n }\r\n let acceptTypeArr = [];\r\n for (let i = 0, type; (type = this.accept.split(\",\")[i++]); ) {\r\n acceptTypeArr.push(\".\" + type);\r\n }\r\n return acceptTypeArr.join(\",\");\r\n }\r\n }),\r\n watch: {\r\n files: {\r\n handler(newVal, oldVal) {\r\n this.$emit(\"input\", JSON.stringify(newVal));\r\n },\r\n deep: true\r\n }\r\n },\r\n methods: {\r\n //附件下载\r\n download(file) {\r\n this.$store.dispatch(\"menu/downloadFile\", file.id);\r\n },\r\n //上移按钮\r\n up(idx) {\r\n idx = Number.parseInt(idx);\r\n if (idx < 1) {\r\n return;\r\n }\r\n //table数据改变\r\n var t = this.filesData[idx - 1];\r\n this.$set(this.filesData, idx - 1, this.filesData[idx]);\r\n this.$set(this.filesData, idx, t);\r\n\r\n //boData数据也跟着改变\r\n var t = this.files[idx - 1];\r\n this.$set(this.files, idx - 1, this.files[idx]);\r\n this.$set(this.files, idx, t);\r\n this.$emit(\"input\", JSON.stringify(this.files));\r\n },\r\n //下移按钮\r\n down(idx) {\r\n idx = Number.parseInt(idx);\r\n if (idx >= this.filesData.length - 1) {\r\n return;\r\n }\r\n //table数据改变\r\n var t = this.filesData[idx + 1];\r\n this.$set(this.filesData, idx + 1, this.filesData[idx]);\r\n this.$set(this.filesData, idx, t);\r\n\r\n //boData数据也跟着改变\r\n var t = this.files[idx + 1];\r\n this.$set(this.files, idx + 1, this.files[idx]);\r\n this.$set(this.files, idx, t);\r\n this.$emit(\"input\", JSON.stringify(this.files));\r\n },\r\n preview(files) {\r\n let obj = {};\r\n obj.id=files.id;\r\n obj.name=files.name;\r\n obj.size=files.size;\r\n this.$refs.filePreview.preview(obj);\r\n },\r\n beforeRemove(file) {\r\n if (this.isChecking) {\r\n return this.$confirm(`确定移除 ${file.name}?`).then(() => {\r\n this.num = 0;\r\n let value = {};\r\n if (file.response) {\r\n value = JSON.parse(file.response.value);\r\n } else {\r\n value = file;\r\n value.fileId = file.id;\r\n }\r\n for (var i = 0; i < this.files.length; i++) {\r\n if (this.files[i].id == value.fileId) {\r\n this.files.splice(i, 1); //删除数组某一项\r\n }\r\n }\r\n if (JSON.stringify(this.files) == \"[]\") {\r\n this.filesData = [];\r\n this.$emit(\"input\", \"\");\r\n } else {\r\n this.filesData = [];\r\n for (let i = 0; i < this.files.length; i++) {\r\n this.filesData.push({\r\n id: this.files[i].id,\r\n name: this.files[i].name,\r\n size: this.files[i].size,\r\n type: utils.substringType(this.files[i].name, \".\"),\r\n bytes: utils.bigDecimal(this.files[i].size),\r\n username: this.files[i].username\r\n });\r\n }\r\n this.$emit(\"input\", JSON.stringify(this.files));\r\n }\r\n });\r\n } else {\r\n this.num = 0;\r\n let value = {};\r\n if (file.response) {\r\n value = JSON.parse(file.response.value);\r\n } else {\r\n value = file;\r\n value.fileId = file.id;\r\n }\r\n for (var i = 0; i < this.files.length; i++) {\r\n if (this.files[i].id == value.fileId) {\r\n this.files.splice(i, 1); //删除数组某一项\r\n }\r\n }\r\n if (JSON.stringify(this.files) == \"[]\") {\r\n this.filesData = [];\r\n this.$emit(\"input\", \"\");\r\n } else {\r\n this.filesData = [];\r\n for (let i = 0; i < this.files.length; i++) {\r\n this.filesData.push({\r\n id: this.files[i].id,\r\n name: this.files[i].name,\r\n size: this.files[i].size,\r\n type: utils.substringType(this.files[i].name, \".\"),\r\n bytes: utils.bigDecimal(this.files[i].size),\r\n username: this.files[i].username\r\n });\r\n }\r\n this.$emit(\"input\", JSON.stringify(this.files));\r\n }\r\n }\r\n },\r\n //文件上传时\r\n progress(event, file, fileList) {\r\n Loading.service(\"文件上传中\");\r\n },\r\n //文件上传成功时\r\n success(response, file, fileList) {\r\n let loadingInstance = Loading.service(\"文件上传中\");\r\n this.$nextTick(() => {\r\n // 以服务的方式调用的 Loading 需要异步关闭\r\n loadingInstance.close();\r\n });\r\n if (this.num == 0) {\r\n this.list = [];\r\n for (let i = 0; i < fileList.length; i++) {\r\n this.list.push(fileList[i]);\r\n }\r\n }\r\n this.num = this.num + 1;\r\n for (let j = 0; j < this.list.length; j++) {\r\n if (!this.list[j].raw) {\r\n for (let i = 0; i < fileList.length; i++) {\r\n if (this.list[j].name == fileList[i].name) {\r\n fileList.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (this.num == fileList.length) {\r\n for (let i = 0; i < fileList.length; i++) {\r\n if (fileList[i].response) {\r\n let value = JSON.parse(fileList[i].response.value);\r\n let arrarFile = {};\r\n arrarFile.id = value.fileId;\r\n arrarFile.name = value.fileName;\r\n arrarFile.size = value.size;\r\n arrarFile.username = JSON.parse(\r\n sessionStorage.getItem(\"currentUser\")\r\n ).username;\r\n this.files.push(arrarFile);\r\n }\r\n }\r\n this.filesData = [];\r\n for (let i = 0; i < this.files.length; i++) {\r\n this.filesData.push({\r\n id: this.files[i].id,\r\n name: this.files[i].name,\r\n size: this.files[i].size,\r\n type: utils.substringType(this.files[i].name, \".\"),\r\n bytes: utils.bigDecimal(this.files[i].size),\r\n username: this.files[i].username\r\n });\r\n }\r\n this.$emit(\"input\", JSON.stringify(this.files));\r\n }\r\n },\r\n // handleChange(file, fileList) {\r\n // debugger\r\n // if(file.status==\"success\"){\r\n // let value = JSON.parse(file.response.value);\r\n // let arrarFile = {};\r\n // arrarFile.id = value.fileId;\r\n // arrarFile.name = value.fileName;\r\n // arrarFile.size = value.size;\r\n // this.files.push(arrarFile);\r\n // this.$emit(\"input\", JSON.stringify(this.files));\r\n // }\r\n // },\r\n getFiles() {\r\n if (this.files.length == 0) {\r\n return \"\";\r\n } else {\r\n return this.files;\r\n }\r\n },\r\n beforeAvatarUpload(file) {\r\n // 文件类型限制\r\n const name = file.name ? file.name : \"\";\r\n const ext = name\r\n ? name.substr(name.lastIndexOf(\".\") + 1, name.length)\r\n : true;\r\n const isExt = this.accept.indexOf(ext) < 0;\r\n this.isChecking = !isExt;\r\n if (isExt) {\r\n if (this.accept == \"false\") {\r\n this.$message.error(\"请配置可上传文件的格式!\");\r\n } else {\r\n this.$message.error(\"上传的附件只能是 \" + this.accept + \"格式!\");\r\n }\r\n return !isExt;\r\n }\r\n }\r\n },\r\n // mounted() {\r\n // let _this = this;\r\n // debugger\r\n // //监听表单提交事件,如果附件上传配置了扩展属性则进行更新\r\n // if (this.conf && this.conf.length>0) {\r\n // this.$root.$on('bpmFormSubmit', function(value) {\r\n // debugger\r\n // _this.$store.dispatch(\"menu/updateFileExtraProp\",_this.files);\r\n // });\r\n // }\r\n // },\r\n created() {\r\n this.$nextTick(function() {\r\n this.maxWidth = this.$el.offsetWidth;\r\n });\r\n setTimeout(() => {\r\n if (this.fileVal) {\r\n let value = JSON.parse(this.fileVal);\r\n for (var i = 0; i < value.length; i++) {\r\n this.files.push(value[i]);\r\n }\r\n for (let i = 0; i < value.length; i++) {\r\n this.filesData.push({\r\n id: this.files[i].id,\r\n name: this.files[i].name,\r\n size: this.files[i].size,\r\n type: utils.substringType(this.files[i].name, \".\"),\r\n bytes: utils.bigDecimal(this.files[i].size),\r\n username: this.files[i].username\r\n });\r\n }\r\n }\r\n }, 100);\r\n this.$validator = this.$root.$validator;\r\n }\r\n};\r\n",null]}