WGShare.Client.Electron/src/page/Meeting/index.module.scss

1056 lines
22 KiB
SCSS

@mixin meetingContent () {
.meetingContentUser {
position: absolute;
left: 20px;
bottom: 16px;
display: flex;
align-items: center;
z-index: 2;
.meetingContentUserName {
display: flex;
align-items: center;
background-color: #0000009E;
border-radius: 6px;
height: 24px;
padding: 0 4px;
box-sizing: border-box;
>div {
border-radius: 6px;
padding: 4px;
display: flex;
justify-content: center;
align-items: center;
margin-right: 6px;
>img {
width: 12px;
}
}
>img {
width: 18px;
}
>label {
height: 18px;
width: 18px;
position: relative;
>img {
width: 100%;
height: 100%;
margin-right: 4px;
}
>div {
position: absolute;
left: 0;
bottom: 0;
height: 0%;
width: 100%;
overflow: hidden;
background-repeat: no-repeat;
background-position: bottom center;
background-size: cover;
}
}
>span {
font-size: 13px;
color: #EEEEEE;
flex-grow: 1;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
}
}
.meetingContentError {
position: absolute;
justify-content: center;
display: flex;
align-items: center;
left: calc(50% + 2px);
top: calc(50% + 2px);
transform: translate(-50%, -50%);
width: calc(100% - 18px);
height: calc(100% - 18px);
z-index: 1;
background-color: black;
cursor: pointer;
>div {
transform: scale(2);
}
}
}
.meeting {
width: 100%;
height: 100%;
background-color: #1F2022;
display: flex;
flex-direction: column;
position: relative;
.meetingAbsolute {
position: absolute;
width: 100%;
height: 100%;
background-color: #1F2022;
left: 0;
top: 0;
z-index: 3000;
.meetingAbsoluteLoading {
background: black;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
z-index: 1;
}
.meetingAbsoluteText {
position: absolute;
width: 100%;
left: 0;
color: white;
text-align: center;
z-index: 2;
background-color: rgba(0, 0, 0, 0.5);
cursor: pointer;
font-size: 14px;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
}
.meetingHeader {
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1px solid #2C2C2C;
padding: 4px 0 4px 52px;
box-sizing: border-box;
flex-shrink: 0;
>div:nth-child(1) {
display: flex;
align-items: center;
>div:nth-child(1) {
margin-right: 20px;
display: flex;
align-items: center;
cursor: pointer;
>span {
color: #1677ff;
font-size: 16px;
margin-left: 4px;
}
}
>div:nth-child(2) {
font-size: 16px;
color: #EEEEEE;
}
}
>div:nth-child(2) {
color: #EEEEEE;
font-size: 16px;
}
>div:nth-child(3) {
display: flex;
align-items: center;
.meetingGrayButton {
cursor: pointer;
background-color: #31353A;
width: 140px;
height: 36px;
line-height: 36px;
text-align: center;
border-radius: 5px;
margin-right: 20px;
display: flex;
align-items: center;
justify-content: center;
>span {
font-size: 16px;
color: #EEEEEE;
}
>img {
width: 16px;
margin-right: 10px;
}
&:hover {
background-color: lighten(#31353A, 4%);
}
&:active {
background-color: darken(#31353A, 4%);
}
}
>div:nth-child(2) {
margin: -10px 0 0;
}
}
}
.meetingContent {
flex-grow: 1;
display: flex;
flex-direction: column;
.meetingContentBody {
flex-grow: 1;
height: 0;
display: flex;
align-items: flex-start;
.meetingContentBodyLeft {
width: 0px;
flex-grow: 1;
height: 100%;
box-sizing: border-box;
position: relative;
overflow: hidden;
#videoView {
position: relative;
border: 1px red solid;
}
.standardModeIcon {
position: absolute;
left: 50%;
transform: translate(-50%, 0%);
cursor: pointer;
z-index: 3;
svg {
fill: #fff;
}
&:hover {
svg {
fill: #A0A0A0 !important;
}
}
&:active {
svg {
fill: #3A4E99 !important;
}
}
}
.speakerModeIcon {
position: absolute;
top: 50%;
transform: translate(0, -50%);
cursor: pointer;
z-index: 3;
svg {
fill: #fff;
}
&:hover {
svg {
fill: #A0A0A0 !important;
}
}
&:active {
svg {
fill: #3A4E99 !important;
}
}
}
// 自由者模式
.meetingContentBodyLeftFreedomMode {
width: 100%;
height: 100%;
display: flex;
flex-wrap: wrap;
overflow-y: auto;
}
// 标准模式
.meetingContentBodyLeftStandardMode {
display: flex;
overflow-x: auto;
}
// 演讲者模式
.meetingContentBodyLeftSpeakerMode {
width: 270px;
overflow-y: auto;
height: 100%;
.meetingContentSwiperCard {
width: 100%;
}
.meetingContentSwiperCard {
height: 160px;
}
}
// 单画面模式
.meetingContentBodyLeftSingleScreenMode {
width: 100%;
height: 100%;
display: flex;
flex-wrap: wrap;
overflow-y: auto;
.meetingContentSwiperCard {
width: 100% !important;
height: 100% !important;
}
}
// 二分屏模式
.meetingContentBodyLeftDualScreenMode {
width: 100%;
height: 100%;
display: flex;
flex-wrap: wrap;
overflow-y: auto;
.meetingContentSwiperCard {
width: 50% !important;
height: 100% !important;
}
}
// 四分屏模式
.meetingContentBodyLeftFourScreenMode {
width: 100%;
height: 100%;
display: flex;
flex-wrap: wrap;
overflow-y: auto;
.meetingContentSwiperCard {
width: 50% !important;
height: 50% !important;
}
}
// 标准模式视频
.meetingContentSwiperCardStandardMode {
position: absolute !important;
bottom: 0;
left: 0;
height: calc(100% - 170px) !important;
width: 100% !important;
z-index: 2;
}
// 标准模式视频全部
.meetingContentSwiperCardStandardModeFullScreen {
height: 100% !important;
}
// 演讲者模式视频
.meetingContentSwiperCardSpeakerMode {
position: absolute !important;
right: 0;
bottom: 0;
height: 100% !important;
width: calc(100% - 270px) !important;
z-index: 2;
}
// 标准模式视频全部
.meetingContentSwiperCardSpeakerModeFullScreen {
width: 100% !important;
}
.meetingContentSwiperCard {
height: 160px;
width: 270px;
border-radius: 10px;
overflow: hidden;
position: relative;
flex-shrink: 0;
padding: 10px;
box-sizing: border-box;
.boxShadow {
box-shadow: 0px 0px 13px 0px #7B96FF !important;
border: 2px solid #7B96FF !important;
}
.active {
border: 2px solid #0fa01b !important;
}
.meetingContentSwiperCardVdeio {
box-shadow: 0px 0px 13px 0px transparent;
border: 2px solid transparent;
width: 100%;
height: 100%;
cursor: pointer;
background: black;
position: relative;
.meetingContentSwiperCardVdeioLoading {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%) scale(2);
}
}
.meetingContentSwiperCardFullScreenIcon {
position: absolute;
z-index: 3;
right: 20px;
top: 20px;
color: white;
cursor: pointer;
font-size: 20px;
}
}
.meetingContentSwiperCaret {
position: absolute;
z-index: 2;
cursor: pointer;
background-color: rgba(0, 0, 0, 0.5);
color: white;
border: 1px white solid;
font-size: 20px;
width: 25px;
height: 25px;
display: flex;
justify-content: center;
align-items: center;
}
.meetingContentBodyLeftBlock {
position: absolute;
background-color: #1F2022;
z-index: 2;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
top: 0;
left: 0
}
@include meetingContent();
.meetingContentOperation {
position: absolute;
right: 20px;
bottom: 16px;
z-index: 2;
cursor: pointer;
display: flex;
justify-content: center;
align-items: center;
background-color: rgba(0, 0, 0, 0.5);
box-sizing: border-box;
padding: 0px 5px;
}
.meetingContentSwiperCardShare {
position: absolute;
left: 50%;
top: 6%;
z-index: 2;
transform: translate(-50%, 0%);
background-color: rgba(0, 0, 0, 0.5);
color: white;
font-size: 12px;
padding: 4px 10px;
white-space: nowrap;
}
}
.meetingContentBodyRight {
flex-shrink: 0;
height: 100%;
.meetingUserList {
width: 340px;
height: 100%;
padding: 10px 0 20px;
box-sizing: border-box;
background-color: #16191E;
display: flex;
flex-direction: column;
.meetingUserListTitle {
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 10px;
padding: 0 20px;
box-sizing: border-box;
>span {
color: #EEEEEE;
font-size: 18px;
}
>img {
cursor: pointer;
}
}
.meetingUserListContent {
flex-grow: 1;
height: 0px;
overflow-y: auto;
margin: 20px 0;
>div {
display: flex;
align-items: center;
justify-content: space-between;
position: relative;
padding: 10px 20px;
box-sizing: border-box;
>div:nth-child(1) {
display: flex;
align-items: center;
>span {
color: #F3F3F5;
margin-left: 4px;
display: flex;
flex-direction: column;
>span:nth-child(1) {
font-size: 13px;
}
>span:nth-child(2) {
font-size: 12px;
}
}
>div {
flex-shrink: 0;
}
}
>div:nth-child(2) {
display: flex;
align-items: center;
>div {
height: 30px;
width: 30px;
cursor: pointer;
display: flex;
justify-content: center;
align-items: center;
>img {
width: 20px;
}
&:hover {
background-color: rgba(0, 0, 0, 0.5);
}
}
}
&:hover {
background-color: rgb(52, 52, 52);
}
}
}
.meetingUserListFooter {
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 20px;
box-sizing: border-box;
>div {
font-size: 14px;
cursor: pointer;
background-color: #31353A;
color: #EEEEEE;
width: 104px;
height: 30px;
line-height: 30px;
text-align: center;
border-radius: 5px;
&:hover {
background-color: lighten(#31353A, 4%);
}
&:active {
background-color: darken(#31353A, 4%);
}
}
}
}
.meetingUserChat {
width: 300px;
height: 100%;
background-color: #16191E;
display: flex;
flex-direction: column;
.meetingUserChatTitle {
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px 20px;
box-sizing: border-box;
border-bottom: 1px solid #23272E;
>span {
color: #EEEEEE;
font-size: 18px;
}
>img {
cursor: pointer;
}
}
.meetingUserChatContent {
flex-grow: 1;
height: 0px;
overflow-y: auto;
padding: 20px;
box-sizing: border-box;
.meetingUserChatContentLeft {
display: flex;
flex-direction: column;
align-items: flex-start;
>div:nth-child(1) {
display: flex;
align-items: center;
>span {
font-size: 14px;
color: #F3F3F5;
margin-left: 4px;
display: flex;
align-items: center;
}
}
>div:nth-child(2) {
background-color: #5575F2;
color: #F3F3F5;
max-width: 266px;
padding: 10px;
box-sizing: border-box;
border-radius: 0 25px 25px 25px;
margin: 10px 0 10px 40px;
font-size: 14px;
word-break: break-all;
}
}
.meetingUserChatContentRight {
display: flex;
flex-direction: column;
align-items: flex-end;
>div:nth-child(1) {
display: flex;
align-items: center;
flex-direction: row-reverse;
>span {
font-size: 14px;
color: #F3F3F5;
display: flex;
align-items: center;
}
>div {
margin-left: 4px;
}
}
>div:nth-child(2) {
background-color: #464E6B;
color: #F3F3F5;
max-width: 266px;
padding: 10px;
box-sizing: border-box;
border-radius: 25px 0 25px 25px;
margin: 10px 40px 10px 0;
font-size: 14px;
word-break: break-all;
}
}
}
.meetingUserChatButton {
display: flex;
flex-shrink: 0;
flex-wrap: wrap;
padding: 10px 20px;
box-sizing: border-box;
>button {
margin: 4px 4px 0;
}
}
.meetingUserChatInput {
flex-shrink: 0;
padding: 10px 20px;
box-sizing: border-box;
height: 160px;
display: flex;
flex-direction: column;
align-items: flex-end;
border-top: 1px solid #23272E;
}
}
.meetingUserVideoList {
padding: 10px 10px 10px;
box-sizing: border-box;
height: 100%;
background-color: #16191E;
display: flex;
flex-direction: column;
.meetingUserVideoListTitle {
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 10px;
>span {
color: #EEEEEE;
font-size: 18px;
}
>img {
cursor: pointer;
}
}
.meetingUserVideoListContent {
flex-grow: 1;
height: 0px;
overflow-y: auto;
box-sizing: border-box;
}
}
}
}
.meetingContentFooter {
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: space-between;
background-color: #07090B;
padding: 4px 50px;
box-sizing: border-box;
>div {
display: flex;
align-items: center;
>div {
padding: 6px 0;
border-radius: 6px;
display: flex;
flex-direction: column;
align-items: center;
margin-right: 30px;
cursor: pointer;
position: relative;
&:last-child {
margin: 0;
}
>img {
height: 35px;
}
>span {
color: #EEEEEE;
font-size: 14px;
width: 70px;
text-align: center;
}
>div {
position: absolute;
color: white;
font-size: 14px;
width: 26px;
height: 26px;
text-align: center;
line-height: 26px;
right: -10px;
}
>label {
height: 35px;
height: 35px;
cursor: pointer;
position: relative;
>img {
width: 100%;
height: 100%;
margin-right: 4px;
}
>div {
position: absolute;
left: 0;
bottom: 0;
height: 0%;
width: 100%;
overflow: hidden;
background-repeat: no-repeat;
background-position: bottom center;
background-size: cover;
}
}
&:hover {
background-color: #161A29;
}
&:active {
background-color: darken(#161A29, 10%) !important;
}
}
}
}
}
}
:global {
.meetingContentFooterPopover {
>div {
width: 140px;
height: 30px;
line-height: 30px;
border-radius: 5px;
color: #EEEEEE;
text-align: center;
margin-bottom: 8px;
cursor: pointer;
&:last-child {
margin: 0;
}
}
.meetingContentFooterPopoverDel {
background-color: #FF5219;
&:hover {
background-color: lighten(#FF5219, 4%);
}
&:active {
background-color: darken(#FF5219, 4%);
}
}
.meetingContentFooterPopoverDefault {
background-color: #31353A;
&:hover {
background-color: lighten(#31353A, 4%);
}
&:active {
background-color: darken(#31353A, 4%);
}
}
.meetingContentFooterPopoverCancel {
background-color: #101418;
&:hover {
background-color: lighten(#101418, 4%);
}
&:active {
background-color: darken(#101418, 4%);
}
}
}
.modePopover {
>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;
}
>img {
height: 16px;
margin-right: 10px;
}
&:last-child {
margin: 0;
}
}
>div {
background-color: #101418;
&:hover {
background-color: lighten(#101418, 4%);
}
&:active {
background-color: darken(#101418, 4%);
}
}
}
}
.meetingContentSwiperCardPopover {
display: flex;
flex-direction: column;
>button {
margin-bottom: 4px;
&:last-child {
margin-bottom: 0;
}
}
}
// 共享屏幕
.sharedScreenModal {
display: flex;
flex-direction: column;
>div:nth-child(1) {
display: flex;
flex-wrap: wrap;
align-content: flex-start;
padding: 50px 0 0;
max-height: 40vh;
overflow-y: auto;
>div {
display: flex;
flex-direction: column;
align-items: center;
width: calc(100% / 4);
box-sizing: border-box;
margin-bottom: 20px;
cursor: pointer;
position: relative;
>span {
color: #EEEEEE;
font-size: 14px;
margin-top: 4px;
width: 144px;
text-align: center;
}
>div {
width: 144px;
height: 94px;
box-sizing: border-box;
border: 5px solid transparent;
>img {
width: 100%;
height: 100%;
}
}
>img {
position: absolute;
top: -20px;
left: 0;
width: 40px;
}
&:hover {
>div {
border: 5px solid yellow;
box-sizing: border-box;
}
}
}
.active {
>div {
border: 5px solid yellow;
box-sizing: border-box;
}
}
}
>div:nth-child(2) {
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 20px;
}
}