添加评论功能

This commit is contained in:
yi-ge 2020-07-17 18:10:55 +08:00
parent b0c6b81951
commit 9add042253
5 changed files with 39 additions and 3 deletions

View File

@ -82,7 +82,8 @@ module.exports = {
src: '~/plugins/browser.js',
ssr: false
},
{ src: '~/plugins/vue-js-modal', mode: 'client' }
{ src: '~/plugins/vue-js-modal', mode: 'client' },
{ src: '~/plugins/vue-toasted', mode: 'client' }
],
/*

View File

@ -25,7 +25,8 @@
"moment": "^2.27.0",
"nuxt": "^2.12.2",
"vditor": "^3.3.3",
"vue-js-modal": "^2.0.0-rc.3"
"vue-js-modal": "^2.0.0-rc.3",
"vue-toasted": "^1.1.28"
},
"devDependencies": {
"@nuxtjs/eslint-config": "^2.0.0",

View File

@ -24,7 +24,7 @@
.reward(@click="reward") 打赏
.comment(id="comment")
.comment-title 交流区
span(v-if="comments.length") ({{commentAmount}})
span(v-if="comments.length") ({{ commentAmount }})
.comment-item(v-for="(item, index) in comments", :id="'comment_ID_' + item.comment_ID", :key="index")
.comment-avatar
img(:src="item.comment_author_avatar_url ? item.comment_author_avatar_url : 'https://picsum.photos/100/100/?blur=' + item.user_id")
@ -35,6 +35,8 @@
.comment-info {{ item.comment_date }}
span.reply(@click="reply(item.comment_ID, null, true)" v-if="replyLastID === null && item.comment_ID === replyID") 取消回复
span.reply(@click="reply(item.comment_ID, null)" v-else) 回复
span.reply(@click="check(item.comment_ID)" v-if="item.comment_approved === '0' && visitorInfo.manage") 通过审核
span.reply(@click="check(item.comment_ID, 2)" v-else-if="visitorInfo.manage") 设为垃圾评论
.comment-item(v-for="(i, inx) in item.children", :id="'comment_ID_' + i.comment_ID", :key="inx", style="margin-top: 15px; margin-left: 50px; background-color: #eeeeee; border-radius: 4px;")
.comment-avatar
img(:src="i.comment_author_avatar_url ? i.comment_author_avatar_url : 'https://picsum.photos/100/100/?blur=' + i.user_id")
@ -45,6 +47,8 @@
.comment-info {{ i.comment_date }}
span.reply(@click="reply(item.comment_ID, i.comment_ID)" v-if="replyLastID !== i.comment_ID") 回复
span.reply(@click="reply(item.comment_ID, i.comment_ID, true)" v-else) 取消回复
span.reply(@click="check(i.comment_ID)" v-if="i.comment_approved === '0' && visitorInfo.manage") 通过审核
span.reply(@click="check(i.comment_ID, 2)" v-else-if="visitorInfo.manage") 设为垃圾评论
p(v-if="!comments.length", style="color: #cecece; text-align: center; margin-top: 40px") 暂无内容
.comment-default-commit
.login(v-if="!visitorToken", @click="login")
@ -508,6 +512,27 @@ export default {
})
}
},
async check (ID, type) {
const { data } = await this.$axios({
method: 'post',
url: process.env.baseURL + '/comments/check',
headers: {
Authorization: 'Bearer ' + this.visitorToken
},
data: {
ID,
type
}
})
if (data.status === 1) {
this.getCommentWithVisitorInfo(this.postID)
this.$toasted.show(type === 2 ? '已删除' : '已通过', {
position: 'top-center',
duration: 5000
})
}
},
async getCommentWithVisitorInfo (postID) {
//
const tmp = await this.$axios({

4
plugins/vue-toasted.js Normal file
View File

@ -0,0 +1,4 @@
import Vue from 'vue'
import Toasted from 'vue-toasted'
Vue.use(Toasted)

View File

@ -8947,6 +8947,11 @@ vue-template-es2015-compiler@^1.9.0:
resolved "https://mirrors.huaweicloud.com/repository/npm/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
vue-toasted@^1.1.28:
version "1.1.28"
resolved "https://registry.yarnpkg.com/vue-toasted/-/vue-toasted-1.1.28.tgz#dbabb83acc89f7a9e8765815e491d79f0dc65c26"
integrity sha512-UUzr5LX51UbbiROSGZ49GOgSzFxaMHK6L00JV8fir/CYNJCpIIvNZ5YmS4Qc8Y2+Z/4VVYRpeQL2UO0G800Raw==
vue@^2.6.11:
version "2.6.11"
resolved "https://mirrors.huaweicloud.com/repository/npm/vue/-/vue-2.6.11.tgz#76594d877d4b12234406e84e35275c6d514125c5"