{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\common\\ImgPreviewUpload.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\common\\ImgPreviewUpload.vue","mtime":1667327529075},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-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\r\nimport {mapState} from 'vuex'\r\nimport req from '@/request.js'\r\nimport utils from '@/hotent-ui-util.js'\r\nexport default {\r\n props: ['accept'],\r\n data() {\r\n return {\r\n limits: this.limit,\r\n src: '',\r\n fileId: '',\r\n fileTree: '',\r\n iframeSrc: '',\r\n files: [],\r\n uploadingFiles: {},\r\n list: [],\r\n isChecking: true,\r\n num: 0,\r\n imgUrl: '',\r\n dialogVisible: false,\r\n }\r\n },\r\n computed: mapState({\r\n header: (state) => {\r\n if (state.login && state.login.currentUser) {\r\n return {\r\n Authorization: `Bearer ${state.login.currentUser.token}`,\r\n }\r\n }\r\n return {}\r\n },\r\n actionUrl: function () {\r\n return window.context.portal + '/file/v1/upload'\r\n },\r\n }),\r\n mounted() {\r\n if (!this.limit) {\r\n this.limits = 9999999\r\n }\r\n if (!this.accept) {\r\n this.accept =\r\n '.jpg,.jpeg,.png,.bmp,.pdf,.JPG,.JPEG,.PNG,.BMP,.PDF,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.rtf,.txt,.zip,.rar,.vsd,.dwg'\r\n }\r\n },\r\n methods: {\r\n handlePictureCardPreview() {\r\n this.dialogVisible = true\r\n },\r\n exceed(file, fileList) {\r\n if (this.limit == 1 && (fileList.length == 1 || file.length > 1)) {\r\n this.$message.warning('正文只能上传一个文件')\r\n }\r\n },\r\n preview(files) {\r\n var id = files.id\r\n this.$store.dispatch('menu/onlinePreview', id).then((data) => {\r\n this.fileId = id\r\n if (data.result == 'html') {\r\n this.iframeSrc = window.context.portal + data.pdfUrl\r\n this.$refs.iframeSrcSearch.handleOpen()\r\n } else if (data.result == 'txt') {\r\n this.iframeSrc = window.context.portal + data.TxtUrl\r\n this.$refs.iframeSrcSearch.handleOpen()\r\n } else if (data.result == 'picture') {\r\n this.iframeSrc = window.context.portal + data.currentUrl\r\n this.$refs.iframeSrcSearch.handleOpen()\r\n } else if (data.result == 'compress') {\r\n this.fileTree = JSON.parse(data.fileTree).childList\r\n this.$refs.fileTreeSearch.handleOpen()\r\n } else {\r\n this.src = window.context.portal + data.pdfUrl\r\n this.$refs.pdfSearch.handleOpen()\r\n }\r\n })\r\n },\r\n remove(files) {\r\n console.log(this.$refs.upload)\r\n this.$refs.upload.clearFiles()\r\n this.files = []\r\n this.uploadingFiles = {}\r\n this.list = []\r\n this.imgUrl = ''\r\n },\r\n beforeRemove(file, fileList) {\r\n console.log(file, '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 })\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 delete this.uploadingFiles[\r\n Base64.encode(this.files[i].name)\r\n ]\r\n }\r\n }\r\n }\r\n },\r\n error(response, file, fileList) {\r\n delete this.uploadingFiles[Base64.encode(file.name)]\r\n },\r\n success(response, file, fileList) {\r\n console.log(response, file, fileList, '参数')\r\n for (let i = 0; i < fileList.length; i++) {\r\n delete this.uploadingFiles[Base64.encode(fileList[i].name)]\r\n }\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 k = 0; k < fileList.length; k++) {\r\n if (this.list[j].name == fileList[k].name) {\r\n fileList.splice(k, 1)\r\n break\r\n }\r\n }\r\n }\r\n }\r\n if (this.num == fileList.length) {\r\n for (let n = 0; n < fileList.length; n++) {\r\n if (fileList[n].response) {\r\n let value = fileList[n].response\r\n let arrarFile = {}\r\n this.getUrlByfileId(value.fileId)\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 }\r\n }\r\n this.$emit('input', JSON.stringify(this.files))\r\n }\r\n },\r\n getUrlByfileId(id) {\r\n req.get(\r\n window.context.portal +\r\n '/file/onlinePreviewController/v1/getFileById_' +\r\n id,\r\n 'arraybuffer'\r\n ).then((response) => {\r\n let type = response.headers['content-type']\r\n if (type) {\r\n this.imgUrl = window.URL.createObjectURL(\r\n new Blob([response.data], {type: type})\r\n )\r\n } else {\r\n this.imgUrl = window.URL.createObjectURL(\r\n new Blob([response.data])\r\n )\r\n }\r\n })\r\n },\r\n // handleChange(file, fileList) {\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 //清除附件\r\n clearFiles() {\r\n this.$refs.fileUp.clearFiles()\r\n },\r\n setFiles(files) {\r\n this.files = files\r\n },\r\n isFinishUpload() {\r\n if (JSON.stringify(this.uploadingFiles) != '{}') {\r\n this.$message.warning('正在上传附件,请稍后!')\r\n throw '正在上传附件,请稍后!'\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(\r\n '上传的附件只能是 ' + this.accept + '格式!'\r\n )\r\n }\r\n return !isExt\r\n }\r\n this.uploadingFiles[Base64.encode(name)] = 'eror'\r\n },\r\n },\r\n}\r\n",null]}