feige
2024-02-02 bd40473c9c634005bc7e62e7fc901bcd8b598fa0
1
{"remainingRequest":"D:\\Users\\小蓝\\Desktop\\赖博士版\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!D:\\Users\\小蓝\\Desktop\\赖博士版\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\Users\\小蓝\\Desktop\\赖博士版\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\Users\\小蓝\\Desktop\\赖博士版\\ruoyi-ui\\src\\components\\ImageUpload\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\Users\\小蓝\\Desktop\\赖博士版\\ruoyi-ui\\src\\components\\ImageUpload\\index.vue","mtime":1676881540000},{"path":"D:\\Users\\小蓝\\Desktop\\赖博士版\\ruoyi-ui\\babel.config.js","mtime":1676881540000},{"path":"D:\\Users\\小蓝\\Desktop\\赖博士版\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\Users\\小蓝\\Desktop\\赖博士版\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\Users\\小蓝\\Desktop\\赖博士版\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\Users\\小蓝\\Desktop\\赖博士版\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:InVzZSBzdHJpY3QiOwoKT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgewogIHZhbHVlOiB0cnVlCn0pOwpleHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIuY29uc3RydWN0b3IuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc2xpY2UuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmpvaW4uanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNwbGljZS5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnJlcGxhY2UuanMiKTsKdmFyIF9hdXRoID0gcmVxdWlyZSgiQC91dGlscy9hdXRoIik7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCnZhciBfZGVmYXVsdDIgPSB7CiAgcHJvcHM6IHsKICAgIHZhbHVlOiBbU3RyaW5nLCBPYmplY3QsIEFycmF5XSwKICAgIC8vIOWbvueJh+aVsOmHj+mZkOWItgogICAgbGltaXQ6IHsKICAgICAgdHlwZTogTnVtYmVyLAogICAgICBkZWZhdWx0OiA1CiAgICB9LAogICAgLy8g5aSn5bCP6ZmQ5Yi2KE1CKQogICAgZmlsZVNpemU6IHsKICAgICAgdHlwZTogTnVtYmVyLAogICAgICBkZWZhdWx0OiA1CiAgICB9LAogICAgLy8g5paH5Lu257G75Z6LLCDkvovlpoJbJ3BuZycsICdqcGcnLCAnanBlZyddCiAgICBmaWxlVHlwZTogewogICAgICB0eXBlOiBBcnJheSwKICAgICAgZGVmYXVsdDogZnVuY3Rpb24gX2RlZmF1bHQoKSB7CiAgICAgICAgcmV0dXJuIFsicG5nIiwgImpwZyIsICJqcGVnIl07CiAgICAgIH0KICAgIH0sCiAgICAvLyDmmK/lkKbmmL7npLrmj5DnpLoKICAgIGlzU2hvd1RpcDogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgbnVtYmVyOiAwLAogICAgICB1cGxvYWRMaXN0OiBbXSwKICAgICAgZGlhbG9nSW1hZ2VVcmw6ICIiLAogICAgICBkaWFsb2dWaXNpYmxlOiBmYWxzZSwKICAgICAgaGlkZVVwbG9hZDogZmFsc2UsCiAgICAgIGJhc2VVcmw6IHByb2Nlc3MuZW52LlZVRV9BUFBfQkFTRV9BUEksCiAgICAgIHVwbG9hZEltZ1VybDogcHJvY2Vzcy5lbnYuVlVFX0FQUF9CQVNFX0FQSSArICIvY29tbW9uL3VwbG9hZCIsCiAgICAgIC8vIOS4iuS8oOeahOWbvueJh+acjeWKoeWZqOWcsOWdgAogICAgICBoZWFkZXJzOiB7CiAgICAgICAgQXV0aG9yaXphdGlvbjogIkJlYXJlciAiICsgKDAsIF9hdXRoLmdldFRva2VuKSgpCiAgICAgIH0sCiAgICAgIGZpbGVMaXN0OiBbXQogICAgfTsKICB9LAogIHdhdGNoOiB7CiAgICB2YWx1ZTogewogICAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKHZhbCkgewogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgICAgaWYgKHZhbCkgewogICAgICAgICAgLy8g6aaW5YWI5bCG5YC86L2s5Li65pWw57uECiAgICAgICAgICB2YXIgbGlzdCA9IEFycmF5LmlzQXJyYXkodmFsKSA/IHZhbCA6IHRoaXMudmFsdWUuc3BsaXQoJywnKTsKICAgICAgICAgIC8vIOeEtuWQjuWwhuaVsOe7hOi9rOS4uuWvueixoeaVsOe7hAogICAgICAgICAgdGhpcy5maWxlTGlzdCA9IGxpc3QubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gInN0cmluZyIpIHsKICAgICAgICAgICAgICBpZiAoaXRlbS5pbmRleE9mKF90aGlzLmJhc2VVcmwpID09PSAtMSkgewogICAgICAgICAgICAgICAgaXRlbSA9IHsKICAgICAgICAgICAgICAgICAgbmFtZTogX3RoaXMuYmFzZVVybCArIGl0ZW0sCiAgICAgICAgICAgICAgICAgIHVybDogX3RoaXMuYmFzZVVybCArIGl0ZW0KICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGl0ZW0gPSB7CiAgICAgICAgICAgICAgICAgIG5hbWU6IGl0ZW0sCiAgICAgICAgICAgICAgICAgIHVybDogaXRlbQogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGl0ZW07CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5maWxlTGlzdCA9IFtdOwogICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KICAgICAgfSwKICAgICAgZGVlcDogdHJ1ZSwKICAgICAgaW1tZWRpYXRlOiB0cnVlCiAgICB9CiAgfSwKICBjb21wdXRlZDogewogICAgLy8g5piv5ZCm5pi+56S65o+Q56S6CiAgICBzaG93VGlwOiBmdW5jdGlvbiBzaG93VGlwKCkgewogICAgICByZXR1cm4gdGhpcy5pc1Nob3dUaXAgJiYgKHRoaXMuZmlsZVR5cGUgfHwgdGhpcy5maWxlU2l6ZSk7CiAgICB9CiAgfSwKICBtZXRob2RzOiB7CiAgICAvLyDkuIrkvKDliY1sb2FkaW5n5Yqg6L29CiAgICBoYW5kbGVCZWZvcmVVcGxvYWQ6IGZ1bmN0aW9uIGhhbmRsZUJlZm9yZVVwbG9hZChmaWxlKSB7CiAgICAgIHZhciBpc0ltZyA9IGZhbHNlOwogICAgICBpZiAodGhpcy5maWxlVHlwZS5sZW5ndGgpIHsKICAgICAgICB2YXIgZmlsZUV4dGVuc2lvbiA9ICIiOwogICAgICAgIGlmIChmaWxlLm5hbWUubGFzdEluZGV4T2YoIi4iKSA+IC0xKSB7CiAgICAgICAgICBmaWxlRXh0ZW5zaW9uID0gZmlsZS5uYW1lLnNsaWNlKGZpbGUubmFtZS5sYXN0SW5kZXhPZigiLiIpICsgMSk7CiAgICAgICAgfQogICAgICAgIGlzSW1nID0gdGhpcy5maWxlVHlwZS5zb21lKGZ1bmN0aW9uICh0eXBlKSB7CiAgICAgICAgICBpZiAoZmlsZS50eXBlLmluZGV4T2YodHlwZSkgPiAtMSkgcmV0dXJuIHRydWU7CiAgICAgICAgICBpZiAoZmlsZUV4dGVuc2lvbiAmJiBmaWxlRXh0ZW5zaW9uLmluZGV4T2YodHlwZSkgPiAtMSkgcmV0dXJuIHRydWU7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaXNJbWcgPSBmaWxlLnR5cGUuaW5kZXhPZigiaW1hZ2UiKSA+IC0xOwogICAgICB9CiAgICAgIGlmICghaXNJbWcpIHsKICAgICAgICB0aGlzLiRtb2RhbC5tc2dFcnJvcigiXHU2NTg3XHU0RUY2XHU2ODNDXHU1RjBGXHU0RTBEXHU2QjYzXHU3ODZFLCBcdThCRjdcdTRFMEFcdTRGMjAiLmNvbmNhdCh0aGlzLmZpbGVUeXBlLmpvaW4oIi8iKSwgIlx1NTZGRVx1NzI0N1x1NjgzQ1x1NUYwRlx1NjU4N1x1NEVGNiEiKSk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGlmICh0aGlzLmZpbGVTaXplKSB7CiAgICAgICAgdmFyIGlzTHQgPSBmaWxlLnNpemUgLyAxMDI0IC8gMTAyNCA8IHRoaXMuZmlsZVNpemU7CiAgICAgICAgaWYgKCFpc0x0KSB7CiAgICAgICAgICB0aGlzLiRtb2RhbC5tc2dFcnJvcigiXHU0RTBBXHU0RjIwXHU1OTM0XHU1MENGXHU1NkZFXHU3MjQ3XHU1OTI3XHU1QzBGXHU0RTBEXHU4MEZEXHU4RDg1XHU4RkM3ICIuY29uY2F0KHRoaXMuZmlsZVNpemUsICIgTUIhIikpOwogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgfQogICAgICB0aGlzLiRtb2RhbC5sb2FkaW5nKCLmraPlnKjkuIrkvKDlm77niYfvvIzor7fnqI3lgJkuLi4iKTsKICAgICAgdGhpcy5udW1iZXIrKzsKICAgIH0sCiAgICAvLyDmlofku7bkuKrmlbDotoXlh7oKICAgIGhhbmRsZUV4Y2VlZDogZnVuY3Rpb24gaGFuZGxlRXhjZWVkKCkgewogICAgICB0aGlzLiRtb2RhbC5tc2dFcnJvcigiXHU0RTBBXHU0RjIwXHU2NTg3XHU0RUY2XHU2NTcwXHU5MUNGXHU0RTBEXHU4MEZEXHU4RDg1XHU4RkM3ICIuY29uY2F0KHRoaXMubGltaXQsICIgXHU0RTJBISIpKTsKICAgIH0sCiAgICAvLyDkuIrkvKDmiJDlip/lm57osIMKICAgIGhhbmRsZVVwbG9hZFN1Y2Nlc3M6IGZ1bmN0aW9uIGhhbmRsZVVwbG9hZFN1Y2Nlc3MocmVzLCBmaWxlKSB7CiAgICAgIGlmIChyZXMuY29kZSA9PT0gMjAwKSB7CiAgICAgICAgdGhpcy51cGxvYWRMaXN0LnB1c2goewogICAgICAgICAgbmFtZTogcmVzLmZpbGVOYW1lLAogICAgICAgICAgdXJsOiByZXMuZmlsZU5hbWUKICAgICAgICB9KTsKICAgICAgICB0aGlzLnVwbG9hZGVkU3VjY2Vzc2Z1bGx5KCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5udW1iZXItLTsKICAgICAgICB0aGlzLiRtb2RhbC5jbG9zZUxvYWRpbmcoKTsKICAgICAgICB0aGlzLiRtb2RhbC5tc2dFcnJvcihyZXMubXNnKTsKICAgICAgICB0aGlzLiRyZWZzLmltYWdlVXBsb2FkLmhhbmRsZVJlbW92ZShmaWxlKTsKICAgICAgICB0aGlzLnVwbG9hZGVkU3VjY2Vzc2Z1bGx5KCk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDliKDpmaTlm77niYcKICAgIGhhbmRsZURlbGV0ZTogZnVuY3Rpb24gaGFuZGxlRGVsZXRlKGZpbGUpIHsKICAgICAgdmFyIGZpbmRleCA9IHRoaXMuZmlsZUxpc3QubWFwKGZ1bmN0aW9uIChmKSB7CiAgICAgICAgcmV0dXJuIGYubmFtZTsKICAgICAgfSkuaW5kZXhPZihmaWxlLm5hbWUpOwogICAgICBpZiAoZmluZGV4ID4gLTEpIHsKICAgICAgICB0aGlzLmZpbGVMaXN0LnNwbGljZShmaW5kZXgsIDEpOwogICAgICAgIHRoaXMuJGVtaXQoImlucHV0IiwgdGhpcy5saXN0VG9TdHJpbmcodGhpcy5maWxlTGlzdCkpOwogICAgICB9CiAgICB9LAogICAgLy8g5LiK5Lyg5aSx6LSlCiAgICBoYW5kbGVVcGxvYWRFcnJvcjogZnVuY3Rpb24gaGFuZGxlVXBsb2FkRXJyb3IoKSB7CiAgICAgIHRoaXMuJG1vZGFsLm1zZ0Vycm9yKCLkuIrkvKDlm77niYflpLHotKXvvIzor7fph43or5UiKTsKICAgICAgdGhpcy4kbW9kYWwuY2xvc2VMb2FkaW5nKCk7CiAgICB9LAogICAgLy8g5LiK5Lyg57uT5p2f5aSE55CGCiAgICB1cGxvYWRlZFN1Y2Nlc3NmdWxseTogZnVuY3Rpb24gdXBsb2FkZWRTdWNjZXNzZnVsbHkoKSB7CiAgICAgIGlmICh0aGlzLm51bWJlciA+IDAgJiYgdGhpcy51cGxvYWRMaXN0Lmxlbmd0aCA9PT0gdGhpcy5udW1iZXIpIHsKICAgICAgICB0aGlzLmZpbGVMaXN0ID0gdGhpcy5maWxlTGlzdC5jb25jYXQodGhpcy51cGxvYWRMaXN0KTsKICAgICAgICB0aGlzLnVwbG9hZExpc3QgPSBbXTsKICAgICAgICB0aGlzLm51bWJlciA9IDA7CiAgICAgICAgdGhpcy4kZW1pdCgiaW5wdXQiLCB0aGlzLmxpc3RUb1N0cmluZyh0aGlzLmZpbGVMaXN0KSk7CiAgICAgICAgdGhpcy4kbW9kYWwuY2xvc2VMb2FkaW5nKCk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDpooTop4gKICAgIGhhbmRsZVBpY3R1cmVDYXJkUHJldmlldzogZnVuY3Rpb24gaGFuZGxlUGljdHVyZUNhcmRQcmV2aWV3KGZpbGUpIHsKICAgICAgdGhpcy5kaWFsb2dJbWFnZVVybCA9IGZpbGUudXJsOwogICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSB0cnVlOwogICAgfSwKICAgIC8vIOWvueixoei9rOaIkOaMh+WumuWtl+espuS4suWIhumalAogICAgbGlzdFRvU3RyaW5nOiBmdW5jdGlvbiBsaXN0VG9TdHJpbmcobGlzdCwgc2VwYXJhdG9yKSB7CiAgICAgIHZhciBzdHJzID0gIiI7CiAgICAgIHNlcGFyYXRvciA9IHNlcGFyYXRvciB8fCAiLCI7CiAgICAgIGZvciAodmFyIGkgaW4gbGlzdCkgewogICAgICAgIGlmIChsaXN0W2ldLnVybCkgewogICAgICAgICAgc3RycyArPSBsaXN0W2ldLnVybC5yZXBsYWNlKHRoaXMuYmFzZVVybCwgIiIpICsgc2VwYXJhdG9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gc3RycyAhPSAnJyA/IHN0cnMuc3Vic3RyKDAsIHN0cnMubGVuZ3RoIC0gMSkgOiAnJzsKICAgIH0KICB9Cn07CmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0Mjs="},{"version":3,"names":["_auth","require","props","value","String","Object","Array","limit","type","Number","default","fileSize","fileType","_default","isShowTip","Boolean","data","number","uploadList","dialogImageUrl","dialogVisible","hideUpload","baseUrl","process","env","VUE_APP_BASE_API","uploadImgUrl","headers","Authorization","getToken","fileList","watch","handler","val","_this","list","isArray","split","map","item","indexOf","name","url","deep","immediate","computed","showTip","methods","handleBeforeUpload","file","isImg","length","fileExtension","lastIndexOf","slice","some","$modal","msgError","concat","join","isLt","size","loading","handleExceed","handleUploadSuccess","res","code","push","fileName","uploadedSuccessfully","closeLoading","msg","$refs","imageUpload","handleRemove","handleDelete","findex","f","splice","$emit","listToString","handleUploadError","handlePictureCardPreview","separator","strs","i","replace","substr","exports","_default2"],"sources":["src/components/ImageUpload/index.vue"],"sourcesContent":["<template>\r\n  <div class=\"component-upload-image\">\r\n    <el-upload\r\n      multiple\r\n      :action=\"uploadImgUrl\"\r\n      list-type=\"picture-card\"\r\n      :on-success=\"handleUploadSuccess\"\r\n      :before-upload=\"handleBeforeUpload\"\r\n      :limit=\"limit\"\r\n      :on-error=\"handleUploadError\"\r\n      :on-exceed=\"handleExceed\"\r\n      ref=\"imageUpload\"\r\n      :on-remove=\"handleDelete\"\r\n      :show-file-list=\"true\"\r\n      :headers=\"headers\"\r\n      :file-list=\"fileList\"\r\n      :on-preview=\"handlePictureCardPreview\"\r\n      :class=\"{hide: this.fileList.length >= this.limit}\"\r\n    >\r\n      <i class=\"el-icon-plus\"></i>\r\n    </el-upload>\r\n    \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: #f56c6c\">{{ fileSize }}MB</b> </template>\r\n      <template v-if=\"fileType\"> 格式为 <b style=\"color: #f56c6c\">{{ fileType.join(\"/\") }}</b> </template>\r\n      的文件\r\n    </div>\r\n\r\n    <el-dialog\r\n      :visible.sync=\"dialogVisible\"\r\n      title=\"预览\"\r\n      width=\"800\"\r\n      append-to-body\r\n    >\r\n      <img\r\n        :src=\"dialogImageUrl\"\r\n        style=\"display: block; max-width: 100%; margin: 0 auto\"\r\n      />\r\n    </el-dialog>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport { getToken } from \"@/utils/auth\";\r\n\r\nexport default {\r\n  props: {\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: () => [\"png\", \"jpg\", \"jpeg\"],\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      number: 0,\r\n      uploadList: [],\r\n      dialogImageUrl: \"\",\r\n      dialogVisible: false,\r\n      hideUpload: false,\r\n      baseUrl: process.env.VUE_APP_BASE_API,\r\n      uploadImgUrl: 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          // 首先将值转为数组\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              if (item.indexOf(this.baseUrl) === -1) {\r\n                  item = { name: this.baseUrl + item, url: this.baseUrl + item };\r\n              } else {\r\n                  item = { name: item, url: item };\r\n              }\r\n            }\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    // 上传前loading加载\r\n    handleBeforeUpload(file) {\r\n      let isImg = false;\r\n      if (this.fileType.length) {\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        isImg = 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      } else {\r\n        isImg = file.type.indexOf(\"image\") > -1;\r\n      }\r\n\r\n      if (!isImg) {\r\n        this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join(\"/\")}图片格式文件!`);\r\n        return false;\r\n      }\r\n      if (this.fileSize) {\r\n        const isLt = file.size / 1024 / 1024 < this.fileSize;\r\n        if (!isLt) {\r\n          this.$modal.msgError(`上传头像图片大小不能超过 ${this.fileSize} MB!`);\r\n          return false;\r\n        }\r\n      }\r\n      this.$modal.loading(\"正在上传图片,请稍候...\");\r\n      this.number++;\r\n    },\r\n    // 文件个数超出\r\n    handleExceed() {\r\n      this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);\r\n    },\r\n    // 上传成功回调\r\n    handleUploadSuccess(res, file) {\r\n      if (res.code === 200) {\r\n        this.uploadList.push({ name: res.fileName, url: res.fileName });\r\n        this.uploadedSuccessfully();\r\n      } else {\r\n        this.number--;\r\n        this.$modal.closeLoading();\r\n        this.$modal.msgError(res.msg);\r\n        this.$refs.imageUpload.handleRemove(file);\r\n        this.uploadedSuccessfully();\r\n      }\r\n    },\r\n    // 删除图片\r\n    handleDelete(file) {\r\n      const findex = this.fileList.map(f => f.name).indexOf(file.name);\r\n      if(findex > -1) {\r\n        this.fileList.splice(findex, 1);\r\n        this.$emit(\"input\", this.listToString(this.fileList));\r\n      }\r\n    },\r\n    // 上传失败\r\n    handleUploadError() {\r\n      this.$modal.msgError(\"上传图片失败,请重试\");\r\n      this.$modal.closeLoading();\r\n    },\r\n    // 上传结束处理\r\n    uploadedSuccessfully() {\r\n      if (this.number > 0 && this.uploadList.length === this.number) {\r\n        this.fileList = this.fileList.concat(this.uploadList);\r\n        this.uploadList = [];\r\n        this.number = 0;\r\n        this.$emit(\"input\", this.listToString(this.fileList));\r\n        this.$modal.closeLoading();\r\n      }\r\n    },\r\n    // 预览\r\n    handlePictureCardPreview(file) {\r\n      this.dialogImageUrl = file.url;\r\n      this.dialogVisible = true;\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        if (list[i].url) {\r\n          strs += list[i].url.replace(this.baseUrl, \"\") + separator;\r\n        }\r\n      }\r\n      return strs != '' ? strs.substr(0, strs.length - 1) : '';\r\n    }\r\n  }\r\n};\r\n</script>\r\n<style scoped lang=\"scss\">\r\n// .el-upload--picture-card 控制加号部分\r\n::v-deep.hide .el-upload--picture-card {\r\n    display: none;\r\n}\r\n// 去掉动画效果\r\n::v-deep .el-list-enter-active,\r\n::v-deep .el-list-leave-active {\r\n    transition: all 0s;\r\n}\r\n\r\n::v-deep .el-list-enter, .el-list-leave-active {\r\n    opacity: 0;\r\n    transform: translateY(0);\r\n}\r\n</style>\r\n\r\n"],"mappings":"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"}]}