From 8cdb055657aff3167f38b31e41ccfe4b684ba457 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 16 六月 2025 20:26:41 +0800
Subject: [PATCH] 视频分享(TODO:点击链接进入处理)、静默登录

---
 pages/tabbar/index/home.vue |   84 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 82 insertions(+), 2 deletions(-)

diff --git a/pages/tabbar/index/home.vue b/pages/tabbar/index/home.vue
index 57c31bb..d0904d5 100644
--- a/pages/tabbar/index/home.vue
+++ b/pages/tabbar/index/home.vue
@@ -134,6 +134,12 @@
             <text class="iconfont">&#xe7f7;</text>
             <text style="font-size: 10px;font-weight: lighter;">{{item.commentNum}}</text>
           </view>
+		  <view class="action-item">
+			  <button open-type="share" class="custom-share-btn" :data-obj="item">
+			        <text class="iconfont">&#xe602;</text>
+			      </button>
+		     
+		  </view>
         </view>
 		
       </swiper-item>
@@ -226,6 +232,10 @@
 <script>
 import { getRecommendVideos, savePlayRecord, subscribe, getVideoComments, addVideoComment, thubmsUpComment, cancelThubmsUpComment } from "@/api/video.js";
 import { changeCollect } from "@/api/collect.js";
+import { saveShare } from "@/api/share.js";
+import { silentLogin } from "@/api/connect.js";
+import { getUserInfo } from "@/api/members";
+import storage from "@/utils/storage.js";
 export default {
   computed: {
 	    hasPlayTime() {
@@ -301,7 +311,14 @@
     }
   },
   onShow() {
-	  this.loadVideos()
+	  // const token = storage.getAccessToken();
+	  // if (! token) {
+		 //  this.wxSilentLogin(() => {
+			//   this.loadVideos();
+		 //  })
+	  // } else { 
+	  // 	  this.loadVideos();
+	  // }
 	  // 濡傛灉瑙嗛鎸変笅鏆傚仠鍚庡垏鎹㈤〉闈㈠啀鍥炲埌椤甸潰鏃讹紝鍙畻鏆傚仠鏃堕棿锛堝洜涓烘殏鍋滄椂闂村拰绂诲紑椤甸潰鏃堕棿鏄噸澶嶇殑锛屽彧绠椾竴涓級
 	  if(this.startHidenTime !== 0 && this.currentVideoIsPlaying) {
 		  const duration = Date.now() - this.startHidenTime
@@ -312,13 +329,65 @@
   	this.startHidenTime = Date.now()
   },
   onLoad() {
-	  this.loadVideos();
+	  const token = storage.getAccessToken();
+	  if (! token) {
+		  this.wxSilentLogin(() => {
+			  this.loadVideos();
+		  })
+	  } else { 
+		this.loadVideos();
+	  }
   },
   onReady() {
     // 鍒濆鍖栬棰戜笂涓嬫枃
     this.initVideoContexts();
   },
+  onShareAppMessage(e) {
+	const userInfo = storage.getUserInfo();
+	if(!userInfo) {
+		console.log("鏈櫥褰曚笉鑳藉垎浜�");
+		return
+	}
+	const videoInfo = e.target.dataset.obj;
+	// 淇濆瓨鍒嗕韩璁板綍
+	const data = {
+		shareType: 'video',
+		refId: videoInfo.id,
+		shareUser: userInfo.id
+	}
+	saveShare(data)
+  	return {
+  		title: videoInfo.title,
+  		path: `/pages/tabbar/index/home?videoId=${videoInfo.id}&userId=${userInfo.id}`,
+  		imageUrl: videoInfo.coverUrl
+  	}
+  },
   methods: {
+	  // 闈欓粯鐧诲綍
+	  wxSilentLogin(callback) {
+		  //鑾峰彇code
+		  uni.login({
+		    success: (codeRes) => {
+		      if(codeRes.errMsg === "login:ok") {
+				// 闈欓粯鐧诲綍
+				silentLogin({code: codeRes.code}).then(res => {
+					storage.setAccessToken(res.data.data.accessToken);
+					storage.setRefreshToken(res.data.data.refreshToken);
+					//鑾峰彇鐢ㄦ埛淇℃伅
+					getUserInfo().then((user) => {
+					  storage.setUserInfo(user.data.result);
+					  storage.setHasLogin(true);
+					  callback()
+					});
+				})
+		      } else {
+		        uni.showToast({
+		          title: "绯荤粺寮傚父锛岃鑱旂郴绠$悊鍛橈紒"
+		        })
+		      }
+		    },
+		  });
+	  },
 	  // 鐐瑰嚮鍟嗗搧璺宠浆
 	  jumpToPay(videoId) {
 		uni.navigateTo({
@@ -1218,4 +1287,15 @@
 	  width: 100%;
 	  height: 100%;
 	}
+	.custom-share-btn {
+	  font-size: unset;
+	  background: none;
+	  padding: 0;
+	  margin: 0;
+	  line-height: normal;
+	  border: none;
+	}
+	.custom-share-btn::after {
+	  border: none;
+	}
 </style>
\ No newline at end of file

--
Gitblit v1.8.0