yangjie #22

Merged
yangqiang merged 99 commits from yangjie into master 2024-10-22 16:11:46 +08:00
7 changed files with 66 additions and 82 deletions
Showing only changes of commit 2e438090b8 - Show all commits

BIN
src/assets/icon50.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

BIN
src/assets/icon51.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 349 B

View File

@ -6,7 +6,6 @@ import { agora } from '@/utils/package/agora'
import { CloseOutlined, LoadingOutlined, QuestionCircleOutlined } from '@ant-design/icons'; import { CloseOutlined, LoadingOutlined, QuestionCircleOutlined } from '@ant-design/icons';
import { storage } from '@/utils'; import { storage } from '@/utils';
import path from 'path'; import path from 'path';
import { getKeyOpenChildWindow } from '@/utils/package/public';
const fs = require('fs').promises; const fs = require('fs').promises;
const { exec } = require('child_process'); const { exec } = require('child_process');
@ -100,11 +99,6 @@ const StupWizard = forwardRef((props: any, ref: any) => {
if (location.hash.indexOf('/meeting') === -1) { if (location.hash.indexOf('/meeting') === -1) {
agora.release() agora.release()
} }
const isOpen = await getKeyOpenChildWindow('shareScreenWindow')
if (isOpen) {
window.electron.mainWindowHide()
window.electron.setViewStatus('hide')
}
setIsStupWizard(false) setIsStupWizard(false)
}} }}
/> />

View File

