{"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\\eipControl\\EipAttachment.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\eipControl\\EipAttachment.vue","mtime":1667327529200},{"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\r\nimport { mapState } from \"vuex\";\r\nimport utils from \"@/utils.js\";\r\nimport req from \"@/request.js\";\r\nimport sub_pio_mixin from \"@/sub-permission-mixin.js\";\r\nimport FilePreview from \"@/components/common/FilePreview.vue\";\r\nimport { Message } from \"element-ui\";\r\nexport default {\r\n  name: \"eip-attachment\",\r\n  components: { FilePreview },\r\n  props: [\r\n    \"validate\",\r\n    \"value\",\r\n    \"name\",\r\n    \"permission\",\r\n    \"size\",\r\n    \"limit\",\r\n    \"multiple\",\r\n    \"accept\",\r\n    \"propConf\",\r\n    \"allowPreview\",\r\n    \"allowDownload\",\r\n    \"simplicity\"\r\n  ],\r\n  mixins: [sub_pio_mixin],//混入方式引入表单组件中公共属性，处理子表、孙表行内联动（切面修改permission_sub）\r\n  data() {\r\n    return {\r\n      limits: 9999,\r\n      propConfList: [],\r\n      inputVal: this.value,\r\n      refreshTime:new Date().getTime(),\r\n      src: \"\",\r\n      fileId: \"\",\r\n      fileTree: \"\",\r\n      iframeSrc: \"\",\r\n      acceptFile: \"\",\r\n      newValidate: null,\r\n      actionUrl:window.context.portal + \"/system/file/v1/upload\",\r\n    };\r\n  },\r\n  computed: mapState({\r\n    inputValidate: function() {\r\n      if (this.newValidate) {\r\n        return this.newValidate;\r\n      }\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    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    inputName: function() {\r\n      let labeldesc = \"\";\r\n      if (\r\n        this.$slots &&\r\n        this.$slots.labeldesc &&\r\n        this.$slots.labeldesc[0].children &&\r\n        this.$slots.labeldesc[0].children[0].text\r\n      ) {\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    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    inputVal(val) {\r\n      this.$emit(\"input\", val);\r\n    },\r\n    value(val){\r\n      this.inputVal = val;\r\n      setTimeout(()=>{\r\n        this.refreshTime=new Date().getTime();\r\n      },300)\r\n    }\r\n  },\r\n  mounted() {\r\n    if (this.limit) {\r\n      this.limits = Number(this.limit);\r\n    }\r\n    try {\r\n      const formInst = utils.getOnlineFormInstance(this);\r\n      if(formInst.flowKey){\r\n          this.actionUrl = this.actionUrl + '?flowKey='+formInst.flowKey;\r\n      }\r\n    } catch (error) {}\r\n  },\r\n  beforeDestroy() {},\r\n  destroyed() {},\r\n  created() {\r\n    if (this.propConf) {\r\n      let list = JSON.parse(this.propConf);\r\n      list.forEach(element => {\r\n        if (element.desc) {\r\n          if (element.requried) {\r\n            element.inputValidate = \"required:true\";\r\n          }\r\n          this.propConfList.push(element);\r\n        }\r\n      });\r\n    }\r\n    if (this.accept) {\r\n      this.acceptFile = \".\" + this.accept.split(\",\").join(\",.\");\r\n    }\r\n    this.$validator = this.$root.$validator;\r\n  },\r\n  methods: {\r\n    onSuccess(file) {},\r\n    beforeAvatarUpload(file) {\r\n      if(!this.accept || typeof(this.accept) == 'undefined'){\r\n        return true;\r\n      }\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      if (isExt) {\r\n        if (this.accept == \"\" || this.accept == undefined) {\r\n          this.$message.error(\"请配置可上传文件的格式!\");\r\n        } else {\r\n          this.$message.error(\"上传的附件只能是 \" + this.accept + \"格式!\");\r\n        }\r\n      }\r\n      return !isExt;\r\n    },\r\n    download(file) {\r\n      if (!file.response && !file.id) {\r\n        this.$message.warning(\"请稍后再试！\");\r\n        return;\r\n      }\r\n      let fileId = \"\";\r\n      if(file.id){\r\n        fileId = file.id;\r\n      }else{\r\n        fileId = file.response.fileId;\r\n      }\r\n      req.download(\"${portal}/system/file/v1/downloadFile?fileId=\" +  fileId);\r\n    },\r\n    preview(files) {\r\n      if (!files.response  && !files.id) {\r\n        this.$message.warning(\"请稍后再试！\");\r\n        return;\r\n      }\r\n      if(files.id){\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      }else{\r\n        var fileData = files.response;\r\n        let obj = {};\r\n        obj.id=fileData.fileId;\r\n        obj.name=fileData.fileName;\r\n        obj.size=fileData.size;\r\n        this.$refs.filePreview.preview(obj)\r\n      }\r\n      \r\n    }\r\n  }\r\n};\r\n",null]}