文章详情页增加关注/取关作者功能

This commit is contained in:
x ronger 2020-09-27 23:15:51 +08:00
parent 7a331787fb
commit a0442e80e6

View File

@ -33,11 +33,19 @@
# {{ tag.tagTitle }} # {{ tag.tagTitle }}
</el-tag> </el-tag>
</el-col> </el-col>
<el-col :span="12" style="text-align: right;"> <el-col v-if="user" :span="12" style="text-align: right;">
<template v-if="user.idUser !== article.articleAuthorId">
<el-button size="mini" v-if="isFollow" @click="cancelFollowUser(article.articleAuthorId)">取消关注</el-button>
<el-button size="mini" v-else @click="followUser(article.articleAuthorId)">关注</el-button>
</template>
<el-button size="mini" v-if="hasPermissions" @click="handleCommand('edit')">编辑文章</el-button> <el-button size="mini" v-if="hasPermissions" @click="handleCommand('edit')">编辑文章</el-button>
<el-button size="mini" v-if="isAdmin" @click="handleCommand('editTags')">编辑标签</el-button> <el-button size="mini" v-if="isAdmin" @click="handleCommand('editTags')">编辑标签</el-button>
<el-button size="mini" @click="handleCommand('share')">分享</el-button> <el-button size="mini" @click="handleCommand('share')">分享</el-button>
</el-col> </el-col>
<el-col v-else :span="12" style="text-align: right;">
<el-button size="mini" @click="gotoLogin">关注</el-button>
<el-button size="mini" @click="handleCommand('share')">分享</el-button>
</el-col>
</el-col> </el-col>
<el-col v-if="article.portfolios && article.portfolios.length > 0"> <el-col v-if="article.portfolios && article.portfolios.length > 0">
<el-col> <el-col>
@ -173,6 +181,7 @@
loading: false, loading: false,
isShare: false, isShare: false,
dialogVisible: false, dialogVisible: false,
isFollow: false,
shareData: {}, shareData: {},
} }
}, },
@ -196,12 +205,17 @@
if (_ts.isShare) { if (_ts.isShare) {
_ts.$set(_ts, 'isShare', false); _ts.$set(_ts, 'isShare', false);
} else { } else {
if (_ts.user) {
_ts.$axios.$get('/api/article/' + _ts.article.idArticle + '/share').then(function (res) { _ts.$axios.$get('/api/article/' + _ts.article.idArticle + '/share').then(function (res) {
if (res) { if (res) {
_ts.$set(_ts, 'shareData', res); _ts.$set(_ts, 'shareData', res);
_ts.$set(_ts, 'isShare', true); _ts.$set(_ts, 'isShare', true);
} }
}); });
} else {
_ts.$set(_ts, 'shareData', {shareUrl: _ts.article.articlePermalink});
_ts.$set(_ts, 'isShare', true);
}
} }
} }
}, },
@ -213,6 +227,32 @@
closeTagsDialog() { closeTagsDialog() {
this.$set(this, 'dialogVisible', false); this.$set(this, 'dialogVisible', false);
this.$store.dispatch('article/fetchDetail', this.$route.params) this.$store.dispatch('article/fetchDetail', this.$route.params)
},
followUser(idUser) {
let _ts = this;
if (_ts.user) {
_ts.$axios.$post('/api/follow', {
followingId: idUser,
followingType: 0
}).then(function (res) {
_ts.$set(_ts, 'isFollow', res);
})
} else {
_ts.gotoLogin()
}
},
cancelFollowUser(idUser) {
let _ts = this;
if (_ts.user) {
_ts.$axios.$post('/api/follow/cancel-follow', {
followingId: idUser,
followingType: 0
}).then(function (res) {
_ts.$set(_ts, 'isFollow', res);
})
} else {
_ts.gotoLogin()
}
} }
}, },
mounted() { mounted() {