@ -1,4 +1,4 @@
import { GetRoomUser, GetRoomUserItem } from '@/api/Meeting'; import { GetRoomUser } from '@/api/Meeting';
import { role } from '@/config/role'; import { role } from '@/config/role';
import styles from '@/page/Meeting/ShareScreenWindow/index.module.scss' import styles from '@/page/Meeting/ShareScreenWindow/index.module.scss'
import { storage } from '@/utils'; import { storage } from '@/utils';
@ -36,13 +36,6 @@ const ShareScreenWindow: React.FC = () => {
active: false, active: false,
select: false, select: false,
}, },
{
title: '设置',
icon: ImageUrl.icon28,
iconSelect: ImageUrl.icon28Select,
active: false,
select: false,
},
{ {
title: '录制', title: '录制',
icon: ImageUrl.icon27, icon: ImageUrl.icon27,
@ -73,8 +66,8 @@ const ShareScreenWindow: React.FC = () => {
footerListTemplate[0].active = footerList[0][0].active; footerListTemplate[0].active = footerList[0][0].active;
footerListTemplate[1].title = footerList[0][1].active ? '开启视频' : '关闭视频'; footerListTemplate[1].title = footerList[0][1].active ? '开启视频' : '关闭视频';
footerListTemplate[1].active = footerList[0][1].active; footerListTemplate[1].active = footerList[0][1].active;
footerListTemplate[5].title = footerList[1][3].active ? '录制中' : '录制'; footerListTemplate[4].title = footerList[1][3].active ? '录制中' : '录制';
footerListTemplate[5].active = footerList[1][3].active; footerListTemplate[4].active = footerList[1][3].active;
setFooterLists(footerListTemplate) setFooterLists(footerListTemplate)
break; break;
case 'currentSpeakUserMe': case 'currentSpeakUserMe':
@ -90,15 +83,7 @@ const ShareScreenWindow: React.FC = () => {
// 获取房间用户 // 获取房间用户
const getRoomUser = async (): Promise<void> => { const getRoomUser = async (): Promise<void> => {
const data = JSON.parse(storage.getItem('stateInfo') as string) const data = JSON.parse(storage.getItem('stateInfo') as string)
await GetRoomUserItem(data.channelId, userInfo.uid).then((res: any) => { await GetRoomUser(data.channelId).then(res => {
if (res.code === 200) {
const footerListTemplate = [...footerLists];
footerListTemplate[0].title = !res.data.enableMicr ? '解除静音' : '静音';
footerListTemplate[0].active = !res.data.enableMicr;
footerListTemplate[1].title = !res.data.enableCamera ? '开启视频' : '关闭视频';
footerListTemplate[1].active = !res.data.enableCamera;
setFooterLists(footerListTemplate)
GetRoomUser(data.channelId).then(res => {
if (res.code === 200) { if (res.code === 200) {
res.data.forEach((item: any) => { res.data.forEach((item: any) => {
item.isShow = true; item.isShow = true;
@ -106,8 +91,9 @@ const ShareScreenWindow: React.FC = () => {
item.isAdmin = role.ID.includes(item.roleId) || item.isRoomManager item.isAdmin = role.ID.includes(item.roleId) || item.isRoomManager
}) })
setRoomUserLists(res.data) setRoomUserLists(res.data)
} channel.postMessage({
}) type: 'shareScreenWindowGetFooterLists',
});
} }
}) })
} }
@ -145,11 +131,6 @@ const ShareScreenWindow: React.FC = () => {
shareScreenWindowfooterListsTitle: item.title shareScreenWindowfooterListsTitle: item.title
}); });
break; break;
case '设置':
channel.postMessage({
type: 'shareScreenWindowSetting'
});
break;
case '聊天': case '聊天':
const chatBigWindow = await getKeyOpenChildWindow('chatBigWindow') const chatBigWindow = await getKeyOpenChildWindow('chatBigWindow')
if (!chatBigWindow) { if (!chatBigWindow) {

View File

@ -1,7 +1,7 @@
import { role } from '@/config/role'; import { role } from '@/config/role';
import styles from '@/page/Meeting/UserListWindow/index.module.scss' import styles from '@/page/Meeting/UserListWindow/index.module.scss'
import ImageUrl from '@/utils/package/imageUrl'; import ImageUrl from '@/utils/package/imageUrl';
import { EllipsisOutlined, ExclamationCircleFilled, SearchOutlined, UserAddOutlined, UserDeleteOutlined } from '@ant-design/icons'; import { EllipsisOutlined, ExclamationCircleFilled, SearchOutlined } from '@ant-design/icons';
import { Button, Input, Modal, Popover } from 'antd'; import { Button, Input, Modal, Popover } from 'antd';
import Avatar from '@/components/Avatar'; import Avatar from '@/components/Avatar';
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
@ -91,6 +91,27 @@ const UserListWindow: React.FC = () => {
</span> </span>
</div> </div>
<div> <div>
{item.uid !== user.uid && !role.ID.includes(item.roleId) ? <div onClick={() => {
if (item.isRoomManager) {
channel.postMessage({
type: 'userListWindowDeleteRoomManager',
userListWindowDeleteRoomManager: {
uid: item.uid
}
});
} else {
channel.postMessage({
type: 'userListWindowPostRoomManager',
userListWindowPostRoomManager: {
uid: item.uid
}
});
}
}}>
{!item.isRoomManager ?
<img src={ImageUrl.icon50} alt="" title='设为发言人' /> :
<img src={ImageUrl.icon51} alt="" title='取消发言人' />}
</div> : null}
{role.ID.includes(item.roleId) || item.isRoomManager ? <div> {role.ID.includes(item.roleId) || item.isRoomManager ? <div>
<img src={item.enableMicr ? ImageUrl.icon22 : ImageUrl.icon22Active} alt="" onClick={() => { <img src={item.enableMicr ? ImageUrl.icon22 : ImageUrl.icon22Active} alt="" onClick={() => {
channel.postMessage({ channel.postMessage({
@ -113,27 +134,6 @@ const UserListWindow: React.FC = () => {
}); });
}} title={item.enableCamera ? '关闭视频' : '开启视频'} /> }} title={item.enableCamera ? '关闭视频' : '开启视频'} />
</div> : null} </div> : null}
{item.uid !== user.uid && !role.ID.includes(item.roleId) ? <div onClick={() => {
if (item.isRoomManager) {
channel.postMessage({
type: 'userListWindowDeleteRoomManager',
userListWindowDeleteRoomManager: {
uid: item.uid
}
});
} else {
channel.postMessage({
type: 'userListWindowPostRoomManager',
userListWindowPostRoomManager: {
uid: item.uid
}
});
}
}}>
{!item.isRoomManager ?
<UserAddOutlined style={{ color: '#fff', fontSize: '20px' }} title='设为发言人' /> :
<UserDeleteOutlined style={{ color: '#fff', fontSize: '20px' }} title='取消发言人' />}
</div> : null}
{item.uid !== user.uid && role.ID.includes(user.roleId) ? <div> {item.uid !== user.uid && role.ID.includes(user.roleId) ? <div>
<Popover placement="left" title={''} content={ <Popover placement="left" title={''} content={
<div style={{ width: '100px' }}> <div style={{ width: '100px' }}>

View File

@ -4,7 +4,7 @@ import Operation from '@/components/Operation';
import SpeakerModeModal from '@/components/SpeakerModeModal'; import SpeakerModeModal from '@/components/SpeakerModeModal';
import InvitingPersonnelModal from '@/components/InvitingPersonnelModal'; import InvitingPersonnelModal from '@/components/InvitingPersonnelModal';
import { Button, Input, Popover, Modal, Checkbox, message, Popconfirm, notification } from "antd"; import { Button, Input, Popover, Modal, Checkbox, message, Popconfirm, notification } from "antd";
import { SearchOutlined, EllipsisOutlined, ExclamationCircleFilled, FullscreenExitOutlined, FullscreenOutlined, QuestionCircleOutlined, UserAddOutlined, UserDeleteOutlined } from '@ant-design/icons'; import { SearchOutlined, EllipsisOutlined, ExclamationCircleFilled, FullscreenExitOutlined, FullscreenOutlined, QuestionCircleOutlined } from '@ant-design/icons';
import { useLocation, useNavigate } from 'react-router-dom'; import { useLocation, useNavigate } from 'react-router-dom';
import { thumbImageBufferToBase64 } from '@/utils/package/base64' import { thumbImageBufferToBase64 } from '@/utils/package/base64'
import { storage } from '@/utils'; import { storage } from '@/utils';
@ -229,11 +229,6 @@ const Meeting: React.FC = () => {
await stopScreenCapture() await stopScreenCapture()
await allUserLook(userInfo.uid, userInfo.userName) await allUserLook(userInfo.uid, userInfo.userName)
break; break;
case 'shareScreenWindowSetting':
stupWizardRef.current.changeModal(3);
window.electron.mainWindowCenter()
window.electron.setViewStatus('show')
break;
case 'shareScreenWindowfooterListsTitle': case 'shareScreenWindowfooterListsTitle':
switch (shareScreenWindowfooterListsTitle) { switch (shareScreenWindowfooterListsTitle) {
case '静音': case '静音':
@ -256,6 +251,20 @@ const Meeting: React.FC = () => {
break; break;
} }
break; break;
case 'shareScreenWindowGetFooterLists':
setFooterList((res: any) => {
channel.postMessage({
type: 'footerList',
footerList: res,
});
return res
})
break;
case 'shareScreenWindowEquipmentManagement':
equipmentManagement(shareScreenWindowEquipmentManagement.uid, shareScreenWindowEquipmentManagement.userName)
window.electron.mainWindowCenter()
window.electron.setViewStatus('show')
break;
case 'userListWindowPostOpenMicr': case 'userListWindowPostOpenMicr':
postOpenMicr(userListWindowPostOpenMicr.enableMicr, userListWindowPostOpenMicr.uid) postOpenMicr(userListWindowPostOpenMicr.enableMicr, userListWindowPostOpenMicr.uid)
break; break;
@ -282,11 +291,6 @@ const Meeting: React.FC = () => {
case 'userListWindowAllPostOpenMicr': case 'userListWindowAllPostOpenMicr':
postOpenMicr(false, userInfo.id, true) postOpenMicr(false, userInfo.id, true)
break; break;
case 'shareScreenWindowEquipmentManagement':
equipmentManagement(shareScreenWindowEquipmentManagement.uid, shareScreenWindowEquipmentManagement.userName)
window.electron.mainWindowCenter()
window.electron.setViewStatus('show')
break;
case 'chatSmallWindowSendChannelMsg': case 'chatSmallWindowSendChannelMsg':
sendMsg(chatSmallWindowSendChannelMsg.msg) sendMsg(chatSmallWindowSendChannelMsg.msg)
break; break;
@ -2229,16 +2233,6 @@ const Meeting: React.FC = () => {
</span> </span>
</div> </div>
<div> <div>
{role.ID.includes(item.roleId) || item.isRoomManager ? <div>
<img src={item.enableMicr ? ImageUrl.icon22 : ImageUrl.icon22Active} alt="" onClick={() => {
postOpenMicr(!item.enableMicr, item.uid)
}} title={item.enableMicr ? '静音' : '解除静音'} />
</div> : null}
{role.ID.includes(item.roleId) || item.isRoomManager ? <div>
<img src={item.enableCamera ? ImageUrl.icon23 : ImageUrl.icon23Active} alt="" onClick={() => {
postOpenCamera(!item.enableCamera, item.uid)
}} title={item.enableCamera ? '关闭视频' : '开启视频'} />
</div> : null}
{item.uid !== user.uid && !role.ID.includes(item.roleId) ? <div onClick={() => { {item.uid !== user.uid && !role.ID.includes(item.roleId) ? <div onClick={() => {
if (item.isRoomManager) { if (item.isRoomManager) {
DeleteRoomManager({ DeleteRoomManager({
@ -2255,8 +2249,19 @@ const Meeting: React.FC = () => {
} }
}}> }}>
{!item.isRoomManager ? {!item.isRoomManager ?
<UserAddOutlined style={{ color: '#fff', fontSize: '20px' }} title='设为发言人' /> : <img src={ImageUrl.icon50} alt="" title='设为发言人' /> :
<UserDeleteOutlined style={{ color: '#fff', fontSize: '20px' }} title='取消发言人' />} <img src={ImageUrl.icon51} alt="" title='取消发言人' />
}
</div> : null}
{role.ID.includes(item.roleId) || item.isRoomManager ? <div>
<img src={item.enableMicr ? ImageUrl.icon22 : ImageUrl.icon22Active} alt="" onClick={() => {
postOpenMicr(!item.enableMicr, item.uid)
}} title={item.enableMicr ? '静音' : '解除静音'} />
</div> : null}
{role.ID.includes(item.roleId) || item.isRoomManager ? <div>
<img src={item.enableCamera ? ImageUrl.icon23 : ImageUrl.icon23Active} alt="" onClick={() => {
postOpenCamera(!item.enableCamera, item.uid)
}} title={item.enableCamera ? '关闭视频' : '开启视频'} />
</div> : null} </div> : null}
{item.uid !== user.uid && role.ID.includes(user.roleId) ? <div> {item.uid !== user.uid && role.ID.includes(user.roleId) ? <div>
<Popover placement="left" title={''} content={ <Popover placement="left" title={''} content={

View File

@ -71,6 +71,8 @@ import icon47Active from '@/assets/icon47-active.png'
import icon48 from '@/assets/icon48.png' import icon48 from '@/assets/icon48.png'
import icon48Select from '@/assets/icon48-select.png' import icon48Select from '@/assets/icon48-select.png'
import icon49 from '@/assets/icon49.png' import icon49 from '@/assets/icon49.png'
import icon50 from '@/assets/icon50.png'
import icon51 from '@/assets/icon51.png'
export default { export default {
loading, loading,
icon, icon,
@ -145,4 +147,6 @@ export default {
icon48, icon48,
icon48Select, icon48Select,
icon49, icon49,
icon50,
icon51,
} }