From e4f0862bd8af0ac1c7aab59904b69dd071526aff Mon Sep 17 00:00:00 2001
From: inleft <inleft@qq.com>
Date: Fri, 12 Aug 2022 23:59:41 +0800
Subject: [PATCH] 视频模块添加播放历史

---
 src/components/mini/box16-videoDetail.vue |  126 ++++++++++++++++++++++++++++++++++++++---
 1 files changed, 115 insertions(+), 11 deletions(-)

diff --git a/src/components/mini/box16-videoDetail.vue b/src/components/mini/box16-videoDetail.vue
index 126478e..d093711 100644
--- a/src/components/mini/box16-videoDetail.vue
+++ b/src/components/mini/box16-videoDetail.vue
@@ -1,11 +1,14 @@
 <template>
 	<div>
-		 <div class="boxMain">
-		 	<videoPlayBox></videoPlayBox>
-		 </div>
-		 <div class="articleComment">
-		 	<comment ref="myComment" :articleId="articleId" :isAllowedComment="isAllowedComment" :foldReply="true"/>
-		 </div>
+		<div class="boxMain ">
+			<videoPlayBox ref="videoPlayBox" @swichPlay="swichPlay"></videoPlayBox>
+		</div>
+		<div style="padding: 20px 20px 5px;margin-bottom: 20px;" class="myShadow fadeInLeft">
+			<pre>{{introduce}}</pre>
+		</div>
+		<div class="articleComment fadeInRight">
+			<comment ref="myComment" :articleId="articleId" :isAllowedComment="isAllowedComment" :foldReply="true" />
+		</div>
 	</div>
 
 </template>
@@ -16,6 +19,10 @@
 	} from '../../api/blogArticleComment.js'
 	import videoPlayBox from "../mini/box15-videoPlayBox.vue"
 	import comment from "../mini/box12-comment.vue"
+
+	import {
+		queryBlogArticleDetail
+	} from '../../api/blogArticle.js'
 
 	export default {
 		components: {
@@ -31,7 +38,6 @@
 			// },
 			articleId: function(newValue, oldValue) {
 				if (newValue == undefined || newValue == null || newValue == "") {
-					this.showMsg = true;
 					this.errorMsg = "日志id参数缺失";
 				} else {
 					this.$nextTick(function() {
@@ -43,13 +49,99 @@
 		data() {
 			return {
 				articleId: "",
-				isAllowedComment: false
+				lastArticleId: "",
+				isAllowedComment: false,
+				introduce: "",
+				secret: "",
+				myLock: false,
+				videoData: {
+					img: "http://t.inleft.com/share/media_photo/idea_beijing.jpg",
+					url: "",
+					type: "normal",
+					title: "",
+					introduce: "",
+					id: ""
+				}
 			}
 		},
 		methods: {
-			showVideo(param) {
-				this.articleId = param.id
+			swichPlay(videoData) {
+				this.introduce = videoData.introduce;
+				this.$refs.myComment.updateCommentList(videoData.id);
 			},
+			showVideo(item) {
+				//防止重复加载
+				this.lastArticleId = this.articleId;
+				this.articleId = item.id
+
+				if (this.articleId == this.lastArticleId) {
+					return
+				}
+
+				this.isAllowedComment = item.isAllowedComment;
+				this.introduce = item.introduce;
+				this.loadData();
+			},
+			loadData() {
+
+				if (this.$refs.videoPlayBox.isPlaying) {
+					this.$message.info("上个视频正在播放中")
+				}
+
+				if (this.myLock) {
+					this.$message.info("正在努力加载中..", 3)
+					return
+				}
+
+				let _this = this;
+				queryBlogArticleDetail({
+					id: this.articleId,
+					authWord: this.secret == "" ? null : md5(this.secret)
+				}).then((res) => {
+					this.myLock = !this.myLock;
+
+					if (res.code != 200) {
+
+						if (res.code == 1019001) {
+							//日志需要授权
+							this.$message.error(res.message)
+						} else if (res.code == 1019002) {
+
+							this.$message.error(res.message)
+						} else {
+							this.$notification.error({
+								message: '好像哪里不对劲..',
+								description: res.message,
+								placement: 'bottomRight'
+							});
+						}
+						return
+					}
+
+					this.isAllowedComment = res.data.isAllowedComment;
+					this.videoData.url = res.data.articleFileURL;
+					this.videoData.img = res.data.coverFileURL;
+					this.videoData.title = res.data.title;
+					this.videoData.introduce = res.data.introduce;
+					this.videoData.id = res.data.id;
+
+
+					if (res.data.articleFileURL != null &&
+						res.data.articleFileURL != "" &&
+						res.data.articleFileURL.endsWith("m3u8")) {
+						this.videoData.type = "customHls";
+					} else {
+						this.videoData.type = "normal";
+					}
+
+					this.myLock = !this.myLock;
+					if (this.lastArticleId != this.articleId) {
+						let tempParam = JSON.parse(JSON.stringify(this.videoData))
+						_this.$refs.videoPlayBox.startPlay(tempParam)
+					}
+				})
+
+			}
 		},
 	}
 </script>
@@ -58,9 +150,21 @@
 		color: black;
 	}
 
+	pre {
+		font-family: 'HYTangMeiRen';
+		src: url("http://t.inleft.com/share/z%E5%AD%97%E4%BD%93%E5%BA%93/hytmr55%E6%B1%89%E4%BB%AA%E5%94%90%E7%BE%8E%E4%BA%BA%E5%AD%97%E4%BD%93.woff") format("truetype");
+	}
+
 	.boxMain {
+		user-select: none;
 		display: flex;
 		justify-content: center;
-		padding: 20px;
+		padding: 5px 20px;
+	}
+
+	.myShadow {
+
+		box-shadow: 8px 8px 18px rgba(0, 0, 0, 0.1),
+			-8px -8px 18px #ffffff;
 	}
 </style>

--
Gitblit v1.9.1