zhangli 4 år sedan
förälder
incheckning
5492baf377

+ 3 - 1
config/api.js

@@ -1,6 +1,6 @@
 // const WX_API_BASE = 'https://www.qianjiadi.com/'
 // const WX_API_BASE = 'http://ch.jihengcc.cn:17080/'
-// const WX_API_BASE = 'https://test.jihengcc.cn/'
+ //const WX_API_BASE = 'https://test.jihengcc.cn/'
 const WX_API_BASE = 'https://www.qianjiadi.com/'
 
 module.exports = {
@@ -8,6 +8,8 @@ module.exports = {
 	WxLogin: WX_API_BASE + 'app/auth/user/wx/login',
 	//  获取个人信息
 	getMainInfo: WX_API_BASE + 'app/member/selectUserById/',
+	//  获取商户信息
+	getMerchantsMainInfo: WX_API_BASE + '/app/merchants/selectMerchantsById/',
 	//  获取我的积分
 	getIntegral: WX_API_BASE + 'app/member/getUserIntegralById',
 	//  获取积分列表

+ 74 - 3
pagesGood/liveDetail.vue

@@ -1,6 +1,12 @@
 <template>
 	<view class="container">
 		<trtc-room ref="trtc-component" :config="rtcConfig"> </trtc-room>
+		<view class="top_box" :style="{ top: btn_top, left: btn_left}">
+			<image class="top_box_img" :src="head_img"></image>
+			<view class="top_box_text">
+				<text class="text_box_top">{{title}}</text><text class="text_box_bottom">{{user_name}}</text>
+			</view>
+		</view>
 		<view class="popup-open" @click="showGoods()">
 			<view class="iconfont iconzhibo-shangpin"></view>
 		</view>
@@ -58,7 +64,12 @@
 					template: '' // 必要参数 组件模版,支持的值 1v1 grid custom ,注意:不支持动态修改, iOS 不支持 pusher 动态渲染
 				},
 				showTipToast: false,
-				options: {}
+				options: {},
+				btn_left:0,
+				btn_top:0,
+				title:"888",
+				user_name:'1',
+				head_img:"../static/images/loginLogo.png"
 			}
 		},
 		onLoad(options) {
@@ -75,6 +86,17 @@
 			})
 		},
 		onReady() {
+			let menuButtonObject = wx.getMenuButtonBoundingClientRect();
+			 wx.getSystemInfo({
+			    success: res => {
+					this.setData({
+						btn_left: res.windowWidth - menuButtonObject.right+'rpx',
+						btn_top:menuButtonObject.top+menuButtonObject.height+14+'rpx',
+						head_img:uni.getStorageSync("liveImgUrl"),
+						title:uni.getStorageSync("liveName"),
+					})
+				},
+			})
 			wx.setKeepScreenOn({
 				keepScreenOn: true
 			}); // 获取 rtcroom 实例
@@ -128,6 +150,7 @@
 					localMirror: 'auto',
 					enableAgc: true,
 					enableAns: true,
+					enableMic:false,
 					encsmall: false ? 1 : 0,
 					videoWidth: 1280,
 					videoHeight: 720,
@@ -162,12 +185,16 @@
 				const TRTC_EVENT = this.trtcComponent.EVENT;
 				this.timestamp = []; // 初始化事件订阅
 				this.trtcComponent.on(TRTC_EVENT.LOCAL_JOIN, event => {
+					let user_list=this.trtcComponent.getRemoteUserList();
+					this.setData({
+						user_name:user_list.length
+					})
 					console.log('* room LOCAL_JOIN', event); // 进房成功,触发该事件后可以对本地视频和音频进行设置
 					if (this.options.localVideo === true || this.options.template === '1v1') {
-						this.trtcComponent.publishLocalVideo();
+						//this.trtcComponent.publishLocalVideo();
 					}
 					if (this.options.localAudio === true || this.options.template === '1v1') {
-						this.trtcComponent.publishLocalAudio();
+						//this.trtcComponent.publishLocalAudio();
 					}
 				});
 				this.trtcComponent.on(TRTC_EVENT.LOCAL_LEAVE, event => {
@@ -177,6 +204,10 @@
 					console.log('* room ERROR', event);
 				}); // 远端用户进房
 				this.trtcComponent.on(TRTC_EVENT.REMOTE_USER_JOIN, event => {
+					let user_list=this.trtcComponent.getRemoteUserList();
+					this.setData({
+						user_name:user_list.length
+					})
 					console.log('* room REMOTE_USER_JOIN ---  room.vue', event, this.trtcComponent.getRemoteUserList(), this.template);
 					this.timestamp.push(new Date()); // 1v1视频通话时限制人数为两人的简易逻辑,建议通过后端实现房间人数管理
 					// 2人以上同时进行通话请选择网格布局
@@ -200,6 +231,10 @@
 					}
 				}); // 远端用户退出
 				this.trtcComponent.on(TRTC_EVENT.REMOTE_USER_LEAVE, event => {
+					let user_list=this.trtcComponent.getRemoteUserList();
+					this.setData({
+						user_name:user_list.length
+					})
 					if (event.data.userID == this.userID) {
 						console.log("直播用户退出");
 						this.$refs.uTips.show({
@@ -423,5 +458,41 @@
 				}
 			}
 		}
+		.top_box{
+		  width: 304rpx;
+		  height: 86rpx;
+		  position: absolute;
+		  z-index: 100;
+		  background:rgba(0, 0, 0, 0.4);
+		  border-radius: 100px;
+		  top: 182rpx;
+		  left: 30rpx;
+		}
+		.top_box_img{
+		  width: 86rpx;
+		height: 86rpx;
+		border-radius: 100rpx;
+		float: left;
+		}
+		.top_box_text{
+		  float: left;
+		  color: #fff;
+		  margin-left: 30rpx;
+		  width: 180rpx;
+		  padding-top: 2rpx;
+		}
+		.text_box_top{
+		  font-size: 28rpx;
+		width: 100%;
+		display: block;
+		height: 30rpx;
+		float: left;
+		margin-top: 6rpx;
+		}
+		.text_box_bottom{
+		  font-size: 22rpx;
+		  float: left;
+		  margin-top: 10rpx;
+		}
 	}
 </style>

+ 85 - 1
pagesGood/pickVideo.vue

@@ -6,6 +6,12 @@
 			<view>不希望其他人打扰</view>
 		</view>
 		<u-top-tips ref="uTips"></u-top-tips>
+		<view class="top_box" :style="{ top: btn_top, left: btn_left}">
+			<image class="top_box_img" :src="head_img"></image>
+			<view class="top_box_text">
+				<text class="text_box_top">{{title}}</text><text class="text_box_bottom" style="display:none">{{user_name}}</text>
+			</view>
+		</view>
 	</view>
 </template>
 
@@ -34,10 +40,24 @@
 					// 必要参数 身份签名,相当于登录密码的作用
 					template: '' // 必要参数 组件模版,支持的值 1v1 grid custom ,注意:不支持动态修改, iOS 不支持 pusher 动态渲染
 				},
