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
10 KiB

{"remainingRequest":"/Users/linhuakun/Downloads/coderlhk/codewhy/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/linhuakun/Downloads/coderlhk/codewhy/src/components/content/moments/MomentListItem.vue?vue&type=script&lang=js&","dependencies":[{"path":"/Users/linhuakun/Downloads/coderlhk/codewhy/src/components/content/moments/MomentListItem.vue","mtime":1616215984468},{"path":"/Users/linhuakun/Downloads/coderlhk/codewhy/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/linhuakun/Downloads/coderlhk/codewhy/node_modules/babel-loader/lib/index.js","mtime":499162500000},{"path":"/Users/linhuakun/Downloads/coderlhk/codewhy/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/linhuakun/Downloads/coderlhk/codewhy/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiTW9tZW50TGlzdEl0ZW0iLAogIHByb3BzOiB7CiAgICBtb21lbnRzOiB7CiAgICAgIHR5cGU6IE9iamVjdCwKICAgICAgZGVmYXVsdCgpIHsKICAgICAgICByZXR1cm4ge307CiAgICAgIH0sCiAgICB9LAogIH0sCiAgZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGlkOiB0aGlzLm1vbWVudHMuaWQsCiAgICAgIGlzRXhpc3Q6IHRydWUsCiAgICAgIGltYWdlczogW10sCiAgICAgIHByYWlzZToge30sCiAgICAgIGlzZGlzcGxheTogdHJ1ZSwKICAgICAgbnVtYmVyOiAiIiwKICAgICAgaXNmcmlzdDogdHJ1ZSwKICAgICAgdG9rZW46JycKICAgIH07CiAgfSwKICBjcmVhdGVkKCkgewogICAgdGhpcy5nZXRBbGxQcmFpc2UoKTsKICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJudW1iZXIiLCAiMCIpOwogICAgdGhpcy50b2tlbiA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJ0b2tlbiIpOwogIH0sCiAgICBjb21wdXRlZDp7CiAgICAgICBzaG93SW1hZ2UoKXsKICAgIHJldHVybiB0aGlzLm1vbWVudHMuYXV0aG9yLmF2YXRhclVybAogICAgICAgfSwKICAgIH0sCiAgbWV0aG9kczogewogICAgdXBsb2FkYXZhdGFyKCkgewogICAgICB0aGlzLiRidXMuJGVtaXQoInVwbG9hZCIpOwogICAgfSwKICAgIGFzeW5jIHJlbW92ZSgpIHsKCiAgICBpZighdGhpcy50b2tlbil7CiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKCcvbG9naW4nKQogICAgfWVsc2V7CiAgICAgIHRyeXsKICAgICAgICBhd2FpdCB0aGlzLiRodHRwLmRlbGV0ZSgiL21vbWVudC8iICsgdGhpcy5pZCk7CiAgICAgICAgdGhpcy5pc0V4aXN0ID0gIXRoaXMuaXNFeGlzdDsKICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoIuWIoOmZpOaIkOWKnyIpOwogICAgICAgIHRoaXMuJGJ1cy4kZW1pdCgidXBsb2FkIik7CiAgICAgIH1jYXRjaHsKICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCLkvaDkuI3lhbflpIfliKDpmaTor6XliqjmgIHmnYPpmZAiKTsKICAgICAgfQogICAgfQogICAgfSwKICAgIGNvbW1lbnQoKSB7CiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKCJkZXRhaWxjb21tZW50LyIgKyB0aGlzLm1vbWVudHMuaWQpOwogICAgfSwKICAgIGFzeW5jIGdldEFsbFByYWlzZSgpIHsKICAgICAgY29uc3QgeyBkYXRhOiByZXMgfSA9IGF3YWl0IHRoaXMuJGh0dHAuZ2V0KCIvcHJhaXNlLyIgKyB0aGlzLm1vbWVudHMuaWQpOwogICAgICB0aGlzLnByYWlzZSA9IHJlczsKICAgIH0sCiAgICByZWZyZXNoKCkgewogICAgICB0aGlzLmlzZGlzcGxheSA9IGZhbHNlOwogICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7CiAgICAgICAgdGhpcy5pc2Rpc3BsYXkgPSB0cnVlOwogICAgICB9LCAxMDApOwogICAgICB0aGlzLmdldEFsbFByYWlzZSgpOwogICAgfSwKICAgIC8v5Y+R6KGo5oiQ5Yqf6K+E6K66CiAgICBhc3luYyBjbGlja3ByYWlzZSgpIHsKICAgIAogICAgaWYoIXRoaXMudG9rZW4pewogICAgICB0aGlzLiRyb3V0ZXIucHVzaCgnL2xvZ2luJykKICAgIH0KICAgIGVsc2V7CiAgICAgIGNvbnN0IHtkYXRhOnJlc309IGF3YWl0IHRoaXMuJGh0dHAucG9zdCgnL3ByYWlzZS9pc3ByYWlzZS8nK3RoaXMubW9tZW50cy5pZCkKICAgICAgaWYocmVzLnN0YXR1cyE9ICIyMDAiKXsKICAgICAgICB0aGlzLm51bWJlcj13aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgibnVtYmVyIik7CiAgICAgICAgaWYgKHRoaXMubnVtYmVyID09PSAiMSIpIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJudW1iZXIiLCAiMCIpOwogICAgICAgIGVsc2UgewogICAgICAgICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIm51bWJlciIsICIxIik7CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChyZXMuc3RhdHVzID09ICIyMDAiKSB7CiAgICAgICAgYXdhaXQgdGhpcy4kaHR0cC5wb3N0KCIvcHJhaXNlLyIgKyB0aGlzLm1vbWVudHMuaWQpOwogICAgICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4gewogICAgICAgICAgdGhpcy5yZWZyZXNoKCk7CiAgICAgICAgfSwgMTAwKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLm51bWJlciA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJudW1iZXIiKTsKICAgICAgICBjb25zdCBjb250ZW50ID0gewogICAgICAgICAgaXNwcmFpc2U6ICIiLAogICAgICAgIH07CiAgICAgICAgY29udGVudC5pc3ByYWlzZSA9IHRoaXMubnVtYmVyOwogICAgICAgIGF3YWl0IHRoaXMuJGh0dHAucG9zdCgKICAgICAgICAgICIvcHJhaXNlL3VwZGF0ZS8iICsgdGhpcy5tb21lbnRzLmlkLAogICAgICAgICAgY29udGVudAogICAgICAgICk7CiAgICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4gewogICAgICAgICAgdGhpcy5yZWZyZXNoKCk7CiAgICAgICAgfSwgMTAwKTsKICAgICAgfQoKICAgIH0KICAgIH0sCiAgICBpc2NsaWNrcHJhaXNlKCl7CiAgICAgIAogICAgfQogIH0sCiAgbW91bnRlZCgpIHsKICAgIHRoaXMuJGJ1cy4kb24oImFhaXNwcmFpc2UiLCB0aGlzLmlzY2xpY2twcmFpc2UpOwogIH0sCn07Cg=="},{"version":3,"sources":["MomentListItem.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DA;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;;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;;AAEA;AACA;AACA;AACA;AACA;AACA","file":"MomentListItem.vue","sourceRoot":"src/components/content/moments","sourcesContent":["<template>\n <div class=\"moment-items\" v-if=\"isExist\">\n <div>\n <img\n class=\"avatar\"\n @load=\"uploadavatar\"\n v-lazy=\"showImage\"\n />\n </div>\n <div class=\"name\">{{ moments.author.name }}</div>\n\n <i\n @click=\"remove\"\n id=\"delete\"\n class=\"el-icon-delete\"\n style=\"font-size: 20px\"\n ></i>\n\n <div class=\"time\">\n {{ this.$moment(moments.createAT).format(\"YYYY-MM-DD HH:mm:ss\") }}\n </div>\n <div class=\"content\">\n <div class=\"text\">{{ moments.content }}</div>\n <div class=\"image\">\n <li\n v-for=\"(item, index) in moments.images\"\n :key=\"index\"\n class=\"picture\"\n >\n \n <img\n @load=\"uploadavatar\"\n width=\"100px\"\n height=\"100px\"\n :preview=\"index\"\n :src=\"item+'?type=small'\"\n />\n <!-- v-lazy=\"item+'?type=small'\" -->\n </li>\n </div>\n </div>\n\n <div class=\"icon\" v-if=\"this.isdisplay\">\n <i id=\"icon-1\" @click=\"clickpraise\"\n ><img src=\"@/assets/img/moment/praise.svg\" /></i\n >{{ this.praise.promiseCount }}\n <i\n id=\"icon-1\"\n class=\"el-icon-chat-dot-square\"\n style=\"font-size: 20px\"\n @click=\"comment\"\n ></i>\n <div class=\"number\">{{ moments.commentCount }}</div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: \"MomentListItem\",\n props: {\n moments: {\n type: Object,\n default() {\n return {};\n },\n },\n },\n data() {\n return {\n id: this.moments.id,\n isExist: true,\n images: [],\n praise: {},\n isdisplay: true,\n number: \"\",\n isfrist: true,\n token:''\n };\n },\n created() {\n this.getAllPraise();\n window.sessionStorage.setItem(\"number\", \"0\");\n this.token = window.sessionStorage.getItem(\"token\");\n },\n computed:{\n showImage(){\n return this.moments.author.avatarUrl\n },\n },\n methods: {\n uploadavatar() {\n this.$bus.$emit(\"upload\");\n },\n async remove() {\n\n if(!this.token){\n this.$router.push('/login')\n }else{\n try{\n await this.$http.delete(\"/moment/\" + this.id);\n this.isExist = !this.isExist;\n this.$message.success(\"删除成功\");\n this.$bus.$emit(\"upload\");\n }catch{\n this.$message.error(\"你不具备删除该动态权限\");\n }\n }\n },\n comment() {\n this.$router.push(\"detailcomment/\" + this.moments.id);\n },\n async getAllPraise() {\n const { data: res } = await this.$http.get(\"/praise/\" + this.moments.id);\n this.praise = res;\n },\n refresh() {\n this.isdisplay = false;\n this.$nextTick(() => {\n this.isdisplay = true;\n }, 100);\n this.getAllPraise();\n },\n //发表成功评论\n async clickpraise() {\n \n if(!this.token){\n this.$router.push('/login')\n }\n else{\n const {data:res}= await this.$http.post('/praise/ispraise/'+this.moments.id)\n if(res.status!= \"200\"){\n this.number=window.sessionStorage.getItem(\"number\");\n if (this.number === \"1\") window.sessionStorage.setItem(\"number\", \"0\");\n else {\n window.sessionStorage.setItem(\"number\", \"1\");\n }\n }\n if (res.status == \"200\") {\n await this.$http.post(\"/praise/\" + this.moments.id);\n this.$nextTick(() => {\n this.refresh();\n }, 100);\n } else {\n this.number = window.sessionStorage.getItem(\"number\");\n const content = {\n ispraise: \"\",\n };\n content.ispraise = this.number;\n await this.$http.post(\n \"/praise/update/\" + this.moments.id,\n content\n );\n this.$nextTick(() => {\n this.refresh();\n }, 100);\n }\n\n }\n },\n isclickpraise(){\n \n }\n },\n mounted() {\n this.$bus.$on(\"aaispraise\", this.isclickpraise);\n },\n};\n</script>\n\n<style scoped>\n.moment-items {\n position: relative;\n background-color: rgb(255, 255, 255);\n width: 100%;\n font-size: 5px;\n}\n.avatar {\n float: left;\n margin-left: 10px;\n width: 50px;\n height: 50px;\n border-radius: 25px;\n}\n.name {\n float: left;\n margin-top: 5px;\n margin-left: 10px;\n color: rgb(0, 0, 0);\n font-size: 15px;\n}\n.time {\n margin-left: 70px;\n margin-top: 30px;\n font-size: 6px;\n}\n.content {\n margin-top: 15px;\n margin-left: 5px;\n font-size: 15px;\n margin-bottom: 15px;\n}\n.icon {\n margin-top: 15px;\n display: flex;\n border-top-style: solid;\n border-width: 0.1px;\n border-color: rgb(230, 220, 220);\n}\n#icon-1 {\n margin-left: 30%;\n}\n#delete {\n float: right;\n}\n.el-icon-delete {\n margin-left: 20px;\n}\n.remove {\n margin-left: 20px;\n}\n.picture {\n margin-top: 30px;\n display: inline;\n}\n\n.text {\n margin-top: 15px;\n margin-left: 5px;\n}\n.image {\n margin-top: 10px;\n display: flex;\n justify-content: space-evenly;\n}\n</style>\n"]}]}