gemercheung 2 tahun lalu
induk
melakukan
6a02e04706

+ 2 - 1
miniprogram/api/fetchRoom.ts

@@ -25,6 +25,7 @@ export interface RoomDetailType {
   tbStatus: number
   isHost: number
   updateTime: string
+  hostStatus?: number
 }
 type RoomDetailRes = Response & {
   data: RoomDetailType
@@ -36,4 +37,4 @@ export const fetchRoom = async (roomId: string): Promise<RoomDetailType> => {
   })
   return res.data
 
-}
+}

+ 12 - 0
miniprogram/api/shareRoom.ts

@@ -0,0 +1,12 @@
+
+
+import {  WX_SHARE_USER } from '../utils/apiList'
+import { request, Response } from '../utils/http'
+
+
+export const shareRoom = async (roomId: string, userId: string): Promise<Response> => {
+  return request.get<Response>(WX_SHARE_USER, {
+    roomId: roomId,
+    userId: userId
+  })
+}

+ 1 - 1
miniprogram/pages/index/index.wxml

@@ -8,7 +8,7 @@
   </t-sticky>
   <view class="container">
     <view wx:for="{{searchValue.length > 0 ? searchDataList : dataList}}" wx:key="roomId" wx:for-index="idx" wx:for-item="item">
-      <card cardId="{{item.roomId}}" name="{{item.roomTitle}}" cover="{{item.roomCoverUrl}}" status="{{item.roomStatus}}" lastTime="{{item.lastLookTime}}" bindtoRoom="handleToRoom"></card>
+      <card cardId="{{item.roomId}}" name="{{item.roomTitle}}" cover="{{item.roomCoverUrl}}" status="{{item.hostStatus }}" lastTime="{{item.lastLookTime}}" bindtoRoom="handleToRoom"></card>
     </view>
 
     <view wx:if="{{ (searchValue.length > 0  && searchDataList.length === 0) || (dataList.length === 0 && isLoad )}}" class="search-no-data">

+ 1 - 1
miniprogram/pages/my/my.wxml

@@ -6,7 +6,7 @@
     <view class="info-box">
       <t-avatar image="{{ isLogin ? userInfo.avatarUrl :avatar}}" class="avatar" size="large" />
       <view class="personal-info" wx:if="{{isLogin}}" bindtap="handleToPersonalEdit">
-        <text class="title">{{userInfo.nickName || ('微信用户' + tools.subStr(userInfo.wxUserId,0,8))}}</text>
+        <text class="title">{{ (userInfo.nickName && userInfo.nickName.length > 14 ) ? tools.subStr(userInfo.nickName,0,14)+'...': userInfo.nickName || ('微信用户' + tools.subStr(userInfo.wxUserId,0,8))}}</text>
         <text class="desc">点击查看个人信息></text>
       </view>
       <view class="personal-info" wx:else>

+ 1 - 1
miniprogram/pages/myScene/myScene.wxml

@@ -11,7 +11,7 @@
 
     <view wx:for="{{searchValue.length > 0 ? searchDataList : dataList}}" wx:key="roomId" wx:for-index="idx" wx:for-item="item">
 
-      <card  isHoster="{{true}}" cardId="{{item.roomId}}" name="{{item.roomTitle}}" cover="{{item.roomCoverUrl}}" status="{{item.roomStatus}}" lastTime="{{item.lastLookTime}}" bindtoRoom="handleToRoom"></card>
+      <card  isHoster="{{true}}" cardId="{{item.roomId}}" name="{{item.roomTitle}}" cover="{{item.roomCoverUrl}}" status="{{item.hostStatus }}" lastTime="{{item.lastLookTime}}" bindtoRoom="handleToRoom"></card>
     </view>
 
     <view wx:if="{{ (searchValue.length > 0  && searchDataList.length === 0) || (dataList.length === 0 && isLoad )}}" class="search-no-data">

+ 1 - 1
miniprogram/pages/personal/personal.wxml

@@ -13,7 +13,7 @@
   </t-cell>
 
   <t-cell title="昵称" hover arrow>
-    <t-input value="{{userInfo.nickName}}" bind:blur='updateNickName' type='nickname' class="nickname" placeholder="请输入昵称" slot='note'>
+    <t-input  maxlength="{{32}}"  value="{{userInfo.nickName}}" bind:blur='updateNickName' type='nickname' class="nickname" placeholder="请输入昵称" slot='note'>
     </t-input>
   </t-cell>
 

+ 54 - 16
miniprogram/pages/room/room.ts

@@ -1,6 +1,7 @@
 // pages/room/room.ts
 
 import { fetchRoom, RoomDetailType } from '../../api/fetchRoom'
+import { shareRoom } from '../../api/shareRoom'
 import { getRTCSig } from '../../api/sign'
 import { server } from '../../config'
 import { authorizeRecord } from '../../utils/util'
