@tencentcloud/roomkit-electron-vue3 2.4.1 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/components/Chat/ChatEditor/useChatEditor.mjs +1 -1
- package/es/components/Chat/MessageList/index.vue.mjs +1 -1
- package/es/components/Chat/MessageList/index.vue2.mjs +5 -1
- package/es/components/Chat/MessageList/useMessageListHook.mjs +4 -3
- package/es/components/ManageMember/MemberControl/index.vue.mjs +1 -1
- package/es/components/ManageMember/MemberControl/index.vue2.mjs +36 -19
- package/es/components/ManageMember/MemberControl/useMemberControlHooks.d.ts +6 -1
- package/es/components/ManageMember/MemberControl/useMemberControlHooks.mjs +113 -17
- package/es/components/ManageMember/MemberItem/useMemberItemHooks.d.ts +1 -0
- package/es/components/ManageMember/MemberItem/useMemberItemHooks.mjs +8 -6
- package/es/components/ManageMember/MemberItemCommon/MemberInfo.vue.mjs +1 -1
- package/es/components/ManageMember/MemberItemCommon/MemberInfo.vue2.mjs +7 -3
- package/es/components/ManageMember/index.vue.mjs +1 -1
- package/es/components/ManageMember/index.vue2.mjs +58 -7
- package/es/components/ManageMember/useIndexHooks.mjs +63 -14
- package/es/components/RoomContent/StreamContainer/index.vue.mjs +1 -1
- package/es/components/RoomContent/StreamContainer/index.vue2.mjs +10 -9
- package/es/components/RoomContent/StreamContainer/useStreamContainerHooks.d.ts +8 -0
- package/es/components/RoomContent/StreamContainer/useStreamContainerHooks.mjs +73 -29
- package/es/components/RoomContent/StreamRegion/index.vue.d.ts +5 -1
- package/es/components/RoomContent/StreamRegion/index.vue.mjs +1 -1
- package/es/components/RoomContent/StreamRegion/index.vue2.mjs +29 -5
- package/es/components/RoomFooter/ApplyControl/MasterApplyControl/index.vue.mjs +1 -1
- package/es/components/RoomFooter/ApplyControl/MasterApplyControl/index.vue2.mjs +10 -4
- package/es/components/RoomFooter/ApplyControl/MemberApplyControl.vue2.mjs +2 -2
- package/es/components/RoomFooter/AudioControl.vue2.mjs +2 -2
- package/es/components/RoomFooter/EndControl/index.vue.mjs +1 -1
- package/es/components/RoomFooter/EndControl/index.vue2.mjs +1 -1
- package/es/components/RoomFooter/EndControl/useEndControlHooks.mjs +16 -4
- package/es/components/RoomFooter/ScreenShareControl/Index.vue.mjs +1 -1
- package/es/components/RoomFooter/ScreenShareControl/Index.vue2.mjs +11 -3
- package/es/components/RoomFooter/VideoControl.vue.mjs +1 -1
- package/es/components/RoomFooter/VideoControl.vue2.mjs +8 -14
- package/es/components/RoomHeader/RoomInfo/index.vue2.mjs +2 -2
- package/es/components/RoomHeader/UserInfo/index.vue.d.ts +3 -11
- package/es/components/RoomHeader/UserInfo/index.vue.mjs +1 -1
- package/es/components/RoomHeader/UserInfo/index.vue2.mjs +9 -92
- package/es/components/RoomHeader/UserInfo/useUserInfoHooks.d.ts +2 -8
- package/es/components/RoomHeader/UserInfo/useUserInfoHooks.mjs +1 -18
- package/es/components/RoomHeader/index/NetworkInfo.vue2.mjs +2 -2
- package/es/components/RoomHome/RoomControl/index.vue.d.ts +10 -0
- package/es/components/RoomHome/RoomControl/index.vue.mjs +1 -1
- package/es/components/RoomHome/RoomControl/index.vue2.mjs +153 -120
- package/es/components/RoomInvite/index.vue2.mjs +2 -2
- package/es/components/RoomMore/index.vue2.mjs +2 -2
- package/es/components/RoomSidebar/useSideBarHooks.mjs +3 -2
- package/es/components/ScheduleConference/Contacts.vue.d.ts +22 -0
- package/es/components/ScheduleConference/Contacts.vue.mjs +7 -0
- package/es/components/ScheduleConference/Contacts.vue2.mjs +212 -0
- package/es/components/ScheduleConference/DurationTimePicker.vue.d.ts +18 -0
- package/es/components/ScheduleConference/DurationTimePicker.vue.mjs +67 -0
- package/es/components/ScheduleConference/DurationTimePicker.vue2.mjs +4 -0
- package/es/components/ScheduleConference/ScheduleConferencePanel.vue.d.ts +22 -0
- package/es/components/ScheduleConference/ScheduleConferencePanel.vue.mjs +7 -0
- package/es/components/ScheduleConference/ScheduleConferencePanel.vue2.mjs +613 -0
- package/es/components/ScheduleConference/ScheduleConferencePanel.vue3.mjs +1 -0
- package/es/components/ScheduleConference/ScheduleRoomControl.vue.d.ts +29 -0
- package/es/components/ScheduleConference/ScheduleRoomControl.vue.mjs +7 -0
- package/es/components/ScheduleConference/ScheduleRoomControl.vue2.mjs +464 -0
- package/es/components/ScheduleConference/ScheduleRoomControl.vue3.mjs +1 -0
- package/es/components/{common/base/Input.vue.d.ts → ScheduleConference/ScheduleRoomList.vue.d.ts} +11 -22
- package/es/components/ScheduleConference/ScheduleRoomList.vue.mjs +7 -0
- package/es/components/ScheduleConference/ScheduleRoomList.vue2.mjs +219 -0
- package/es/components/ScheduleConference/ScheduleRoomList.vue3.mjs +1 -0
- package/es/components/ScheduleConference/ShareLink.vue.d.ts +24 -0
- package/es/components/ScheduleConference/ShareLink.vue.mjs +7 -0
- package/es/components/ScheduleConference/ShareLink.vue2.mjs +113 -0
- package/es/components/ScheduleConference/ShareLink.vue3.mjs +1 -0
- package/es/components/ScheduleConference/TimezonePicker.vue.d.ts +18 -0
- package/es/components/ScheduleConference/TimezonePicker.vue.mjs +84 -0
- package/es/components/ScheduleConference/TimezonePicker.vue2.mjs +4 -0
- package/es/components/common/Avatar.vue.mjs +2 -2
- package/es/components/common/DeviceSelect.vue.mjs +1 -1
- package/es/components/common/DeviceSelect.vue2.mjs +58 -19
- package/es/components/common/Logo.vue.mjs +1 -1
- package/es/components/common/Logo.vue2.mjs +3 -3
- package/es/components/common/VideoProfile.vue2.mjs +2 -2
- package/es/components/common/base/Badge.vue.d.ts +1 -1
- package/es/components/common/base/Button.vue.d.ts +2 -2
- package/es/components/common/base/Checkbox.vue.d.ts +4 -2
- package/es/components/common/base/Checkbox.vue.mjs +2 -2
- package/es/components/common/base/Checkbox.vue2.mjs +12 -5
- package/es/components/common/base/Datepicker/Datepicker.vue.d.ts +18 -0
- package/es/components/common/base/Datepicker/Datepicker.vue.mjs +7 -0
- package/es/components/common/base/Datepicker/Datepicker.vue2.mjs +167 -0
- package/es/components/common/base/Datepicker/Datepicker.vue3.mjs +1 -0
- package/es/components/common/base/Datepicker/Timepicker.vue.d.ts +18 -0
- package/es/components/common/base/Datepicker/Timepicker.vue.mjs +66 -0
- package/es/components/common/base/Datepicker/Timepicker.vue2.mjs +4 -0
- package/es/components/common/base/Dialog/index.vue.d.ts +8 -4
- package/es/components/common/base/Dialog/index.vue.mjs +1 -1
- package/es/components/common/base/Dialog/index.vue2.mjs +17 -9
- package/es/components/common/base/Drawer.vue.d.ts +1 -1
- package/es/components/common/base/IconButton.vue.d.ts +2 -2
- package/es/components/common/base/Input/index.vue.d.ts +77 -0
- package/es/components/common/base/Input/index.vue.mjs +7 -0
- package/es/components/common/base/Input/index.vue2.mjs +140 -0
- package/es/components/common/base/Input/index.vue3.mjs +1 -0
- package/es/components/common/base/Message/Instance.mjs +1 -1
- package/es/components/common/base/Message/Message.vue.d.ts +4 -4
- package/es/components/common/base/MessageBox/index.d.ts +3 -2
- package/es/components/common/base/MessageBox/index.mjs +2 -1
- package/es/components/common/base/MessageBox/index.vue.d.ts +6 -1
- package/es/components/common/base/MessageBox/index.vue.mjs +1 -1
- package/es/components/common/base/MessageBox/index.vue2.mjs +60 -10
- package/es/components/common/base/Notification/index.vue.d.ts +2 -2
- package/es/components/common/base/Option.vue.d.ts +11 -1
- package/es/components/common/base/Option.vue.mjs +1 -1
- package/es/components/common/base/Option.vue2.mjs +16 -6
- package/es/components/common/base/Select.vue.d.ts +5 -1
- package/es/components/common/base/Select.vue.mjs +1 -1
- package/es/components/common/base/Select.vue2.mjs +12 -11
- package/es/components/common/base/index.d.ts +1 -1
- package/es/components/common/icons/AllMembersShareScreenIcon.vue.d.ts +2 -0
- package/es/components/common/icons/AllMembersShareScreenIcon.vue.mjs +22 -0
- package/es/components/common/icons/CalendarIcon.vue.d.ts +2 -0
- package/es/components/common/icons/CalendarIcon.vue.mjs +24 -0
- package/es/components/common/icons/CopyIcon.vue.mjs +2 -2
- package/es/components/common/icons/EditNameCardIcon.vue.d.ts +2 -0
- package/es/components/common/icons/EditNameCardIcon.vue.mjs +21 -0
- package/es/components/common/icons/EllipsisIcon.vue.d.ts +2 -0
- package/es/components/common/icons/EllipsisIcon.vue.mjs +34 -0
- package/es/components/common/icons/HostShareScreenIcon.vue.d.ts +2 -0
- package/es/components/common/icons/HostShareScreenIcon.vue.mjs +22 -0
- package/es/components/common/icons/LinkIcon.vue.d.ts +2 -0
- package/es/components/common/icons/LinkIcon.vue.mjs +36 -0
- package/es/components/common/icons/LoadingScheduleIcon.vue.d.ts +2 -0
- package/es/components/common/icons/LoadingScheduleIcon.vue.mjs +24 -0
- package/es/components/common/icons/ScheduleAttendees.vue.d.ts +6 -0
- package/es/components/common/icons/ScheduleAttendees.vue.mjs +25 -0
- package/es/components/common/icons/ScheduleAttendees.vue2.mjs +4 -0
- package/es/components/common/icons/ScheduleRoomIcon.vue.d.ts +2 -0
- package/es/components/common/icons/ScheduleRoomIcon.vue.mjs +24 -0
- package/es/components/common/icons/SuccessIcon.vue.d.ts +2 -0
- package/es/components/common/icons/SuccessIcon.vue.mjs +32 -0
- package/es/components/common/icons/WarningIcon.vue.d.ts +2 -0
- package/es/components/common/icons/WarningIcon.vue.mjs +29 -0
- package/es/conference.d.ts +2 -0
- package/es/conference.mjs +3 -0
- package/es/conference.vue.mjs +1 -1
- package/es/conference.vue2.mjs +9 -4
- package/es/directives/vDblTouch.d.ts +10 -0
- package/es/directives/vTap.d.ts +1 -0
- package/es/directives/vTap.mjs +30 -3
- package/es/extension/chatExtension.mjs +3 -3
- package/es/hooks/useDeviceManager.mjs +3 -3
- package/es/hooks/useMasterApplyControl.mjs +5 -5
- package/es/hooks/useRoomEngine.mjs +4 -4
- package/es/index.d.ts +1 -0
- package/es/index.mjs +2581 -1743
- package/es/locales/en-US.d.ts +75 -0
- package/es/locales/en-US.mjs +78 -1
- package/es/locales/zh-CN.d.ts +79 -0
- package/es/locales/zh-CN.mjs +83 -2
- package/es/preConference.vue.d.ts +10 -0
- package/es/preConference.vue.mjs +1 -1
- package/es/preConference.vue2.mjs +89 -13
- package/es/services/function/errorHandler.d.ts +10 -0
- package/es/services/function/errorHandler.mjs +158 -0
- package/es/services/function/virtualBackground.mjs +4 -3
- package/es/services/index.d.ts +1 -0
- package/es/services/manager/roomActionManager.d.ts +1 -0
- package/es/services/manager/roomActionManager.mjs +10 -18
- package/es/services/manager/scheduleConferenceManager.d.ts +113 -0
- package/es/services/manager/scheduleConferenceManager.mjs +141 -0
- package/es/services/manager/userManager.d.ts +2 -0
- package/es/services/manager/userManager.mjs +7 -3
- package/es/services/roomService.d.ts +8 -0
- package/es/services/roomService.mjs +42 -16
- package/es/services/types.d.ts +8 -0
- package/es/services/types.mjs +2 -0
- package/es/stores/basic.mjs +9 -3
- package/es/stores/room.d.ts +2 -0
- package/es/stores/room.mjs +55 -24
- package/es/utils/adapter.mjs +39 -3
- package/es/utils/utils.d.ts +3 -0
- package/es/utils/utils.mjs +64 -0
- package/lib/components/Chat/ChatEditor/useChatEditor.js +1 -1
- package/lib/components/Chat/MessageList/index.vue.js +1 -1
- package/lib/components/Chat/MessageList/index.vue2.js +5 -1
- package/lib/components/Chat/MessageList/useMessageListHook.js +2 -1
- package/lib/components/ManageMember/MemberControl/index.vue.js +1 -1
- package/lib/components/ManageMember/MemberControl/index.vue2.js +35 -18
- package/lib/components/ManageMember/MemberControl/useMemberControlHooks.d.ts +6 -1
- package/lib/components/ManageMember/MemberControl/useMemberControlHooks.js +113 -17
- package/lib/components/ManageMember/MemberItem/useMemberItemHooks.d.ts +1 -0
- package/lib/components/ManageMember/MemberItem/useMemberItemHooks.js +8 -6
- package/lib/components/ManageMember/MemberItemCommon/MemberInfo.vue.js +1 -1
- package/lib/components/ManageMember/MemberItemCommon/MemberInfo.vue2.js +5 -1
- package/lib/components/ManageMember/index.vue.js +1 -1
- package/lib/components/ManageMember/index.vue2.js +57 -6
- package/lib/components/ManageMember/useIndexHooks.js +63 -14
- package/lib/components/RoomContent/StreamContainer/index.vue.js +1 -1
- package/lib/components/RoomContent/StreamContainer/index.vue2.js +10 -9
- package/lib/components/RoomContent/StreamContainer/useStreamContainerHooks.d.ts +8 -0
- package/lib/components/RoomContent/StreamContainer/useStreamContainerHooks.js +72 -28
- package/lib/components/RoomContent/StreamRegion/index.vue.d.ts +5 -1
- package/lib/components/RoomContent/StreamRegion/index.vue.js +1 -1
- package/lib/components/RoomContent/StreamRegion/index.vue2.js +27 -3
- package/lib/components/RoomFooter/ApplyControl/MasterApplyControl/index.vue.js +1 -1
- package/lib/components/RoomFooter/ApplyControl/MasterApplyControl/index.vue2.js +8 -2
- package/lib/components/RoomFooter/EndControl/index.vue.js +1 -1
- package/lib/components/RoomFooter/EndControl/index.vue2.js +1 -1
- package/lib/components/RoomFooter/EndControl/useEndControlHooks.js +14 -2
- package/lib/components/RoomFooter/ScreenShareControl/Index.vue.js +1 -1
- package/lib/components/RoomFooter/ScreenShareControl/Index.vue2.js +9 -1
- package/lib/components/RoomFooter/VideoControl.vue.js +1 -1
- package/lib/components/RoomFooter/VideoControl.vue2.js +6 -12
- package/lib/components/RoomHeader/UserInfo/index.vue.d.ts +3 -11
- package/lib/components/RoomHeader/UserInfo/index.vue.js +1 -1
- package/lib/components/RoomHeader/UserInfo/index.vue2.js +6 -89
- package/lib/components/RoomHeader/UserInfo/useUserInfoHooks.d.ts +2 -8
- package/lib/components/RoomHeader/UserInfo/useUserInfoHooks.js +1 -18
- package/lib/components/RoomHome/RoomControl/index.vue.d.ts +10 -0
- package/lib/components/RoomHome/RoomControl/index.vue.js +1 -1
- package/lib/components/RoomHome/RoomControl/index.vue2.js +150 -117
- package/lib/components/RoomSidebar/useSideBarHooks.js +3 -2
- package/lib/components/ScheduleConference/Contacts.vue.d.ts +22 -0
- package/lib/components/ScheduleConference/Contacts.vue.js +7 -0
- package/lib/components/ScheduleConference/Contacts.vue2.js +212 -0
- package/lib/components/ScheduleConference/DurationTimePicker.vue.d.ts +18 -0
- package/lib/components/ScheduleConference/DurationTimePicker.vue.js +67 -0
- package/lib/components/ScheduleConference/DurationTimePicker.vue2.js +4 -0
- package/lib/components/ScheduleConference/ScheduleConferencePanel.vue.d.ts +22 -0
- package/lib/components/ScheduleConference/ScheduleConferencePanel.vue.js +7 -0
- package/lib/components/ScheduleConference/ScheduleConferencePanel.vue2.js +613 -0
- package/lib/components/ScheduleConference/ScheduleConferencePanel.vue3.js +1 -0
- package/lib/components/ScheduleConference/ScheduleRoomControl.vue.d.ts +29 -0
- package/lib/components/ScheduleConference/ScheduleRoomControl.vue.js +7 -0
- package/lib/components/ScheduleConference/ScheduleRoomControl.vue2.js +464 -0
- package/lib/components/ScheduleConference/ScheduleRoomControl.vue3.js +1 -0
- package/lib/components/{common/base/Input.vue.d.ts → ScheduleConference/ScheduleRoomList.vue.d.ts} +11 -22
- package/lib/components/ScheduleConference/ScheduleRoomList.vue.js +7 -0
- package/lib/components/ScheduleConference/ScheduleRoomList.vue2.js +219 -0
- package/lib/components/ScheduleConference/ScheduleRoomList.vue3.js +1 -0
- package/lib/components/ScheduleConference/ShareLink.vue.d.ts +24 -0
- package/lib/components/ScheduleConference/ShareLink.vue.js +7 -0
- package/lib/components/ScheduleConference/ShareLink.vue2.js +113 -0
- package/lib/components/ScheduleConference/ShareLink.vue3.js +1 -0
- package/lib/components/ScheduleConference/TimezonePicker.vue.d.ts +18 -0
- package/lib/components/ScheduleConference/TimezonePicker.vue.js +84 -0
- package/lib/components/ScheduleConference/TimezonePicker.vue2.js +4 -0
- package/lib/components/common/Avatar.vue.js +2 -2
- package/lib/components/common/DeviceSelect.vue.js +1 -1
- package/lib/components/common/DeviceSelect.vue2.js +57 -18
- package/lib/components/common/Logo.vue.js +1 -1
- package/lib/components/common/Logo.vue2.js +2 -2
- package/lib/components/common/base/Badge.vue.d.ts +1 -1
- package/lib/components/common/base/Button.vue.d.ts +2 -2
- package/lib/components/common/base/Checkbox.vue.d.ts +4 -2
- package/lib/components/common/base/Checkbox.vue.js +2 -2
- package/lib/components/common/base/Checkbox.vue2.js +11 -4
- package/lib/components/common/base/Datepicker/Datepicker.vue.d.ts +18 -0
- package/lib/components/common/base/Datepicker/Datepicker.vue.js +7 -0
- package/lib/components/common/base/Datepicker/Datepicker.vue2.js +167 -0
- package/lib/components/common/base/Datepicker/Datepicker.vue3.js +1 -0
- package/lib/components/common/base/Datepicker/Timepicker.vue.d.ts +18 -0
- package/lib/components/common/base/Datepicker/Timepicker.vue.js +66 -0
- package/lib/components/common/base/Datepicker/Timepicker.vue2.js +4 -0
- package/lib/components/common/base/Dialog/index.vue.d.ts +8 -4
- package/lib/components/common/base/Dialog/index.vue.js +1 -1
- package/lib/components/common/base/Dialog/index.vue2.js +16 -8
- package/lib/components/common/base/Drawer.vue.d.ts +1 -1
- package/lib/components/common/base/IconButton.vue.d.ts +2 -2
- package/lib/components/common/base/Input/index.vue.d.ts +77 -0
- package/lib/components/common/base/Input/index.vue.js +7 -0
- package/lib/components/common/base/Input/index.vue2.js +140 -0
- package/lib/components/common/base/Input/index.vue3.js +1 -0
- package/lib/components/common/base/Message/Instance.js +1 -1
- package/lib/components/common/base/Message/Message.vue.d.ts +4 -4
- package/lib/components/common/base/MessageBox/index.d.ts +3 -2
- package/lib/components/common/base/MessageBox/index.js +2 -1
- package/lib/components/common/base/MessageBox/index.vue.d.ts +6 -1
- package/lib/components/common/base/MessageBox/index.vue.js +1 -1
- package/lib/components/common/base/MessageBox/index.vue2.js +59 -9
- package/lib/components/common/base/Notification/index.vue.d.ts +2 -2
- package/lib/components/common/base/Option.vue.d.ts +11 -1
- package/lib/components/common/base/Option.vue.js +1 -1
- package/lib/components/common/base/Option.vue2.js +15 -5
- package/lib/components/common/base/Select.vue.d.ts +5 -1
- package/lib/components/common/base/Select.vue.js +1 -1
- package/lib/components/common/base/Select.vue2.js +11 -10
- package/lib/components/common/base/index.d.ts +1 -1
- package/lib/components/common/icons/AllMembersShareScreenIcon.vue.d.ts +2 -0
- package/lib/components/common/icons/AllMembersShareScreenIcon.vue.js +22 -0
- package/lib/components/common/icons/CalendarIcon.vue.d.ts +2 -0
- package/lib/components/common/icons/CalendarIcon.vue.js +24 -0
- package/lib/components/common/icons/CopyIcon.vue.js +2 -2
- package/lib/components/common/icons/EditNameCardIcon.vue.d.ts +2 -0
- package/lib/components/common/icons/EditNameCardIcon.vue.js +21 -0
- package/lib/components/common/icons/EllipsisIcon.vue.d.ts +2 -0
- package/lib/components/common/icons/EllipsisIcon.vue.js +34 -0
- package/lib/components/common/icons/HostShareScreenIcon.vue.d.ts +2 -0
- package/lib/components/common/icons/HostShareScreenIcon.vue.js +22 -0
- package/lib/components/common/icons/LinkIcon.vue.d.ts +2 -0
- package/lib/components/common/icons/LinkIcon.vue.js +36 -0
- package/lib/components/common/icons/LoadingScheduleIcon.vue.d.ts +2 -0
- package/lib/components/common/icons/LoadingScheduleIcon.vue.js +24 -0
- package/lib/components/common/icons/ScheduleAttendees.vue.d.ts +6 -0
- package/lib/components/common/icons/ScheduleAttendees.vue.js +25 -0
- package/lib/components/common/icons/ScheduleAttendees.vue2.js +4 -0
- package/lib/components/common/icons/ScheduleRoomIcon.vue.d.ts +2 -0
- package/lib/components/common/icons/ScheduleRoomIcon.vue.js +24 -0
- package/lib/components/common/icons/SuccessIcon.vue.d.ts +2 -0
- package/lib/components/common/icons/SuccessIcon.vue.js +32 -0
- package/lib/components/common/icons/WarningIcon.vue.d.ts +2 -0
- package/lib/components/common/icons/WarningIcon.vue.js +29 -0
- package/lib/conference.d.ts +2 -0
- package/lib/conference.js +3 -0
- package/lib/conference.vue.js +1 -1
- package/lib/conference.vue2.js +9 -4
- package/lib/directives/vDblTouch.d.ts +10 -0
- package/lib/directives/vTap.d.ts +1 -0
- package/lib/directives/vTap.js +30 -3
- package/lib/extension/chatExtension.js +1 -1
- package/lib/hooks/useMasterApplyControl.js +3 -3
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2588 -1744
- package/lib/locales/en-US.d.ts +75 -0
- package/lib/locales/en-US.js +78 -1
- package/lib/locales/zh-CN.d.ts +79 -0
- package/lib/locales/zh-CN.js +83 -2
- package/lib/preConference.vue.d.ts +10 -0
- package/lib/preConference.vue.js +1 -1
- package/lib/preConference.vue2.js +88 -12
- package/lib/services/function/errorHandler.d.ts +10 -0
- package/lib/services/function/errorHandler.js +158 -0
- package/lib/services/function/virtualBackground.js +3 -2
- package/lib/services/index.d.ts +1 -0
- package/lib/services/manager/roomActionManager.d.ts +1 -0
- package/lib/services/manager/roomActionManager.js +10 -18
- package/lib/services/manager/scheduleConferenceManager.d.ts +113 -0
- package/lib/services/manager/scheduleConferenceManager.js +147 -0
- package/lib/services/manager/userManager.d.ts +2 -0
- package/lib/services/manager/userManager.js +4 -0
- package/lib/services/roomService.d.ts +8 -0
- package/lib/services/roomService.js +38 -12
- package/lib/services/types.d.ts +8 -0
- package/lib/services/types.js +2 -0
- package/lib/stores/basic.js +8 -2
- package/lib/stores/room.d.ts +2 -0
- package/lib/stores/room.js +55 -24
- package/lib/utils/adapter.js +39 -3
- package/lib/utils/utils.d.ts +3 -0
- package/lib/utils/utils.js +64 -0
- package/package.json +2 -2
- package/src/TUIRoom/assets/style/black-theme.scss +3 -1
- package/src/TUIRoom/assets/style/white-theme.scss +3 -1
- package/src/TUIRoom/components/Chat/ChatEditor/useChatEditor.ts +1 -1
- package/src/TUIRoom/components/Chat/MessageList/index.vue +5 -1
- package/src/TUIRoom/components/Chat/MessageList/useMessageListHook.ts +2 -1
- package/src/TUIRoom/components/ManageMember/MemberControl/index.vue +23 -7
- package/src/TUIRoom/components/ManageMember/MemberControl/useMemberControlHooks.ts +110 -14
- package/src/TUIRoom/components/ManageMember/MemberItem/useMemberItemHooks.ts +9 -4
- package/src/TUIRoom/components/ManageMember/MemberItemCommon/MemberInfo.vue +2 -1
- package/src/TUIRoom/components/ManageMember/index.vue +85 -5
- package/src/TUIRoom/components/ManageMember/useIndexHooks.ts +58 -9
- package/src/TUIRoom/components/RoomContent/StreamContainer/index.vue +7 -6
- package/src/TUIRoom/components/RoomContent/StreamContainer/useStreamContainerHooks.ts +90 -26
- package/src/TUIRoom/components/RoomContent/StreamRegion/index.vue +27 -3
- package/src/TUIRoom/components/RoomFooter/ApplyControl/MasterApplyControl/index.vue +2 -1
- package/src/TUIRoom/components/RoomFooter/EndControl/index.vue +1 -1
- package/src/TUIRoom/components/RoomFooter/EndControl/useEndControlHooks.ts +10 -3
- package/src/TUIRoom/components/RoomFooter/ScreenShareControl/Index.vue +11 -1
- package/src/TUIRoom/components/RoomFooter/VideoControl.vue +0 -7
- package/src/TUIRoom/components/RoomHeader/UserInfo/index.vue +19 -50
- package/src/TUIRoom/components/RoomHeader/UserInfo/useUserInfoHooks.ts +1 -28
- package/src/TUIRoom/components/RoomHome/RoomControl/index.vue +91 -73
- package/src/TUIRoom/components/RoomSidebar/useSideBarHooks.ts +3 -2
- package/src/TUIRoom/components/ScheduleConference/Contacts.vue +265 -0
- package/src/TUIRoom/components/ScheduleConference/DurationTimePicker.vue +54 -0
- package/src/TUIRoom/components/ScheduleConference/ScheduleConferencePanel.vue +731 -0
- package/src/TUIRoom/components/ScheduleConference/ScheduleRoomControl.vue +577 -0
- package/src/TUIRoom/components/ScheduleConference/ScheduleRoomList.vue +295 -0
- package/src/TUIRoom/components/ScheduleConference/ShareLink.vue +122 -0
- package/src/TUIRoom/components/ScheduleConference/TimezonePicker.vue +70 -0
- package/src/TUIRoom/components/common/DeviceSelect.vue +62 -20
- package/src/TUIRoom/components/common/Logo.vue +3 -3
- package/src/TUIRoom/components/common/base/Checkbox.vue +19 -11
- package/src/TUIRoom/components/common/base/Datepicker/Datepicker.vue +252 -0
- package/src/TUIRoom/components/common/base/Datepicker/Timepicker.vue +54 -0
- package/src/TUIRoom/components/common/base/Dialog/index.vue +17 -7
- package/src/TUIRoom/components/common/base/Input/index.vue +187 -0
- package/src/TUIRoom/components/common/base/Message/Instance.ts +2 -1
- package/src/TUIRoom/components/common/base/MessageBox/index.ts +4 -2
- package/src/TUIRoom/components/common/base/MessageBox/index.vue +57 -26
- package/src/TUIRoom/components/common/base/Option.vue +14 -4
- package/src/TUIRoom/components/common/base/Select.vue +18 -13
- package/src/TUIRoom/components/common/base/index.ts +1 -1
- package/src/TUIRoom/components/common/icons/AllMembersShareScreenIcon.vue +15 -0
- package/src/TUIRoom/components/common/icons/ArrowStrokeRightIcon.vue +8 -0
- package/src/TUIRoom/components/common/icons/CalendarIcon.vue +6 -0
- package/src/TUIRoom/components/common/icons/EditNameCardIcon.vue +13 -0
- package/src/TUIRoom/components/common/icons/EllipsisIcon.vue +8 -0
- package/src/TUIRoom/components/common/icons/HostShareScreenIcon.vue +13 -0
- package/src/TUIRoom/components/common/icons/LinkIcon.vue +10 -0
- package/src/TUIRoom/components/common/icons/LoadingScheduleIcon.vue +6 -0
- package/src/TUIRoom/components/common/icons/ScheduleAttendees.vue +13 -0
- package/src/TUIRoom/components/common/icons/ScheduleRoomIcon.vue +6 -0
- package/src/TUIRoom/components/common/icons/SuccessIcon.vue +8 -0
- package/src/TUIRoom/components/common/icons/WarningIcon.vue +13 -0
- package/src/TUIRoom/conference.ts +6 -0
- package/src/TUIRoom/conference.vue +16 -5
- package/src/TUIRoom/directives/vDblTouch.ts +41 -0
- package/src/TUIRoom/directives/vTap.ts +32 -3
- package/src/TUIRoom/extension/chatExtension.ts +1 -1
- package/src/TUIRoom/hooks/useMasterApplyControl.ts +2 -2
- package/src/TUIRoom/index.ts +1 -0
- package/src/TUIRoom/locales/en-US.ts +77 -0
- package/src/TUIRoom/locales/zh-CN.ts +82 -1
- package/src/TUIRoom/preConference.vue +97 -2
- package/src/TUIRoom/services/function/errorHandler.ts +169 -0
- package/src/TUIRoom/services/function/virtualBackground.ts +3 -3
- package/src/TUIRoom/services/index.ts +1 -0
- package/src/TUIRoom/services/manager/roomActionManager.ts +10 -18
- package/src/TUIRoom/services/manager/scheduleConferenceManager.ts +263 -0
- package/src/TUIRoom/services/manager/userManager.ts +6 -0
- package/src/TUIRoom/services/roomService.ts +41 -13
- package/src/TUIRoom/services/types.ts +8 -1
- package/src/TUIRoom/stores/basic.ts +9 -2
- package/src/TUIRoom/stores/room.ts +60 -19
- package/src/TUIRoom/utils/adapter.ts +44 -4
- package/src/TUIRoom/utils/utils.ts +42 -0
- package/es/components/common/base/Input.vue.mjs +0 -7
- package/es/components/common/base/Input.vue2.mjs +0 -34
- package/lib/components/common/base/Input.vue.js +0 -7
- package/lib/components/common/base/Input.vue2.js +0 -34
- package/src/TUIRoom/components/common/base/Input.vue +0 -61
- /package/es/components/{common/base/Input.vue3.mjs → ScheduleConference/Contacts.vue3.mjs} +0 -0
- /package/lib/components/{common/base/Input.vue3.js → ScheduleConference/Contacts.vue3.js} +0 -0
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
:class="['message-item', `${'out' === item.flow ? 'is-me' : ''}`]"
|
|
9
9
|
>
|
|
10
10
|
<div v-if="getDisplaySenderName(index)" class="message-header" :title="item.nick || item.from">
|
|
11
|
-
{{ item.
|
|
11
|
+
{{ getDisplayName(item.from) }}
|
|
12
12
|
</div>
|
|
13
13
|
<div class="message-body">
|
|
14
14
|
<message-text :data="item.payload.text" />
|
|
@@ -20,13 +20,17 @@
|
|
|
20
20
|
|
|
21
21
|
<script setup lang="ts">
|
|
22
22
|
import { nextTick, onMounted, onUnmounted, ref, watch } from 'vue';
|
|
23
|
+
import { storeToRefs } from 'pinia';
|
|
23
24
|
import MessageText from '../MessageTypes/MessageText.vue';
|
|
24
25
|
import { isMobile } from '../../../utils/environment';
|
|
25
26
|
import useMessageList from './useMessageListHook';
|
|
26
27
|
import { getScrollInfo } from '../../../utils/domOperation';
|
|
27
28
|
import { throttle } from '../../../utils/utils';
|
|
29
|
+
import { useRoomStore } from '../../../stores/room';
|
|
28
30
|
|
|
29
31
|
const messageListRef = ref<HTMLElement>();
|
|
32
|
+
const roomStore = useRoomStore();
|
|
33
|
+
const { getDisplayName } = storeToRefs(roomStore)
|
|
30
34
|
|
|
31
35
|
const {
|
|
32
36
|
messageList,
|
|
@@ -80,8 +80,9 @@ export default function useMessageList() {
|
|
|
80
80
|
if (!options || !options.data) {
|
|
81
81
|
return;
|
|
82
82
|
}
|
|
83
|
+
const currentConversationId = `GROUP${roomId.value}`
|
|
83
84
|
options.data.forEach((message: any) => {
|
|
84
|
-
if (message.type !== TencentCloudChat.TYPES.MSG_TEXT) {
|
|
85
|
+
if (message.conversationID !== currentConversationId || message.type !== TencentCloudChat.TYPES.MSG_TEXT) {
|
|
85
86
|
return;
|
|
86
87
|
}
|
|
87
88
|
const { ID, payload: { text }, nick: userName, from: userId } = message;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
<tui-button class="button" size="default" @click="singleControl.func(props.userInfo)">
|
|
4
|
-
{{ singleControl
|
|
2
|
+
<div class="member-control-container">
|
|
3
|
+
<tui-button class="button" size="default" @click="singleControl.func(props.userInfo)" v-if="!isCanOperateMySelf">
|
|
4
|
+
{{ singleControl?.title }}
|
|
5
5
|
</tui-button>
|
|
6
6
|
<div ref="moreBtnRef" class="more-container">
|
|
7
7
|
<tui-button class="button" type="primary" @click="toggleClickMoreBtn">
|
|
@@ -38,9 +38,12 @@
|
|
|
38
38
|
:close-on-click-modal="true"
|
|
39
39
|
:append-to-room-container="true"
|
|
40
40
|
>
|
|
41
|
-
<
|
|
41
|
+
<div class="dialog-content">
|
|
42
|
+
<span>{{ dialogData.content }}</span>
|
|
43
|
+
<tui-input v-if="dialogData.showInput" v-model="tempUserName" class="dialog-input" :placeholder="t('Please input user name')" />
|
|
44
|
+
</div>
|
|
42
45
|
<template #footer>
|
|
43
|
-
<tui-button size="default" @click="handleAction(props.userInfo)"> {{ dialogData.confirmText }} </tui-button>
|
|
46
|
+
<tui-button size="default" @click="handleAction(props.userInfo)" :disabled="tempUserName.length === 0"> {{ dialogData.confirmText }} </tui-button>
|
|
44
47
|
<tui-button class="cancel" size="default" type="primary" @click="handleCancelDialog">
|
|
45
48
|
{{ t('Cancel') }}
|
|
46
49
|
</tui-button>
|
|
@@ -54,9 +57,11 @@ import { ref, watch, computed, nextTick } from 'vue';
|
|
|
54
57
|
import { useI18n } from '../../../locales';
|
|
55
58
|
import TuiButton from '../../common/base/Button.vue';
|
|
56
59
|
import Dialog from '../../common/base/Dialog/index.vue';
|
|
60
|
+
import TuiInput from '../../common/base/Input/index.vue';
|
|
57
61
|
import SvgIcon from '../../common/base/SvgIcon.vue';
|
|
58
62
|
import ArrowUpIcon from '../../common/icons/ArrowUpIcon.vue';
|
|
59
63
|
import useMemberControlHooks from './useMemberControlHooks';
|
|
64
|
+
import useMemberItemHooks from '../MemberItem/useMemberItemHooks';
|
|
60
65
|
import { UserInfo } from '../../../stores/room';
|
|
61
66
|
|
|
62
67
|
interface Props {
|
|
@@ -69,15 +74,19 @@ const props = defineProps<Props>();
|
|
|
69
74
|
const { t } = useI18n();
|
|
70
75
|
const {
|
|
71
76
|
controlList,
|
|
72
|
-
isGeneralUser,
|
|
73
77
|
handleCancelDialog,
|
|
74
78
|
handleAction,
|
|
75
79
|
isDialogVisible,
|
|
76
80
|
dialogData,
|
|
81
|
+
tempUserName,
|
|
77
82
|
} = useMemberControlHooks(props);
|
|
78
83
|
|
|
84
|
+
const { isCanOperateMySelf } = useMemberItemHooks(props.userInfo);
|
|
85
|
+
|
|
79
86
|
const singleControl = computed(() => controlList.value[0]);
|
|
80
|
-
const moreControlList = computed(() =>
|
|
87
|
+
const moreControlList = computed(() =>{
|
|
88
|
+
return isCanOperateMySelf ? controlList.value : controlList.value.slice(1)
|
|
89
|
+
});
|
|
81
90
|
const dropdownClass = ref('down');
|
|
82
91
|
const moreBtnRef = ref();
|
|
83
92
|
const operateListRef = ref();
|
|
@@ -220,6 +229,13 @@ async function handleDropDownPosition() {
|
|
|
220
229
|
}
|
|
221
230
|
}
|
|
222
231
|
}
|
|
232
|
+
.dialog-content {
|
|
233
|
+
display: flex;
|
|
234
|
+
align-items: center;
|
|
235
|
+
.dialog-input {
|
|
236
|
+
flex-grow: 1;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
223
239
|
.cancel {
|
|
224
240
|
margin-left: 12px;
|
|
225
241
|
}
|
|
@@ -4,7 +4,7 @@ import { UserInfo, useRoomStore } from '../../../stores/room';
|
|
|
4
4
|
import useGetRoomEngine from '../../../hooks/useRoomEngine';
|
|
5
5
|
import { useBasicStore } from '../../../stores/basic';
|
|
6
6
|
import useMasterApplyControl from '../../../hooks/useMasterApplyControl';
|
|
7
|
-
import
|
|
7
|
+
import { TUIMediaDevice, TUIRole, TUIRequestCallbackType, TUIErrorCode } from '@tencentcloud/tuiroom-engine-electron';
|
|
8
8
|
import AudioOpenIcon from '../../common/icons/AudioOpenIcon.vue';
|
|
9
9
|
import VideoOpenIcon from '../../common/icons/VideoOpenIcon.vue';
|
|
10
10
|
import ChatForbiddenIcon from '../../common/icons/ChatForbiddenIcon.vue';
|
|
@@ -16,15 +16,20 @@ import OffStageIcon from '../../common/icons/OffStageIcon.vue';
|
|
|
16
16
|
import TransferOwnerIcon from '../../common/icons/TransferOwnerIcon.vue';
|
|
17
17
|
import SetAdminIcon from '../../common/icons/SetAdminIcon.vue';
|
|
18
18
|
import RevokeAdminIcon from '../../common/icons/RevokeAdminIcon.vue';
|
|
19
|
+
import EditNameCardIcon from '../../common/icons/EditNameCardIcon.vue';
|
|
19
20
|
import { storeToRefs } from 'pinia';
|
|
20
21
|
import TUIMessage from '../../common/base/Message';
|
|
21
22
|
import { MESSAGE_DURATION } from '../../../constants/message';
|
|
22
|
-
|
|
23
|
+
import eventBus from '../../../hooks/useMitt';
|
|
24
|
+
import useMemberItemHooks from '../MemberItem/useMemberItemHooks';
|
|
25
|
+
import { roomService } from '../../../services';
|
|
26
|
+
import { isMobile } from '../../../utils/environment';
|
|
27
|
+
import { calculateByteLength } from '../../../utils/utils';
|
|
23
28
|
interface ObjectType {
|
|
24
29
|
[key: string]: any;
|
|
25
30
|
}
|
|
26
31
|
|
|
27
|
-
type ActionType = 'transferOwner' | 'kickUser' | '';
|
|
32
|
+
type ActionType = 'transferOwner' | 'kickUser' | 'changeUserNameCard' | '';
|
|
28
33
|
export default function useMemberControl(props?: any) {
|
|
29
34
|
const roomEngine = useGetRoomEngine();
|
|
30
35
|
const { t } = useI18n();
|
|
@@ -32,14 +37,19 @@ export default function useMemberControl(props?: any) {
|
|
|
32
37
|
const basicStore = useBasicStore();
|
|
33
38
|
const roomStore = useRoomStore();
|
|
34
39
|
const isDialogVisible: Ref<boolean> = ref(false);
|
|
35
|
-
const
|
|
40
|
+
const isShowInput: Ref<boolean> = ref(false);
|
|
41
|
+
const editorInputEle = ref();
|
|
42
|
+
const editorInputEleContainer = ref();
|
|
43
|
+
const tempUserName = ref(props.userInfo.nameCard || props.userInfo.userName);
|
|
44
|
+
const dialogData: Ref<{ title: string; content: string; confirmText: string; actionType: ActionType, showInput: boolean }> = ref({
|
|
36
45
|
title: '',
|
|
37
46
|
content: '',
|
|
38
47
|
confirmText: '',
|
|
39
48
|
actionType: '' as ActionType,
|
|
49
|
+
showInput: false,
|
|
40
50
|
});
|
|
41
|
-
const kickOffDialogContent = computed(() => t('whether to kick sb off the room', { name:
|
|
42
|
-
const transferOwnerTitle = computed(() => t('Transfer the roomOwner to sb', { name:
|
|
51
|
+
const kickOffDialogContent = computed(() => t('whether to kick sb off the room', { name: roomService.getDisplayName(props.userInfo) }));
|
|
52
|
+
const transferOwnerTitle = computed(() => t('Transfer the roomOwner to sb', { name: roomService.getDisplayName(props.userInfo) }));
|
|
43
53
|
const {
|
|
44
54
|
isFreeSpeakMode,
|
|
45
55
|
isSpeakAfterTakingSeatMode,
|
|
@@ -59,11 +69,16 @@ export default function useMemberControl(props?: any) {
|
|
|
59
69
|
kickUserOffStage,
|
|
60
70
|
} = useMasterApplyControl();
|
|
61
71
|
|
|
72
|
+
const { isCanOperateMySelf } = useMemberItemHooks(props.userInfo);
|
|
73
|
+
|
|
62
74
|
const isMe = computed(() => basicStore.userId === props.userInfo.userId);
|
|
63
75
|
const isTargetUserAnchor = computed(() => props.userInfo.onSeat === true);
|
|
64
76
|
const isTargetUserAudience = computed(() => props.userInfo.onSeat !== true);
|
|
65
77
|
|
|
66
78
|
const controlList = computed(() => {
|
|
79
|
+
if (isCanOperateMySelf.value) {
|
|
80
|
+
return [changeUserNameCard.value];
|
|
81
|
+
}
|
|
67
82
|
const agreeOrDenyStageList = props.userInfo.isUserApplyingToAnchor ? [agreeOnStage.value, denyOnStage.value] : [];
|
|
68
83
|
const inviteStageList = isTargetUserAudience.value && !props.userInfo.isUserApplyingToAnchor
|
|
69
84
|
? [inviteOnStage.value] : [];
|
|
@@ -75,20 +90,22 @@ export default function useMemberControl(props?: any) {
|
|
|
75
90
|
[TUIRole.kRoomOwner]: [
|
|
76
91
|
audioControl.value, videoControl.value, chatControl.value,
|
|
77
92
|
setOrRevokeAdmin.value, transferOwner.value, kickUser.value,
|
|
93
|
+
changeUserNameCard.value,
|
|
78
94
|
],
|
|
79
95
|
[TUIRole.kAdministrator]: [
|
|
80
96
|
audioControl.value, videoControl.value, chatControl.value,
|
|
97
|
+
changeUserNameCard.value,
|
|
81
98
|
],
|
|
82
99
|
},
|
|
83
100
|
speakAfterTakeSeat: {
|
|
84
101
|
[TUIRole.kRoomOwner]: [
|
|
85
102
|
...inviteStageList, ...onStageControlList, ...agreeOrDenyStageList,
|
|
86
103
|
setOrRevokeAdmin.value, transferOwner.value, chatControl.value,
|
|
87
|
-
kickUser.value,
|
|
104
|
+
kickUser.value, changeUserNameCard.value,
|
|
88
105
|
],
|
|
89
106
|
[TUIRole.kAdministrator]: [
|
|
90
107
|
...inviteStageList, ...onStageControlList, ...agreeOrDenyStageList,
|
|
91
|
-
chatControl.value,
|
|
108
|
+
chatControl.value, changeUserNameCard.value,
|
|
92
109
|
],
|
|
93
110
|
},
|
|
94
111
|
};
|
|
@@ -158,6 +175,13 @@ export default function useMemberControl(props?: any) {
|
|
|
158
175
|
|
|
159
176
|
const denyOnStage = computed(() => ({ key: 'denyOnStage', icon: DenyOnStageIcon, title: t('Refuse stage'), func: denyUserOnStage }));
|
|
160
177
|
const makeOffStage = computed(() => ({ key: 'makeOffStage', icon: OffStageIcon, title: t('Step down'), func: kickUserOffStage }));
|
|
178
|
+
|
|
179
|
+
const changeUserNameCard = computed(() => ({
|
|
180
|
+
key: 'changeUserNameCard',
|
|
181
|
+
icon: EditNameCardIcon,
|
|
182
|
+
title: t('change name'),
|
|
183
|
+
func: () => handleOpenDialog('changeUserNameCard'),
|
|
184
|
+
}));
|
|
161
185
|
/**
|
|
162
186
|
* Invitation to the stage/uninvitation to the stage
|
|
163
187
|
**/
|
|
@@ -191,7 +215,7 @@ export default function useMemberControl(props?: any) {
|
|
|
191
215
|
if (userInfo.isRequestingUserOpenMic) {
|
|
192
216
|
TUIMessage({
|
|
193
217
|
type: 'info',
|
|
194
|
-
message: `${t('An invitation to open the microphone has been sent to sb.', { name:
|
|
218
|
+
message: `${t('An invitation to open the microphone has been sent to sb.', { name: roomService.getDisplayName(userInfo) })}`,
|
|
195
219
|
duration: MESSAGE_DURATION.NORMAL,
|
|
196
220
|
});
|
|
197
221
|
return;
|
|
@@ -218,7 +242,7 @@ export default function useMemberControl(props?: any) {
|
|
|
218
242
|
});
|
|
219
243
|
TUIMessage({
|
|
220
244
|
type: 'info',
|
|
221
|
-
message: `${t('An invitation to open the microphone has been sent to sb.', { name:
|
|
245
|
+
message: `${t('An invitation to open the microphone has been sent to sb.', { name: roomService.getDisplayName(userInfo) })}`,
|
|
222
246
|
duration: MESSAGE_DURATION.NORMAL,
|
|
223
247
|
});
|
|
224
248
|
if (request && request.requestId) {
|
|
@@ -240,7 +264,7 @@ export default function useMemberControl(props?: any) {
|
|
|
240
264
|
if (userInfo.isRequestingUserOpenCamera) {
|
|
241
265
|
TUIMessage({
|
|
242
266
|
type: 'info',
|
|
243
|
-
message: `${t('An invitation to open the camera has been sent to sb.', { name:
|
|
267
|
+
message: `${t('An invitation to open the camera has been sent to sb.', { name: roomService.getDisplayName(userInfo) })}`,
|
|
244
268
|
duration: MESSAGE_DURATION.NORMAL,
|
|
245
269
|
});
|
|
246
270
|
return;
|
|
@@ -267,7 +291,7 @@ export default function useMemberControl(props?: any) {
|
|
|
267
291
|
});
|
|
268
292
|
TUIMessage({
|
|
269
293
|
type: 'info',
|
|
270
|
-
message: `${t('An invitation to open the camera has been sent to sb.', { name:
|
|
294
|
+
message: `${t('An invitation to open the camera has been sent to sb.', { name: roomService.getDisplayName(userInfo) })}`,
|
|
271
295
|
duration: MESSAGE_DURATION.NORMAL,
|
|
272
296
|
});
|
|
273
297
|
if (request && request.requestId) {
|
|
@@ -302,6 +326,7 @@ export default function useMemberControl(props?: any) {
|
|
|
302
326
|
await roomEngine.instance?.kickRemoteUserOutOfRoom({
|
|
303
327
|
userId: userInfo.userId,
|
|
304
328
|
});
|
|
329
|
+
roomStore.removeRemoteUser(userInfo.userId);
|
|
305
330
|
}
|
|
306
331
|
|
|
307
332
|
/**
|
|
@@ -311,6 +336,9 @@ export default function useMemberControl(props?: any) {
|
|
|
311
336
|
const roomInfo = await roomEngine.instance?.fetchRoomInfo();
|
|
312
337
|
if (roomInfo?.roomOwner === roomStore.localUser.userId) {
|
|
313
338
|
try {
|
|
339
|
+
if (roomStore.localUser.hasScreenStream) {
|
|
340
|
+
eventBus.emit('ScreenShare:stopScreenShare');
|
|
341
|
+
}
|
|
314
342
|
await roomEngine.instance?.changeUserRole({
|
|
315
343
|
userId: userInfo.userId,
|
|
316
344
|
userRole: TUIRole.kRoomOwner,
|
|
@@ -318,7 +346,7 @@ export default function useMemberControl(props?: any) {
|
|
|
318
346
|
roomStore.setMasterUserId(userInfo.userId);
|
|
319
347
|
TUIMessage({
|
|
320
348
|
type: 'success',
|
|
321
|
-
message: t('The room owner has been transferred to sb', { name:
|
|
349
|
+
message: t('The room owner has been transferred to sb', { name: roomService.getDisplayName(userInfo) }),
|
|
322
350
|
duration: MESSAGE_DURATION.NORMAL,
|
|
323
351
|
});
|
|
324
352
|
} catch (error) {
|
|
@@ -346,30 +374,89 @@ export default function useMemberControl(props?: any) {
|
|
|
346
374
|
: `${t('The administrator status of sb has been withdrawn', { name: updatedUserName })}`;
|
|
347
375
|
TUIMessage({ type: 'success', message: tipMessage });
|
|
348
376
|
roomStore.setRemoteUserRole(userInfo.userId, newRole);
|
|
377
|
+
if (newRole === TUIRole.kGeneralUser && userInfo.hasScreenStream) {
|
|
378
|
+
await roomEngine.instance?.closeRemoteDeviceByAdmin({
|
|
379
|
+
userId: userInfo.userId,
|
|
380
|
+
device: TUIMediaDevice.kScreen,
|
|
381
|
+
});
|
|
382
|
+
}
|
|
349
383
|
}
|
|
350
384
|
|
|
351
385
|
function handleOpenDialog(action: string) {
|
|
352
|
-
isDialogVisible.value = true;
|
|
353
386
|
switch (action) {
|
|
354
387
|
case 'kickUser':
|
|
388
|
+
isDialogVisible.value = true;
|
|
355
389
|
dialogData.value = {
|
|
356
390
|
title: t('Note'),
|
|
357
391
|
content: kickOffDialogContent.value,
|
|
358
392
|
confirmText: t('Confirm'),
|
|
359
393
|
actionType: action,
|
|
394
|
+
showInput: false,
|
|
360
395
|
};
|
|
361
396
|
break;
|
|
362
397
|
case 'transferOwner':
|
|
398
|
+
isDialogVisible.value = true;
|
|
363
399
|
dialogData.value = {
|
|
364
400
|
title: transferOwnerTitle.value,
|
|
365
401
|
content: t('After transfer the room owner, you will become a general user'),
|
|
366
402
|
confirmText: t('Confirm transfer'),
|
|
367
403
|
actionType: action,
|
|
404
|
+
showInput: false,
|
|
405
|
+
};
|
|
406
|
+
break;
|
|
407
|
+
case 'changeUserNameCard':
|
|
408
|
+
if (isMobile) {
|
|
409
|
+
isShowInput.value = true;
|
|
410
|
+
document?.body?.appendChild(editorInputEleContainer.value);
|
|
411
|
+
} else {
|
|
412
|
+
isDialogVisible.value = true;
|
|
413
|
+
}
|
|
414
|
+
dialogData.value = {
|
|
415
|
+
title: t('change name'),
|
|
416
|
+
content: '',
|
|
417
|
+
confirmText: t('Confirm'),
|
|
418
|
+
actionType: action,
|
|
419
|
+
showInput: true,
|
|
368
420
|
};
|
|
369
421
|
break;
|
|
370
422
|
}
|
|
371
423
|
}
|
|
372
424
|
|
|
425
|
+
|
|
426
|
+
const nameCardCheck = () => {
|
|
427
|
+
const result = calculateByteLength(tempUserName.value) <= 32;
|
|
428
|
+
!result && TUIMessage({
|
|
429
|
+
type: 'warning',
|
|
430
|
+
message: t('The user name cannot exceed 32 characters'),
|
|
431
|
+
duration: MESSAGE_DURATION.NORMAL,
|
|
432
|
+
});
|
|
433
|
+
return result;
|
|
434
|
+
};
|
|
435
|
+
|
|
436
|
+
/**
|
|
437
|
+
* change UserNameCard
|
|
438
|
+
*/
|
|
439
|
+
async function handleChangeUserNameCard(userInfo: UserInfo) {
|
|
440
|
+
if (!nameCardCheck()) return;
|
|
441
|
+
try {
|
|
442
|
+
await roomEngine.instance?.changeUserNameCard({
|
|
443
|
+
userId: userInfo.userId,
|
|
444
|
+
nameCard: tempUserName.value,
|
|
445
|
+
});
|
|
446
|
+
TUIMessage({
|
|
447
|
+
type: 'success',
|
|
448
|
+
message: t('Name changed successfully'),
|
|
449
|
+
duration: MESSAGE_DURATION.NORMAL,
|
|
450
|
+
});
|
|
451
|
+
} catch (error) {
|
|
452
|
+
TUIMessage({
|
|
453
|
+
type: 'error',
|
|
454
|
+
message: t('change name failed, please try again.'),
|
|
455
|
+
duration: MESSAGE_DURATION.NORMAL,
|
|
456
|
+
});
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
|
|
373
460
|
function handleAction(userInfo: UserInfo) {
|
|
374
461
|
switch (dialogData.value.actionType) {
|
|
375
462
|
case 'kickUser':
|
|
@@ -378,13 +465,18 @@ export default function useMemberControl(props?: any) {
|
|
|
378
465
|
case 'transferOwner':
|
|
379
466
|
handleTransferOwner(userInfo);
|
|
380
467
|
break;
|
|
468
|
+
case 'changeUserNameCard':
|
|
469
|
+
handleChangeUserNameCard(userInfo);
|
|
470
|
+
isShowInput.value = false;
|
|
381
471
|
} isDialogVisible.value = false;
|
|
382
472
|
}
|
|
383
473
|
|
|
384
474
|
function handleCancelDialog() {
|
|
475
|
+
tempUserName.value = props.userInfo.nameCard || props.userInfo.userName;
|
|
385
476
|
isDialogVisible.value = false;
|
|
386
477
|
}
|
|
387
478
|
|
|
479
|
+
|
|
388
480
|
return {
|
|
389
481
|
props,
|
|
390
482
|
isMe,
|
|
@@ -395,5 +487,9 @@ export default function useMemberControl(props?: any) {
|
|
|
395
487
|
handleAction,
|
|
396
488
|
isDialogVisible,
|
|
397
489
|
dialogData,
|
|
490
|
+
tempUserName,
|
|
491
|
+
isShowInput,
|
|
492
|
+
editorInputEle,
|
|
493
|
+
editorInputEleContainer,
|
|
398
494
|
};
|
|
399
495
|
};
|
|
@@ -13,12 +13,16 @@ export default function useMemberItem(userInfo: UserInfo) {
|
|
|
13
13
|
const isCanOperateCurrentMember = computed(() => {
|
|
14
14
|
const isTargetUserRoomOwner = userInfo.userRole === TUIRole.kRoomOwner;
|
|
15
15
|
const isTargetUserGeneral = userInfo.userRole === TUIRole.kGeneralUser;
|
|
16
|
-
|
|
16
|
+
const isTargetUserMySelf = userInfo.userId === roomStore.localUser.userId;
|
|
17
|
+
return (isMaster.value && !isTargetUserRoomOwner) || (isAdmin.value && isTargetUserGeneral) || isTargetUserMySelf;
|
|
17
18
|
});
|
|
18
|
-
const isMemberControlAccessible = computed(() => (
|
|
19
|
-
// Only the homeowner or administrator can open the control panel
|
|
20
|
-
userInfo.userId === showUserId.value) && isCanOperateCurrentMember.value);
|
|
21
19
|
|
|
20
|
+
const isCanOperateMySelf = computed(() => {
|
|
21
|
+
return userInfo.userId === roomStore.localUser.userId;
|
|
22
|
+
})
|
|
23
|
+
const isMemberControlAccessible = computed(() => (
|
|
24
|
+
userInfo.userId === showUserId.value) && (isCanOperateMySelf.value || isCanOperateCurrentMember.value));
|
|
25
|
+
|
|
22
26
|
function openMemberControl() {
|
|
23
27
|
showUserId.value = userInfo.userId;
|
|
24
28
|
}
|
|
@@ -31,6 +35,7 @@ export default function useMemberItem(userInfo: UserInfo) {
|
|
|
31
35
|
isMemberControlAccessible,
|
|
32
36
|
openMemberControl,
|
|
33
37
|
closeMemberControl,
|
|
38
|
+
isCanOperateMySelf,
|
|
34
39
|
};
|
|
35
40
|
}
|
|
36
41
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<div :class="[isMobile ? 'member-info-mobile' : 'member-info']">
|
|
4
4
|
<div :class="!showStateIcon && isTargetUserAdmin ? 'member-basic-info-admin' : 'member-basic-info'">
|
|
5
5
|
<Avatar class="avatar-url" :img-src="userInfo.avatarUrl"></Avatar>
|
|
6
|
-
<div class="user-name">{{
|
|
6
|
+
<div class="user-name">{{ roomService.getDisplayName(userInfo) }}</div>
|
|
7
7
|
<div class="role-info">
|
|
8
8
|
<svg-icon
|
|
9
9
|
v-if="isTargetUserRoomOwner || isTargetUserAdmin"
|
|
@@ -43,6 +43,7 @@ import { useI18n } from '../../../locales';
|
|
|
43
43
|
import { isMobile } from '../../../utils/environment';
|
|
44
44
|
import UserIcon from '../../common/icons/UserIcon.vue';
|
|
45
45
|
import { TUIRole } from '@tencentcloud/tuiroom-engine-electron';
|
|
46
|
+
import { roomService } from '../../../services';
|
|
46
47
|
|
|
47
48
|
const { t } = useI18n();
|
|
48
49
|
|
|
@@ -30,11 +30,35 @@
|
|
|
30
30
|
</div>
|
|
31
31
|
<div v-if="!isGeneralUser" class="global-setting">
|
|
32
32
|
<tui-button class="button" size="default" @click="toggleManageAllMember(ManageControlType.AUDIO)">
|
|
33
|
-
{{
|
|
33
|
+
{{ audioManageInfo }}
|
|
34
34
|
</tui-button>
|
|
35
35
|
<tui-button class="button" size="default" @click="toggleManageAllMember(ManageControlType.VIDEO)">
|
|
36
|
-
{{
|
|
36
|
+
{{ videoManageInfo }}
|
|
37
37
|
</tui-button>
|
|
38
|
+
<div class="more-container" v-click-outside="handleShowMoreControl">
|
|
39
|
+
<tui-button class="button" size="default" @click="toggleClickMoreBtn">
|
|
40
|
+
{{ t('More') }}
|
|
41
|
+
<svg-icon
|
|
42
|
+
size="12"
|
|
43
|
+
:class="['more-arrow', showMoreControl ? 'up' : 'down']"
|
|
44
|
+
:icon="ArrowUpIcon"
|
|
45
|
+
/>
|
|
46
|
+
</tui-button>
|
|
47
|
+
<div
|
|
48
|
+
v-show="showMoreControl"
|
|
49
|
+
:class="['tui-theme-white', 'drop-down']"
|
|
50
|
+
>
|
|
51
|
+
<div
|
|
52
|
+
v-for="item in moreControlList"
|
|
53
|
+
:key="item.type"
|
|
54
|
+
class="user-operate-item"
|
|
55
|
+
@click="item.func(item.type)"
|
|
56
|
+
>
|
|
57
|
+
<svg-icon :icon="item.icon"></svg-icon>
|
|
58
|
+
<span class="operate-text">{{ item.title }}</span>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
38
62
|
</div>
|
|
39
63
|
<Dialog
|
|
40
64
|
v-model="showManageAllUserDialog"
|
|
@@ -67,13 +91,13 @@ import Dialog from '../common/base/Dialog/index.vue';
|
|
|
67
91
|
import { useRoomStore } from '../../stores/room';
|
|
68
92
|
import useIndex from './useIndexHooks';
|
|
69
93
|
import TuiButton from '../common/base/Button.vue';
|
|
94
|
+
import ArrowUpIcon from '../common/icons/ArrowUpIcon.vue';
|
|
95
|
+
import vClickOutside from '../../directives/vClickOutside';
|
|
70
96
|
|
|
71
97
|
const roomStore = useRoomStore();
|
|
72
98
|
|
|
73
99
|
const {
|
|
74
100
|
applyToAnchorList,
|
|
75
|
-
isMicrophoneDisableForAllUser,
|
|
76
|
-
isCameraDisableForAllUser,
|
|
77
101
|
isGeneralUser,
|
|
78
102
|
} = storeToRefs(roomStore);
|
|
79
103
|
|
|
@@ -94,8 +118,19 @@ const {
|
|
|
94
118
|
isOnStateTabActive,
|
|
95
119
|
handleToggleStaged,
|
|
96
120
|
applyToAnchorUserContent,
|
|
121
|
+
audioManageInfo,
|
|
122
|
+
videoManageInfo,
|
|
123
|
+
toggleClickMoreBtn,
|
|
124
|
+
showMoreControl,
|
|
125
|
+
moreControlList,
|
|
97
126
|
} = useIndex();
|
|
98
127
|
|
|
128
|
+
const handleShowMoreControl = () => {
|
|
129
|
+
if(showMoreControl.value) {
|
|
130
|
+
showMoreControl.value = false;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
99
134
|
</script>
|
|
100
135
|
|
|
101
136
|
<style lang="scss" scoped>
|
|
@@ -109,6 +144,15 @@ const {
|
|
|
109
144
|
--font-color: var(--font-color-1);
|
|
110
145
|
}
|
|
111
146
|
|
|
147
|
+
.tui-theme-black .more-container {
|
|
148
|
+
--operation-font-color: #6B758A;
|
|
149
|
+
--operation-box-shadow: 0px 3px 8px rgba(34, 38, 46, 0.30), 0px 6px 40px rgba(34, 38, 46, 0.30);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.tui-theme-white .more-container {
|
|
153
|
+
--operation-font-color: #6B758A;
|
|
154
|
+
--operation-box-shadow: 0px 3px 8px #E9F0FB, 0px 6px 40px rgba(0, 0, 0, 0.10);
|
|
155
|
+
}
|
|
112
156
|
.manage-member-container {
|
|
113
157
|
position: relative;
|
|
114
158
|
height: 100%;
|
|
@@ -234,10 +278,46 @@ const {
|
|
|
234
278
|
.global-setting {
|
|
235
279
|
display: flex;
|
|
236
280
|
justify-content: space-around;
|
|
237
|
-
margin: 20px;
|
|
281
|
+
margin: 20px 0;
|
|
238
282
|
}
|
|
239
283
|
}
|
|
240
284
|
.cancel-button {
|
|
241
285
|
margin-left: 12px;
|
|
242
286
|
}
|
|
287
|
+
.more-container{
|
|
288
|
+
display: flex;
|
|
289
|
+
position: relative;
|
|
290
|
+
.more-arrow {
|
|
291
|
+
margin-left: 2px;
|
|
292
|
+
&.down {
|
|
293
|
+
transform: rotate(180deg);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
.drop-down{
|
|
297
|
+
position: absolute;
|
|
298
|
+
bottom: 40px;
|
|
299
|
+
background: var(--background-color-1);
|
|
300
|
+
box-shadow: var(--operation-box-shadow);
|
|
301
|
+
border-radius: 8px;
|
|
302
|
+
z-index: 1;
|
|
303
|
+
right: 3px;
|
|
304
|
+
padding: 8px 7px;
|
|
305
|
+
.user-operate-item {
|
|
306
|
+
margin: 5px 7px;
|
|
307
|
+
cursor: pointer;
|
|
308
|
+
color: var(--operation-font-color);
|
|
309
|
+
height: 20px;
|
|
310
|
+
display: flex;
|
|
311
|
+
align-items: center;
|
|
312
|
+
.operate-text {
|
|
313
|
+
font-family: PingFang SC;
|
|
314
|
+
margin-left: 8px;
|
|
315
|
+
font-size: 14px;
|
|
316
|
+
white-space: nowrap;
|
|
317
|
+
line-height: 22px;
|
|
318
|
+
font-weight: 400;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
243
323
|
</style>
|