{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\bizComponents\\eipControl\\EipViewer.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\bizComponents\\eipControl\\EipViewer.vue","mtime":1675071991522},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\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 \"@/components/bizComponents/sub-permission-mixin.js\";\r\nimport utils from \"@/components/bizComponents/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]}