diff --git a/src/page/Meeting/index.module.scss b/src/page/Meeting/index.module.scss index b5bfa47..1f2409d 100644 --- a/src/page/Meeting/index.module.scss +++ b/src/page/Meeting/index.module.scss @@ -1029,40 +1029,72 @@ } .modePopover { + display: flex; + flex-direction: column; + align-items: center; + >div { - width: 140px; - height: 30px; - line-height: 30px; - border-radius: 5px; - margin-bottom: 8px; - cursor: pointer; display: flex; align-items: center; - justify-content: center; - >span { - color: #EEEEEE; + >div { + width: 100px; + padding: 10px 0; + line-height: 30px; + border-radius: 5px; + cursor: pointer; + display: flex; + align-items: center; + flex-direction: column; + justify-content: center; + margin-right: 20px; + + >span { + color: #EEEEEE; + } + + >img { + height: 30px; + margin-bottom: 4px; + } } - >img { - height: 16px; - margin-right: 10px; + >div { + background-color: #101418; + + &:hover { + background-color: lighten(#101418, 4%); + } + + &:active { + background-color: darken(#101418, 4%); + } } - &:last-child { - margin: 0; + .active { + background-color: lighten(#101418, 8%); + cursor: not-allowed; + + &:hover { + background-color: lighten(#101418, 8%); + } + + &:active { + background-color: lighten(#101418, 8%); + } + } + + :last-child { + margin-right: 0px; } } - >div { - background-color: #101418; + >span { + margin-top: 4px; + color: white; - &:hover { - background-color: lighten(#101418, 4%); - } - - &:active { - background-color: darken(#101418, 4%); + >span { + margin-left: 4px; } } } diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 3123734..75e7f91 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -2642,34 +2642,28 @@ const Meeting: React.FC = () => { } // 设置模式 const setSyncView = (mode: string) => { - if (isShare && mode === 'FreedomMode') { - message.error('共享中,无法切换模式') - } else { - confirm({ - title: '提示', - icon: , - content: `是否将当前房间切换为${getMeetingContentBodyLeftModeText(mode)}?`, - centered: true, - okText: '确定', - cancelText: '取消', - async onOk() { - await window.electron.onInvoke('sendOper', { - roomNum: state.channelId, - contentString: JSON.stringify({ - mode, - type: 'mode', - msg: true, - }) - }) - setModeOpen(false) - storage.setItem('meetingMode', mode) - }, - onCancel() { - setModeOpen(false) - storage.setItem('meetingMode', mode) - } - }) + if (meetingMode === mode) { + setModeOpen(false) + return message.error(`${getMeetingContentBodyLeftModeText(mode)}已开启,请勿重复操作!`) } + if (isAdmin > 6 && mode === 'FreedomMode') { + setModeOpen(false) + return message.error('发言人数超过6人,无法使用宫格模式!') + } + if (isShare && mode === 'FreedomMode') { + setModeOpen(false) + return message.error('共享中,无法切换模式') + } + window.electron.onInvoke('sendOper', { + roomNum: state.channelId, + contentString: JSON.stringify({ + mode, + type: 'mode', + msg: true, + }) + }) + setModeOpen(false) + storage.setItem('meetingMode', mode) } // 判断是否出现滚动条 const hasScrollbar = () => { @@ -2700,6 +2694,9 @@ const Meeting: React.FC = () => { <>
{ setContextMenu('') + if (modeOpen) { + setModeOpen(false) + } setIsNetworkQuality(false) }}> {isScreenCapture ?
@@ -2872,29 +2869,30 @@ const Meeting: React.FC = () => { {role.ID.includes(userInfo.roleId) ? -
{ - setSyncView('FreedomMode') - }}> - - 宫格模式 -
-
{ - setSyncView('StandardMode') - }}> - - 标准模式 -
-
{ - setSyncView('SpeakerMode') - }}> - - 演讲模式 -
-
{ - setModeOpen(false) - }}> - 取消 +
+
{ + setSyncView('FreedomMode') + }}> + + 宫格模式 +
+
{ + setSyncView('StandardMode') + }}> + + 标准模式 +
+
{ + setSyncView('SpeakerMode') + }}> + + 演讲模式 +
+ + + 改变布局将对所有成员生效 +
} title=""