From 1113721c0e068c57adbc15149cce15563960a7f2 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期三, 18 六月 2025 23:03:25 +0800 Subject: [PATCH] Merge branch 'dev' of http://42.193.1.25:9521/r/lmk-shop-wx into dev --- pages/tabbar/index/home.vue | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 108 insertions(+), 8 deletions(-) diff --git a/pages/tabbar/index/home.vue b/pages/tabbar/index/home.vue index d665256..ade53fe 100644 --- a/pages/tabbar/index/home.vue +++ b/pages/tabbar/index/home.vue @@ -86,7 +86,7 @@ <view class="goods-link"> <swiper @change="goodsChange" :autoplay="true" :interval="4000" style="height: 120rpx;"> <swiper-item v-for="goods in item.goodsList" :key="goods.goodsId"> - <view class="goods-container"> + <view class="goods-container" @click="jumpToPay(item.id)"> <!-- 鍟嗗搧鍥剧墖 --> <image class="goods-image" :src="goods.thumbnail" mode="aspectFill"></image> @@ -134,6 +134,12 @@ <text class="iconfont"></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"></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, saveShareClickRecord } 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 @@ -311,14 +328,77 @@ onHide() { this.startHidenTime = Date.now() }, - onLoad() { - this.loadVideos(); + onLoad(option) { + const token = storage.getAccessToken(); + if (! token) { + this.wxSilentLogin(() => { + this.loadVideos(); + // 鍒ゆ柇鏄笉鏄偣鍑诲垎浜摼鎺ヨ繘鏉ョ殑 + if (option.userId && option.videoId) { + // 淇濆瓨鍒嗕韩鐐瑰嚮璁板綍 + saveShareClickRecord({refId: option.videoId, shareUserId: option.userId}) + } + }) + } 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({ + url: '/pages/video/video-goods-detail?videoId=' + videoId + }); + }, // 杞挱鍥惧彉鍖� imgChange(e) { this.currentImgIndex = e.detail.current; @@ -637,6 +717,9 @@ if (this.videoContexts[this.currentIndex]) { this.videoContexts[this.currentIndex].play(); } + // 璁剧疆褰撳墠鎾斁瑙嗛鐨勬�绘椂闀� + this.duration = this.videoList[this.currentIndex].videoDuration; + this.formartDuration = this.sliderFormatTime(this.duration); }, // 鏀惰棌/鍙栨秷鏀惰棌 @@ -677,6 +760,11 @@ console.log(id, index, "瑙﹀彂鎾斁"); if(index === this.currentIndex) { this.currentVideoIsPlaying = true; + if(! this.duration) { + // 璁剧疆褰撳墠鎾斁瑙嗛鐨勬�绘椂闀� + this.duration = this.videoList[this.currentIndex].videoDuration; + this.formartDuration = this.sliderFormatTime(this.duration); + } } else { this.currentVideoIsPlaying = false; return @@ -690,6 +778,7 @@ const duration = Date.now() - this.startPauseTime this.totalPauseTime += duration } + }, // 瑙嗛鏆傚仠浜嬩欢 @@ -766,9 +855,9 @@ }, // 鑾峰彇瑙嗛鎬绘椂闀� onLoadedMetadata(e) { - this.duration = e.detail.duration; - this.formartDuration = this.sliderFormatTime(this.duration); - console.log("瑙嗛鎬绘椂闀�", this.duration); + // this.duration = e.detail.duration; + // this.formartDuration = this.sliderFormatTime(this.duration); + // console.log("瑙嗛鎬绘椂闀�", this.duration); }, // 淇濆瓨鎾斁璁板綍 async savePlayRecord() { @@ -827,7 +916,7 @@ .video-info { width: 70%; position: absolute; - bottom: 70px; + bottom: 20px; left: 20px; color: #f8f8f8; z-index: 10; @@ -1212,4 +1301,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