12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- import { UserInfoType, useRtcStore } from "/@/store/modules/rtc";
- import type { ChatContentType } from "/@/store/modules/rtc";
- import Dialog from '/@/components/basic/dialog'
- import { getApp, useApp } from "/@/hooks/userApp";
- interface ActionDataType {
- type: string;
- data: any,
- members?: UserInfoType[],
- open?: boolean
- }
- export function handleActions({ data, type, members, open }: ActionDataType) {
- switch (type) {
- case 'user-init':
- break;
- case 'danmumsg':
- handleDanMumSg(data)
- break;
- case "changeScene":
- break;
- case 'user-join':
- handleUserJoin(members)
- break;
- case "user-leave":
- break;
- case "users-words":
- break;
- case "leader-dismiss":
- break;
- case "user-paint":
- handleUserPaint(open)
- break;
- case 'tagclick':
- break;
- case 'tagclose':
- break;
- case 'tag-image-index':
- break;
- case 'ask-currentscene':
- break;
- default:
- break;
- }
- }
- // 被动处理弹幕
- function handleDanMumSg(data: ChatContentType) {
- const rtcStore = useRtcStore();
- if (data.role == "leader") {
- data.Nickname = "主持人";
- }
- rtcStore.addToChatList(data)
- }
- // 其他用户进入
- function handleUserJoin(members?: UserInfoType[]) {
- const rtcStore = useRtcStore();
- members && rtcStore.setMemberList(members)
- }
- // 其他用户开起画笔通知
- async function handleUserPaint(open: boolean) {
- const app = await useApp();
- const rtcStore = useRtcStore();
- if (!rtcStore.isLeader) {
- if (open) {
- console.log(open)
- app.Connect.paint.show({
- role: rtcStore.role,
- paint: false,
- })
- Dialog.toast({ content: `主持人开启画笔` });
- } else {
- Dialog.toast({ content: `主持人关闭画笔` });
- app.Connect.paint.hide();
- }
- }
- }
|