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/bigbar-start/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/linhuakun/Downloads/coderlhk/bigbar-start/src/components/content/moments/MomentListItem.vue?vue&type=script&lang=js&","dependencies":[{"path":"/Users/linhuakun/Downloads/coderlhk/bigbar-start/src/components/content/moments/MomentListItem.vue","mtime":1616419011149},{"path":"/Users/linhuakun/Downloads/coderlhk/bigbar-start/node_modules/babel-loader/lib/index.js","mtime":499162500000},{"path":"/Users/linhuakun/Downloads/coderlhk/bigbar-start/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/linhuakun/Downloads/coderlhk/bigbar-start/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiTW9tZW50TGlzdEl0ZW0iLAogIHByb3BzOiB7CiAgICBtb21lbnRzOiB7CiAgICAgIHR5cGU6IE9iamVjdCwKICAgICAgZGVmYXVsdCgpIHsKICAgICAgICByZXR1cm4ge307CiAgICAgIH0KICAgIH0KICB9LAogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBpZDogdGhpcy5tb21lbnRzLmlkLAogICAgICBpc0V4aXN0OiB0cnVlLAogICAgICBpbWFnZXM6IFtdLAogICAgICBwcmFpc2U6IHt9LAogICAgICBpc2Rpc3BsYXk6IHRydWUsCiAgICAgIG51bWJlcjogIiIsCiAgICAgIGlzZnJpc3Q6IHRydWUsCiAgICAgIHRva2VuOiAiIgogICAgfTsKICB9LAogIGNyZWF0ZWQoKSB7CiAgICB0aGlzLmdldEFsbFByYWlzZSgpOwogICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIm51bWJlciIsICIwIik7CiAgICB0aGlzLnRva2VuID0gd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oInRva2VuIik7CiAgfSwKICBjb21wdXRlZDogewogICAgc2hvd0ltYWdlKCkgewogICAgICByZXR1cm4gdGhpcy5tb21lbnRzLmF1dGhvci5hdmF0YXJVcmw7CiAgICB9CiAgfSwKICBtZXRob2RzOiB7CiAgICB1cGxvYWRhdmF0YXIoKSB7CiAgICAgIHRoaXMuJGJ1cy4kZW1pdCgidXBsb2FkIik7CiAgICB9LAogICAgYXN5bmMgcmVtb3ZlKCkgewogICAgICBpZiAoIXRoaXMudG9rZW4pIHsKICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaCgiL2xvZ2luIik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGF3YWl0IHRoaXMuJGh0dHAuZGVsZXRlKCIvbW9tZW50LyIgKyB0aGlzLmlkKTsKICAgICAgICAgIHRoaXMuaXNFeGlzdCA9ICF0aGlzLmlzRXhpc3Q7CiAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoIuWIoOmZpOaIkOWKnyIpOwogICAgICAgICAgdGhpcy4kYnVzLiRlbWl0KCJ1cGxvYWQiKTsKICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoIuS9oOS4jeWFt+Wkh+WIoOmZpOivpeWKqOaAgeadg+mZkCIpOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGNvbW1lbnQoKSB7CiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKCJkZXRhaWxjb21tZW50LyIgKyB0aGlzLm1vbWVudHMuaWQpOwogICAgfSwKICAgIGFzeW5jIGdldEFsbFByYWlzZSgpIHsKICAgICAgY29uc3QgeyBkYXRhOiByZXMgfSA9IGF3YWl0IHRoaXMuJGh0dHAuZ2V0KCIvcHJhaXNlLyIgKyB0aGlzLm1vbWVudHMuaWQpOwogICAgICB0aGlzLnByYWlzZSA9IHJlczsKICAgIH0sCiAgICByZWZyZXNoKCkgewogICAgICB0aGlzLmlzZGlzcGxheSA9IGZhbHNlOwogICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7CiAgICAgICAgdGhpcy5pc2Rpc3BsYXkgPSB0cnVlOwogICAgICB9LCAxMDApOwogICAgICB0aGlzLmdldEFsbFByYWlzZSgpOwogICAgfSwKICAgIC8v5Y+R6KGo5oiQ5Yqf6K+E6K66CiAgICBhc3luYyBjbGlja3ByYWlzZSgpIHsKICAgICAgaWYgKCF0aGlzLnRva2VuKSB7CiAgICAgICAgdGhpcy4kcm91dGVyLnB1c2goIi9sb2dpbiIpOwogICAgICB9IGVsc2UgewogICAgICAgIGNvbnN0IHsgZGF0YTogcmVzIH0gPSBhd2FpdCB0aGlzLiRodHRwLnBvc3QoCiAgICAgICAgICAiL3ByYWlzZS9pc3ByYWlzZS8iICsgdGhpcy5tb21lbnRzLmlkCiAgICAgICAgKTsKICAgICAgICBpZiAocmVzLnN0YXR1cyAhPSAiMjAwIikgewogICAgICAgICAgdGhpcy5udW1iZXIgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgibnVtYmVyIik7CiAgICAgICAgICBpZiAodGhpcy5udW1iZXIgPT09ICIxIikgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIm51bWJlciIsICIwIik7CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIm51bWJlciIsICIxIik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChyZXMuc3RhdHVzID09ICIyMDAiKSB7CiAgICAgICAgICBhd2FpdCB0aGlzLiRodHRwLnBvc3QoIi9wcmFpc2UvIiArIHRoaXMubW9tZW50cy5pZCk7CiAgICAgICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7CiAgICAgICAgICAgIHRoaXMucmVmcmVzaCgpOwogICAgICAgICAgfSwgMTAwKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5udW1iZXIgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgibnVtYmVyIik7CiAgICAgICAgICBjb25zdCBjb250ZW50ID0gewogICAgICAgICAgICBpc3ByYWlzZTogIiIKICAgICAgICAgIH07CiAgICAgICAgICBjb250ZW50LmlzcHJhaXNlID0gdGhpcy5udW1iZXI7CiAgICAgICAgICBhd2FpdCB0aGlzLiRodHRwLnBvc3QoIi9wcmFpc2UvdXBkYXRlLyIgKyB0aGlzLm1vbWVudHMuaWQsIGNvbnRlbnQpOwogICAgICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4gewogICAgICAgICAgICB0aGlzLnJlZnJlc2goKTsKICAgICAgICAgIH0sIDEwMCk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgaXNjbGlja3ByYWlzZSgpIHt9CiAgfSwKICBtb3VudGVkKCkgewogICAgdGhpcy4kYnVzLiRvbigiYWFpc3ByYWlzZSIsIHRoaXMuaXNjbGlja3ByYWlzZSk7CiAgfQp9Owo="},{"version":3,"sources":["MomentListItem.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDA;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;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":"MomentListItem.vue","sourceRoot":"src/components/content/moments","sourcesContent":["<template>\n <div class=\"moment-items\" v-if=\"isExist\">\n <div>\n <img class=\"avatar\" @load=\"uploadavatar\" v-lazy=\"showImage\" />\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).fromNow() }}\n </div>\n\n <div class=\"content\">{{ moments.content }}</div>\n <div class=\"image\">\n <li v-for=\"(item, index) in moments.images\" :key=\"index\">\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\n <div class=\"icon\" v-if=\"this.isdisplay\">\n <div>\n <i @click=\"clickpraise\"> <img src=\"@/assets/img/moment/praise.svg\"/></i\n ><span class=\"icon1\">{{ this.praise.promiseCount }}</span>\n </div>\n <div>\n <i\n class=\"el-icon-chat-dot-square\"\n style=\"font-size: 20px\"\n @click=\"comment\"\n ></i>\n <span>{{moments.commentCount}}</span>\n </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 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 if (!this.token) {\n this.$router.push(\"/login\");\n } else {\n const { data: res } = await this.$http.post(\n \"/praise/ispraise/\" + this.moments.id\n );\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(\"/praise/update/\" + this.moments.id, content);\n this.$nextTick(() => {\n this.refresh();\n }, 100);\n }\n }\n },\n isclickpraise() {}\n },\n mounted() {\n this.$bus.$on(\"aaispraise\", this.isclickpraise);\n }\n};\n</script>\n\n<style scoped>\nli {\n list-style: none;\n}\n\n.moment-items {\n position: relative;\n background-color: rgb(255, 255, 255);\n width: 100%;\n font-size: 12px;\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 font-weight: 600;\n margin-top: 5px;\n margin-left: 10px;\n font-size: 15px;\n}\n.time {\n margin-left: 70px;\n margin-top: 30px;\n font-size: 10px;\n}\n.content {\n margin-top: 15px;\n margin-left: 5px;\n font-size: 13px;\n margin-bottom: 15px;\n}\n.icon {\n margin-top: 15px;\n justify-content: space-evenly;\n display: flex;\n border-top-style: solid;\n border-width: 0.1px;\n border-color: rgb(230, 220, 220);\n}\n\n.icon1{\n position: relative;\n top:-11px !important;\n vertical-align: middle;\n}\n\n.icon div{\n height: 23px;\n width: 30px;\n}\n\n.icon img{\n width: 20px;\n height: 21px;\n}\n\n.icon span{\n position: relative;\n top:-8px;\n font-size: 8px !important;\n vertical-align: middle;\n}\n\n#delete {\n float: right;\n margin-top:5px;\n margin-right:5px;\n}\n.el-icon-delete {\n margin-left: 20px;\n}\n.remove {\n margin-left: 20px;\n}\n\n.text {\n margin: 20px 5px;\n}\n.image {\n margin-top: 15px;\n display: flex;\n justify-content: space-evenly;\n}\n</style>\n"]}]}