{"remainingRequest":"D:\\jenkins\\workspace\\examine-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\examine-fvue\\src\\components\\eipControl\\EipViewer.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\examine-fvue\\src\\components\\eipControl\\EipViewer.vue","mtime":1667280204061},{"path":"D:\\jenkins\\workspace\\examine-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\examine-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\examine-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\r\nimport req from \"@/request.js\";\r\nimport { mapState } from \"vuex\";\r\nimport { Loading } from \"element-ui\";\r\nimport hotentUtils from \"@/hotent-ui-util.js\";\r\nimport sub_pio_mixin from \"@/sub-permission-mixin.js\";\r\nimport utils from \"@/utils.js\";\r\nexport default {\r\n name: \"EipViewer\",\r\n props: [\r\n \"value\",\r\n \"permission\",\r\n \"modelExpression\",\r\n \"imgHeight\",\r\n \"imgWidth\",\r\n \"uploadType\",\r\n \"limit\",\r\n \"multiple\",\r\n \"validate\",\r\n \"name\",\r\n \"allowPreview\",\r\n \"allowDownload\"\r\n ],\r\n mixins: [sub_pio_mixin],//混入方式引入表单组件中公共属性,处理子表、孙表行内联动(切面修改permission_sub_sub)\r\n data() {\r\n return {\r\n httpsFile: { fileName: \"\", url: \"\", previewUrl:\"\" },\r\n dialogFormVisible: false,\r\n style: {\r\n width: \"265px\",\r\n height: \"180px\",\r\n border: \"2px solid #ccc\",\r\n borderRadius: \"3px\",\r\n padding: \"1px\",\r\n margin: \"1px\",\r\n cursor: \"pointer\"\r\n },\r\n imgArr: []\r\n };\r\n },\r\n computed: mapState({\r\n inputVal: {\r\n get() {\r\n return this.value;\r\n },\r\n set(val) {\r\n this.$emit(\"input\", val);\r\n }\r\n },\r\n inputWriteable: function() {\r\n return utils.getWriteable(this.permission_sub);\r\n },\r\n inputValidate: function() {\r\n var validateObj = this.$store.state.index.validate;\r\n return utils.addRequiredOrNot(\r\n this.permission_sub,\r\n this.validate,\r\n validateObj,\r\n this\r\n );\r\n },\r\n inputName: function() {\r\n let labeldesc = \"\";\r\n if(this.$slots && this.$slots.labeldesc && this.$slots.labeldesc[0].children && this.$slots.labeldesc[0].children[0].text ){\r\n labeldesc = this.$slots.labeldesc[0].children[0].text;\r\n return this.name ? this.name : utils.getName()+ \"-\" +labeldesc;\r\n }else{\r\n return this.name ? this.name : utils.getName();\r\n }\r\n },\r\n header: state => {\r\n return { Authorization: `Bearer ${state.login.currentUser.token}` };\r\n },\r\n actionUrl: function() {\r\n return window.context.portal + \"/system/file/v1/upload\";\r\n },\r\n previewAble: function(){\r\n if(this.permission_sub!='w' && !this.allowPreview){\r\n return false;\r\n }\r\n return true;\r\n },\r\n downloadAble: function(){\r\n if(this.permission_sub!='w' && !this.allowDownload){\r\n return false;\r\n }\r\n return true;\r\n },\r\n }),\r\n watch: {\r\n imgArr: function(newVal,oldVal) {\r\n if (newVal && (newVal.length>0 && (!newVal[newVal.length-1].status || newVal[newVal.length-1].status!=\"success\"))) {\r\n if(this.previewAble){\r\n let this_ = this;\r\n let index = 0;\r\n this.imgArr.forEach(img => {\r\n if ( this.uploadType=='local' && !img.previewUrl){\r\n req.get(img.url,'arraybuffer').then(response=>{\r\n let type = response.headers['content-type'];\r\n if(type){\r\n img.previewUrl = window.URL.createObjectURL(new Blob([response.data], { type: type }));\r\n }else{\r\n img.previewUrl = window.URL.createObjectURL(new Blob([response.data]));\r\n }\r\n this_.$set(this_.imgArr, index, img);\r\n index++;\r\n });\r\n } else if (this.uploadType=='https') {\r\n img.previewUrl=img.url\r\n }\r\n });\r\n }\r\n this.$emit(\"input\", JSON.stringify(this.imgArr));\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (this.value) {\r\n let ary = JSON.parse(this.value);\r\n if(ary instanceof Array){\r\n this.imgArr = ary;\r\n }\r\n }\r\n if (this.imgHeight > 0 && this.imgWidth > 0) {\r\n this.style = {\r\n height: this.imgHeight + \"px\",\r\n width: this.imgWidth + \"px\"\r\n };\r\n }\r\n },\r\n created() {\r\n this.$validator = this.$root.$validator;\r\n },\r\n methods: {\r\n handleExceed(files, fileList) {\r\n this.$message.warning(`当前限制选择 ${Number(this.limit)} 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);\r\n },\r\n progress() {\r\n Loading.service(\"文件上传中\");\r\n },\r\n //文件上传成功时\r\n success(response, file, fileList) {\r\n let loadingInstance = Loading.service(\"文件上传中\");\r\n const this_ =this;\r\n setTimeout(function () {\r\n if(fileList.length != this_.imgArr.length){\r\n for (let i = 0; i < fileList.length; i++) {\r\n let value = fileList[i].response;\r\n if (value) {\r\n let item = {};\r\n item.url = window.context.portal +\"/file/onlinePreviewController/v1/getFileById_\" +value.fileId;\r\n item.fileName = value.fileName;\r\n item.previewUrl = '';\r\n this_.imgArr.push(item);\r\n }\r\n }\r\n }\r\n // 以服务的方式调用的 Loading 需要异步关闭\r\n loadingInstance.close();\r\n }, 1000);\r\n },\r\n beforeAvatarUpload(file) {\r\n var FileExt = file.name.replace(/.+\\./, \"\");\r\n if (\r\n [\"jpg\", \"png\", \"gif\", \"ico\", \"jpeg\"].indexOf(FileExt.toLowerCase()) ===\r\n -1\r\n ) {\r\n this.$message({\r\n type: \"warning\",\r\n message: \"请上传后缀名为jpg、png、gif、ico、jpeg类型的图片\"\r\n });\r\n return false;\r\n }\r\n },\r\n downloadFile(item) {\r\n if(item && item.url && item.url.split(\"getFileById_\").length==2){\r\n let fileId = item.url.split(\"getFileById_\")[1];\r\n req.download(\"${portal}/system/file/v1/downloadFile?fileId=\" + fileId);\r\n }\r\n },\r\n httpsDialog: function() {\r\n this.$validator.validateAll(\"httpsFileForm\").then(result => {\r\n if (result) {\r\n let item = {\r\n fileName: this.httpsFile.fileName,\r\n url: this.httpsFile.url,\r\n previewUrl:''\r\n };\r\n this.imgArr.push(item);\r\n this.httpsFile = { fileName: \"\", url: \"\",previewUrl:\"\" };\r\n this.dialogFormVisible = false;\r\n } else {\r\n this.$message.error(\"表单未正确填写\");\r\n }\r\n });\r\n }\r\n }\r\n};\r\n",null]}