1 |
- {"remainingRequest":"E:\\mec-cloud_IntelligentManufacturing_CRM\\mec-cloud_IntelligentManufacturing_CRM\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\mec-cloud_IntelligentManufacturing_CRM\\mec-cloud_IntelligentManufacturing_CRM\\ruoyi-ui\\src\\views\\system\\fromModeling\\k-form-design-master\\packages\\components\\UploadFile\\uploadFile.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\mec-cloud_IntelligentManufacturing_CRM\\mec-cloud_IntelligentManufacturing_CRM\\ruoyi-ui\\src\\views\\system\\fromModeling\\k-form-design-master\\packages\\components\\UploadFile\\uploadFile.vue","mtime":1688635005872},{"path":"E:\\mec-cloud_IntelligentManufacturing_CRM\\mec-cloud_IntelligentManufacturing_CRM\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1688725391035},{"path":"E:\\mec-cloud_IntelligentManufacturing_CRM\\mec-cloud_IntelligentManufacturing_CRM\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":1688725407620},{"path":"E:\\mec-cloud_IntelligentManufacturing_CRM\\mec-cloud_IntelligentManufacturing_CRM\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1688725391035},{"path":"E:\\mec-cloud_IntelligentManufacturing_CRM\\mec-cloud_IntelligentManufacturing_CRM\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":1688725415411}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCi8qCiAqIGF1dGhvciBrY3oKICogZGF0ZSAyMDE5LTEyLTMxCiAqIGRlc2NyaXB0aW9uIOS4iuS8oOaWh+S7tue7hOS7tgogKi8KaW1wb3J0IHsgbWVzc2FnZSB9IGZyb20gImFudC1kZXNpZ24tdnVlIjsKaW1wb3J0IHsgcGx1Z2luTWFuYWdlciB9IGZyb20gIi4uLy4uL3V0aWxzL2luZGV4IjsKCmNvbnN0IFVwbG9hZCA9IHBsdWdpbk1hbmFnZXIuZ2V0Q29tcG9uZW50KCJ1cGxvYWQiKTsKY29uc3QgVXBsb2FkRHJhZ2dlciA9IHBsdWdpbk1hbmFnZXIuZ2V0Q29tcG9uZW50KCJ1cGxvYWREcmFnZ2VyIik7CmNvbnN0IEJ1dHRvbiA9IHBsdWdpbk1hbmFnZXIuZ2V0Q29tcG9uZW50KCJhQnV0dG9uIikuY29tcG9uZW50OwoKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICJLVXBsb2FkRmlsZSIsCiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHZ1ZS9yZXF1aXJlLXByb3AtdHlwZXMKICBwcm9wczogWyJyZWNvcmQiLCAidmFsdWUiLCAiY29uZmlnIiwgInBhcmVudERpc2FibGVkIiwgImR5bmFtaWNEYXRhIl0sCiAgY29tcG9uZW50czogewogICAgVXBsb2FkOiBVcGxvYWQuY29tcG9uZW50LAogICAgVXBsb2FkRHJhZ2dlcjogVXBsb2FkRHJhZ2dlci5jb21wb25lbnQsCiAgICBCdXR0b24KICB9LAogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBmaWxlTGlzdDogW10KICAgIH07CiAgfSwKICB3YXRjaDogewogICAgdmFsdWU6IHsKICAgICAgLy8gdmFsdWUg6ZyA6KaB5rex5bqm55uR5ZCs5Y+K6buY6K6k5YWI5omn6KGMaGFuZGxlcuWHveaVsAogICAgICBoYW5kbGVyKHZhbCkgewogICAgICAgIGlmICh2YWwpIHsKICAgICAgICAgIHRoaXMuc2V0RmlsZUxpc3QoKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGltbWVkaWF0ZTogdHJ1ZSwKICAgICAgZGVlcDogdHJ1ZQogICAgfQogIH0sCgogIGNvbXB1dGVkOiB7CiAgICBvcHRpb25zRGF0YSgpIHsKICAgICAgdHJ5IHsKICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLnJlY29yZC5vcHRpb25zLmRhdGEpOwogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBjb25zb2xlLmVycm9yKGVycik7CiAgICAgICAgcmV0dXJuIHt9OwogICAgICB9CiAgICB9CiAgfSwKICBtZXRob2RzOiB7CiAgICBzZXRGaWxlTGlzdCgpIHsKICAgICAgLy8g5b2T5Lyg5YWldmFsdWXmlLnlj5jml7bvvIxmaWxlTGlzdOS5n+imgeaUueWPmAogICAgICAvLyDlpoLmnpzkvKDlhaXnmoTlgLzkuLrlrZfnrKbkuLLvvIzliJnovazmiJBqc29uCiAgICAgIGlmICh0eXBlb2YgdGhpcy52YWx1ZSA9PT0gInN0cmluZyIpIHsKICAgICAgICB0aGlzLmZpbGVMaXN0ID0gSlNPTi5wYXJzZSh0aGlzLnZhbHVlKTsKICAgICAgICAvLyDlsIbovazlpb3nmoRqc29u6KaG55uW57uE5Lu26buY6K6k5YC855qE5a2X56ym5LiyCiAgICAgICAgdGhpcy5oYW5kbGVTZWxlY3RDaGFuZ2UoKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmZpbGVMaXN0ID0gdGhpcy52YWx1ZTsKICAgICAgfQogICAgfSwKICAgIGhhbmRsZVNlbGVjdENoYW5nZSgpIHsKICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgY29uc3QgYXJyID0gdGhpcy5maWxlTGlzdC5tYXAoaXRlbSA9PiB7CiAgICAgICAgICBpZiAodHlwZW9mIGl0ZW0ucmVzcG9uc2UgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgICAgICAgIGNvbnN0IHJlcyA9IGl0ZW0ucmVzcG9uc2U7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgdHlwZTogImZpbGUiLAogICAgICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSwKICAgICAgICAgICAgICBzdGF0dXM6IGl0ZW0uc3RhdHVzLAogICAgICAgICAgICAgIHVpZDogcmVzLmRhdGEuZmlsZUlkIHx8IERhdGUubm93KCksCiAgICAgICAgICAgICAgdXJsOiByZXMuZGF0YS51cmwgfHwgIiIKICAgICAgICAgICAgfTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgdHlwZTogImZpbGUiLAogICAgICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSwKICAgICAgICAgICAgICBzdGF0dXM6IGl0ZW0uc3RhdHVzLAogICAgICAgICAgICAgIHVpZDogaXRlbS51aWQsCiAgICAgICAgICAgICAgdXJsOiBpdGVtLnVybCB8fCAiIgogICAgICAgICAgICB9OwogICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICB0aGlzLiRlbWl0KCJjaGFuZ2UiLCBhcnIpOwogICAgICAgIHRoaXMuJGVtaXQoImlucHV0IiwgYXJyKTsKICAgICAgfSwgMTApOwogICAgfSwKICAgIGhhbmRsZVByZXZpZXcoZmlsZSkgewogICAgICAvLyDkuIvovb3mlofku7YKICAgICAgY29uc3QgZG93bmxvYWRXYXkgPSB0aGlzLnJlY29yZC5vcHRpb25zLmRvd25sb2FkV2F5OwogICAgICBjb25zdCBkeW5hbWljRnVuID0gdGhpcy5yZWNvcmQub3B0aW9ucy5keW5hbWljRnVuOwogICAgICBpZiAoZG93bmxvYWRXYXkgPT09ICJhIikgewogICAgICAgIC8vIOS9v+eUqGHmoIfnrb7kuIvovb0KICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOwogICAgICAgIGEuaHJlZiA9IGZpbGUudXJsIHx8IGZpbGUudGh1bWJVcmw7CiAgICAgICAgYS5kb3dubG9hZCA9IGZpbGUubmFtZTsKICAgICAgICBhLmNsaWNrKCk7CiAgICAgIH0gZWxzZSBpZiAoZG93bmxvYWRXYXkgPT09ICJhamF4IikgewogICAgICAgIC8vIOS9v+eUqGFqYXjojrflj5bmlofku7ZibG9i77yM5bm25L+d5oyB5Yiw5pys5ZywCiAgICAgICAgdGhpcy5nZXRCbG9iKGZpbGUudXJsIHx8IGZpbGUudGh1bWJVcmwpLnRoZW4oYmxvYiA9PiB7CiAgICAgICAgICB0aGlzLnNhdmVBcyhibG9iLCBmaWxlLm5hbWUpOwogICAgICAgIH0pOwogICAgICB9IGVsc2UgaWYgKGRvd25sb2FkV2F5ID09PSAiZHluYW1pYyIpIHsKICAgICAgICAvLyDop6blj5HliqjmgIHlh73mlbAKICAgICAgICB0aGlzLmR5bmFtaWNEYXRhW2R5bmFtaWNGdW5dKGZpbGUpOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiDojrflj5YgYmxvYgogICAgICogdXJsIOebruagh+aWh+S7tuWcsOWdgAogICAgICovCiAgICBnZXRCbG9iKHVybCkgewogICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CiAgICAgICAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CgogICAgICAgIHhoci5vcGVuKCJHRVQiLCB1cmwsIHRydWUpOwogICAgICAgIHhoci5yZXNwb25zZVR5cGUgPSAiYmxvYiI7CiAgICAgICAgeGhyLm9ubG9hZCA9ICgpID0+IHsKICAgICAgICAgIGlmICh4aHIuc3RhdHVzID09PSAyMDApIHsKICAgICAgICAgICAgcmVzb2x2ZSh4aHIucmVzcG9uc2UpOwogICAgICAgICAgfQogICAgICAgIH07CgogICAgICAgIHhoci5zZW5kKCk7CiAgICAgIH0pOwogICAgfSwKICAgIC8qKgogICAgICog5L+d5a2YIGJsb2IKICAgICAqIGZpbGVuYW1lIOaDs+imgeS/neWtmOeahOaWh+S7tuWQjeensAogICAgICovCiAgICBzYXZlQXMoYmxvYiwgZmlsZW5hbWUpIHsKICAgICAgaWYgKHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYikgewogICAgICAgIG5hdmlnYXRvci5tc1NhdmVCbG9iKGJsb2IsIGZpbGVuYW1lKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOwogICAgICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5Iik7CiAgICAgICAgbGluay5ocmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7CiAgICAgICAgbGluay5kb3dubG9hZCA9IGZpbGVuYW1lOwoKICAgICAgICAvLyBmaXggRmlyZWZveAogICAgICAgIGxpbmsuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgICBib2R5LmFwcGVuZENoaWxkKGxpbmspOwoKICAgICAgICBsaW5rLmNsaWNrKCk7CiAgICAgICAgYm9keS5yZW1vdmVDaGlsZChsaW5rKTsKCiAgICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwobGluay5ocmVmKTsKICAgICAgfQogICAgfSwKICAgIHJlbW92ZSgpIHsKICAgICAgdGhpcy5oYW5kbGVTZWxlY3RDaGFuZ2UoKTsKICAgIH0sCiAgICBiZWZvcmVVcGxvYWQoZSwgZmlsZXMpIHsKICAgICAgaWYgKGZpbGVzLmxlbmd0aCArIHRoaXMuZmlsZUxpc3QubGVuZ3RoID4gdGhpcy5yZWNvcmQub3B0aW9ucy5saW1pdCkgewogICAgICAgIG1lc3NhZ2Uud2FybmluZyhg5pyA5aSn5LiK5Lyg5pWw6YeP5Li6JHt0aGlzLnJlY29yZC5vcHRpb25zLmxpbWl0fWApOwogICAgICAgIGZpbGVzLnNwbGljZSh0aGlzLnJlY29yZC5vcHRpb25zLmxpbWl0IC0gdGhpcy5maWxlTGlzdC5sZW5ndGgpOwogICAgICB9CiAgICB9LAogICAgaGFuZGxlQ2hhbmdlKGluZm8pIHsKICAgICAgdGhpcy5maWxlTGlzdCA9IGluZm8uZmlsZUxpc3Q7CiAgICAgIGlmIChpbmZvLmZpbGUuc3RhdHVzID09PSAiZG9uZSIpIHsKICAgICAgICBjb25zdCByZXMgPSBpbmZvLmZpbGUucmVzcG9uc2U7CiAgICAgICAgaWYgKHJlcy5jb2RlID09PSAwKSB7CiAgICAgICAgICB0aGlzLmhhbmRsZVNlbGVjdENoYW5nZSgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLmZpbGVMaXN0LnBvcCgpOwogICAgICAgICAgbWVzc2FnZS5lcnJvcihg5paH5Lu25LiK5Lyg5aSx6LSlYCk7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKGluZm8uZmlsZS5zdGF0dXMgPT09ICJlcnJvciIpIHsKICAgICAgICBtZXNzYWdlLmVycm9yKGDmlofku7bkuIrkvKDlpLHotKVgKTsKICAgICAgfQogICAgfQogIH0KfTsK"},{"version":3,"sources":["uploadFile.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"uploadFile.vue","sourceRoot":"src/views/system/fromModeling/k-form-design-master/packages/components/UploadFile","sourcesContent":["<!--\n * @Description: 对上传文件组件进行封装\n * @Author: kcz\n * @Date: 2020-03-17 12:53:50\n * @LastEditors: kcz\n * @LastEditTime: 2022-10-26 21:14:12\n -->\n<template>\n <div :style=\"{ width: record.options.width }\">\n <Upload\n v-if=\"!record.options.drag\"\n :disabled=\"record.options.disabled || parentDisabled\"\n :name=\"config.uploadFileName || record.options.fileName\"\n :headers=\"config.uploadFileHeaders || record.options.headers\"\n :data=\"config.uploadFileData || optionsData\"\n :action=\"config.uploadFile || record.options.action\"\n :multiple=\"record.options.multiple\"\n :fileList=\"fileList\"\n @preview=\"handlePreview\"\n @change=\"handleChange\"\n :remove=\"remove\"\n :beforeUpload=\"beforeUpload\"\n >\n <Button\n v-if=\"fileList.length < record.options.limit\"\n :disabled=\"record.options.disabled || parentDisabled\"\n >\n <a-icon type=\"upload\" /> {{ record.options.placeholder }}\n </Button>\n </Upload>\n <UploadDragger\n v-else\n :class=\"{ 'hide-upload-drag': !(fileList.length < record.options.limit) }\"\n :disabled=\"record.options.disabled || parentDisabled\"\n :name=\"config.uploadFileName || record.options.fileName\"\n :headers=\"config.uploadFileHeaders || record.options.headers\"\n :data=\"config.uploadFileData || optionsData\"\n :action=\"config.uploadFile || record.options.action\"\n :multiple=\"record.options.multiple\"\n :fileList=\"fileList\"\n @preview=\"handlePreview\"\n @change=\"handleChange\"\n :remove=\"remove\"\n :beforeUpload=\"beforeUpload\"\n >\n <p class=\"ant-upload-drag-icon\">\n <a-icon type=\"cloud-upload\" />\n </p>\n <p class=\"ant-upload-text\">单击或拖动文件到此区域</p>\n </UploadDragger>\n </div>\n</template>\n<script>\n/*\n * author kcz\n * date 2019-12-31\n * description 上传文件组件\n */\nimport { message } from \"ant-design-vue\";\nimport { pluginManager } from \"../../utils/index\";\n\nconst Upload = pluginManager.getComponent(\"upload\");\nconst UploadDragger = pluginManager.getComponent(\"uploadDragger\");\nconst Button = pluginManager.getComponent(\"aButton\").component;\n\nexport default {\n name: \"KUploadFile\",\n // eslint-disable-next-line vue/require-prop-types\n props: [\"record\", \"value\", \"config\", \"parentDisabled\", \"dynamicData\"],\n components: {\n Upload: Upload.component,\n UploadDragger: UploadDragger.component,\n Button\n },\n data() {\n return {\n fileList: []\n };\n },\n watch: {\n value: {\n // value 需要深度监听及默认先执行handler函数\n handler(val) {\n if (val) {\n this.setFileList();\n }\n },\n immediate: true,\n deep: true\n }\n },\n\n computed: {\n optionsData() {\n try {\n return JSON.parse(this.record.options.data);\n } catch (err) {\n console.error(err);\n return {};\n }\n }\n },\n methods: {\n setFileList() {\n // 当传入value改变时,fileList也要改变\n // 如果传入的值为字符串,则转成json\n if (typeof this.value === \"string\") {\n this.fileList = JSON.parse(this.value);\n // 将转好的json覆盖组件默认值的字符串\n this.handleSelectChange();\n } else {\n this.fileList = this.value;\n }\n },\n handleSelectChange() {\n setTimeout(() => {\n const arr = this.fileList.map(item => {\n if (typeof item.response !== \"undefined\") {\n const res = item.response;\n return {\n type: \"file\",\n name: item.name,\n status: item.status,\n uid: res.data.fileId || Date.now(),\n url: res.data.url || \"\"\n };\n } else {\n return {\n type: \"file\",\n name: item.name,\n status: item.status,\n uid: item.uid,\n url: item.url || \"\"\n };\n }\n });\n\n this.$emit(\"change\", arr);\n this.$emit(\"input\", arr);\n }, 10);\n },\n handlePreview(file) {\n // 下载文件\n const downloadWay = this.record.options.downloadWay;\n const dynamicFun = this.record.options.dynamicFun;\n if (downloadWay === \"a\") {\n // 使用a标签下载\n const a = document.createElement(\"a\");\n a.href = file.url || file.thumbUrl;\n a.download = file.name;\n a.click();\n } else if (downloadWay === \"ajax\") {\n // 使用ajax获取文件blob,并保持到本地\n this.getBlob(file.url || file.thumbUrl).then(blob => {\n this.saveAs(blob, file.name);\n });\n } else if (downloadWay === \"dynamic\") {\n // 触发动态函数\n this.dynamicData[dynamicFun](file);\n }\n },\n /**\n * 获取 blob\n * url 目标文件地址\n */\n getBlob(url) {\n return new Promise(resolve => {\n const xhr = new XMLHttpRequest();\n\n xhr.open(\"GET\", url, true);\n xhr.responseType = \"blob\";\n xhr.onload = () => {\n if (xhr.status === 200) {\n resolve(xhr.response);\n }\n };\n\n xhr.send();\n });\n },\n /**\n * 保存 blob\n * filename 想要保存的文件名称\n */\n saveAs(blob, filename) {\n if (window.navigator.msSaveOrOpenBlob) {\n navigator.msSaveBlob(blob, filename);\n } else {\n const link = document.createElement(\"a\");\n const body = document.querySelector(\"body\");\n link.href = window.URL.createObjectURL(blob);\n link.download = filename;\n\n // fix Firefox\n link.style.display = \"none\";\n body.appendChild(link);\n\n link.click();\n body.removeChild(link);\n\n window.URL.revokeObjectURL(link.href);\n }\n },\n remove() {\n this.handleSelectChange();\n },\n beforeUpload(e, files) {\n if (files.length + this.fileList.length > this.record.options.limit) {\n message.warning(`最大上传数量为${this.record.options.limit}`);\n files.splice(this.record.options.limit - this.fileList.length);\n }\n },\n handleChange(info) {\n this.fileList = info.fileList;\n if (info.file.status === \"done\") {\n const res = info.file.response;\n if (res.code === 0) {\n this.handleSelectChange();\n } else {\n this.fileList.pop();\n message.error(`文件上传失败`);\n }\n } else if (info.file.status === \"error\") {\n message.error(`文件上传失败`);\n }\n }\n }\n};\n</script>\n"]}]}
|