@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.
Files changed (430) hide show
  1. package/es/components/Chat/ChatEditor/useChatEditor.mjs +1 -1
  2. package/es/components/Chat/MessageList/index.vue.mjs +1 -1
  3. package/es/components/Chat/MessageList/index.vue2.mjs +5 -1
  4. package/es/components/Chat/MessageList/useMessageListHook.mjs +4 -3
  5. package/es/components/ManageMember/MemberControl/index.vue.mjs +1 -1
  6. package/es/components/ManageMember/MemberControl/index.vue2.mjs +36 -19
  7. package/es/components/ManageMember/MemberControl/useMemberControlHooks.d.ts +6 -1
  8. package/es/components/ManageMember/MemberControl/useMemberControlHooks.mjs +113 -17
  9. package/es/components/ManageMember/MemberItem/useMemberItemHooks.d.ts +1 -0
  10. package/es/components/ManageMember/MemberItem/useMemberItemHooks.mjs +8 -6
  11. package/es/components/ManageMember/MemberItemCommon/MemberInfo.vue.mjs +1 -1
  12. package/es/components/ManageMember/MemberItemCommon/MemberInfo.vue2.mjs +7 -3
  13. package/es/components/ManageMember/index.vue.mjs +1 -1
  14. package/es/components/ManageMember/index.vue2.mjs +58 -7
  15. package/es/components/ManageMember/useIndexHooks.mjs +63 -14
  16. package/es/components/RoomContent/StreamContainer/index.vue.mjs +1 -1
  17. package/es/components/RoomContent/StreamContainer/index.vue2.mjs +10 -9
  18. package/es/components/RoomContent/StreamContainer/useStreamContainerHooks.d.ts +8 -0
  19. package/es/components/RoomContent/StreamContainer/useStreamContainerHooks.mjs +73 -29
  20. package/es/components/RoomContent/StreamRegion/index.vue.d.ts +5 -1
  21. package/es/components/RoomContent/StreamRegion/index.vue.mjs +1 -1
  22. package/es/components/RoomContent/StreamRegion/index.vue2.mjs +29 -5
  23. package/es/components/RoomFooter/ApplyControl/MasterApplyControl/index.vue.mjs +1 -1
  24. package/es/components/RoomFooter/ApplyControl/MasterApplyControl/index.vue2.mjs +10 -4
  25. package/es/components/RoomFooter/ApplyControl/MemberApplyControl.vue2.mjs +2 -2
  26. package/es/components/RoomFooter/AudioControl.vue2.mjs +2 -2
  27. package/es/components/RoomFooter/EndControl/index.vue.mjs +1 -1
  28. package/es/components/RoomFooter/EndControl/index.vue2.mjs +1 -1
  29. package/es/components/RoomFooter/EndControl/useEndControlHooks.mjs +16 -4
  30. package/es/components/RoomFooter/ScreenShareControl/Index.vue.mjs +1 -1
  31. package/es/components/RoomFooter/ScreenShareControl/Index.vue2.mjs +11 -3
  32. package/es/components/RoomFooter/VideoControl.vue.mjs +1 -1
  33. package/es/components/RoomFooter/VideoControl.vue2.mjs +8 -14
  34. package/es/components/RoomHeader/RoomInfo/index.vue2.mjs +2 -2
  35. package/es/components/RoomHeader/UserInfo/index.vue.d.ts +3 -11
  36. package/es/components/RoomHeader/UserInfo/index.vue.mjs +1 -1
  37. package/es/components/RoomHeader/UserInfo/index.vue2.mjs +9 -92
  38. package/es/components/RoomHeader/UserInfo/useUserInfoHooks.d.ts +2 -8
  39. package/es/components/RoomHeader/UserInfo/useUserInfoHooks.mjs +1 -18
  40. package/es/components/RoomHeader/index/NetworkInfo.vue2.mjs +2 -2
  41. package/es/components/RoomHome/RoomControl/index.vue.d.ts +10 -0
  42. package/es/components/RoomHome/RoomControl/index.vue.mjs +1 -1
  43. package/es/components/RoomHome/RoomControl/index.vue2.mjs +153 -120
  44. package/es/components/RoomInvite/index.vue2.mjs +2 -2
  45. package/es/components/RoomMore/index.vue2.mjs +2 -2
  46. package/es/components/RoomSidebar/useSideBarHooks.mjs +3 -2
  47. package/es/components/ScheduleConference/Contacts.vue.d.ts +22 -0
  48. package/es/components/ScheduleConference/Contacts.vue.mjs +7 -0
  49. package/es/components/ScheduleConference/Contacts.vue2.mjs +212 -0
  50. package/es/components/ScheduleConference/DurationTimePicker.vue.d.ts +18 -0
  51. package/es/components/ScheduleConference/DurationTimePicker.vue.mjs +67 -0
  52. package/es/components/ScheduleConference/DurationTimePicker.vue2.mjs +4 -0
  53. package/es/components/ScheduleConference/ScheduleConferencePanel.vue.d.ts +22 -0
  54. package/es/components/ScheduleConference/ScheduleConferencePanel.vue.mjs +7 -0
  55. package/es/components/ScheduleConference/ScheduleConferencePanel.vue2.mjs +613 -0
  56. package/es/components/ScheduleConference/ScheduleConferencePanel.vue3.mjs +1 -0
  57. package/es/components/ScheduleConference/ScheduleRoomControl.vue.d.ts +29 -0
  58. package/es/components/ScheduleConference/ScheduleRoomControl.vue.mjs +7 -0
  59. package/es/components/ScheduleConference/ScheduleRoomControl.vue2.mjs +464 -0
  60. package/es/components/ScheduleConference/ScheduleRoomControl.vue3.mjs +1 -0
  61. package/es/components/{common/base/Input.vue.d.ts → ScheduleConference/ScheduleRoomList.vue.d.ts} +11 -22
  62. package/es/components/ScheduleConference/ScheduleRoomList.vue.mjs +7 -0
  63. package/es/components/ScheduleConference/ScheduleRoomList.vue2.mjs +219 -0
  64. package/es/components/ScheduleConference/ScheduleRoomList.vue3.mjs +1 -0
  65. package/es/components/ScheduleConference/ShareLink.vue.d.ts +24 -0
  66. package/es/components/ScheduleConference/ShareLink.vue.mjs +7 -0
  67. package/es/components/ScheduleConference/ShareLink.vue2.mjs +113 -0
  68. package/es/components/ScheduleConference/ShareLink.vue3.mjs +1 -0
  69. package/es/components/ScheduleConference/TimezonePicker.vue.d.ts +18 -0
  70. package/es/components/ScheduleConference/TimezonePicker.vue.mjs +84 -0
  71. package/es/components/ScheduleConference/TimezonePicker.vue2.mjs +4 -0
  72. package/es/components/common/Avatar.vue.mjs +2 -2
  73. package/es/components/common/DeviceSelect.vue.mjs +1 -1
  74. package/es/components/common/DeviceSelect.vue2.mjs +58 -19
  75. package/es/components/common/Logo.vue.mjs +1 -1
  76. package/es/components/common/Logo.vue2.mjs +3 -3
  77. package/es/components/common/VideoProfile.vue2.mjs +2 -2
  78. package/es/components/common/base/Badge.vue.d.ts +1 -1
  79. package/es/components/common/base/Button.vue.d.ts +2 -2
  80. package/es/components/common/base/Checkbox.vue.d.ts +4 -2
  81. package/es/components/common/base/Checkbox.vue.mjs +2 -2
  82. package/es/components/common/base/Checkbox.vue2.mjs +12 -5
  83. package/es/components/common/base/Datepicker/Datepicker.vue.d.ts +18 -0
  84. package/es/components/common/base/Datepicker/Datepicker.vue.mjs +7 -0
  85. package/es/components/common/base/Datepicker/Datepicker.vue2.mjs +167 -0
  86. package/es/components/common/base/Datepicker/Datepicker.vue3.mjs +1 -0
  87. package/es/components/common/base/Datepicker/Timepicker.vue.d.ts +18 -0
  88. package/es/components/common/base/Datepicker/Timepicker.vue.mjs +66 -0
  89. package/es/components/common/base/Datepicker/Timepicker.vue2.mjs +4 -0
  90. package/es/components/common/base/Dialog/index.vue.d.ts +8 -4
  91. package/es/components/common/base/Dialog/index.vue.mjs +1 -1
  92. package/es/components/common/base/Dialog/index.vue2.mjs +17 -9
  93. package/es/components/common/base/Drawer.vue.d.ts +1 -1
  94. package/es/components/common/base/IconButton.vue.d.ts +2 -2
  95. package/es/components/common/base/Input/index.vue.d.ts +77 -0
  96. package/es/components/common/base/Input/index.vue.mjs +7 -0
  97. package/es/components/common/base/Input/index.vue2.mjs +140 -0
  98. package/es/components/common/base/Input/index.vue3.mjs +1 -0
  99. package/es/components/common/base/Message/Instance.mjs +1 -1
  100. package/es/components/common/base/Message/Message.vue.d.ts +4 -4
  101. package/es/components/common/base/MessageBox/index.d.ts +3 -2
  102. package/es/components/common/base/MessageBox/index.mjs +2 -1
  103. package/es/components/common/base/MessageBox/index.vue.d.ts +6 -1
  104. package/es/components/common/base/MessageBox/index.vue.mjs +1 -1
  105. package/es/components/common/base/MessageBox/index.vue2.mjs +60 -10
  106. package/es/components/common/base/Notification/index.vue.d.ts +2 -2
  107. package/es/components/common/base/Option.vue.d.ts +11 -1
  108. package/es/components/common/base/Option.vue.mjs +1 -1
  109. package/es/components/common/base/Option.vue2.mjs +16 -6
  110. package/es/components/common/base/Select.vue.d.ts +5 -1
  111. package/es/components/common/base/Select.vue.mjs +1 -1
  112. package/es/components/common/base/Select.vue2.mjs +12 -11
  113. package/es/components/common/base/index.d.ts +1 -1
  114. package/es/components/common/icons/AllMembersShareScreenIcon.vue.d.ts +2 -0
  115. package/es/components/common/icons/AllMembersShareScreenIcon.vue.mjs +22 -0
  116. package/es/components/common/icons/CalendarIcon.vue.d.ts +2 -0
  117. package/es/components/common/icons/CalendarIcon.vue.mjs +24 -0
  118. package/es/components/common/icons/CopyIcon.vue.mjs +2 -2
  119. package/es/components/common/icons/EditNameCardIcon.vue.d.ts +2 -0
  120. package/es/components/common/icons/EditNameCardIcon.vue.mjs +21 -0
  121. package/es/components/common/icons/EllipsisIcon.vue.d.ts +2 -0
  122. package/es/components/common/icons/EllipsisIcon.vue.mjs +34 -0
  123. package/es/components/common/icons/HostShareScreenIcon.vue.d.ts +2 -0
  124. package/es/components/common/icons/HostShareScreenIcon.vue.mjs +22 -0
  125. package/es/components/common/icons/LinkIcon.vue.d.ts +2 -0
  126. package/es/components/common/icons/LinkIcon.vue.mjs +36 -0
  127. package/es/components/common/icons/LoadingScheduleIcon.vue.d.ts +2 -0
  128. package/es/components/common/icons/LoadingScheduleIcon.vue.mjs +24 -0
  129. package/es/components/common/icons/ScheduleAttendees.vue.d.ts +6 -0
  130. package/es/components/common/icons/ScheduleAttendees.vue.mjs +25 -0
  131. package/es/components/common/icons/ScheduleAttendees.vue2.mjs +4 -0
  132. package/es/components/common/icons/ScheduleRoomIcon.vue.d.ts +2 -0
  133. package/es/components/common/icons/ScheduleRoomIcon.vue.mjs +24 -0
  134. package/es/components/common/icons/SuccessIcon.vue.d.ts +2 -0
  135. package/es/components/common/icons/SuccessIcon.vue.mjs +32 -0
  136. package/es/components/common/icons/WarningIcon.vue.d.ts +2 -0
  137. package/es/components/common/icons/WarningIcon.vue.mjs +29 -0
  138. package/es/conference.d.ts +2 -0
  139. package/es/conference.mjs +3 -0
  140. package/es/conference.vue.mjs +1 -1
  141. package/es/conference.vue2.mjs +9 -4
  142. package/es/directives/vDblTouch.d.ts +10 -0
  143. package/es/directives/vTap.d.ts +1 -0
  144. package/es/directives/vTap.mjs +30 -3
  145. package/es/extension/chatExtension.mjs +3 -3
  146. package/es/hooks/useDeviceManager.mjs +3 -3
  147. package/es/hooks/useMasterApplyControl.mjs +5 -5
  148. package/es/hooks/useRoomEngine.mjs +4 -4
  149. package/es/index.d.ts +1 -0
  150. package/es/index.mjs +2581 -1743
  151. package/es/locales/en-US.d.ts +75 -0
  152. package/es/locales/en-US.mjs +78 -1
  153. package/es/locales/zh-CN.d.ts +79 -0
  154. package/es/locales/zh-CN.mjs +83 -2
  155. package/es/preConference.vue.d.ts +10 -0
  156. package/es/preConference.vue.mjs +1 -1
  157. package/es/preConference.vue2.mjs +89 -13
  158. package/es/services/function/errorHandler.d.ts +10 -0
  159. package/es/services/function/errorHandler.mjs +158 -0
  160. package/es/services/function/virtualBackground.mjs +4 -3
  161. package/es/services/index.d.ts +1 -0
  162. package/es/services/manager/roomActionManager.d.ts +1 -0
  163. package/es/services/manager/roomActionManager.mjs +10 -18
  164. package/es/services/manager/scheduleConferenceManager.d.ts +113 -0
  165. package/es/services/manager/scheduleConferenceManager.mjs +141 -0
  166. package/es/services/manager/userManager.d.ts +2 -0
  167. package/es/services/manager/userManager.mjs +7 -3
  168. package/es/services/roomService.d.ts +8 -0
  169. package/es/services/roomService.mjs +42 -16
  170. package/es/services/types.d.ts +8 -0
  171. package/es/services/types.mjs +2 -0
  172. package/es/stores/basic.mjs +9 -3
  173. package/es/stores/room.d.ts +2 -0
  174. package/es/stores/room.mjs +55 -24
  175. package/es/utils/adapter.mjs +39 -3
  176. package/es/utils/utils.d.ts +3 -0
  177. package/es/utils/utils.mjs +64 -0
  178. package/lib/components/Chat/ChatEditor/useChatEditor.js +1 -1
  179. package/lib/components/Chat/MessageList/index.vue.js +1 -1
  180. package/lib/components/Chat/MessageList/index.vue2.js +5 -1
  181. package/lib/components/Chat/MessageList/useMessageListHook.js +2 -1
  182. package/lib/components/ManageMember/MemberControl/index.vue.js +1 -1
  183. package/lib/components/ManageMember/MemberControl/index.vue2.js +35 -18
  184. package/lib/components/ManageMember/MemberControl/useMemberControlHooks.d.ts +6 -1
  185. package/lib/components/ManageMember/MemberControl/useMemberControlHooks.js +113 -17
  186. package/lib/components/ManageMember/MemberItem/useMemberItemHooks.d.ts +1 -0
  187. package/lib/components/ManageMember/MemberItem/useMemberItemHooks.js +8 -6
  188. package/lib/components/ManageMember/MemberItemCommon/MemberInfo.vue.js +1 -1
  189. package/lib/components/ManageMember/MemberItemCommon/MemberInfo.vue2.js +5 -1
  190. package/lib/components/ManageMember/index.vue.js +1 -1
  191. package/lib/components/ManageMember/index.vue2.js +57 -6
  192. package/lib/components/ManageMember/useIndexHooks.js +63 -14
  193. package/lib/components/RoomContent/StreamContainer/index.vue.js +1 -1
  194. package/lib/components/RoomContent/StreamContainer/index.vue2.js +10 -9
  195. package/lib/components/RoomContent/StreamContainer/useStreamContainerHooks.d.ts +8 -0
  196. package/lib/components/RoomContent/StreamContainer/useStreamContainerHooks.js +72 -28
  197. package/lib/components/RoomContent/StreamRegion/index.vue.d.ts +5 -1
  198. package/lib/components/RoomContent/StreamRegion/index.vue.js +1 -1
  199. package/lib/components/RoomContent/StreamRegion/index.vue2.js +27 -3
  200. package/lib/components/RoomFooter/ApplyControl/MasterApplyControl/index.vue.js +1 -1
  201. package/lib/components/RoomFooter/ApplyControl/MasterApplyControl/index.vue2.js +8 -2
  202. package/lib/components/RoomFooter/EndControl/index.vue.js +1 -1
  203. package/lib/components/RoomFooter/EndControl/index.vue2.js +1 -1
  204. package/lib/components/RoomFooter/EndControl/useEndControlHooks.js +14 -2
  205. package/lib/components/RoomFooter/ScreenShareControl/Index.vue.js +1 -1
  206. package/lib/components/RoomFooter/ScreenShareControl/Index.vue2.js +9 -1
  207. package/lib/components/RoomFooter/VideoControl.vue.js +1 -1
  208. package/lib/components/RoomFooter/VideoControl.vue2.js +6 -12
  209. package/lib/components/RoomHeader/UserInfo/index.vue.d.ts +3 -11
  210. package/lib/components/RoomHeader/UserInfo/index.vue.js +1 -1
  211. package/lib/components/RoomHeader/UserInfo/index.vue2.js +6 -89
  212. package/lib/components/RoomHeader/UserInfo/useUserInfoHooks.d.ts +2 -8
  213. package/lib/components/RoomHeader/UserInfo/useUserInfoHooks.js +1 -18
  214. package/lib/components/RoomHome/RoomControl/index.vue.d.ts +10 -0
  215. package/lib/components/RoomHome/RoomControl/index.vue.js +1 -1
  216. package/lib/components/RoomHome/RoomControl/index.vue2.js +150 -117
  217. package/lib/components/RoomSidebar/useSideBarHooks.js +3 -2
  218. package/lib/components/ScheduleConference/Contacts.vue.d.ts +22 -0
  219. package/lib/components/ScheduleConference/Contacts.vue.js +7 -0
  220. package/lib/components/ScheduleConference/Contacts.vue2.js +212 -0
  221. package/lib/components/ScheduleConference/DurationTimePicker.vue.d.ts +18 -0
  222. package/lib/components/ScheduleConference/DurationTimePicker.vue.js +67 -0
  223. package/lib/components/ScheduleConference/DurationTimePicker.vue2.js +4 -0
  224. package/lib/components/ScheduleConference/ScheduleConferencePanel.vue.d.ts +22 -0
  225. package/lib/components/ScheduleConference/ScheduleConferencePanel.vue.js +7 -0
  226. package/lib/components/ScheduleConference/ScheduleConferencePanel.vue2.js +613 -0
  227. package/lib/components/ScheduleConference/ScheduleConferencePanel.vue3.js +1 -0
  228. package/lib/components/ScheduleConference/ScheduleRoomControl.vue.d.ts +29 -0
  229. package/lib/components/ScheduleConference/ScheduleRoomControl.vue.js +7 -0
  230. package/lib/components/ScheduleConference/ScheduleRoomControl.vue2.js +464 -0
  231. package/lib/components/ScheduleConference/ScheduleRoomControl.vue3.js +1 -0
  232. package/lib/components/{common/base/Input.vue.d.ts → ScheduleConference/ScheduleRoomList.vue.d.ts} +11 -22
  233. package/lib/components/ScheduleConference/ScheduleRoomList.vue.js +7 -0
  234. package/lib/components/ScheduleConference/ScheduleRoomList.vue2.js +219 -0
  235. package/lib/components/ScheduleConference/ScheduleRoomList.vue3.js +1 -0
  236. package/lib/components/ScheduleConference/ShareLink.vue.d.ts +24 -0
  237. package/lib/components/ScheduleConference/ShareLink.vue.js +7 -0
  238. package/lib/components/ScheduleConference/ShareLink.vue2.js +113 -0
  239. package/lib/components/ScheduleConference/ShareLink.vue3.js +1 -0
  240. package/lib/components/ScheduleConference/TimezonePicker.vue.d.ts +18 -0
  241. package/lib/components/ScheduleConference/TimezonePicker.vue.js +84 -0
  242. package/lib/components/ScheduleConference/TimezonePicker.vue2.js +4 -0
  243. package/lib/components/common/Avatar.vue.js +2 -2
  244. package/lib/components/common/DeviceSelect.vue.js +1 -1
  245. package/lib/components/common/DeviceSelect.vue2.js +57 -18
  246. package/lib/components/common/Logo.vue.js +1 -1
  247. package/lib/components/common/Logo.vue2.js +2 -2
  248. package/lib/components/common/base/Badge.vue.d.ts +1 -1
  249. package/lib/components/common/base/Button.vue.d.ts +2 -2
  250. package/lib/components/common/base/Checkbox.vue.d.ts +4 -2
  251. package/lib/components/common/base/Checkbox.vue.js +2 -2
  252. package/lib/components/common/base/Checkbox.vue2.js +11 -4
  253. package/lib/components/common/base/Datepicker/Datepicker.vue.d.ts +18 -0
  254. package/lib/components/common/base/Datepicker/Datepicker.vue.js +7 -0
  255. package/lib/components/common/base/Datepicker/Datepicker.vue2.js +167 -0
  256. package/lib/components/common/base/Datepicker/Datepicker.vue3.js +1 -0
  257. package/lib/components/common/base/Datepicker/Timepicker.vue.d.ts +18 -0
  258. package/lib/components/common/base/Datepicker/Timepicker.vue.js +66 -0
  259. package/lib/components/common/base/Datepicker/Timepicker.vue2.js +4 -0
  260. package/lib/components/common/base/Dialog/index.vue.d.ts +8 -4
  261. package/lib/components/common/base/Dialog/index.vue.js +1 -1
  262. package/lib/components/common/base/Dialog/index.vue2.js +16 -8
  263. package/lib/components/common/base/Drawer.vue.d.ts +1 -1
  264. package/lib/components/common/base/IconButton.vue.d.ts +2 -2
  265. package/lib/components/common/base/Input/index.vue.d.ts +77 -0
  266. package/lib/components/common/base/Input/index.vue.js +7 -0
  267. package/lib/components/common/base/Input/index.vue2.js +140 -0
  268. package/lib/components/common/base/Input/index.vue3.js +1 -0
  269. package/lib/components/common/base/Message/Instance.js +1 -1
  270. package/lib/components/common/base/Message/Message.vue.d.ts +4 -4
  271. package/lib/components/common/base/MessageBox/index.d.ts +3 -2
  272. package/lib/components/common/base/MessageBox/index.js +2 -1
  273. package/lib/components/common/base/MessageBox/index.vue.d.ts +6 -1
  274. package/lib/components/common/base/MessageBox/index.vue.js +1 -1
  275. package/lib/components/common/base/MessageBox/index.vue2.js +59 -9
  276. package/lib/components/common/base/Notification/index.vue.d.ts +2 -2
  277. package/lib/components/common/base/Option.vue.d.ts +11 -1
  278. package/lib/components/common/base/Option.vue.js +1 -1
  279. package/lib/components/common/base/Option.vue2.js +15 -5
  280. package/lib/components/common/base/Select.vue.d.ts +5 -1
  281. package/lib/components/common/base/Select.vue.js +1 -1
  282. package/lib/components/common/base/Select.vue2.js +11 -10
  283. package/lib/components/common/base/index.d.ts +1 -1
  284. package/lib/components/common/icons/AllMembersShareScreenIcon.vue.d.ts +2 -0
  285. package/lib/components/common/icons/AllMembersShareScreenIcon.vue.js +22 -0
  286. package/lib/components/common/icons/CalendarIcon.vue.d.ts +2 -0
  287. package/lib/components/common/icons/CalendarIcon.vue.js +24 -0
  288. package/lib/components/common/icons/CopyIcon.vue.js +2 -2
  289. package/lib/components/common/icons/EditNameCardIcon.vue.d.ts +2 -0
  290. package/lib/components/common/icons/EditNameCardIcon.vue.js +21 -0
  291. package/lib/components/common/icons/EllipsisIcon.vue.d.ts +2 -0
  292. package/lib/components/common/icons/EllipsisIcon.vue.js +34 -0
  293. package/lib/components/common/icons/HostShareScreenIcon.vue.d.ts +2 -0
  294. package/lib/components/common/icons/HostShareScreenIcon.vue.js +22 -0
  295. package/lib/components/common/icons/LinkIcon.vue.d.ts +2 -0
  296. package/lib/components/common/icons/LinkIcon.vue.js +36 -0
  297. package/lib/components/common/icons/LoadingScheduleIcon.vue.d.ts +2 -0
  298. package/lib/components/common/icons/LoadingScheduleIcon.vue.js +24 -0
  299. package/lib/components/common/icons/ScheduleAttendees.vue.d.ts +6 -0
  300. package/lib/components/common/icons/ScheduleAttendees.vue.js +25 -0
  301. package/lib/components/common/icons/ScheduleAttendees.vue2.js +4 -0
  302. package/lib/components/common/icons/ScheduleRoomIcon.vue.d.ts +2 -0
  303. package/lib/components/common/icons/ScheduleRoomIcon.vue.js +24 -0
  304. package/lib/components/common/icons/SuccessIcon.vue.d.ts +2 -0
  305. package/lib/components/common/icons/SuccessIcon.vue.js +32 -0
  306. package/lib/components/common/icons/WarningIcon.vue.d.ts +2 -0
  307. package/lib/components/common/icons/WarningIcon.vue.js +29 -0
  308. package/lib/conference.d.ts +2 -0
  309. package/lib/conference.js +3 -0
  310. package/lib/conference.vue.js +1 -1
  311. package/lib/conference.vue2.js +9 -4
  312. package/lib/directives/vDblTouch.d.ts +10 -0
  313. package/lib/directives/vTap.d.ts +1 -0
  314. package/lib/directives/vTap.js +30 -3
  315. package/lib/extension/chatExtension.js +1 -1
  316. package/lib/hooks/useMasterApplyControl.js +3 -3
  317. package/lib/index.d.ts +1 -0
  318. package/lib/index.js +2588 -1744
  319. package/lib/locales/en-US.d.ts +75 -0
  320. package/lib/locales/en-US.js +78 -1
  321. package/lib/locales/zh-CN.d.ts +79 -0
  322. package/lib/locales/zh-CN.js +83 -2
  323. package/lib/preConference.vue.d.ts +10 -0
  324. package/lib/preConference.vue.js +1 -1
  325. package/lib/preConference.vue2.js +88 -12
  326. package/lib/services/function/errorHandler.d.ts +10 -0
  327. package/lib/services/function/errorHandler.js +158 -0
  328. package/lib/services/function/virtualBackground.js +3 -2
  329. package/lib/services/index.d.ts +1 -0
  330. package/lib/services/manager/roomActionManager.d.ts +1 -0
  331. package/lib/services/manager/roomActionManager.js +10 -18
  332. package/lib/services/manager/scheduleConferenceManager.d.ts +113 -0
  333. package/lib/services/manager/scheduleConferenceManager.js +147 -0
  334. package/lib/services/manager/userManager.d.ts +2 -0
  335. package/lib/services/manager/userManager.js +4 -0
  336. package/lib/services/roomService.d.ts +8 -0
  337. package/lib/services/roomService.js +38 -12
  338. package/lib/services/types.d.ts +8 -0
  339. package/lib/services/types.js +2 -0
  340. package/lib/stores/basic.js +8 -2
  341. package/lib/stores/room.d.ts +2 -0
  342. package/lib/stores/room.js +55 -24
  343. package/lib/utils/adapter.js +39 -3
  344. package/lib/utils/utils.d.ts +3 -0
  345. package/lib/utils/utils.js +64 -0
  346. package/package.json +2 -2
  347. package/src/TUIRoom/assets/style/black-theme.scss +3 -1
  348. package/src/TUIRoom/assets/style/white-theme.scss +3 -1
  349. package/src/TUIRoom/components/Chat/ChatEditor/useChatEditor.ts +1 -1
  350. package/src/TUIRoom/components/Chat/MessageList/index.vue +5 -1
  351. package/src/TUIRoom/components/Chat/MessageList/useMessageListHook.ts +2 -1
  352. package/src/TUIRoom/components/ManageMember/MemberControl/index.vue +23 -7
  353. package/src/TUIRoom/components/ManageMember/MemberControl/useMemberControlHooks.ts +110 -14
  354. package/src/TUIRoom/components/ManageMember/MemberItem/useMemberItemHooks.ts +9 -4
  355. package/src/TUIRoom/components/ManageMember/MemberItemCommon/MemberInfo.vue +2 -1
  356. package/src/TUIRoom/components/ManageMember/index.vue +85 -5
  357. package/src/TUIRoom/components/ManageMember/useIndexHooks.ts +58 -9
  358. package/src/TUIRoom/components/RoomContent/StreamContainer/index.vue +7 -6
  359. package/src/TUIRoom/components/RoomContent/StreamContainer/useStreamContainerHooks.ts +90 -26
  360. package/src/TUIRoom/components/RoomContent/StreamRegion/index.vue +27 -3
  361. package/src/TUIRoom/components/RoomFooter/ApplyControl/MasterApplyControl/index.vue +2 -1
  362. package/src/TUIRoom/components/RoomFooter/EndControl/index.vue +1 -1
  363. package/src/TUIRoom/components/RoomFooter/EndControl/useEndControlHooks.ts +10 -3
  364. package/src/TUIRoom/components/RoomFooter/ScreenShareControl/Index.vue +11 -1
  365. package/src/TUIRoom/components/RoomFooter/VideoControl.vue +0 -7
  366. package/src/TUIRoom/components/RoomHeader/UserInfo/index.vue +19 -50
  367. package/src/TUIRoom/components/RoomHeader/UserInfo/useUserInfoHooks.ts +1 -28
  368. package/src/TUIRoom/components/RoomHome/RoomControl/index.vue +91 -73
  369. package/src/TUIRoom/components/RoomSidebar/useSideBarHooks.ts +3 -2
  370. package/src/TUIRoom/components/ScheduleConference/Contacts.vue +265 -0
  371. package/src/TUIRoom/components/ScheduleConference/DurationTimePicker.vue +54 -0
  372. package/src/TUIRoom/components/ScheduleConference/ScheduleConferencePanel.vue +731 -0
  373. package/src/TUIRoom/components/ScheduleConference/ScheduleRoomControl.vue +577 -0
  374. package/src/TUIRoom/components/ScheduleConference/ScheduleRoomList.vue +295 -0
  375. package/src/TUIRoom/components/ScheduleConference/ShareLink.vue +122 -0
  376. package/src/TUIRoom/components/ScheduleConference/TimezonePicker.vue +70 -0
  377. package/src/TUIRoom/components/common/DeviceSelect.vue +62 -20
  378. package/src/TUIRoom/components/common/Logo.vue +3 -3
  379. package/src/TUIRoom/components/common/base/Checkbox.vue +19 -11
  380. package/src/TUIRoom/components/common/base/Datepicker/Datepicker.vue +252 -0
  381. package/src/TUIRoom/components/common/base/Datepicker/Timepicker.vue +54 -0
  382. package/src/TUIRoom/components/common/base/Dialog/index.vue +17 -7
  383. package/src/TUIRoom/components/common/base/Input/index.vue +187 -0
  384. package/src/TUIRoom/components/common/base/Message/Instance.ts +2 -1
  385. package/src/TUIRoom/components/common/base/MessageBox/index.ts +4 -2
  386. package/src/TUIRoom/components/common/base/MessageBox/index.vue +57 -26
  387. package/src/TUIRoom/components/common/base/Option.vue +14 -4
  388. package/src/TUIRoom/components/common/base/Select.vue +18 -13
  389. package/src/TUIRoom/components/common/base/index.ts +1 -1
  390. package/src/TUIRoom/components/common/icons/AllMembersShareScreenIcon.vue +15 -0
  391. package/src/TUIRoom/components/common/icons/ArrowStrokeRightIcon.vue +8 -0
  392. package/src/TUIRoom/components/common/icons/CalendarIcon.vue +6 -0
  393. package/src/TUIRoom/components/common/icons/EditNameCardIcon.vue +13 -0
  394. package/src/TUIRoom/components/common/icons/EllipsisIcon.vue +8 -0
  395. package/src/TUIRoom/components/common/icons/HostShareScreenIcon.vue +13 -0
  396. package/src/TUIRoom/components/common/icons/LinkIcon.vue +10 -0
  397. package/src/TUIRoom/components/common/icons/LoadingScheduleIcon.vue +6 -0
  398. package/src/TUIRoom/components/common/icons/ScheduleAttendees.vue +13 -0
  399. package/src/TUIRoom/components/common/icons/ScheduleRoomIcon.vue +6 -0
  400. package/src/TUIRoom/components/common/icons/SuccessIcon.vue +8 -0
  401. package/src/TUIRoom/components/common/icons/WarningIcon.vue +13 -0
  402. package/src/TUIRoom/conference.ts +6 -0
  403. package/src/TUIRoom/conference.vue +16 -5
  404. package/src/TUIRoom/directives/vDblTouch.ts +41 -0
  405. package/src/TUIRoom/directives/vTap.ts +32 -3
  406. package/src/TUIRoom/extension/chatExtension.ts +1 -1
  407. package/src/TUIRoom/hooks/useMasterApplyControl.ts +2 -2
  408. package/src/TUIRoom/index.ts +1 -0
  409. package/src/TUIRoom/locales/en-US.ts +77 -0
  410. package/src/TUIRoom/locales/zh-CN.ts +82 -1
  411. package/src/TUIRoom/preConference.vue +97 -2
  412. package/src/TUIRoom/services/function/errorHandler.ts +169 -0
  413. package/src/TUIRoom/services/function/virtualBackground.ts +3 -3
  414. package/src/TUIRoom/services/index.ts +1 -0
  415. package/src/TUIRoom/services/manager/roomActionManager.ts +10 -18
  416. package/src/TUIRoom/services/manager/scheduleConferenceManager.ts +263 -0
  417. package/src/TUIRoom/services/manager/userManager.ts +6 -0
  418. package/src/TUIRoom/services/roomService.ts +41 -13
  419. package/src/TUIRoom/services/types.ts +8 -1
  420. package/src/TUIRoom/stores/basic.ts +9 -2
  421. package/src/TUIRoom/stores/room.ts +60 -19
  422. package/src/TUIRoom/utils/adapter.ts +44 -4
  423. package/src/TUIRoom/utils/utils.ts +42 -0
  424. package/es/components/common/base/Input.vue.mjs +0 -7
  425. package/es/components/common/base/Input.vue2.mjs +0 -34
  426. package/lib/components/common/base/Input.vue.js +0 -7
  427. package/lib/components/common/base/Input.vue2.js +0 -34
  428. package/src/TUIRoom/components/common/base/Input.vue +0 -61
  429. /package/es/components/{common/base/Input.vue3.mjs → ScheduleConference/Contacts.vue3.mjs} +0 -0
  430. /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.nick || item.from }}
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 v-if="!isGeneralUser" class="member-control-container">
3
- <tui-button class="button" size="default" @click="singleControl.func(props.userInfo)">
4
- {{ singleControl.title }}
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
- <span>{{ dialogData.content }}</span>
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(() => controlList.value.slice(1));
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 { TUIMediaDevice, TUIRole, TUIRequestCallbackType, TUIErrorCode } from '@tencentcloud/tuiroom-engine-electron';
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 dialogData: Ref<{ title: string; content: string; confirmText: string; actionType: ActionType }> = ref({
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: props.userInfo.userName || props.userInfo.userId }));
42
- const transferOwnerTitle = computed(() => t('Transfer the roomOwner to sb', { name: props.userInfo.userName || props.userInfo.userId }));
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: userInfo.userName || userInfo.userId })}`,
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: userInfo.userName || userInfo.userId })}`,
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: userInfo.userName || userInfo.userId })}`,
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: userInfo.userName || userInfo.userId })}`,
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: userInfo.userName || userInfo.userId }),
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
- return (isMaster.value && !isTargetUserRoomOwner) || (isAdmin.value && isTargetUserGeneral);
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">{{ userInfo.userName || userInfo.userId }}</div>
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
- {{ isMicrophoneDisableForAllUser ? t('Enable all audios') : t('Disable all audios') }}
33
+ {{ audioManageInfo }}
34
34
  </tui-button>
35
35
  <tui-button class="button" size="default" @click="toggleManageAllMember(ManageControlType.VIDEO)">
36
- {{ isCameraDisableForAllUser ? t('Enable all videos') : t('Disable all videos') }}
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>