@@ -40,6 +41,10 @@ Page({
 
     await this.autoLogin();
 
+    if (options.isTour) {
+      this.setData({ isTour: Number(options.isTour) })
+    }
+
     if (options.role) {
       this.setData({ role: options.role })
     }
@@ -47,10 +52,6 @@ Page({
       await this.setRole(options.roomId);
     }
 
-    if (options.isTour) {
-      this.setData({ isTour: Number(options.isTour) })
-    }
-
     const isSuccess = await this.setWebViewUrl();
     if (isSuccess) {
       this.handleJoinSocket();
@@ -61,12 +62,42 @@ Page({
   async setRole(roomId: string) {
     let roomInfo: RoomDetailType
     roomInfo = await fetchRoom(roomId);
-    if (!roomInfo?.sceneData[0].num) {
-      console.error('场景码不能为空!')
+    let num = roomInfo.sceneData && roomInfo.sceneData?.length ? roomInfo?.sceneData[0].num :'';
+    if (!num) {
+      console.error('场景码不能为空!');
+      wx.showModal({
+        title: '提示',
+        content: '服务器初始化异常,请稍后再试!',
+        showCancel: false,
+        success(res) {
+          if (res.confirm) {
+            console.log('用户点击确定')
+        
+            wx.redirectTo({
+              url:"/pages/myScene/myScene"
+            })
+          }
+        }
+      });
+      return
     }
-    this.setData({ roomDetail: roomInfo, roomId: roomId, m: roomInfo.sceneData[0].num })
-    if (roomInfo && roomInfo.isHost === 1) {
+    this.setData({ roomDetail: roomInfo, roomId: roomId, m: num })
+
+
+    if (roomInfo && roomInfo.hostStatus === 0) {
+      this.setData({
+        isTour: 1
+      })
 
+    }
+    //1.是加入带看
+    if (roomInfo && roomInfo.hostStatus === 1) {
+      this.setData({
+        isTour: 0
+      })
+
+    }
+    if (roomInfo && roomInfo.isHost === 1) {
       // wx.showModal({
       //   title: '测试',
       //   content: '当前是leader',
@@ -97,8 +128,8 @@ Page({
   },
 
   webViewParams() {
-    const regex = /^[\u4E00-\u9FA5A-Za-z0-9]+$/
-    '⎕'
+    // const regex = /^[\u4E00-\u9FA5A-Za-z0-9]+$/
+    // '⎕'
     // if (!regex.test(this.data.userInfo.nickName)) {
     //   this.setData({
     //     'userInfo.nickName': 'user_' + this.data.userInfo.wxUserId
@@ -108,10 +139,11 @@ Page({
     const filterNickname = (value: string) => {
       var reg = /\\|\/|\?|\?|\*|\"|\“|\”|\'|\‘|\’|\<|\>|\{|\}|\[|\]|\【|\】|\:|\:|\、|\^|\$|\#|\&|\%|\!|\~|\`|\|/g;
       var temp = value.replace(reg, "◻");
+
       this.setData({
-        'userInfo.nickName': encodeURIComponent(temp)
+        'userInfo.nickName': temp
       })
-      console.log('filterNickname',temp);
+      console.log('filterNickname', temp);
 
     }
     filterNickname(this.data.userInfo.nickName);
@@ -121,7 +153,7 @@ Page({
       roomId: `${this.data.roomId}`,
       role: this.data.role,
       avatar: encodeURIComponent(this.data.userInfo.avatarUrl),
-      name: this.data.userInfo.nickName,
+      name: this.data.userInfo.nickName.length > 14 ? encodeURIComponent(this.data.userInfo.nickName.substr(0, 14) + '...') : encodeURIComponent(this.data.userInfo.nickName),
       isTour: this.data.isTour,
       m: this.data.m,
       fromMiniApp: 1,
@@ -275,13 +307,18 @@ Page({
 
   onShareAppMessage: function (res) {
     const roomId = this.data.roomId
+    const userId = this.data.userInfo.wxUserId
     const isTour = this.data.isTour
     const newPicUrl = this.data.roomDetail.roomCoverUrl || 'http://video.cgaii.com/new4dage/images/images/home_2_a.jpg'
     const base = {
       imageUrl: newPicUrl,
       path: `/pages/room/room?roomId=${roomId}&role=customer&isTour=${isTour}`
     }
-    console.error('share', base)
+    if (roomId && userId) {
+      shareRoom(roomId, userId);
+    }
+
+    console.error('share', base, roomId, userId);
     if (res.from === 'button') {
       this.setData({
         showShare: false
@@ -306,14 +343,15 @@ Page({
       case 'users-inviteMember':
         this.handleInviteMember(action.userId, action.data)
         break;
+      case 'changeScene':
+        this.audioManger.changeMute(true);
+        break;
       default:
         break;
     }
   },
   handleSocketSignal(data) {
     debugger
-
-
   },
   handleActionMuted(userId: string | undefined, muted: boolean | undefined) {
     console.error('handleActionMuted');

+ 3 - 0
miniprogram/utils/apiList.ts

@@ -11,3 +11,6 @@ export const WX_UPDATE_USER = '/takelook/wxApi/updateUser'
 export const WX_GET_USER = '/takelook/wxApi/userInfo'
 
 export const WX_UPLOAD_URL = server.api + '/takelook/upload/file'
+
+//分享统计,1.1加入
+export const WX_SHARE_USER = '/takelook/shareRoom'