This commit is contained in:
yj 2024-11-21 17:42:31 +08:00
parent 1bd7658f45
commit 6d78bd48cf
9 changed files with 96 additions and 22 deletions

View File

@ -13,7 +13,8 @@
"t-avatar": "tdesign-miniprogram/avatar/avatar",
"t-message": "tdesign-miniprogram/message/message",
"t-dialog": "tdesign-miniprogram/dialog/dialog",
"t-popup": "tdesign-miniprogram/popup/popup"
"t-popup": "tdesign-miniprogram/popup/popup",
"t-cell": "tdesign-miniprogram/cell/cell"
},
"entryPagePath": "pages/form/index",
"window": {

View File

@ -6,6 +6,7 @@
text-align: center;
width: 100%;
padding: 24rpx 0;
font-size: 32rpx;
&-back {
position: absolute;

View File

@ -7,7 +7,18 @@
&-content {
padding: 20rpx 0 0 0;
flex-grow: 1;
overflow-y: auto;
}
.historical-records {
&-title {
color: #666;
font-size: 32rpx;
padding-left: 20rpx;
}
&-view {
padding-top: 20rpx;
}
}
}

View File

@ -6,14 +6,30 @@ import { agora } from '../../utils/agora'
Page({
data: {
meetingForm: {
roomNum: '34351300',
roomName: '杨杨',
roomNum: '',
roomName: '',
},
isRecord: false,
isCamera: false,
historicalList: [],
},
onShow() {
onStop()
const that = this;
wx.getStorage({
key: 'historicalList',
success(res: any) {
that.setData({
historicalList: res.data
})
that.setData({
meetingForm: {
roomNum: res.data[res.data.length - 1].roomNum,
roomName: res.data[res.data.length - 1].nickName
},
})
},
})
},
onLoad() {
wx.authorize({
@ -77,7 +93,7 @@ Page({
screenShareId: res.data.screenShareId,
})
wx.navigateTo({
url: `/pages/meeting/index?roomNum=${this.data.meetingForm.roomNum}`
url: `/pages/meeting/index?roomNum=${this.data.meetingForm.roomNum}&nickName=${this.data.meetingForm.roomName}`
})
})
})
@ -159,5 +175,15 @@ Page({
})
break;
}
},
setForm(e) {
const { item } = e.currentTarget.dataset;
this.setData({
meetingForm: {
roomNum: item.roomNum,
roomName: item.nickName
},
})
this.joinMeeting()
}
})

View File

@ -1,6 +1,6 @@
<!--pages/form/index.wxml-->
<view class="form">
<header-tab title='会议' isBack='{{false}}'></header-tab>
<header-tab title='智慧享' isBack='{{false}}'></header-tab>
<view class="form-content">
<t-input label="会议号" placeholder="请输入会议号" value="{{meetingForm.roomNum}}" bind:clear="changeMeetingForm" bind:change="changeMeetingForm" clearable data-type='roomNum' />
<t-input label="入会名称" placeholder="请输入入会名称" value="{{meetingForm.roomName}}" bind:clear="changeMeetingForm" bind:change="changeMeetingForm" clearable data-type='roomName' />
@ -11,5 +11,11 @@
</t-button>
</view>
</view>
<view class="historical-records" wx:if="{{historicalList.length}}">
<text class="historical-records-title">历史记录</text>
<view class="historical-records-view">
<t-cell title="{{item.roomName}}({{item.nickName}})" hover note="{{item.roomNum}}" arrow wx:for="{{historicalList}}" data-item="{{item}}" wx:key="index" bind:tap="setForm" />
</view>
</view>
</view>
<t-message id="t-message" />

View File

