actions.ts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import { UserInfoType, useRtcStore } from "/@/store/modules/rtc";
  2. import type { ChatContentType } from "/@/store/modules/rtc";
  3. import Dialog from '/@/components/basic/dialog'
  4. import { getApp, useApp } from "/@/hooks/userApp";
  5. interface ActionDataType {
  6. type: string;
  7. data: any,
  8. members?: UserInfoType[],
  9. open?: boolean
  10. }
  11. export function handleActions({ data, type, members, open }: ActionDataType) {
  12. switch (type) {
  13. case 'user-init':
  14. break;
  15. case 'danmumsg':
  16. handleDanMumSg(data)
  17. break;
  18. case "changeScene":
  19. break;
  20. case 'user-join':
  21. handleUserJoin(members)
  22. break;
  23. case "user-leave":
  24. break;
  25. case "users-words":
  26. break;
  27. case "leader-dismiss":
  28. break;
  29. case "user-paint":
  30. handleUserPaint(open)
  31. break;
  32. case 'tagclick':
  33. break;
  34. case 'tagclose':
  35. break;
  36. case 'tag-image-index':
  37. break;
  38. case 'ask-currentscene':
  39. break;
  40. default:
  41. break;
  42. }
  43. }
  44. // 被动处理弹幕
  45. function handleDanMumSg(data: ChatContentType) {
  46. const rtcStore = useRtcStore();
  47. if (data.role == "leader") {
  48. data.Nickname = "主持人";
  49. }
  50. rtcStore.addToChatList(data)
  51. }
  52. // 其他用户进入
  53. function handleUserJoin(members?: UserInfoType[]) {
  54. const rtcStore = useRtcStore();
  55. members && rtcStore.setMemberList(members)
  56. }
  57. // 其他用户开起画笔通知
  58. async function handleUserPaint(open: boolean) {
  59. const app = await useApp();
  60. const rtcStore = useRtcStore();
  61. if (!rtcStore.isLeader) {
  62. if (open) {
  63. console.log(open)
  64. app.Connect.paint.show({
  65. role: rtcStore.role,
  66. paint: false,
  67. })
  68. Dialog.toast({ content: `主持人开启画笔` });
  69. } else {
  70. Dialog.toast({ content: `主持人关闭画笔` });
  71. app.Connect.paint.hide();
  72. }
  73. }
  74. }