| 1 | {"remainingRequest":"D:\\Desktop\\supervision-ui\\node_modules\\babel-loader\\lib\\index.js!D:\\Desktop\\supervision-ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\Desktop\\supervision-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\Desktop\\supervision-ui\\src\\components\\FileUpload\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\Desktop\\supervision-ui\\src\\components\\FileUpload\\index.vue","mtime":1647101026759},{"path":"D:\\Desktop\\supervision-ui\\babel.config.js","mtime":1647101026471},{"path":"D:\\Desktop\\supervision-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1647101096564},{"path":"D:\\Desktop\\supervision-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":1647101099358},{"path":"D:\\Desktop\\supervision-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1647101096564},{"path":"D:\\Desktop\\supervision-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":1647101100033}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:InVzZSBzdHJpY3QiOwoKT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgewogIHZhbHVlOiB0cnVlCn0pOwpleHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLmNvbnN0cnVjdG9yLmpzIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanMiKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuc3BsaXQuanMiKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc2xpY2UuanMiKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuam9pbi5qcyIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNwbGljZS5qcyIpOwoKdmFyIF9hdXRoID0gcmVxdWlyZSgiQC91dGlscy9hdXRoIik7CgovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwp2YXIgX2RlZmF1bHQyID0gewogIG5hbWU6ICJGaWxlVXBsb2FkIiwKICBwcm9wczogewogICAgLy8g5YC8CiAgICB2YWx1ZTogW1N0cmluZywgT2JqZWN0LCBBcnJheV0sCiAgICAvLyDmlbDph4/pmZDliLYKICAgIGxpbWl0OiB7CiAgICAgIHR5cGU6IE51bWJlciwKICAgICAgZGVmYXVsdDogNQogICAgfSwKICAgIC8vIOWkp+Wwj+mZkOWItihNQikKICAgIGZpbGVTaXplOiB7CiAgICAgIHR5cGU6IE51bWJlciwKICAgICAgZGVmYXVsdDogNQogICAgfSwKICAgIC8vIOaWh+S7tuexu+Weiywg5L6L5aaCWydwbmcnLCAnanBnJywgJ2pwZWcnXQogICAgZmlsZVR5cGU6IHsKICAgICAgdHlwZTogQXJyYXksCiAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uIF9kZWZhdWx0KCkgewogICAgICAgIHJldHVybiBbImRvYyIsICJ4bHMiLCAicHB0IiwgInR4dCIsICJwZGYiXTsKICAgICAgfQogICAgfSwKICAgIC8vIOaYr+WQpuaYvuekuuaPkOekugogICAgaXNTaG93VGlwOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IHRydWUKICAgIH0KICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBiYXNlVXJsOiBwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJLAogICAgICB1cGxvYWRGaWxlVXJsOiBwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJICsgIi9jb21tb24vdXBsb2FkIiwKICAgICAgLy8g5LiK5Lyg55qE5Zu+54mH5pyN5Yqh5Zmo5Zyw5Z2ACiAgICAgIGhlYWRlcnM6IHsKICAgICAgICBBdXRob3JpemF0aW9uOiAiQmVhcmVyICIgKyAoMCwgX2F1dGguZ2V0VG9rZW4pKCkKICAgICAgfSwKICAgICAgZmlsZUxpc3Q6IFtdCiAgICB9OwogIH0sCiAgd2F0Y2g6IHsKICAgIHZhbHVlOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIodmFsKSB7CiAgICAgICAgaWYgKHZhbCkgewogICAgICAgICAgdmFyIHRlbXAgPSAxOyAvLyDpppblhYjlsIblgLzovazkuLrmlbDnu4QKCiAgICAgICAgICB2YXIgbGlzdCA9IEFycmF5LmlzQXJyYXkodmFsKSA/IHZhbCA6IHRoaXMudmFsdWUuc3BsaXQoJywnKTsgLy8g54S25ZCO5bCG5pWw57uE6L2s5Li65a+56LGh5pWw57uECgogICAgICAgICAgdGhpcy5maWxlTGlzdCA9IGxpc3QubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gInN0cmluZyIpIHsKICAgICAgICAgICAgICBpdGVtID0gewogICAgICAgICAgICAgICAgbmFtZTogaXRlbSwKICAgICAgICAgICAgICAgIHVybDogaXRlbQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGl0ZW0udWlkID0gaXRlbS51aWQgfHwgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyB0ZW1wKys7CiAgICAgICAgICAgIHJldHVybiBpdGVtOwogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuZmlsZUxpc3QgPSBbXTsKICAgICAgICAgIHJldHVybiBbXTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGRlZXA6IHRydWUsCiAgICAgIGltbWVkaWF0ZTogdHJ1ZQogICAgfQogIH0sCiAgY29tcHV0ZWQ6IHsKICAgIC8vIOaYr+WQpuaYvuekuuaPkOekugogICAgc2hvd1RpcDogZnVuY3Rpb24gc2hvd1RpcCgpIHsKICAgICAgcmV0dXJuIHRoaXMuaXNTaG93VGlwICYmICh0aGlzLmZpbGVUeXBlIHx8IHRoaXMuZmlsZVNpemUpOwogICAgfQogIH0sCiAgbWV0aG9kczogewogICAgLy8g5LiK5Lyg5YmN5qCh5qOA5qC85byP5ZKM5aSn5bCPCiAgICBoYW5kbGVCZWZvcmVVcGxvYWQ6IGZ1bmN0aW9uIGhhbmRsZUJlZm9yZVVwbG9hZChmaWxlKSB7CiAgICAgIC8vIOagoeajgOaWh+S7tuexu+WeiwogICAgICBpZiAodGhpcy5maWxlVHlwZSkgewogICAgICAgIHZhciBmaWxlRXh0ZW5zaW9uID0gIiI7CgogICAgICAgIGlmIChmaWxlLm5hbWUubGFzdEluZGV4T2YoIi4iKSA+IC0xKSB7CiAgICAgICAgICBmaWxlRXh0ZW5zaW9uID0gZmlsZS5uYW1lLnNsaWNlKGZpbGUubmFtZS5sYXN0SW5kZXhPZigiLiIpICsgMSk7CiAgICAgICAgfQoKICAgICAgICB2YXIgaXNUeXBlT2sgPSB0aGlzLmZpbGVUeXBlLnNvbWUoZnVuY3Rpb24gKHR5cGUpIHsKICAgICAgICAgIGlmIChmaWxlLnR5cGUuaW5kZXhPZih0eXBlKSA+IC0xKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgIGlmIChmaWxlRXh0ZW5zaW9uICYmIGZpbGVFeHRlbnNpb24uaW5kZXhPZih0eXBlKSA+IC0xKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKCiAgICAgICAgaWYgKCFpc1R5cGVPaykgewogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcigiXHU2NTg3XHU0RUY2XHU2ODNDXHU1RjBGXHU0RTBEXHU2QjYzXHU3ODZFLCBcdThCRjdcdTRFMEFcdTRGMjAiLmNvbmNhdCh0aGlzLmZpbGVUeXBlLmpvaW4oIi8iKSwgIlx1NjgzQ1x1NUYwRlx1NjU4N1x1NEVGNiEiKSk7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICB9IC8vIOagoeajgOaWh+S7tuWkp+WwjwoKCiAgICAgIGlmICh0aGlzLmZpbGVTaXplKSB7CiAgICAgICAgdmFyIGlzTHQgPSBmaWxlLnNpemUgLyAxMDI0IC8gMTAyNCA8IHRoaXMuZmlsZVNpemU7CgogICAgICAgIGlmICghaXNMdCkgewogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcigiXHU0RTBBXHU0RjIwXHU2NTg3XHU0RUY2XHU1OTI3XHU1QzBGXHU0RTBEXHU4MEZEXHU4RDg1XHU4RkM3ICIuY29uY2F0KHRoaXMuZmlsZVNpemUsICIgTUIhIikpOwogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgfQoKICAgICAgcmV0dXJuIHRydWU7CiAgICB9LAogICAgLy8g5paH5Lu25Liq5pWw6LaF5Ye6CiAgICBoYW5kbGVFeGNlZWQ6IGZ1bmN0aW9uIGhhbmRsZUV4Y2VlZCgpIHsKICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcigiXHU0RTBBXHU0RjIwXHU2NTg3XHU0RUY2XHU2NTcwXHU5MUNGXHU0RTBEXHU4MEZEXHU4RDg1XHU4RkM3ICIuY29uY2F0KHRoaXMubGltaXQsICIgXHU0RTJBISIpKTsKICAgIH0sCiAgICAvLyDkuIrkvKDlpLHotKUKICAgIGhhbmRsZVVwbG9hZEVycm9yOiBmdW5jdGlvbiBoYW5kbGVVcGxvYWRFcnJvcihlcnIpIHsKICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcigi5LiK5Lyg5aSx6LSlLCDor7fph43or5UiKTsKICAgIH0sCiAgICAvLyDkuIrkvKDmiJDlip/lm57osIMKICAgIGhhbmRsZVVwbG9hZFN1Y2Nlc3M6IGZ1bmN0aW9uIGhhbmRsZVVwbG9hZFN1Y2Nlc3MocmVzLCBmaWxlKSB7CiAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygi5LiK5Lyg5oiQ5YqfIik7CiAgICAgIHRoaXMuZmlsZUxpc3QucHVzaCh7CiAgICAgICAgbmFtZTogcmVzLmZpbGVOYW1lLAogICAgICAgIHVybDogcmVzLmZpbGVOYW1lCiAgICAgIH0pOwogICAgICB0aGlzLiRlbWl0KCJpbnB1dCIsIHRoaXMubGlzdFRvU3RyaW5nKHRoaXMuZmlsZUxpc3QpKTsKICAgIH0sCiAgICAvLyDliKDpmaTmlofku7YKICAgIGhhbmRsZURlbGV0ZTogZnVuY3Rpb24gaGFuZGxlRGVsZXRlKGluZGV4KSB7CiAgICAgIHRoaXMuZmlsZUxpc3Quc3BsaWNlKGluZGV4LCAxKTsKICAgICAgdGhpcy4kZW1pdCgiaW5wdXQiLCB0aGlzLmxpc3RUb1N0cmluZyh0aGlzLmZpbGVMaXN0KSk7CiAgICB9LAogICAgLy8g6I635Y+W5paH5Lu25ZCN56ewCiAgICBnZXRGaWxlTmFtZTogZnVuY3Rpb24gZ2V0RmlsZU5hbWUobmFtZSkgewogICAgICBpZiAobmFtZS5sYXN0SW5kZXhPZigiLyIpID4gLTEpIHsKICAgICAgICByZXR1cm4gbmFtZS5zbGljZShuYW1lLmxhc3RJbmRleE9mKCIvIikgKyAxKS50b0xvd2VyQ2FzZSgpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiAiIjsKICAgICAgfQogICAgfSwKICAgIC8vIOWvueixoei9rOaIkOaMh+WumuWtl+espuS4suWIhumalAogICAgbGlzdFRvU3RyaW5nOiBmdW5jdGlvbiBsaXN0VG9TdHJpbmcobGlzdCwgc2VwYXJhdG9yKSB7CiAgICAgIHZhciBzdHJzID0gIiI7CiAgICAgIHNlcGFyYXRvciA9IHNlcGFyYXRvciB8fCAiLCI7CgogICAgICBmb3IgKHZhciBpIGluIGxpc3QpIHsKICAgICAgICBzdHJzICs9IGxpc3RbaV0udXJsICsgc2VwYXJhdG9yOwogICAgICB9CgogICAgICByZXR1cm4gc3RycyAhPSAnJyA/IHN0cnMuc3Vic3RyKDAsIHN0cnMubGVuZ3RoIC0gMSkgOiAnJzsKICAgIH0KICB9Cn07CmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0Mjs="},{"version":3,"sources":["index.vue"],"names":[],"mappings":"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","sourcesContent":["<template>\r\n  <div class=\"upload-file\">\r\n    <el-upload\r\n      :action=\"uploadFileUrl\"\r\n      :before-upload=\"handleBeforeUpload\"\r\n      :file-list=\"fileList\"\r\n      :limit=\"limit\"\r\n      :on-error=\"handleUploadError\"\r\n      :on-exceed=\"handleExceed\"\r\n      :on-success=\"handleUploadSuccess\"\r\n      :show-file-list=\"false\"\r\n      :headers=\"headers\"\r\n      class=\"upload-file-uploader\"\r\n      ref=\"upload\"\r\n    >\r\n      <!-- 上传按钮 -->\r\n      <el-button size=\"mini\" type=\"primary\" class=\"select_file\">选取文件</el-button>\r\n      <!-- 上传提示 -->\r\n      <div class=\"el-upload__tip\" slot=\"tip\" v-if=\"showTip\">\r\n        请上传\r\n        <template v-if=\"fileSize\"> 大小不超过 <b style=\"color: #13CE66 \">{{ fileSize }}MB</b> </template>\r\n        <template v-if=\"fileType\"> 格式为 <b style=\"color: #13CE66\">{{ fileType.join(\"/\") }}</b> </template>\r\n        的文件\r\n      </div>\r\n    </el-upload>\r\n\r\n    <!-- 文件列表 -->\r\n    <transition-group class=\"upload-file-list el-upload-list el-upload-list--text\" name=\"el-fade-in-linear\" tag=\"ul\">\r\n      <li :key=\"file.uid\" class=\"el-upload-list__item ele-upload-list__item-content\" v-for=\"(file, index) in fileList\">\r\n        <el-link :href=\"`${baseUrl}${file.url}`\" :underline=\"false\" target=\"_blank\">\r\n          <span class=\"el-icon-document\"> {{ getFileName(file.name) }} </span>\r\n        </el-link>\r\n        <div class=\"ele-upload-list__item-content-action\">\r\n          <el-link :underline=\"false\" @click=\"handleDelete(index)\" type=\"danger\" class=\"del\"></el-link>\r\n        </div>\r\n      </li>\r\n    </transition-group>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport { getToken } from \"@/utils/auth\";\r\n\r\nexport default {\r\n  name: \"FileUpload\",\r\n  props: {\r\n    // 值\r\n    value: [String, Object, Array],\r\n    // 数量限制\r\n    limit: {\r\n      type: Number,\r\n      default: 5,\r\n    },\r\n    // 大小限制(MB)\r\n    fileSize: {\r\n      type: Number,\r\n      default: 5,\r\n    },\r\n    // 文件类型, 例如['png', 'jpg', 'jpeg']\r\n    fileType: {\r\n      type: Array,\r\n      default: () => [\"doc\", \"xls\", \"ppt\", \"txt\", \"pdf\"],\r\n    },\r\n    // 是否显示提示\r\n    isShowTip: {\r\n      type: Boolean,\r\n      default: true\r\n    }\r\n  },\r\n  data() {\r\n    return {\r\n      baseUrl: process.env.VUE_APP_BASE_API,\r\n      uploadFileUrl: process.env.VUE_APP_BASE_API + \"/common/upload\", // 上传的图片服务器地址\r\n      headers: {\r\n        Authorization: \"Bearer \" + getToken(),\r\n      },\r\n      fileList: [],\r\n    };\r\n  },\r\n  watch: {\r\n    value: {\r\n      handler(val) {\r\n        if (val) {\r\n          let temp = 1;\r\n          // 首先将值转为数组\r\n          const list = Array.isArray(val) ? val : this.value.split(',');\r\n          // 然后将数组转为对象数组\r\n          this.fileList = list.map(item => {\r\n            if (typeof item === \"string\") {\r\n              item = { name: item, url: item };\r\n            }\r\n            item.uid = item.uid || new Date().getTime() + temp++;\r\n            return item;\r\n          });\r\n        } else {\r\n          this.fileList = [];\r\n          return [];\r\n        }\r\n      },\r\n      deep: true,\r\n      immediate: true\r\n    }\r\n  },\r\n  computed: {\r\n    // 是否显示提示\r\n    showTip() {\r\n      return this.isShowTip && (this.fileType || this.fileSize);\r\n    },\r\n  },\r\n  methods: {\r\n    // 上传前校检格式和大小\r\n    handleBeforeUpload(file) {\r\n      // 校检文件类型\r\n      if (this.fileType) {\r\n        let fileExtension = \"\";\r\n        if (file.name.lastIndexOf(\".\") > -1) {\r\n          fileExtension = file.name.slice(file.name.lastIndexOf(\".\") + 1);\r\n        }\r\n        const isTypeOk = this.fileType.some((type) => {\r\n          if (file.type.indexOf(type) > -1) return true;\r\n          if (fileExtension && fileExtension.indexOf(type) > -1) return true;\r\n          return false;\r\n        });\r\n        if (!isTypeOk) {\r\n          this.$message.error(`文件格式不正确, 请上传${this.fileType.join(\"/\")}格式文件!`);\r\n          return false;\r\n        }\r\n      }\r\n      // 校检文件大小\r\n      if (this.fileSize) {\r\n        const isLt = file.size / 1024 / 1024 < this.fileSize;\r\n        if (!isLt) {\r\n          this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`);\r\n          return false;\r\n        }\r\n      }\r\n      return true;\r\n    },\r\n    // 文件个数超出\r\n    handleExceed() {\r\n      this.$message.error(`上传文件数量不能超过 ${this.limit} 个!`);\r\n    },\r\n    // 上传失败\r\n    handleUploadError(err) {\r\n      this.$message.error(\"上传失败, 请重试\");\r\n    },\r\n    // 上传成功回调\r\n    handleUploadSuccess(res, file) {\r\n      this.$message.success(\"上传成功\");\r\n      this.fileList.push({ name: res.fileName, url: res.fileName });\r\n      this.$emit(\"input\", this.listToString(this.fileList));\r\n    },\r\n    // 删除文件\r\n    handleDelete(index) {\r\n      this.fileList.splice(index, 1);\r\n      this.$emit(\"input\", this.listToString(this.fileList));\r\n    },\r\n    // 获取文件名称\r\n    getFileName(name) {\r\n      if (name.lastIndexOf(\"/\") > -1) {\r\n        return name.slice(name.lastIndexOf(\"/\") + 1).toLowerCase();\r\n      } else {\r\n        return \"\";\r\n      }\r\n    },\r\n    // 对象转成指定字符串分隔\r\n    listToString(list, separator) {\r\n      let strs = \"\";\r\n      separator = separator || \",\";\r\n      for (let i in list) {\r\n        strs += list[i].url + separator;\r\n      }\r\n      return strs != '' ? strs.substr(0, strs.length - 1) : '';\r\n    }\r\n  }\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.upload-file-uploader {\r\n  margin-bottom: 5px;\r\n}\r\n.upload-file-list .el-upload-list__item {\r\n  border: 1px solid #e4e7ed;\r\n  line-height: 2;\r\n  margin-bottom: 10px;\r\n  position: relative;\r\n  display: flex;\r\n}\r\n.upload-file-list .ele-upload-list__item-content {\r\n  display: flex;\r\n  justify-content: space-between;\r\n  align-items: center;\r\n  color: inherit;\r\n}\r\n.ele-upload-list__item-content-action .el-link {\r\n  margin-right: 10px;\r\n}\r\n// 选取文件\r\n.select_file{\r\n  width: 70px;\r\n  height: 30px;\r\n  display: flex;\r\n  justify-content: center;\r\n  align-items: center;\r\n}\r\n.el-upload__tip{\r\n  margin-left: -15px;\r\n}\r\n// 删除\r\n.del{\r\n  width: 23px;\r\n  height: 23px;\r\n  left: 40px;\r\n  background-image: url(\"../../images/delicon.png\");\r\n  background-repeat: no-repeat;\r\n  background-color: #FF4949;\r\n  background-position: center;\r\n  margin-bottom: 2px;\r\n  margin-left: -5px;\r\n}\r\n</style>"],"sourceRoot":"src/components/FileUpload"}]}
 |