| 1 |
- {"remainingRequest":"/usr/local/develop/php/www/waibao/project/NN2022060801/addons/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!/usr/local/develop/php/www/waibao/project/NN2022060801/addons/admin/src/components/uploadImage.vue?vue&type=script&lang=js&","dependencies":[{"path":"/usr/local/develop/php/www/waibao/project/NN2022060801/addons/admin/src/components/uploadImage.vue","mtime":1616483432000},{"path":"/usr/local/develop/php/www/waibao/project/NN2022060801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2022060801/addons/admin/node_modules/babel-loader/lib/index.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2022060801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2022060801/addons/admin/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBheGlvcyBmcm9tICdheGlvcycKZXhwb3J0IGRlZmF1bHQgewogICAgcHJvcHM6IHsKICAgICAgICBsaW1pdDogewogICAgICAgICAgICB0eXBlOiBOdW1iZXIsCiAgICAgICAgICAgIGRlZmF1bHQoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgZGlzYWJsZWQ6IHsKICAgICAgICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgICAgICAgZGVmYXVsdCgpIHsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgaXNDb21wcmVzczogewogICAgICAgICAgICB0eXBlOiBCb29sZWFuLAogICAgICAgICAgICBkZWZhdWx0KCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB2YWx1ZTp7fQogICAgfSwKICAgIGRhdGE6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBwaG90bzogW10sCiAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICAgIH0KICAgIH0sCiAgICB3YXRjaDogewogICAgICAgIHBob3RvKCkgewogICAgICAgICAgICBpZiAodGhpcy5saW1pdCA9PSAxKSB7CiAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCdpbnB1dCcsIHRoaXMucGhvdG8ubGVuZ3RoPjA/dGhpcy5waG90b1swXS51cmw6JycpCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCdpbnB1dCcsIHRoaXMucGhvdG8pCiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHZhbHVlKCkgewogICAgICAgICAgICBpZiAodGhpcy5saW1pdCA9PSAxKSB7CiAgICAgICAgICAgICAgICBpZih0aGlzLnZhbHVlIGluc3RhbmNlb2YgQXJyYXkpewogICAgICAgICAgICAgICAgICAgIHRoaXMucGhvdG8gPSBbXQogICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5waG90byA9ICB0aGlzLnZhbHVlP1t7dXJsOnRoaXMudmFsdWV9XTpbXQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy5waG90byA9IHRoaXMudmFsdWUKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0sCiAgICBtb3VudGVkKCkgewogICAgICAgIGlmICh0aGlzLmxpbWl0ID09IDEpIHsKICAgICAgICAgICAgaWYodGhpcy52YWx1ZSBpbnN0YW5jZW9mIEFycmF5KXsKICAgICAgICAgICAgICAgIHRoaXMucGhvdG8gPSBbXQogICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgIHRoaXMucGhvdG8gPSAgdGhpcy52YWx1ZT9bdGhpcy52YWx1ZV06W10KICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMucGhvdG8gPSB0aGlzLnZhbHVlCiAgICAgICAgfQogICAgfSwKICAgIG1ldGhvZHM6IHsKICAgICAgICBkZWxldGVJbWcoaW5kZXgpIHsKICAgICAgICAgICAgdGhpcy5waG90by5zcGxpY2UoaW5kZXgsIDEpCiAgICAgICAgfSwKICAgICAgICBjb21wcmVzcyhpbWcpIHsKICAgICAgICAgICAgdmFyIHVybCA9IG51bGw7CiAgICAgICAgICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKICAgICAgICAgICAgdmFyIHNjYWxlID0gaW1nLmhlaWdodCAvIGltZy53aWR0aDsKICAgICAgICAgICAgY2FudmFzLndpZHRoID0gNzIwOwogICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gNzIwICogc2NhbGU7CgoKICAgICAgICAgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOwogICAgICAgICAgICBjdHguY2xlYXJSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7CgogICAgICAgICAgICBjdHguZHJhd0ltYWdlKGltZywgMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKICAgICAgICAgICAgdXJsID0gY2FudmFzLnRvRGF0YVVSTCgiaW1hZ2UvanBlZyIpOwogICAgICAgICAgICByZXR1cm4gdXJsOwoKICAgICAgICB9LAogICAgICAgIGRhdGFVUkl0b0Jsb2IoZGF0YVVSSSkgewogICAgICAgICAgICBsZXQgYnl0ZVN0cmluZyA9IHdpbmRvdy5hdG9iKGRhdGFVUkkuc3BsaXQoJywnKVsxXSkKICAgICAgICAgICAgbGV0IG1pbWVTdHJpbmcgPSBkYXRhVVJJLnNwbGl0KCcsJylbMF0uc3BsaXQoJzonKVsxXS5zcGxpdCgnOycpWzBdCiAgICAgICAgICAgIGxldCBhYiA9IG5ldyBBcnJheUJ1ZmZlcihieXRlU3RyaW5nLmxlbmd0aCkKICAgICAgICAgICAgbGV0IGlhID0gbmV3IFVpbnQ4QXJyYXkoYWIpCiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZVN0cmluZy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgaWFbaV0gPSBieXRlU3RyaW5nLmNoYXJDb2RlQXQoaSkKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gbmV3IHdpbmRvdy5CbG9iKFthYl0sIHt0eXBlOiBtaW1lU3RyaW5nfSkKICAgICAgICB9LAogICAgICAgIGFkZF9pbWcoZXZlbnQpIHsKICAgICAgICAgICAgbGV0IGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbMF0KICAgICAgICAgICAgaWYgKC9cLihnaWZ8anBnfGpwZWd8cG5nfEdJRnxKUEd8UE5HKSQvLnRlc3QoZXZlbnQudGFyZ2V0LnZhbHVlKSkgewogICAgICAgICAgICAgICAgbGV0IE1BWFNJWkUgPSAxMCoxMDI0ICogMTAyNDsKICAgICAgICAgICAgICAgIGxldCBzaXplID0gZmlsZS5zaXplOwogICAgICAgICAgICAgICAgaWYoc2l6ZT5NQVhTSVpFKXsKICAgICAgICAgICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJwogICAgICAgICAgICAgICAgICAgIHRoaXMuJG5vdGlmeS5lcnJvcih7CiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5LiK5Lyg5Zu+54mH6ZSZ6K+vJywKICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ+S4iuS8oOWbvueJh+S4jeiDvei2hei/hzEwTScKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZQogICAgICAgICAgICAgICAgbGV0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCkKICAgICAgICAgICAgICAgIGxldCBzZWxmID0gdGhpcwogICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSkKICAgICAgICAgICAgICAgIGxldCBpbWcgPSBuZXcgSW1hZ2U7CiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgICAgICAgICBpbWcuc3JjID0gdGhpcy5yZXN1bHQ7CiAgICAgICAgICAgICAgICAgICAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJhc2UgPSBlLnRhcmdldC5yZXN1bHQKICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpbGVJdGVtID0gZmlsZQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZi5pc0NvbXByZXNzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlID0gc2VsZi5jb21wcmVzcyhpbWcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlSXRlbSA9IHNlbGYuZGF0YVVSSXRvQmxvYihiYXNlKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmb3JtZGF0YSA9IG5ldyB3aW5kb3cuRm9ybURhdGEoKQogICAgICAgICAgICAgICAgICAgICAgICBmb3JtZGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlSXRlbSkKICAgICAgICAgICAgICAgICAgICAgICAgYXhpb3MoewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAiUE9TVCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICcvdXBsb2FkL3VwbG9hZEltYWdlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGZvcm1kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dDogMTAwMDAwMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ211bHRpcGFydC9mb3JtLWRhdGEnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBob3RvLnB1c2goe2ZpbGVOYW1lOmZpbGUuZmlsZU5hbWUsdXJsOnJlcy5kYXRhLmRhdGF9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2FkaW5nID0gZmFsc2UKICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2FkaW5nID0gZmFsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGUubWVzc2FnZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuJG1lc3NhZ2UuZXJyb3IoZS5tZXNzYWdlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJwogICAgICAgICAgICAgICAgdGhpcy4kbm90aWZ5LmVycm9yKHsKICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+S4iuS8oOWbvueJh+mUmeivrycsCiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ+ivt+S4iuS8oGdpZnxqcGd8anBlZ3xwbmd8R0lGfEpQR3xQTkfmoLzlvI/lm77niYcnCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cg=="},{"version":3,"sources":["uploadImage.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAsBA;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;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;;;AAGA;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;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;AACA","file":"uploadImage.vue","sourceRoot":"src/components","sourcesContent":["<template ref=\"uploadImage\">\n <div class='finish_room'>\n <div class='finish_room2'>\n <viewer :images=\"photo\">\n <div :key=\"index\" v-for=\"(item,index) in photo\" class='room_img'>\n <img v-lazy=\"item.url\">\n <div v-if=\"!disabled\" @click=\"deleteImg(index)\" class=\"im-button\">\n <div class=\"im-close\"></div>\n <div class=\"im-close1\"></div>\n </div>\n </div>\n </viewer>\n <div v-if=\"photo.length<limit\" v-loading=\"loading\" class='room_add_img'>\n <span style=\"margin-top: 35px\"><img src=\"../assets/add_img.png\"></span>\n <input :disabled=\"disabled\" @change='add_img' type=\"file\">\n </div>\n </div>\n </div>\n\n</template>\n\n<script>\n import axios from 'axios'\n export default {\n props: {\n limit: {\n type: Number,\n default() {\n return 1;\n }\n },\n disabled: {\n type: Boolean,\n default() {\n return false;\n }\n },\n isCompress: {\n type: Boolean,\n default() {\n return false;\n }\n },\n value:{}\n },\n data: function () {\n return {\n photo: [],\n loading: false,\n }\n },\n watch: {\n photo() {\n if (this.limit == 1) {\n this.$emit('input', this.photo.length>0?this.photo[0].url:'')\n } else {\n this.$emit('input', this.photo)\n }\n },\n value() {\n if (this.limit == 1) {\n if(this.value instanceof Array){\n this.photo = []\n }else{\n this.photo = this.value?[{url:this.value}]:[]\n }\n } else {\n this.photo = this.value\n }\n }\n },\n mounted() {\n if (this.limit == 1) {\n if(this.value instanceof Array){\n this.photo = []\n }else{\n this.photo = this.value?[this.value]:[]\n }\n } else {\n this.photo = this.value\n }\n },\n methods: {\n deleteImg(index) {\n this.photo.splice(index, 1)\n },\n compress(img) {\n var url = null;\n var canvas = document.createElement(\"canvas\");\n var scale = img.height / img.width;\n canvas.width = 720;\n canvas.height = 720 * scale;\n\n\n var ctx = canvas.getContext(\"2d\");\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n url = canvas.toDataURL(\"image/jpeg\");\n return url;\n\n },\n dataURItoBlob(dataURI) {\n let byteString = window.atob(dataURI.split(',')[1])\n let mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]\n let ab = new ArrayBuffer(byteString.length)\n let ia = new Uint8Array(ab)\n for (let i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i)\n }\n return new window.Blob([ab], {type: mimeString})\n },\n add_img(event) {\n let file = event.target.files[0]\n if (/\\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(event.target.value)) {\n let MAXSIZE = 10*1024 * 1024;\n let size = file.size;\n if(size>MAXSIZE){\n event.target.value = ''\n this.$notify.error({\n title: '上传图片错误',\n message: '上传图片不能超过10M'\n })\n return\n }\n this.loading = true\n let reader = new FileReader()\n let self = this\n reader.readAsDataURL(file)\n let img = new Image;\n reader.onload = function (e) {\n img.src = this.result;\n img.onload = function () {\n let base = e.target.result\n let fileItem = file\n if (self.isCompress) {\n base = self.compress(img)\n fileItem = self.dataURItoBlob(base)\n }\n let formdata = new window.FormData()\n formdata.append('file', fileItem)\n axios({\n method: \"POST\",\n url: '/upload/uploadImage',\n data: formdata,\n timeout: 1000000,\n headers: {\n 'Content-Type': 'multipart/form-data'\n }\n }).then(res => {\n event.target.value = ''\n self.photo.push({fileName:file.fileName,url:res.data.data})\n self.loading = false\n }).catch(e => {\n event.target.value = ''\n self.loading = false\n console.log(e.message)\n // this.$message.error(e.message);\n })\n }\n }\n } else {\n event.target.value = ''\n this.$notify.error({\n title: '上传图片错误',\n message: '请上传gif|jpg|jpeg|png|GIF|JPG|PNG格式图片'\n })\n }\n }\n }\n }\n</script>\n<style>\n .finish_room {\n /*width: 140px;*/\n /*height: 165px;*/\n }\n\n img {\n height: 100%;\n }\n\n .finish_room2 {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n flex-flow: wrap;\n }\n\n .finish_room2 > div {\n display: flex;\n flex-wrap: wrap;\n }\n\n\n .finish_room2 .margeImg {\n margin-left: 10px;\n }\n\n .finish_room2 .room_img {\n width: 100px;\n height: 100px;\n cursor: pointer;\n overflow: hidden;\n position: relative;\n text-align: center;\n background-color: rgba(0, 0, 0, .5);\n margin-left: 10px;\n margin-top: 10px;\n }\n\n .finish_room2 .room_img:before {\n /*content: \"\";*/\n /*width: 0;*/\n /*height: 100%;*/\n /*!*background: #000;*!*/\n /*padding: 14px 18px;*/\n /*position: absolute;*/\n /*top: 0;*/\n /*left: 50%;*/\n /*opacity: 0;*/\n }\n\n .finish_room2 .room_img:hover:before {\n width: 100%;\n left: 0;\n opacity: 0.5;\n }\n\n .finish_room2 .room_img .box-content {\n width: 100%;\n padding: 14px 18px;\n color: #fff;\n position: absolute;\n top: 38%;\n left: 0;\n }\n\n .finish_room2 .room_img .icon {\n padding: 0;\n margin: 0;\n list-style: none;\n margin-top: -20px;\n }\n\n .finish_room2 .room_img .icon li {\n display: inline-block;\n }\n\n .finish_room2 .room_img .icon li i {\n display: block;\n width: 40px;\n height: 40px;\n line-height: 40px;\n border-radius: 50%;\n font-size: 20px;\n font-weight: 700;\n color: #fff;\n margin-right: 25px;\n opacity: 0;\n transform: translateY(50px);\n transition: all 0.5s ease 0s;\n }\n\n\n @media only screen and (max-width: 990px) {\n .finish_room2 .room_img {\n }\n }\n\n .finish_room2 .deleteImg {\n color: red;\n position: absolute;\n top: 0px;\n left: 80px;\n cursor: pointer;\n }\n\n .finish_room2 .room_img img {\n cursor: pointer;\n width: 100px;\n height: 100px;\n }\n\n .finish_room2 > .room_img span {\n position: absolute;\n width: auto;\n height: auto;\n right: 5px;\n bottom: 3px;\n }\n\n .finish_room2 .im-button {\n position: absolute;\n top: -14px;\n right: -18px;\n width: 40px;\n height: 40px;\n cursor: pointer;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, .5);\n opacity: 0;\n }\n\n .finish_room2 .room_img:hover .icon li i {\n opacity: 0.5;\n }\n\n .finish_room2 .room_img:hover img {\n opacity: 0.5;\n }\n\n\n .finish_room2 .room_img:hover .im-button {\n opacity: 1;\n }\n\n .finish_room2 .im-close {\n transform: rotate(-45deg);\n line-height: 0px;\n left: 6px;\n bottom: 13px;\n display: inline-block;\n width: 15px;\n height: 2px;\n background: #fff;\n position: absolute;\n }\n\n .finish_room2 .im-close1 {\n left: 5px;\n bottom: 13px;\n display: inline-block;\n width: 15px;\n height: 2px;\n background: #fff;\n position: absolute;\n transform: rotate(45deg);\n }\n\n .room_add_img {\n margin-left: 10px;\n margin-top: 10px;\n width: 100px;\n height: 100px;\n cursor: pointer;\n border: 1px solid #e1e1e1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n position: relative;\n z-index: 10;\n }\n\n .room_add_img > span:nth-child(1) {\n width: 30px;\n height: 30px;\n overflow: hidden;\n }\n\n .room_add_img > span:nth-child(2) {\n margin-bottom: 10px;\n }\n\n .room_add_img input {\n cursor: pointer;\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n z-index: 99999;\n opacity: 0;\n }\n</style>\n"]}]}
|