@ -88,7 +88,7 @@
&-fullscreen {
position: absolute;
right: 2%;
left: 2%;
top: 2%;
color: white;
z-index: 2;

View File

@ -121,14 +121,41 @@ Page({
channelId: option.roomNum,
user: await getStorage('user')
})
},
async onReady() {
await this.joinChannel()
await this.getRoomUser()
await this.getShowUser()
this.startClientEvent()
this.startSignalr()
await this.getRoomInfo()
const that = this;
wx.getStorage({
key: 'historicalList',
success(res: any) {
const list = [...res.data]
if (list.length >= 3) {
list.splice(0, 1)
}
list.push({
nickName: option.nickName,
roomNum: option.roomNum,
roomName: that.data.roomInfo.roomName
})
wx.setStorage({
key: "historicalList",
data: list
})
},
fail() {
wx.setStorage({
key: "historicalList",
data: [{
nickName: option.nickName,
roomNum: option.roomNum,
roomName: that.data.roomInfo.roomName
}]
})
}
})
},
startSignalr() {
onSignalr(async (item) => {
@ -447,11 +474,7 @@ Page({
switch (title) {
case '关闭听筒':
case '开启听筒':
item.active = !item.active
this.setData({
muted: !this.data.muted,
footerList: footerListTemplate
})
break;
case '解除静音':
case '静音':

View File

@ -1,6 +1,8 @@
<!--pages/meeting/index.wxml-->
<view class="meeting">
<header-tab title='会议' backGround='rgb(35,36,38)' iconSize='24' color="white" titleStyle='padding:12rpx 0;' isStatusBarHeight="{{false}}" isBack='{{false}}'></header-tab>
<view wx:if="{{!isFullscreen}}">
<header-tab title='会议号:{{roomInfo.roomNum}} 会议名称:{{roomInfo.roomName}}' backGround='rgb(35,36,38)' iconSize='24' color="white" titleStyle='padding:12rpx 0;font-size:16rpx' isStatusBarHeight="{{false}}" isBack='{{false}}'></header-tab>
</view>
<view class="meeting-content">
<view class="meeting-content-noAdmin" wx:if="{{isAdmin === 0}}">
<image class="meeting-content-noAdmin-image" src="/assets/icon8.png" />
@ -14,10 +16,10 @@
<t-icon name="fullscreen-2" size="24rpx" data-name="fullscreen-2" wx:else />
</view>
<view class="meeting-content-video-canvas" wx:if="{{currentUser.shareSrc}}">
<live-player id="player" src="{{currentUser.shareSrc}}" mode="RTC" autoplay="true" bindstatechange="playerStateChange" object-fit="contain" muted="{{muted}}" />
<live-player id="player" src="{{currentUser.shareSrc}}" mode="RTC" autoplay="true" bindstatechange="playerStateChange" object-fit="contain" />
</view>
<view class="meeting-content-video-canvas" wx:elif="{{currentUser.src}}">
<live-player id="player" src="{{currentUser.src}}" mode="RTC" autoplay="true" bindstatechange="playerStateChange" object-fit="fillCrop" muted="{{muted}}" />
<view class="meeting-content-video-canvas" wx:elif="{{currentUser.src && currentUser.enableCamera}}">
<live-player id="player" src="{{currentUser.src}}" mode="RTC" autoplay="true" bindstatechange="playerStateChange" object-fit="fillCrop" muted="{{currentUser.uid === user.uid}}" />
</view>
<view class="meeting-content-video-user">
<view class="meeting-content-video-user-view" style=" background:{{currentUser.roleId === '1' || currentUser.roleId === '3'? '#FDC229' : '#3F51B5' }}">
@ -36,8 +38,8 @@
</view>
</view>
<view class="meeting-content-smallvideo-box-view-canvas" wx:if="{{item.src}}">
<live-pusher wx:if="{{user.uid === item.uid}}" url="{{item.src}}" mode="RTC" bindstatechange="recorderStateChange" background-mute enable-mic enable-camera max-bitrate="500" min-bitrate="200" autopush enable-agc enable-ans device-position="front" class="meeting-content-smallvideo-box-view-canvas-play" />
<live-player src="{{item.src}}" class="meeting-content-smallvideo-box-view-canvas-play" mode="RTC" autoplay="true" bindstatechange="playerStateChange" object-fit="fillCrop" muted="{{muted}}" wx:else />
<live-pusher wx:if="{{user.uid === item.uid}}" url="{{item.src}}" mode="RTC" bindstatechange="recorderStateChange" background-mute enable-mic="{{footerList[1].active}}" enable-camera max-bitrate="500" min-bitrate="200" autopush enable-agc enable-ans device-position="front" class="meeting-content-smallvideo-box-view-canvas-play" face-thinness="{{0.5}}" skin-whiteness="{{0.5}}" skin-smoothness="{{0.5}}" />
<live-player src="{{item.src}}" class="meeting-content-smallvideo-box-view-canvas-play" mode="RTC" autoplay="true" bindstatechange="playerStateChange" object-fit="fillCrop" wx:else />
</view>
<view class="meeting-content-smallvideo-box-view-user">
<view class="meeting-content-smallvideo-box-view-user-view" style=" background:{{ item.roleId === '1' || item.roleId === '3' ? '#FDC229' : '#3F51B5' }}">
@ -75,7 +77,7 @@
<t-popup visible="{{userPopupVisible}}" bind:visible-change="onVisibleChange" placement="right" prevent-scroll-through='{{false}}'>
<view class="user-popup">
<view class="user-popup-title">
聊天
成员
</view>
<view class="user-popup-view" wx:for="{{roomUserList}}" data-item="{{item}}" wx:key="index" wx:if="{{item.isRoom}}">
<view class="user-popup-view-avatar">

View File

@ -13,6 +13,10 @@ export const startSignalr = async (callBack: Function) => {
})
.build();
connection.start().then(() => {
wx.setStorage({
key: "reconnect",
data: true
})
callBack()
})
connection.onclose(() => {