You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
14 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{"remainingRequest":"G:\\bishe\\2024\\springboot\\143_论文\\039_springboot流浪天使乐园管理系统设计与实现\\vue\\admin\\node_modules\\babel-loader\\lib\\index.js!G:\\bishe\\2024\\springboot\\143_论文\\039_springboot流浪天使乐园管理系统设计与实现\\vue\\admin\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!G:\\bishe\\2024\\springboot\\143_论文\\039_springboot流浪天使乐园管理系统设计与实现\\vue\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!G:\\bishe\\2024\\springboot\\143_论文\\039_springboot流浪天使乐园管理系统设计与实现\\vue\\admin\\src\\components\\common\\FileUpload.vue?vue&type=script&lang=js&","dependencies":[{"path":"G:\\bishe\\2024\\springboot\\143_论文\\039_springboot流浪天使乐园管理系统设计与实现\\vue\\admin\\src\\components\\common\\FileUpload.vue","mtime":1703907394000},{"path":"G:\\bishe\\2024\\springboot\\143_论文\\039_springboot流浪天使乐园管理系统设计与实现\\vue\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"G:\\bishe\\2024\\springboot\\143_论文\\039_springboot流浪天使乐园管理系统设计与实现\\vue\\admin\\node_modules\\babel-loader\\lib\\index.js","mtime":499162500000},{"path":"G:\\bishe\\2024\\springboot\\143_论文\\039_springboot流浪天使乐园管理系统设计与实现\\vue\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"G:\\bishe\\2024\\springboot\\143_论文\\039_springboot流浪天使乐园管理系统设计与实现\\vue\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZm9yLWVhY2giOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5qb2luIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZSI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnNwbGl0IjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnN0YXJ0cy13aXRoIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaCI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCmltcG9ydCBzdG9yYWdlIGZyb20gIkAvdXRpbHMvc3RvcmFnZSI7CmltcG9ydCBiYXNlIGZyb20gIkAvdXRpbHMvYmFzZSI7CmV4cG9ydCBkZWZhdWx0IHsKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgLy8g5p+l55yL5aSn5Zu+CiAgICAgIGRpYWxvZ1Zpc2libGU6IGZhbHNlLAogICAgICAvLyDmn6XnnIvlpKflm74KICAgICAgZGlhbG9nSW1hZ2VVcmw6ICIiLAogICAgICAvLyDnu4Tku7bmuLLmn5Plm77niYfnmoTmlbDnu4TlrZfmrrXvvIzmnInnibnmrormoLzlvI/opoHmsYIKICAgICAgZmlsZUxpc3Q6IFtdLAogICAgICBmaWxlVXJsTGlzdDogW10sCiAgICAgIG15SGVhZGVyczoge30KICAgIH07CiAgfSwKICBwcm9wczogWyJ0aXAiLCAiYWN0aW9uIiwgImxpbWl0IiwgIm11bHRpcGxlIiwgImZpbGVVcmxzIl0sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIHRoaXMuaW5pdCgpOwogICAgdGhpcy5teUhlYWRlcnMgPSB7CiAgICAgICdUb2tlbic6IHN0b3JhZ2UuZ2V0KCJUb2tlbiIpCiAgICB9OwogIH0sCiAgd2F0Y2g6IHsKICAgIGZpbGVVcmxzOiBmdW5jdGlvbiBmaWxlVXJscyh2YWwsIG9sZFZhbCkgewogICAgICAvLyAgIGNvbnNvbGUubG9nKCJuZXc6ICVzLCBvbGQ6ICVzIiwgdmFsLCBvbGRWYWwpOwogICAgICB0aGlzLmluaXQoKTsKICAgIH0KICB9LAogIGNvbXB1dGVkOiB7CiAgICAvLyDorqHnrpflsZ7mgKfnmoQgZ2V0dGVyCiAgICBnZXRBY3Rpb25Vcmw6IGZ1bmN0aW9uIGdldEFjdGlvblVybCgpIHsKICAgICAgLy8gcmV0dXJuIGJhc2UudXJsICsgdGhpcy5hY3Rpb24gKyAiP3Rva2VuPSIgKyBzdG9yYWdlLmdldCgidG9rZW4iKTsKICAgICAgcmV0dXJuICIvIi5jb25jYXQodGhpcy4kYmFzZS5uYW1lLCAiLyIpICsgdGhpcy5hY3Rpb247CiAgICB9CiAgfSwKICBtZXRob2RzOiB7CiAgICAvLyDliJ3lp4vljJYKICAgIGluaXQ6IGZ1bmN0aW9uIGluaXQoKSB7CiAgICAgIC8vICAgY29uc29sZS5sb2codGhpcy5maWxlVXJscyk7CiAgICAgIGlmICh0aGlzLmZpbGVVcmxzKSB7CiAgICAgICAgdGhpcy5maWxlVXJsTGlzdCA9IHRoaXMuZmlsZVVybHMuc3BsaXQoIiwiKTsKICAgICAgICB2YXIgZmlsZUFycmF5ID0gW107CiAgICAgICAgdGhpcy5maWxlVXJsTGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtLCBpbmRleCkgewogICAgICAgICAgdmFyIHVybCA9IGl0ZW07CiAgICAgICAgICB2YXIgbmFtZSA9IGluZGV4OwogICAgICAgICAgdmFyIGZpbGUgPSB7CiAgICAgICAgICAgIG5hbWU6IG5hbWUsCiAgICAgICAgICAgIHVybDogdXJsCiAgICAgICAgICB9OwogICAgICAgICAgZmlsZUFycmF5LnB1c2goZmlsZSk7CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5zZXRGaWxlTGlzdChmaWxlQXJyYXkpOwogICAgICB9CiAgICB9LAogICAgaGFuZGxlQmVmb3JlVXBsb2FkOiBmdW5jdGlvbiBoYW5kbGVCZWZvcmVVcGxvYWQoZmlsZSkge30sCiAgICAvLyDkuIrkvKDmlofku7bmiJDlip/lkI7miafooYwKICAgIGhhbmRsZVVwbG9hZFN1Y2Nlc3M6IGZ1bmN0aW9uIGhhbmRsZVVwbG9hZFN1Y2Nlc3MocmVzLCBmaWxlLCBmaWxlTGlzdCkgewogICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAwKSB7CiAgICAgICAgZmlsZUxpc3RbZmlsZUxpc3QubGVuZ3RoIC0gMV1bInVybCJdID0gInVwbG9hZC8iICsgZmlsZS5yZXNwb25zZS5maWxlOwogICAgICAgIHRoaXMuc2V0RmlsZUxpc3QoZmlsZUxpc3QpOwogICAgICAgIHRoaXMuJGVtaXQoImNoYW5nZSIsIHRoaXMuZmlsZVVybExpc3Quam9pbigiLCIpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICB9CiAgICB9LAogICAgLy8g5Zu+54mH5LiK5Lyg5aSx6LSlCiAgICBoYW5kbGVVcGxvYWRFcnI6IGZ1bmN0aW9uIGhhbmRsZVVwbG9hZEVycihlcnIsIGZpbGUsIGZpbGVMaXN0KSB7CiAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoIuaWh+S7tuS4iuS8oOWksei0pSIpOwogICAgfSwKICAgIC8vIOenu+mZpOWbvueJhwogICAgaGFuZGxlUmVtb3ZlOiBmdW5jdGlvbiBoYW5kbGVSZW1vdmUoZmlsZSwgZmlsZUxpc3QpIHsKICAgICAgdGhpcy5zZXRGaWxlTGlzdChmaWxlTGlzdCk7CiAgICAgIHRoaXMuJGVtaXQoImNoYW5nZSIsIHRoaXMuZmlsZVVybExpc3Quam9pbigiLCIpKTsKICAgIH0sCiAgICAvLyDmn6XnnIvlpKflm74KICAgIGhhbmRsZVVwbG9hZFByZXZpZXc6IGZ1bmN0aW9uIGhhbmRsZVVwbG9hZFByZXZpZXcoZmlsZSkgewogICAgICB0aGlzLmRpYWxvZ0ltYWdlVXJsID0gZmlsZS51cmw7CiAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7CiAgICB9LAogICAgLy8g6ZmQ5Yi25Zu+54mH5pWw6YePCiAgICBoYW5kbGVFeGNlZWQ6IGZ1bmN0aW9uIGhhbmRsZUV4Y2VlZChmaWxlcywgZmlsZUxpc3QpIHsKICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCJcdTY3MDBcdTU5MUFcdTRFMEFcdTRGMjAiLmNvbmNhdCh0aGlzLmxpbWl0LCAiXHU1RjIwXHU1NkZFXHU3MjQ3IikpOwogICAgfSwKICAgIC8vIOmHjeaWsOWvuWZpbGVMaXN06L+b6KGM6LWL5YC8CiAgICBzZXRGaWxlTGlzdDogZnVuY3Rpb24gc2V0RmlsZUxpc3QoZmlsZUxpc3QpIHsKICAgICAgdmFyIGZpbGVBcnJheSA9IFtdOwogICAgICB2YXIgZmlsZVVybEFycmF5ID0gW107IC8vIOacieS6m+WbvueJh+S4jeaYr+WFrOW8gOeahO+8jOaJgOS7pemcgOimgeaQuuW4pnRva2Vu5L+h5oGv5YGa5p2D6ZmQ5qCh6aqMCgogICAgICB2YXIgdG9rZW4gPSBzdG9yYWdlLmdldCgidG9rZW4iKTsKCiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CgogICAgICBmaWxlTGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtLCBpbmRleCkgewogICAgICAgIHZhciB1cmwgPSBpdGVtLnVybC5zcGxpdCgiPyIpWzBdOwoKICAgICAgICBpZiAoIXVybC5zdGFydHNXaXRoKCJodHRwIikpIHsKICAgICAgICAgIHVybCA9IF90aGlzLiRiYXNlLnVybCArIHVybDsKICAgICAgICB9CgogICAgICAgIHZhciBuYW1lID0gaXRlbS5uYW1lOwogICAgICAgIHZhciBmaWxlID0gewogICAgICAgICAgbmFtZTogbmFtZSwKICAgICAgICAgIHVybDogdXJsICsgIj90b2tlbj0iICsgdG9rZW4KICAgICAgICB9OwogICAgICAgIGZpbGVBcnJheS5wdXNoKGZpbGUpOwogICAgICAgIGZpbGVVcmxBcnJheS5wdXNoKHVybCk7CiAgICAgIH0pOwogICAgICB0aGlzLmZpbGVMaXN0ID0gZmlsZUFycmF5OwogICAgICB0aGlzLmZpbGVVcmxMaXN0ID0gZmlsZVVybEFycmF5OwogICAgfQogIH0KfTs="},{"version":3,"sources":["FileUpload.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,OAAA,OAAA,MAAA,iBAAA;AACA,OAAA,IAAA,MAAA,cAAA;AACA,eAAA;AACA,EAAA,IADA,kBACA;AACA,WAAA;AACA;AACA,MAAA,aAAA,EAAA,KAFA;AAGA;AACA,MAAA,cAAA,EAAA,EAJA;AAKA;AACA,MAAA,QAAA,EAAA,EANA;AAOA,MAAA,WAAA,EAAA,EAPA;AAQA,MAAA,SAAA,EAAA;AARA,KAAA;AAUA,GAZA;AAaA,EAAA,KAAA,EAAA,CAAA,KAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAbA;AAcA,EAAA,OAdA,qBAcA;AACA,SAAA,IAAA;AACA,SAAA,SAAA,GAAA;AACA,eAAA,OAAA,CAAA,GAAA,CAAA,OAAA;AADA,KAAA;AAGA,GAnBA;AAoBA,EAAA,KAAA,EAAA;AACA,IAAA,QAAA,EAAA,kBAAA,GAAA,EAAA,MAAA,EAAA;AACA;AACA,WAAA,IAAA;AACA;AAJA,GApBA;AA0BA,EAAA,QAAA,EAAA;AACA;AACA,IAAA,YAAA,EAAA,wBAAA;AACA;AACA,aAAA,WAAA,KAAA,KAAA,CAAA,IAAA,SAAA,KAAA,MAAA;AACA;AALA,GA1BA;AAiCA,EAAA,OAAA,EAAA;AACA;AACA,IAAA,IAFA,kBAEA;AACA;AACA,UAAA,KAAA,QAAA,EAAA;AACA,aAAA,WAAA,GAAA,KAAA,QAAA,CAAA,KAAA,CAAA,GAAA,CAAA;AACA,YAAA,SAAA,GAAA,EAAA;AACA,aAAA,WAAA,CAAA,OAAA,CAAA,UAAA,IAAA,EAAA,KAAA,EAAA;AACA,cAAA,GAAA,GAAA,IAAA;AACA,cAAA,IAAA,GAAA,KAAA;AACA,cAAA,IAAA,GAAA;AACA,YAAA,IAAA,EAAA,IADA;AAEA,YAAA,GAAA,EAAA;AAFA,WAAA;AAIA,UAAA,SAAA,CAAA,IAAA,CAAA,IAAA;AACA,SARA;AASA,aAAA,WAAA,CAAA,SAAA;AACA;AACA,KAlBA;AAmBA,IAAA,kBAnBA,8BAmBA,IAnBA,EAmBA,CAEA,CArBA;AAsBA;AACA,IAAA,mBAvBA,+BAuBA,GAvBA,EAuBA,IAvBA,EAuBA,QAvBA,EAuBA;AACA,UAAA,GAAA,IAAA,GAAA,CAAA,IAAA,KAAA,CAAA,EAAA;AACA,QAAA,QAAA,CAAA,QAAA,CAAA,MAAA,GAAA,CAAA,CAAA,CAAA,KAAA,IAAA,YAAA,IAAA,CAAA,QAAA,CAAA,IAAA;AACA,aAAA,WAAA,CAAA,QAAA;AACA,aAAA,KAAA,CAAA,QAAA,EAAA,KAAA,WAAA,CAAA,IAAA,CAAA,GAAA,CAAA;AACA,OAJA,MAIA;AACA,aAAA,QAAA,CAAA,KAAA,CAAA,GAAA,CAAA,GAAA;AACA;AACA,KA/BA;AAgCA;AACA,IAAA,eAjCA,2BAiCA,GAjCA,EAiCA,IAjCA,EAiCA,QAjCA,EAiCA;AACA,WAAA,QAAA,CAAA,KAAA,CAAA,QAAA;AACA,KAnCA;AAoCA;AACA,IAAA,YArCA,wBAqCA,IArCA,EAqCA,QArCA,EAqCA;AACA,WAAA,WAAA,CAAA,QAAA;AACA,WAAA,KAAA,CAAA,QAAA,EAAA,KAAA,WAAA,CAAA,IAAA,CAAA,GAAA,CAAA;AACA,KAxCA;AAyCA;AACA,IAAA,mBA1CA,+BA0CA,IA1CA,EA0CA;AACA,WAAA,cAAA,GAAA,IAAA,CAAA,GAAA;AACA,WAAA,aAAA,GAAA,IAAA;AACA,KA7CA;AA8CA;AACA,IAAA,YA/CA,wBA+CA,KA/CA,EA+CA,QA/CA,EA+CA;AACA,WAAA,QAAA,CAAA,OAAA,mCAAA,KAAA,KAAA;AACA,KAjDA;AAkDA;AACA,IAAA,WAnDA,uBAmDA,QAnDA,EAmDA;AACA,UAAA,SAAA,GAAA,EAAA;AACA,UAAA,YAAA,GAAA,EAAA,CAFA,CAGA;;AACA,UAAA,KAAA,GAAA,OAAA,CAAA,GAAA,CAAA,OAAA,CAAA;;AACA,UAAA,KAAA,GAAA,IAAA;;AACA,MAAA,QAAA,CAAA,OAAA,CAAA,UAAA,IAAA,EAAA,KAAA,EAAA;AACA,YAAA,GAAA,GAAA,IAAA,CAAA,GAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,CAAA;;AACA,YAAA,CAAA,GAAA,CAAA,UAAA,CAAA,MAAA,CAAA,EAAA;AACA,UAAA,GAAA,GAAA,KAAA,CAAA,KAAA,CAAA,GAAA,GAAA,GAAA;AACA;;AACA,YAAA,IAAA,GAAA,IAAA,CAAA,IAAA;AACA,YAAA,IAAA,GAAA;AACA,UAAA,IAAA,EAAA,IADA;AAEA,UAAA,GAAA,EAAA,GAAA,GAAA,SAAA,GAAA;AAFA,SAAA;AAIA,QAAA,SAAA,CAAA,IAAA,CAAA,IAAA;AACA,QAAA,YAAA,CAAA,IAAA,CAAA,GAAA;AACA,OAZA;AAaA,WAAA,QAAA,GAAA,SAAA;AACA,WAAA,WAAA,GAAA,YAAA;AACA;AAxEA;AAjCA,CAAA","sourcesContent":["<template>\r\n <div>\r\n <!-- 上传文件组件 -->\r\n <el-upload\r\n ref=\"upload\"\r\n :action=\"getActionUrl\"\r\n list-type=\"picture-card\"\r\n :multiple=\"multiple\"\r\n :limit=\"limit\"\r\n :headers=\"myHeaders\"\r\n :file-list=\"fileList\"\r\n :on-exceed=\"handleExceed\"\r\n :on-preview=\"handleUploadPreview\"\r\n :on-remove=\"handleRemove\"\r\n :on-success=\"handleUploadSuccess\"\r\n :on-error=\"handleUploadErr\"\r\n :before-upload=\"handleBeforeUpload\"\r\n >\r\n <i class=\"el-icon-plus\"></i>\r\n <div slot=\"tip\" class=\"el-upload__tip\" style=\"color:#838fa1;\">{{tip}}</div>\r\n </el-upload>\r\n <el-dialog :visible.sync=\"dialogVisible\" size=\"tiny\" append-to-body>\r\n <img width=\"100%\" :src=\"dialogImageUrl\" alt>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n<script>\r\nimport storage from \"@/utils/storage\";\r\nimport base from \"@/utils/base\";\r\nexport default {\r\n data() {\r\n return {\r\n // 查看大图\r\n dialogVisible: false,\r\n // 查看大图\r\n dialogImageUrl: \"\",\r\n // 组件渲染图片的数组字段,有特殊格式要求\r\n fileList: [],\r\n fileUrlList: [],\r\n myHeaders:{}\r\n };\r\n },\r\n props: [\"tip\", \"action\", \"limit\", \"multiple\", \"fileUrls\"],\r\n mounted() {\r\n this.init();\r\n this.myHeaders= {\r\n 'Token':storage.get(\"Token\")\r\n }\r\n },\r\n watch: {\r\n fileUrls: function(val, oldVal) {\r\n // console.log(\"new: %s, old: %s\", val, oldVal);\r\n this.init();\r\n }\r\n },\r\n computed: {\r\n // 计算属性的 getter\r\n getActionUrl: function() {\r\n // return base.url + this.action + \"?token=\" + storage.get(\"token\");\r\n return `/${this.$base.name}/` + this.action;\r\n }\r\n },\r\n methods: {\r\n // 初始化\r\n init() {\r\n // console.log(this.fileUrls);\r\n if (this.fileUrls) {\r\n this.fileUrlList = this.fileUrls.split(\",\");\r\n let fileArray = [];\r\n this.fileUrlList.forEach(function(item, index) {\r\n var url = item;\r\n var name = index;\r\n var file = {\r\n name: name,\r\n url: url\r\n };\r\n fileArray.push(file);\r\n });\r\n this.setFileList(fileArray);\r\n }\r\n },\r\n handleBeforeUpload(file) {\r\n\t\r\n },\r\n // 上传文件成功后执行\r\n handleUploadSuccess(res, file, fileList) {\r\n if (res && res.code === 0) {\r\n fileList[fileList.length - 1][\"url\"] = \"upload/\" + file.response.file;\r\n this.setFileList(fileList);\r\n this.$emit(\"change\", this.fileUrlList.join(\",\"));\r\n } else {\r\n this.$message.error(res.msg);\r\n }\r\n },\r\n // 图片上传失败\r\n handleUploadErr(err, file, fileList) {\r\n this.$message.error(\"文件上传失败\");\r\n },\r\n // 移除图片\r\n handleRemove(file, fileList) {\r\n this.setFileList(fileList);\r\n this.$emit(\"change\", this.fileUrlList.join(\",\"));\r\n },\r\n // 查看大图\r\n handleUploadPreview(file) {\r\n this.dialogImageUrl = file.url;\r\n this.dialogVisible = true;\r\n },\r\n // 限制图片数量\r\n handleExceed(files, fileList) {\r\n this.$message.warning(`最多上传${this.limit}张图片`);\r\n },\r\n // 重新对fileList进行赋值\r\n setFileList(fileList) {\r\n var fileArray = [];\r\n var fileUrlArray = [];\r\n // 有些图片不是公开的所以需要携带token信息做权限校验\r\n var token = storage.get(\"token\");\r\n let _this = this;\r\n fileList.forEach(function(item, index) {\r\n var url = item.url.split(\"?\")[0];\r\n\tif(!url.startsWith(\"http\")) {\r\n\t url = _this.$base.url+url\r\n\t}\r\n var name = item.name;\r\n var file = {\r\n name: name,\r\n url: url + \"?token=\" + token\r\n };\r\n fileArray.push(file);\r\n fileUrlArray.push(url);\r\n });\r\n this.fileList = fileArray;\r\n this.fileUrlList = fileUrlArray;\r\n }\r\n }\r\n};\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n</style>\r\n"],"sourceRoot":"src/components/common"}]}