{"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]}