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
1 line
13 KiB
{"remainingRequest":"/Users/linhuakun/Downloads/coderlhk/codewhy/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/linhuakun/Downloads/coderlhk/codewhy/src/views/moment/childComps/ChildDetailMoment.vue?vue&type=script&lang=js&","dependencies":[{"path":"/Users/linhuakun/Downloads/coderlhk/codewhy/src/views/moment/childComps/ChildDetailMoment.vue","mtime":1616415811762},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBpY29uIGZyb20gJ0Avdmlld3MvbW9tZW50L2NoaWxkQ29tcHMvaWNvbicKaW1wb3J0IENvbW1lbnRMaXN0IGZyb20gJ0AvY29tcG9uZW50cy9jb250ZW50L2NvbW1lbnRzL0NvbW1lbnRMaXN0JwppbXBvcnQgUHJhaXNlTGlzdCBmcm9tICdAL2NvbXBvbmVudHMvY29udGVudC9wcmFpc2VzL1ByYWlzZUxpc3QnCmltcG9ydCB7Z2V0QWxsQ29tbW5ldH0gZnJvbSAnQC9uZXR3b3JrL2NvbW1lbnQnCmltcG9ydCBTY3JvbGwgZnJvbSAiQC9jb21wb25lbnRzL2NvbW1vbi9TY3JvbGwvU2Nyb2xsIjsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6IkNoaWxkRGV0YWlsTW9tZW50IiwKICBjb21wb25lbnRzOnsKICAgIENvbW1lbnRMaXN0LAogICAgUHJhaXNlTGlzdCwKICAgIGljb24sCiAgICBTY3JvbGwsCiAgfQogICwKICBwcm9wczogewogICAgY29tbWVudHM6IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0KCkgewogICAgICAgIHJldHVybiB7fTsKICAgICAgfSwKICAgIH0sCiAgfSwKICBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgaWQ6JycsCiAgICAgIHNob3c6IGZhbHNlLAogICAgICBpc1Jlc2l6ZTogZmFsc2UsCiAgICAgIGlzc2hvdzp0cnVlLAogICAgICBjb21tZW50OiB7CiAgICAgIGNvbnRlbnQ6ICIiLAogICAgICBtb21lbnRJZDoiIiwKICAgICAgfSwKICAgICAgaXNjb21tZW50OiB0cnVlLAogICAgICBhbGxjb21tZW50OltdLAogICAgICBwcmFpc2U6e30sCiAgICAgIGlzcHJhaXNlOicnLAogICAgICBudW1iZXI6JycsCiAgICAgIGlzZGlzcGxheTondHJ1ZScKICAgIH07CiAgfSwKICBjcmVhdGVkKCkgewogICAgdGhpcy5tb21lbnRJZCA9IHRoaXMuJHJvdXRlLnBhcmFtcy5paWQ7CiAgICBnZXRBbGxDb21tbmV0KHRoaXMubW9tZW50SWQpLnRoZW4oKHJlcyk9PnsKICAgICAgdGhpcy5hbGxjb21tZW50PXJlcy5kYXRhOwogICAgfSkKICAgIHRoaXMuZ2V0ZGF0YSgpCiAgfSwKICAvL+WxgOmDqOe7hOaIkOiBmueEpgogIGRpcmVjdGl2ZXM6IHsKICBmb2N1czogewogICAgLy8g5oyH5Luk55qE5a6a5LmJCiAgICBpbnNlcnRlZDogZnVuY3Rpb24gKGVsKSB7CiAgICAgIGVsLmZvY3VzKCkKICAgIH0KICB9Cn0sCiAgbWV0aG9kczogewogICAgbG9hZE1vcmUoKXsKICAgICAgICB0aGlzLiRyZWZzLnNjcm9sbC5yZWZyZXNoKCk7CiAgICB9LAogICAgICBwdWxsaW5nRG93bigpIHsKICAgICAgdGhpcy5wdWxsaW5nZG93biA9IHRydWU7CiAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgIHRoaXMucHVsbGluZ2Rvd24gPSBmYWxzZTsKICAgICAgICB0aGlzLiRyZWZzLnNjcm9sbC5maW5pc2hQdWxsRG93bigpOwogICAgICB9LCAzMDApCiAgICB9LAogICAgYXN5bmMgZ2V0ZGF0YSgpewogICAgY29uc3Qge2RhdGE6cmVzfSA9IGF3YWl0IHRoaXMuJGh0dHAuZ2V0KCcvcHJhaXNlLycrdGhpcy5tb21lbnRJZCkKICAgIHRoaXMucHJhaXNlPXJlcwogICAgfSwKICAgIC8v5piv5ZCm5pi+56S66K+E6K665ZKM6IGa54Sm5pWI5p6c5ouJ6ZSu55uYCiAgICBQb3B1cCgpIHsKICAgICAgdGhpcy5zaG93ID0gIXRoaXMuc2hvdzsKICAgICAgLy/lu7bov5/ogZrnhKYKICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4gewogICAgICAgIHRoaXMuJHJlZnMuZ2Fpbi5mb2N1cygpOwogICAgICB9LCAxMDApOwogICAgfSwKICAgIHJlZnJlc2goKXsKICAgICAgdGhpcy5pc2Rpc3BsYXk9ZmFsc2UKICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4gewogICAgICAgIHRoaXMuaXNkaXNwbGF5PXRydWUKICAgICAgfSwgMTAwKTsKICAgICAgdGhpcy5nZXRkYXRhKCkKICAgIH0sCiAgICAvL+WPkeihqOaIkOWKn+ivhOiuugogICAgYXN5bmMgY3JlYXRlY29tbWVudCgpewogICAgICB0aGlzLmNvbW1lbnQubW9tZW50SWQ9dGhpcy5jb21tZW50cy5pZAogICAgICBpZih0aGlzLmlzY29tbWVudCl7CiAgICAgIGNvbnN0IHsgZGF0YTogcmVzIH0gPSBhd2FpdCB0aGlzLiRodHRwLnBvc3QoImNvbW1lbnQiLCB0aGlzLmNvbW1lbnQpOwogICAgICBpZihyZXMuaW5zZXJ0SWQhPTApewogICAgICAgIHRoaXMuJGVtaXQoJ3JlZnJlc2gnKQogICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygi6K+E6K665oiQ5YqfIik7CiAgICAgIH0KICAgICAgfWVsc2V7CiAgICAgICAgY29uc3QgeyBkYXRhOiByZXMgfSA9IGF3YWl0IHRoaXMuJGh0dHAucG9zdCgiY29tbWVudC8iK3RoaXMuY29tbWVudElkKycvcmVwbHknLCB0aGlzLmNvbW1lbnQpOwogICAgICBpZihyZXMuaW5zZXJ0SWQhPTApewogICAgICAgIHRoaXMuaXNjb21tZW50PXRydWUKICAgICAgICB0aGlzLiRlbWl0KCdyZWZyZXNoJykKICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoIuivhOiuuuaIkOWKnyIpOwogICAgICB9CiAgICAgIH0KICAgIH0sCgogICAgYXN5bmMgY2xpY2twcmFpc2UoKSB7CiAgICAKICAgICAgY29uc3Qge2RhdGE6cmVzfT0gYXdhaXQgdGhpcy4kaHR0cC5wb3N0KCcvcHJhaXNlL2lzcHJhaXNlLycrdGhpcy5tb21lbnRJZCkKICAgICAgICAgICAgaWYocmVzLnN0YXR1cyE9ICIyMDAiKXsKICAgICAgICB0aGlzLm51bWJlcj13aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgibnVtYmVyIik7CiAgICAgICAgaWYgKHRoaXMubnVtYmVyID09PSAiMSIpIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJudW1iZXIiLCAiMCIpOwogICAgICAgIGVsc2UgewogICAgICAgICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIm51bWJlciIsICIxIik7CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChyZXMuc3RhdHVzID09ICIyMDAiKSB7CiAgICAgICAgYXdhaXQgdGhpcy4kaHR0cC5wb3N0KCIvcHJhaXNlLyIgKyB0aGlzLm1vbWVudElkKTsKICAgICAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHsKICAgICAgICAgIHRoaXMucmVmcmVzaCgpOwogICAgICAgIH0sIDEwMCk7CiAgICAgIH0gZWxzZSB7CiAgICAKICAgICAgICB0aGlzLm51bWJlciA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJudW1iZXIiKTsKICAgICAgICBjb25zdCBjb250ZW50ID0gewogICAgICAgICAgaXNwcmFpc2U6ICIiLAogICAgICAgIH07CiAgICAgICAgY29udGVudC5pc3ByYWlzZSA9IHRoaXMubnVtYmVyOwogICAgICAgIGNvbnN0IHsgZGF0YTogcmVzIH0gPSBhd2FpdCB0aGlzLiRodHRwLnBvc3QoCiAgICAgICAgICAiL3ByYWlzZS91cGRhdGUvIiArIHRoaXMubW9tZW50SWQsCiAgICAgICAgICBjb250ZW50CiAgICAgICAgKTsKICAgICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7CiAgICAgICAgICB0aGlzLnJlZnJlc2goKTsKICAgICAgICB9LCAxMDApOwogICAgICB9CiAgICB9LAogIH0sCiAgbW91bnRlZCgpewogICAgdGhpcy4kYnVzLiRvbigiY29tbWVudElkIiwocmVzdWx0KT0+ewogICAgICB0aGlzLmNvbW1lbnRJZD1yZXN1bHQKICAgICAgdGhpcy5pc2NvbW1lbnQ9ZmFsc2UKICAgIH0pCiAgICB0aGlzLiRidXMuJG9uKCJjb21tZW50IiwgdGhpcy5Qb3B1cCk7CiAgfQp9Owo="},{"version":3,"sources":["ChildDetailMoment.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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\">\n <Scroll\n class=\"content\"\n ref=\"scroll\"\n :pull-up-load=\"true\"\n :probe-type=\"3\"\n @pullingUp=\"loadMore\"\n @pullingDown=\"pullingDown\"\n >\n <!-- 基本内容 -->\n <div class=\"top\">\n <img :src=\"comments.author && comments.author.avatarUrl\" />\n <div class=\"desc\">\n <div class=\"name\">{{ comments.author && comments.author.name }}</div>\n <div class=\"time\" >\n {{ this.$moment(comments.createTime).format(\"YYYY-MM-DD HH:mm:ss\") }}\n </div>\n </div>\n </div>\n <!-- 图片区域 -->\n <div class=\"maincontent\">{{ comments.content }}</div>\n <div >\n <div class=\"image\">\n <li\n v-for=\"(item, index) in comments.images\"\n :key=\"index\"\n class=\"picture\" \n >\n <img width=\"100px\" height=\"100px\" :preview=\"index\" :src=\"item+'?type=small'\" />\n <!-- v-lazy=\"item+'?type=small'\" -->\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=\"commentsarea\" :newcomments=this.allcomment :Author=comments.author></CommentList>\n \n <!-- 发表评论 -->\n <!-- show是否要显示评论 -->\n </Scroll>\n <van-popup v-model=\"show\" class=\"showcomment\" position=\"bottom\" >\n <van-field\n ref=\"gain\"\n class=\"inputcomment\"\n v-model=\"comment.content\"\n rows=\"1\"\n autosize\n placeholder=\"输入你想表达~\"\n show-word-limit\n type=\"textarea\"\n size=\"large\"\n v-focus\n />\n <span className=\"postcomment\" round type=\"info\" @click=\"createcomment\">发送</span>\n </van-popup>\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'\nimport Scroll from \"@/components/common/Scroll/Scroll\";\nexport default {\n name:\"ChildDetailMoment\",\n components:{\n CommentList,\n PraiseList,\n icon,\n Scroll,\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 loadMore(){\n this.$refs.scroll.refresh();\n },\n pullingDown() {\n this.pullingdown = true;\n setTimeout(() => {\n this.pullingdown = false;\n this.$refs.scroll.finishPullDown();\n }, 300)\n },\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.maincontent{\n margin-top:8px;\n}\n\n.showcomment{\n display: block;\n display: flex;\n background-color: #f5f5f5;\n}\n\n.showcomment span{\n display: inline-block;\n margin:auto auto;\n color:#f53b57;\n}\n.inputcomment{\n margin: 5px;\n padding: 5px;\n width: 80%;\n display: inline-block;\n background-color: #fff;\n border-radius: 20px;\n}\n\n\n.icon{\n margin-top:15px;\n border-top:1px solid rgb(245, 243, 243); ;\n}\n\n.moment{\n \n}\n\n.name{\n margin-top:20px;\n}\n\n.time{\n margin-top:10px;\n font-size: 12px;\n}\n\n\n.top{\n display: flex;\n height: 90px;\n}\n\n.image{\n margin-top:15px;\n display: flex;\n justify-content: space-evenly;\n}\n\n\n.moment .top>img{\n margin: 10px 10px;\n height: 70px;\n width: 70px;\n border-radius: 50%;\n}\n\nli{\n list-style: none;\n}\n\n.praise{\n display: block;\n}\n\n.content{\n left: 0;\n right: 0;\n top:44px;\n bottom: 0px;\n overflow: hidden;\n position: absolute;\n}\n</style>"]}]} |