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

{"remainingRequest":"/Users/linhuakun/Downloads/nodejs/codewhy/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/linhuakun/Downloads/nodejs/codewhy/src/views/moment/childComps/ChildDetailMoment.vue?vue&type=script&lang=js&","dependencies":[{"path":"/Users/linhuakun/Downloads/nodejs/codewhy/src/views/moment/childComps/ChildDetailMoment.vue","mtime":1609663308756},{"path":"/Users/linhuakun/Downloads/nodejs/codewhy/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/linhuakun/Downloads/nodejs/codewhy/node_modules/babel-loader/lib/index.js","mtime":499162500000},{"path":"/Users/linhuakun/Downloads/nodejs/codewhy/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/linhuakun/Downloads/nodejs/codewhy/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBpY29uIGZyb20gJ0Avdmlld3MvbW9tZW50L2NoaWxkQ29tcHMvaWNvbicKaW1wb3J0IENvbW1lbnRMaXN0IGZyb20gJ0AvY29tcG9uZW50cy9jb250ZW50L2NvbW1lbnRzL0NvbW1lbnRMaXN0JwppbXBvcnQgUHJhaXNlTGlzdCBmcm9tICdAL2NvbXBvbmVudHMvY29udGVudC9wcmFpc2VzL1ByYWlzZUxpc3QnCmltcG9ydCB7Z2V0QWxsQ29tbW5ldH0gZnJvbSAnQC9uZXR3b3JrL2NvbW1lbnQnCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiJDaGlsZERldGFpbE1vbWVudCIsCiAgY29tcG9uZW50czp7CiAgICBDb21tZW50TGlzdCwKICAgIFByYWlzZUxpc3QsCiAgICBpY29uCiAgfQogICwKICBwcm9wczogewogICAgY29tbWVudHM6IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0KCkgewogICAgICAgIHJldHVybiB7fTsKICAgICAgfSwKICAgIH0sCiAgfSwKICBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgaWQ6JycsCiAgICAgIHNob3c6IGZhbHNlLAogICAgICBpc1Jlc2l6ZTogZmFsc2UsCiAgICAgIGlzc2hvdzp0cnVlLAogICAgICBjb21tZW50OiB7CiAgICAgIGNvbnRlbnQ6ICIiLAogICAgICBtb21lbnRJZDoiIiwKICAgICAgfSwKICAgICAgaXNjb21tZW50OiB0cnVlLAogICAgICBhbGxjb21tZW50OltdLAogICAgICBwcmFpc2U6e30sCiAgICAgIGlzcHJhaXNlOicnLAogICAgICBudW1iZXI6JycsCiAgICAgIGlzZGlzcGxheTondHJ1ZScKICAgIH07CiAgfSwKICBjcmVhdGVkKCkgewogICAgdGhpcy5tb21lbnRJZCA9IHRoaXMuJHJvdXRlLnBhcmFtcy5paWQ7CiAgICBnZXRBbGxDb21tbmV0KHRoaXMubW9tZW50SWQpLnRoZW4oKHJlcyk9PnsKICAgICAgdGhpcy5hbGxjb21tZW50PXJlcy5kYXRhOwogICAgfSkKICAgIHRoaXMuZ2V0ZGF0YSgpCiAgfSwKICAvL+WxgOmDqOe7hOaIkOiBmueEpgogIGRpcmVjdGl2ZXM6IHsKICBmb2N1czogewogICAgLy8g5oyH5Luk55qE5a6a5LmJCiAgICBpbnNlcnRlZDogZnVuY3Rpb24gKGVsKSB7CiAgICAgIGVsLmZvY3VzKCkKICAgIH0KICB9Cn0sCiAgbWV0aG9kczogewogICAgYXN5bmMgZ2V0ZGF0YSgpewogICAgY29uc3Qge2RhdGE6cmVzfSA9IGF3YWl0IHRoaXMuJGh0dHAuZ2V0KCcvcHJhaXNlLycrdGhpcy5tb21lbnRJZCkKICAgIHRoaXMucHJhaXNlPXJlcwogICAgfSwKICAgIC8v5piv5ZCm5pi+56S66K+E6K665ZKM6IGa54Sm5pWI5p6c5ouJ6ZSu55uYCiAgICBQb3B1cCgpIHsKICAgICAgdGhpcy5zaG93ID0gIXRoaXMuc2hvdzsKICAgICAgLy/lu7bov5/ogZrnhKYKICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4gewogICAgICAgIHRoaXMuJHJlZnMuZ2Fpbi5mb2N1cygpOwogICAgICB9LCAxMDApOwogICAgfSwKICAgIHJlZnJlc2goKXsKICAgICAgdGhpcy5pc2Rpc3BsYXk9ZmFsc2UKICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4gewogICAgICAgIHRoaXMuaXNkaXNwbGF5PXRydWUKICAgICAgfSwgMTAwKTsKICAgICAgdGhpcy5nZXRkYXRhKCkKICAgIH0sCiAgICAvL+WPkeihqOaIkOWKn+ivhOiuugogICAgYXN5bmMgY3JlYXRlY29tbWVudCgpewogICAgICB0aGlzLmNvbW1lbnQubW9tZW50SWQ9dGhpcy5jb21tZW50cy5pZAogICAgICBpZih0aGlzLmlzY29tbWVudCl7CiAgICAgIGNvbnN0IHsgZGF0YTogcmVzIH0gPSBhd2FpdCB0aGlzLiRodHRwLnBvc3QoImNvbW1lbnQiLCB0aGlzLmNvbW1lbnQpOwogICAgICBpZihyZXMuaW5zZXJ0SWQhPTApewogICAgICAgIHRoaXMuJGVtaXQoJ3JlZnJlc2gnKQogICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygi6K+E6K665oiQ5YqfIik7CiAgICAgIH0KICAgICAgfWVsc2V7CiAgICAgICAgY29uc3QgeyBkYXRhOiByZXMgfSA9IGF3YWl0IHRoaXMuJGh0dHAucG9zdCgiY29tbWVudC8iK3RoaXMuY29tbWVudElkKycvcmVwbHknLCB0aGlzLmNvbW1lbnQpOwogICAgICBpZihyZXMuaW5zZXJ0SWQhPTApewogICAgICAgIHRoaXMuaXNjb21tZW50PXRydWUKICAgICAgICB0aGlzLiRlbWl0KCdyZWZyZXNoJykKICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoIuivhOiuuuaIkOWKnyIpOwogICAgICB9CiAgICAgIH0KICAgIH0sCgogICAgYXN5bmMgY2xpY2twcmFpc2UoKSB7CiAgICAKICAgICAgY29uc3Qge2RhdGE6cmVzfT0gYXdhaXQgdGhpcy4kaHR0cC5wb3N0KCcvcHJhaXNlL2lzcHJhaXNlLycrdGhpcy5tb21lbnRJZCkKICAgICAgICAgICAgaWYocmVzLnN0YXR1cyE9ICIyMDAiKXsKICAgICAgICB0aGlzLm51bWJlcj13aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgibnVtYmVyIik7CiAgICAgICAgaWYgKHRoaXMubnVtYmVyID09PSAiMSIpIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJudW1iZXIiLCAiMCIpOwogICAgICAgIGVsc2UgewogICAgICAgICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIm51bWJlciIsICIxIik7CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChyZXMuc3RhdHVzID09ICIyMDAiKSB7CiAgICAgICAgYXdhaXQgdGhpcy4kaHR0cC5wb3N0KCIvcHJhaXNlLyIgKyB0aGlzLm1vbWVudElkKTsKICAgICAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHsKICAgICAgICAgIHRoaXMucmVmcmVzaCgpOwogICAgICAgIH0sIDEwMCk7CiAgICAgIH0gZWxzZSB7CiAgICAKICAgICAgICB0aGlzLm51bWJlciA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJudW1iZXIiKTsKICAgICAgICBjb25zdCBjb250ZW50ID0gewogICAgICAgICAgaXNwcmFpc2U6ICIiLAogICAgICAgIH07CiAgICAgICAgY29udGVudC5pc3ByYWlzZSA9IHRoaXMubnVtYmVyOwogICAgICAgIGNvbnN0IHsgZGF0YTogcmVzIH0gPSBhd2FpdCB0aGlzLiRodHRwLnBvc3QoCiAgICAgICAgICAiL3ByYWlzZS91cGRhdGUvIiArIHRoaXMubW9tZW50SWQsCiAgICAgICAgICBjb250ZW50CiAgICAgICAgKTsKICAgICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7CiAgICAgICAgICB0aGlzLnJlZnJlc2goKTsKICAgICAgICB9LCAxMDApOwogICAgICB9CiAgICB9LAogIH0sCiAgbW91bnRlZCgpewogICAgdGhpcy4kYnVzLiRvbigiY29tbWVudElkIiwocmVzdWx0KT0+ewogICAgICB0aGlzLmNvbW1lbnRJZD1yZXN1bHQKICAgICAgdGhpcy5pc2NvbW1lbnQ9ZmFsc2UKICAgIH0pCiAgICB0aGlzLiRidXMuJG9uKCJjb21tZW50IiwgdGhpcy5Qb3B1cCk7CiAgfQp9Owo="},{"version":3,"sources":["ChildDetailMoment.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA;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;;AAEA;;AAEA;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","file":"ChildDetailMoment.vue","sourceRoot":"src/views/moment/childComps","sourcesContent":["<template>\n <div class=\"moment-items\" >\n <!-- 基本内容 -->\n <div>\n <img class=\"avatar\" :src=\"comments.author && comments.author.avatarUrl\" />\n </div>\n\n <div class=\"name\" >{{ comments.author && comments.author.name }}</div>\n\n <div class=\"time\" >\n {{ this.$moment(comments.createTime).format(\"YYYY-MM-DD HH:mm:ss\") }}\n </div>\n <!-- 图片区域 -->\n <div class=\"content\" >\n <div class=\"text\">{{ comments.content }}</div>\n <div class=\"image\">\n <li\n v-for=\"(item, index) in comments.images\"\n :key=\"index\"\n class=\"picture\"\n >\n <img v-image-preview :src=\"item\" width=\"100px\" height=\"100px\" />\n </li>\n </div>\n </div>\n <!-- 小图标区域 -->\n <icon class=\"icon\" :comments=comments :praise=this.praise @clickpraise=\"clickpraise\" @Popup=Popup v-if=\"this.isdisplay\"></icon>\n <!-- 点赞 -->\n <PraiseList class=\"praise\" :praises=this.praise.praise v-if=\"this.isdisplay\"> </PraiseList>\n\n <!-- 评论 -->\n <CommentList class=\"newmoment\" :newcomments=this.allcomment :Author=comments.author></CommentList>\n \n <!-- 发表评论 -->\n <!-- show是否要显示评论 -->\n <van-popup v-model=\"show\" position=\"bottom\" :style=\"{ height: '10%' }\">\n <div class=\"createcomment\">\n <van-field\n ref=\"gain\"\n class=\"input\"\n v-model=\"comment.content\"\n rows=\"1\"\n autosize\n placeholder=\"请输入评论\"\n show-word-limit\n type=\"textarea\"\n size=\"large\"\n \n v-focus\n maxlength=\"40\"\n />\n <van-button class=\"button\" round type=\"info\" @click=\"createcomment\">评论</van-button>\n </div>\n </van-popup>\n \n \n </div>\n</template>\n\n<script>\nimport icon from '@/views/moment/childComps/icon'\nimport CommentList from '@/components/content/comments/CommentList'\nimport PraiseList from '@/components/content/praises/PraiseList'\nimport {getAllCommnet} from '@/network/comment'\nexport default {\n name:\"ChildDetailMoment\",\n components:{\n CommentList,\n PraiseList,\n icon\n }\n ,\n props: {\n comments: {\n type: Object,\n default() {\n return {};\n },\n },\n },\n data() {\n return {\n id:'',\n show: false,\n isResize: false,\n isshow:true,\n comment: {\n content: \"\",\n momentId:\"\",\n },\n iscomment: true,\n allcomment:[],\n praise:{},\n ispraise:'',\n number:'',\n isdisplay:'true'\n };\n },\n created() {\n this.momentId = this.$route.params.iid;\n getAllCommnet(this.momentId).then((res)=>{\n this.allcomment=res.data;\n })\n this.getdata()\n },\n //局部组成聚焦\n directives: {\n focus: {\n // 指令的定义\n inserted: function (el) {\n el.focus()\n }\n }\n},\n methods: {\n async getdata(){\n const {data:res} = await this.$http.get('/praise/'+this.momentId)\n this.praise=res\n },\n //是否显示评论和聚焦效果拉键盘\n Popup() {\n this.show = !this.show;\n //延迟聚焦\n this.$nextTick(() => {\n this.$refs.gain.focus();\n }, 100);\n },\n refresh(){\n this.isdisplay=false\n this.$nextTick(() => {\n this.isdisplay=true\n }, 100);\n this.getdata()\n },\n //发表成功评论\n async createcomment(){\n this.comment.momentId=this.comments.id\n if(this.iscomment){\n const { data: res } = await this.$http.post(\"comment\", this.comment);\n if(res.insertId!=0){\n this.$emit('refresh')\n this.$message.success(\"评论成功\");\n }\n }else{\n const { data: res } = await this.$http.post(\"comment/\"+this.commentId+'/reply', this.comment);\n if(res.insertId!=0){\n this.iscomment=true\n this.$emit('refresh')\n this.$message.success(\"评论成功\");\n }\n }\n },\n\n async clickpraise() {\n \n const {data:res}= await this.$http.post('/praise/ispraise/'+this.momentId)\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.momentId);\n this.$nextTick(() => {\n this.refresh();\n }, 100);\n } else {\n \n this.number = window.sessionStorage.getItem(\"number\");\n const content = {\n ispraise: \"\",\n };\n content.ispraise = this.number;\n const { data: res } = await this.$http.post(\n \"/praise/update/\" + this.momentId,\n content\n );\n this.$nextTick(() => {\n this.refresh();\n }, 100);\n }\n },\n },\n mounted(){\n this.$bus.$on(\"commentId\",(result)=>{\n this.commentId=result\n this.iscomment=false\n })\n this.$bus.$on(\"comment\", this.Popup);\n }\n};\n</script>\n\n<style scoped>\n.moment-items {\n position: fixed;\n background-color: rgb(255, 255, 255);\n width: 100%;\n height: 100vh;\n font-size: 5px;\n}\n.avatar {\n float: left;\n width: 60px;\n height: 60px;\n border-radius: 30px;\n}\n.name {\n float: left;\n width: 40%;\n margin-left: 15px;\n margin-top: 5px;\n color: rgb(39, 37, 37);\n font-size: 20px;\n}\n.time {\n float: left;\n margin-top: 8px;\n margin-left: 15px;\n font-size: 14px;\n width: 60%;\n}\n.content {\n width: 100%;\n float: left;\n margin-left: 5px;\n font-size: 15px;\n}\n.icon {\n width: 100%;\n float: left;\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\n.picture {\n margin-top: 25px;\n display: inline;\n}\n\n.text {\n margin-top: 15px;\n}\n.image {\n margin-top: 10px;\n}\n.input {\n top: 50%;\n transform: translate(0, -50%);\n border-radius: 20px;\n width: 70%;\n background-color: rgb(212, 212, 212);\n float: left;\n font-size: 15px;\n}\n.button {\n top: 50%;\n transform: translate(0, -50%);\n width: 25%;\n float: left;\n}\n.createcomment {\n display: inline;\n width: 100%;\n}\n.footer{\n height: 50%;\n}\n.praise{\n margin-right:10px;\n margin-top:20px;\n margin-left:10px;\n float: left;\n width: 90%;\n}\n.newmoment{\n margin-right:10px;\n margin-top:20px;\n margin-left:10px;\n float: left;\n width: 90%;\n}\n</style>"]}]}