-				showTipToast: false
+				showTipToast: false,
+				btn_left:0,
+				btn_top:0,
+				title:"",
+				user_name:'1',
+				head_img:"../static/images/loginLogo.png"
 			}
 		},
 		onLoad(options) {
+			let menuButtonObject = wx.getMenuButtonBoundingClientRect();
+			 wx.getSystemInfo({
+			    success: res => {
+					this.setData({
+						btn_left: res.windowWidth - menuButtonObject.right+'rpx',
+						btn_top:menuButtonObject.top+menuButtonObject.height+14+'rpx'
+					})
+				},
+			})
 			NET.request(API.linkPickVideo, {
 				tenantCode : options.tenantCode
 			}, 'GET').then(res => {
@@ -104,6 +124,18 @@
 				const TRTC_EVENT = this.trtcComponent.EVENT;
 				this.timestamp = []; // 初始化事件订阅
 				this.trtcComponent.on(TRTC_EVENT.LOCAL_JOIN, event => {
+					var userId=this.trtcComponent.getRemoteUserList()[0].userID;
+					NET.request(API.getMerchantsMainInfo + userId, {}, 'GET').then(res => {
+						this.setData({
+							head_img:res.data.merchantImg,
+							title:res.data.merchantNickname
+						})
+					}).catch(error => {
+						this.$refs.uTips.show({
+							title: '获取个人信息失败',
+							type: 'warning',
+						})
+					})
 					console.log('* room LOCAL_JOIN', event); // 进房成功,触发该事件后可以对本地视频和音频进行设置
 
 					if (this.options.localVideo === true || this.options.template === '1v1') {
@@ -120,6 +152,18 @@
 					console.log('* room ERROR', event);
 				}); // 远端用户进房
 				this.trtcComponent.on(TRTC_EVENT.REMOTE_USER_JOIN, event => {
+					var userId=this.trtcComponent.getRemoteUserList()[0].userID;
+					NET.request(API.getMerchantsMainInfo + userId, {}, 'GET').then(res => {
+						this.setData({
+							head_img:res.data.merchantImg,
+							title:res.data.merchantNickname
+						})
+					}).catch(error => {
+						this.$refs.uTips.show({
+							title: '获取个人信息失败',
+							type: 'warning',
+						})
+					})
 					console.log('* room REMOTE_USER_JOIN ---  room.vue', event, this.trtcComponent.getRemoteUserList(), this.template);
 					this.timestamp.push(new Date()); // 1v1视频通话时限制人数为两人的简易逻辑,建议通过后端实现房间人数管理
 					// 2人以上同时进行通话请选择网格布局
@@ -143,6 +187,10 @@
 					}
 				}); // 远端用户退出
 				this.trtcComponent.on(TRTC_EVENT.REMOTE_USER_LEAVE, event => {
+					this.setData({
+						head_img:"../static/images/loginLogo.png",
+						title:''
+					})
 					console.log('* room REMOTE_USER_LEAVE', event, this.trtcComponent.getRemoteUserList());
 					if (this.template === '1v1') {
 						this.timestamp = [];
@@ -243,5 +291,41 @@
 			padding: 20rpx 0;
 			font-size: 32rpx;
 		}
+		.top_box{
+		  width: 304rpx;
+		  height: 86rpx;
+		  position: absolute;
+		  z-index: 100;
+		  background:rgba(0, 0, 0, 0.4);
+		  border-radius: 100px;
+		  top: 182rpx;
+		  left: 30rpx;
+		}
+		.top_box_img{
+		  width: 86rpx;
+		height: 86rpx;
+		border-radius: 100rpx;
+		float: left;
+		}
+		.top_box_text{
+		  float: left;
+		  color: #fff;
+		  margin-left: 30rpx;
+		  width: 180rpx;
+		  padding-top: 2rpx;
+		}
+		.text_box_top{
+		  font-size: 34rpx;
+		  width: 100%;
+		  display: block;
+		  height: 30rpx;
+		  float: left;
+		  margin-top: 19rpx;
+		}
+		.text_box_bottom{
+		  font-size: 22rpx;
+		  float: left;
+		  margin-top: 10rpx;
+		}
 	}
 </style>

+ 1 - 0
pagesGood/trtc-room/template/1v1/1v1.css

@@ -33,6 +33,7 @@
   padding: 40rpx;
   display: flex;
   flex-direction: column;
+  display: none;
 }
 .template-1v1 .loading-img {
   height: 200rpx;

+ 9 - 0
pagesGood/videoList.vue

@@ -86,6 +86,15 @@
 						key: 'videoUrl',
 						data: item.mediaUrl
 					})
+				}else{
+					uni.setStorage({
+						key: 'liveImgUrl',
+						data: item.imgUrl
+					})
+					uni.setStorage({
+						key: 'liveName',
+						data: item.liveName
+					})
 				}
 				uni.navigateTo({
 					url: '/pagesGood/' + (this.videoType == 1 ? ('liveDetail?liveId=' + item.liveId + '&roomId=' + item.roomId) :