From 28d46dfc072a13859a5c0bc4901645b77022c7c3 Mon Sep 17 00:00:00 2001 From: inleft <inleft@qq.com> Date: Sun, 20 Feb 2022 01:25:51 +0800 Subject: [PATCH] 文章主体添加密码授权逻辑 --- src/components/mini/mdDetail.vue | 125 ++++++++++++++++++++++++++++------------- 1 files changed, 86 insertions(+), 39 deletions(-) diff --git a/src/components/mini/mdDetail.vue b/src/components/mini/mdDetail.vue index 73394c8..e75b1c7 100644 --- a/src/components/mini/mdDetail.vue +++ b/src/components/mini/mdDetail.vue @@ -7,45 +7,61 @@ </div> - <div class="mySecret" v-if="!isHasId"> - <h1>天长地久有时尽,此爱绵绵无绝期..</h1> - <h3>日志id参数缺失</h3> - + <div class="mySecret" v-if="showMsg && !myLock"> + <h1>怎样才能让你看到我呢</h1> + <h1>只要你要,只要我有...</h1> + <span class="myTip">{{errorMsg}}</span> </div> + <div v-else> <div class="mySecret" v-if="myLock"> - <h1>越不正经的人越深情..</h1> - <h3>受庇护的文字..输入神秘代码以解除封印</h3> - <a-auto-complete v-model="secret" ref="mySearch" v-bind="search" @blur="pass"> - <a-input-password @pressEnter="pass"> + + <a-auto-complete v-model="secret" ref="mySearch" v-bind="search" @blur="pressEnter"> + <a-input-password @pressEnter="pressEnter"> <a-icon slot="prefix" type="lock" style="color:rgba(0,0,0,.25)" /> </a-input-password> </a-auto-complete> + <span class="myTip">{{errorMsg}}</span> + + </div> <div class="markdown-body article-detail" v-else> <vue-markdown :source="source"></vue-markdown> </div> </div> + + </div> + </template> <script> + // import esPath from '../../assets/es.md' import VueMarkdown from 'vue-markdown' - import esPath from '../../assets/es.md' + import md5 from 'js-md5'; + + import { + queryBlogArticleDetail + } from '../../api/blogArticle.js' + + + import axios from 'axios' export default { - props: ['id'], //接收动态路由的值 components: { VueMarkdown }, data() { return { - isHasId: false, + source: "", + acticleId: "", + showMsg: false, + myLock: false, + errorMsg: '', secret: '', - myLock: true, search: { placeholder: "", autoFocus: true, @@ -53,44 +69,79 @@ value: '', disabled: false }, - // secret: "", - source: esPath, } }, created() { - var queryId = this.$route.query.id; - if (queryId == undefined || queryId == null || queryId == "") { - this.$message.error('日志id缺失..', 2.5) - } else { - this.isHasId = true; - } - + this.acticleId = this.$route.query.id; }, watch: { '$route'(to, from) { - var queryId = this.$route.query.id; - if (queryId == undefined || queryId == null || queryId == "") { - this.$message.error('日志id缺失..', 2.5) + if ("mdDetail" === to.name) { + this.acticleId = this.$route.query.id; } - + }, + acticleId: function(newValue, oldValue) { + if (newValue == undefined || newValue == null || newValue == "") { + this.showMsg = true; + this.errorMsg = "日志id参数缺失"; + } else { + this.queryDetail(); + } } + }, methods: { - pass() { + queryDetail() { + queryBlogArticleDetail({ + id: this.acticleId, + authWord: this.secret == "" ? null : md5(this.secret) + }).then((res) => { + this.showMsg = true; + this.myLock = false; + this.errorMsg = res.message; + this.source = ""; + if (res.code != 200) { + + if (res.code == 1019001) { + //日志需要授权 + this.errorMsg = ""; + this.myLock = true; + } else if (res.code == 1019002) { + //授权码错误 + this.errorMsg = "口令错误..神秘力量依然阻止了你的前进"; + this.myLock = true; + } else { + this.$notification.error({ + message: '好像哪里不对劲..', + description: res.message, + placement: 'bottomRight' + }); + } + + return + } + + + //获取日志资源文件 + this.showMsg = false; + this.errorMsg = ""; + this.$axios + .get(res.data.articleFileURL) + .then((res) => { + this.source = res.data; + }) + }) + }, + pressEnter() { if (this.secret == "") { return } this.search.disabled = true - + this.source = ""; this.$message - .loading('卍解..', 1.5) + .loading('卍解..', 1) .then(() => { - // this.myLock = false; - // this.$message.success('Loading finished', 2.5) - - - this.$message.warn('错了错了..', 2.5) - + this.queryDetail(); this.search.disabled = false; }) @@ -99,11 +150,7 @@ this.$router.go(-1); } }, - mounted() { - // console.log(this.$route.params) - // console.log(this.$route.params.id) - // console.log(this.$route.query.id) - } + } </script> -- Gitblit v1.9.1