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
15 KiB
1 line
15 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/views/moment/childComps/ChildDetailMoment.vue?vue&type=script&lang=js&","dependencies":[{"path":"/Users/linhuakun/Downloads/coderlhk/bigbar-start/src/views/moment/childComps/ChildDetailMoment.vue","mtime":1617417492115},{"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/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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBpY29uIGZyb20gIkAvdmlld3MvbW9tZW50L2NoaWxkQ29tcHMvaWNvbiI7CmltcG9ydCBDb21tZW50TGlzdCBmcm9tICJAL2NvbXBvbmVudHMvY29udGVudC9jb21tZW50cy9Db21tZW50TGlzdCI7CmltcG9ydCBQcmFpc2VMaXN0IGZyb20gIkAvY29tcG9uZW50cy9jb250ZW50L3ByYWlzZXMvUHJhaXNlTGlzdCI7CmltcG9ydCB7IGdldEFsbENvbW1uZXQgfSBmcm9tICJAL25ldHdvcmsvY29tbWVudCI7CmltcG9ydCBTY3JvbGwgZnJvbSAiQC9jb21wb25lbnRzL2NvbW1vbi9TY3JvbGwvU2Nyb2xsIjsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICJDaGlsZERldGFpbE1vbWVudCIsCiAgY29tcG9uZW50czogewogICAgQ29tbWVudExpc3QsCiAgICBQcmFpc2VMaXN0LAogICAgaWNvbiwKICAgIFNjcm9sbAogIH0sCiAgcHJvcHM6IHsKICAgIGNvbW1lbnRzOiB7CiAgICAgIHR5cGU6IE9iamVjdCwKICAgICAgZGVmYXVsdCgpIHsKICAgICAgICByZXR1cm4ge307CiAgICAgIH0KICAgIH0KICB9LAogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBpZDogIiIsCiAgICAgIHNob3c6IGZhbHNlLAogICAgICBpc1Jlc2l6ZTogZmFsc2UsCiAgICAgIGlzc2hvdzogdHJ1ZSwKICAgICAgY29tbWVudDogewogICAgICAgIGNvbnRlbnQ6ICIiLAogICAgICAgIG1vbWVudElkOiAiIgogICAgICB9LAogICAgICBpc2NvbW1lbnQ6IHRydWUsCiAgICAgIGFsbGNvbW1lbnQ6IFtdLAogICAgICBwcmFpc2U6IHt9LAogICAgICBpc3ByYWlzZTogIiIsCiAgICAgIG51bWJlcjogIiIsCiAgICAgIGlzZGlzcGxheTogInRydWUiLAogICAgICBjbGllbnRIZWlnaHQ6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQKICAgIH07CiAgfSwKICBjcmVhdGVkKCkgewogICAgdGhpcy5tb21lbnRJZCA9IHRoaXMuJHJvdXRlLnBhcmFtcy5paWQ7CiAgICBnZXRBbGxDb21tbmV0KHRoaXMubW9tZW50SWQpLnRoZW4ocmVzID0+IHsKICAgICAgdGhpcy5hbGxjb21tZW50ID0gcmVzLmRhdGE7CiAgICB9KTsKICAgIHRoaXMuZ2V0ZGF0YSgpOwogIH0sCiAgLy/lsYDpg6jnu4TmiJDogZrnhKYKICBkaXJlY3RpdmVzOiB7CiAgICBmb2N1czogewogICAgICAvLyDmjIfku6TnmoTlrprkuYkKICAgICAgaW5zZXJ0ZWQ6IGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgZWwuZm9jdXMoKTsKICAgICAgfQogICAgfQogIH0sCiAgbWV0aG9kczogewogICAgbG9hZE1vcmUoKSB7CiAgICAgIHRoaXMuJHJlZnMuc2Nyb2xsLnJlZnJlc2goKTsKICAgIH0sCiAgICBwdWxsaW5nRG93bigpIHsKICAgICAgdGhpcy5wdWxsaW5nZG93biA9IHRydWU7CiAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgIHRoaXMucHVsbGluZ2Rvd24gPSBmYWxzZTsKICAgICAgICB0aGlzLiRyZWZzLnNjcm9sbC5maW5pc2hQdWxsRG93bigpOwogICAgICB9LCAzMDApOwogICAgfSwKICAgIGFzeW5jIGdldGRhdGEoKSB7CiAgICAgIGNvbnN0IHsgZGF0YTogcmVzIH0gPSBhd2FpdCB0aGlzLiRodHRwLmdldCgiL3ByYWlzZS8iICsgdGhpcy5tb21lbnRJZCk7CiAgICAgIHRoaXMucHJhaXNlID0gcmVzOwogICAgfSwKICAgIC8v5piv5ZCm5pi+56S66K+E6K665ZKM6IGa54Sm5pWI5p6c5ouJ6ZSu55uYCiAgICBQb3B1cCgpIHsKICAgICAgdGhpcy5zaG93ID0gIXRoaXMuc2hvdzsKICAgICAgLy/lu7bov5/ogZrnhKYKICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4gewogICAgICAgIHRoaXMuJHJlZnMuZ2Fpbi5mb2N1cygpOwogICAgICB9LCAxMDApOwogICAgfSwKICAgIHJlZnJlc2goKSB7CiAgICAgIHRoaXMuaXNkaXNwbGF5ID0gZmFsc2U7CiAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHsKICAgICAgICB0aGlzLmlzZGlzcGxheSA9IHRydWU7CiAgICAgIH0sIDEwMCk7CiAgICAgIHRoaXMuZ2V0ZGF0YSgpOwogICAgfSwKICAgIC8v5Y+R6KGo5oiQ5Yqf6K+E6K66CiAgICBhc3luYyBjcmVhdGVjb21tZW50KCkgewogICAgICB0aGlzLmNvbW1lbnQubW9tZW50SWQgPSB0aGlzLmNvbW1lbnRzLmlkOwogICAgICBpZiAodGhpcy5pc2NvbW1lbnQpIHsKICAgICAgICBjb25zdCB7IGRhdGE6IHJlcyB9ID0gYXdhaXQgdGhpcy4kaHR0cC5wb3N0KCJjb21tZW50IiwgdGhpcy5jb21tZW50KTsKICAgICAgICBpZiAocmVzLmluc2VydElkICE9IDApIHsKICAgICAgICAgIHRoaXMuJGVtaXQoInJlZnJlc2giKTsKICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygi6K+E6K665oiQ5YqfIik7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGNvbnN0IHsgZGF0YTogcmVzIH0gPSBhd2FpdCB0aGlzLiRodHRwLnBvc3QoCiAgICAgICAgICAiY29tbWVudC8iICsgdGhpcy5jb21tZW50SWQgKyAiL3JlcGx5IiwKICAgICAgICAgIHRoaXMuY29tbWVudAogICAgICAgICk7CiAgICAgICAgaWYgKHJlcy5pbnNlcnRJZCAhPSAwKSB7CiAgICAgICAgICB0aGlzLmlzY29tbWVudCA9IHRydWU7CiAgICAgICAgICB0aGlzLiRlbWl0KCJyZWZyZXNoIik7CiAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoIuivhOiuuuaIkOWKnyIpOwogICAgICAgIH0KICAgICAgfQogICAgfSwKCiAgICBhc3luYyBjbGlja3ByYWlzZSgpIHsKICAgICAgY29uc3QgeyBkYXRhOiByZXMgfSA9IGF3YWl0IHRoaXMuJGh0dHAucG9zdCgKICAgICAgICAiL3ByYWlzZS9pc3ByYWlzZS8iICsgdGhpcy5tb21lbnRJZAogICAgICApOwogICAgICBpZiAocmVzLnN0YXR1cyAhPSAiMjAwIikgewogICAgICAgIHRoaXMubnVtYmVyID0gd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oIm51bWJlciIpOwogICAgICAgIGlmICh0aGlzLm51bWJlciA9PT0gIjEiKSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgibnVtYmVyIiwgIjAiKTsKICAgICAgICBlbHNlIHsKICAgICAgICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJudW1iZXIiLCAiMSIpOwogICAgICAgIH0KICAgICAgfQogICAgICBpZiAocmVzLnN0YXR1cyA9PSAiMjAwIikgewogICAgICAgIGF3YWl0IHRoaXMuJGh0dHAucG9zdCgiL3ByYWlzZS8iICsgdGhpcy5tb21lbnRJZCk7CiAgICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4gewogICAgICAgICAgdGhpcy5yZWZyZXNoKCk7CiAgICAgICAgfSwgMTAwKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLm51bWJlciA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJudW1iZXIiKTsKICAgICAgICBjb25zdCBjb250ZW50ID0gewogICAgICAgICAgaXNwcmFpc2U6ICIiCiAgICAgICAgfTsKICAgICAgICBjb250ZW50LmlzcHJhaXNlID0gdGhpcy5udW1iZXI7CiAgICAgICAgY29uc3QgeyBkYXRhOiByZXMgfSA9IGF3YWl0IHRoaXMuJGh0dHAucG9zdCgKICAgICAgICAgICIvcHJhaXNlL3VwZGF0ZS8iICsgdGhpcy5tb21lbnRJZCwKICAgICAgICAgIGNvbnRlbnQKICAgICAgICApOwogICAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHsKICAgICAgICAgIHRoaXMucmVmcmVzaCgpOwogICAgICAgIH0sIDEwMCk7CiAgICAgIH0KICAgIH0KICB9LAogIG1vdW50ZWQoKSB7CiAgICB0aGlzLiRidXMuJG9uKCJjb21tZW50SWQiLCByZXN1bHQgPT4gewogICAgICB0aGlzLmNvbW1lbnRJZCA9IHJlc3VsdDsKICAgICAgdGhpcy5pc2NvbW1lbnQgPSBmYWxzZTsKICAgIH0pOwogICAgdGhpcy4kYnVzLiRvbigiY29tbWVudCIsIHRoaXMuUG9wdXApOwoKICAgIHZhciBuID0gbmF2aWdhdG9yLnVzZXJBZ2VudDsKICAgIHZhciBvY29udGVudCA9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnY29udGVudCcpWzBdOwogICAgaWYgKG4uaW5kZXhPZigiaVBob25lIikgPD0gLTEpIHsKICAgICAgd2luZG93Lm9ucmVzaXplID0gKCkgPT4gewogICAgICAgIGlmICh0aGlzLmNsaWVudEhlaWdodCA+IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpIHsKICAgICAgICAgIG9jb250ZW50LnN0eWxlLmJvdHRvbT0nJwogICAgICAgICAgLy8g6ZqQ6JeP5oyJ6ZKuCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIC8vIOaYvuekuuaMiemSrgogICAgICAgICAgb2NvbnRlbnQuc3R5bGUuYm90dG9tPScwcHgnCiAgICAgICAgfQogICAgICB9OwogICAgfQogIH0KfTsK"},{"version":3,"sources":["ChildDetailMoment.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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).fromNow() }}\n </div>\n </div>\n </div>\n <!-- 内容区域 -->\n <div class=\"maincontent\">{{ comments.content }}</div>\n <!-- 图片区域 -->\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\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 <icon\n class=\"icon\"\n :comments=\"comments\"\n :praise=\"this.praise\"\n @clickpraise=\"clickpraise\"\n @Popup=\"Popup\"\n v-if=\"this.isdisplay\"\n ></icon>\n <!-- 点赞 -->\n <PraiseList\n class=\"praise\"\n :praises=\"this.praise.praise\"\n v-if=\"this.isdisplay\"\n >\n </PraiseList>\n\n <!-- 评论 -->\n <CommentList\n class=\"commentsarea\"\n :newcomments=\"this.allcomment\"\n :Author=\"comments.author\"\n ></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\"\n >发送</span\n >\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 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 clientHeight: document.documentElement.clientHeight\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(\n \"comment/\" + this.commentId + \"/reply\",\n this.comment\n );\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 const { data: res } = await this.$http.post(\n \"/praise/ispraise/\" + this.momentId\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.momentId);\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 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 var n = navigator.userAgent;\n var ocontent =document.getElementsByClassName('content')[0];\n if (n.indexOf(\"iPhone\") <= -1) {\n window.onresize = () => {\n if (this.clientHeight > document.documentElement.clientHeight) {\n ocontent.style.bottom=''\n // 隐藏按钮\n } else {\n // 显示按钮\n ocontent.style.bottom='0px'\n }\n };\n }\n }\n};\n</script>\n\n<style scoped>\n.maincontent {\n margin: 8px 5px;\n font-size: 16px;\n}\n\n.showcomment {\n position: fixed;\n bottom: 0px;\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.icon {\n margin-top: 15px;\n border-top: 1px solid rgb(245, 243, 243);\n}\n\n.moment {\n}\n\n.name {\n margin-top: 20px;\n font-weight: 600;\n}\n\n.time {\n margin-top: 10px;\n font-size: 12px;\n}\n\n.commentsarea {\n margin-top: 5px;\n margin-left: 5px;\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.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>\n"]}]} |