{"remainingRequest":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\cssc-fvue\\src\\components\\eipControl\\EipAttachment.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\cssc-fvue\\src\\components\\eipControl\\EipAttachment.vue","mtime":1667804638962},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\cssc-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 + \"/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 + \"/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}/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]}