更新页面
This commit is contained in:
460
src/views/consultation/components/js/useConfernceControlEvent.js
Normal file
460
src/views/consultation/components/js/useConfernceControlEvent.js
Normal file
@ -0,0 +1,460 @@
|
||||
import { ref, onUnmounted } from 'vue';
|
||||
import { ElNotification } from 'element-plus';
|
||||
import emitter from "@/utils/eventBus.js";
|
||||
import useConferenceControlModule from '@/views/consultation/sdk/conferenceControl';
|
||||
import store from '@/store'
|
||||
|
||||
const sdkConfernceControlModule = useConferenceControlModule();
|
||||
|
||||
// 通知时长
|
||||
const duration = 5 * 1000;
|
||||
|
||||
const lockCallbackId = ref('');
|
||||
const activeConfigChangeCallbackId = ref('');
|
||||
const memberJoinCallbackId = ref('');
|
||||
const memberLeftCallbackId = ref('');
|
||||
const updateSubjecCallbackId = ref('');
|
||||
const updateMemberNickCallbackId = ref('');
|
||||
const inviteMemberCallbackId = ref('');
|
||||
const memberCameraCallbackId = ref('');
|
||||
const memberProhibitionCallbackId = ref('');
|
||||
const allMemberProhibitionCallbackId = ref('');
|
||||
const memberMuteCallbackId = ref('');
|
||||
const memberSpeakCallbackId = ref('');
|
||||
const voiceStimulationCallbackId = ref('');
|
||||
const memberSpeakingStateCallbackId = ref('');
|
||||
const setLayoutTypenCallbackId = ref('');
|
||||
const setMemberRoleCallbackId = ref('');
|
||||
const cancelMemberSpeakCallbackId = ref('');
|
||||
const addMemberCallbackId = ref('');
|
||||
const deleteMemberCallbackId = ref('');
|
||||
const screenSharingCallbackId = ref('');
|
||||
const deviceListChangegCallbackId = ref('');
|
||||
|
||||
// 移除事件注册
|
||||
const unRegisterConferenceControldata = () => {
|
||||
sdkConfernceControlModule.removeLockListener(lockCallbackId.value);
|
||||
sdkConfernceControlModule.removeActiveConfigChangeListener(
|
||||
activeConfigChangeCallbackId.value
|
||||
);
|
||||
sdkConfernceControlModule.removeMemberJoinListener(
|
||||
memberJoinCallbackId.value
|
||||
);
|
||||
sdkConfernceControlModule.removeMemberLeftListener(
|
||||
memberLeftCallbackId.value
|
||||
);
|
||||
sdkConfernceControlModule.removeUpdateSubjectListener(
|
||||
updateSubjecCallbackId.value
|
||||
);
|
||||
sdkConfernceControlModule.removeModifyMemberNickListener(
|
||||
updateMemberNickCallbackId.value
|
||||
);
|
||||
sdkConfernceControlModule.removeInviteMemberListener(
|
||||
inviteMemberCallbackId.value
|
||||
);
|
||||
sdkConfernceControlModule.removeMemberCameraListener(
|
||||
memberCameraCallbackId.value
|
||||
);
|
||||
sdkConfernceControlModule.removeMemberProhibitionListener(
|
||||
memberProhibitionCallbackId.value
|
||||
);
|
||||
sdkConfernceControlModule.removeAllMemberProhibitionListener(
|
||||
allMemberProhibitionCallbackId.value
|
||||
);
|
||||
sdkConfernceControlModule.removeMemberMuteListener(
|
||||
memberMuteCallbackId.value
|
||||
);
|
||||
sdkConfernceControlModule.removeAssignMemberSpeakListener(
|
||||
memberSpeakCallbackId.value
|
||||
);
|
||||
sdkConfernceControlModule.removeVoiceStimulationListener(
|
||||
voiceStimulationCallbackId.value
|
||||
);
|
||||
sdkConfernceControlModule.removeMemberSpeakingStateListener(
|
||||
memberSpeakingStateCallbackId.value
|
||||
);
|
||||
sdkConfernceControlModule.removeSetLayoutTypeListener(
|
||||
setLayoutTypenCallbackId.value
|
||||
);
|
||||
sdkConfernceControlModule.removeSetMemberRoleListener(
|
||||
setMemberRoleCallbackId.value
|
||||
);
|
||||
sdkConfernceControlModule.removeCancelMemberSpeakListener(
|
||||
cancelMemberSpeakCallbackId.value
|
||||
);
|
||||
sdkConfernceControlModule.removeAddMemberListener(addMemberCallbackId.value);
|
||||
sdkConfernceControlModule.removeDeleteMemberListener(
|
||||
deleteMemberCallbackId.value
|
||||
);
|
||||
sdkConfernceControlModule.removeScreenSharingListener(
|
||||
screenSharingCallbackId.value
|
||||
);
|
||||
sdkConfernceControlModule.removeDeviceListChangeListener(
|
||||
deviceListChangegCallbackId.value
|
||||
);
|
||||
};
|
||||
|
||||
/* 会控管理相关 */
|
||||
export default ({ onDeviceListChange }) => {
|
||||
// 初始化清除回调事件,避免外部重复调用注册方法导致事件重复
|
||||
unRegisterConferenceControldata();
|
||||
const globalStore = store.state.useGlobalStore;
|
||||
|
||||
// 事件注册方便任意位置调用
|
||||
emitter.on('unRegisterConferenceControldata', unRegisterConferenceControldata);
|
||||
|
||||
// 组件卸载时自动移除
|
||||
onUnmounted(() => {
|
||||
unRegisterConferenceControldata();
|
||||
});
|
||||
|
||||
/**
|
||||
* 当前进行中会议配置信息变化通知
|
||||
* */
|
||||
activeConfigChangeCallbackId.value =
|
||||
sdkConfernceControlModule.addActiveConfigChangeListener((config) => {
|
||||
store.dispatch("setActiveConfig",config);
|
||||
});
|
||||
|
||||
/**
|
||||
* 会议室锁定通知
|
||||
* */
|
||||
lockCallbackId.value = sdkConfernceControlModule.addLockListener((data) => {
|
||||
console.log('+++++++++ 会议室锁定通知 ++++++++++', data);
|
||||
|
||||
const descMap = {
|
||||
0: '解锁',
|
||||
1: '锁定',
|
||||
};
|
||||
|
||||
ElNotification.info({
|
||||
id: `${Date.now()}`,
|
||||
title: '会议室锁定通知',
|
||||
message: `【${data.operator.alias}】${descMap[data.status]}会议室`,
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* 增加会议成员通知
|
||||
* */
|
||||
addMemberCallbackId.value = sdkConfernceControlModule.addAddMemberListener(
|
||||
(data) => {
|
||||
console.log('+++++++++ 【会控】增加会议成员通知 ++++++++++', data);
|
||||
|
||||
const name = data.members.map((v) => v.alias || v.number).join('; ');
|
||||
|
||||
ElNotification.info({
|
||||
id: `${Date.now()}`,
|
||||
title: '【会控】增加会议成员通知',
|
||||
message: `【${name}】已成为【会议:${data.meeting.number}】的会议成员!`,
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
/**
|
||||
* 删除会议成员通知
|
||||
* */
|
||||
deleteMemberCallbackId.value =
|
||||
sdkConfernceControlModule.addDeleteMemberListener((data) => {
|
||||
console.log('+++++++++ 【会控】删除会议成员通知 ++++++++++', data);
|
||||
|
||||
const name = data.member.alias || data.member.number;
|
||||
|
||||
ElNotification.info({
|
||||
id: `${Date.now()}`,
|
||||
title: '【会控】删除会议成员通知',
|
||||
message: `【${name}】已不属于【会议:${data.meeting.number}】的会议成员!`,
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* 成员入会通知
|
||||
* */
|
||||
memberJoinCallbackId.value = sdkConfernceControlModule.addMemberJoinListener(
|
||||
(data) => {
|
||||
console.log('+++++++++ 成员入会通知 ++++++++++', data);
|
||||
|
||||
const name = data.member.alias || data.member.number;
|
||||
|
||||
ElNotification.info({
|
||||
id: `${Date.now()}`,
|
||||
title: '成员入会通知',
|
||||
message: `【${name}】加入了【会议:${data.meeting.number}】!`,
|
||||
});
|
||||
|
||||
// 自己入会,展示会议面板
|
||||
if (
|
||||
data.member.basedata_id === sessionStorage.getItem('user_basedata_id')
|
||||
) {
|
||||
// 展示会议面板
|
||||
globalStore.setShowConfencePanel(true);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
/**
|
||||
* 成员离会通知
|
||||
* */
|
||||
memberLeftCallbackId.value = sdkConfernceControlModule.addMemberLeftListener(
|
||||
(data) => {
|
||||
console.log('+++++++++ 成员离会通知 ++++++++++', data);
|
||||
|
||||
const name = data.member.alias || data.member.number;
|
||||
|
||||
ElNotification.info({
|
||||
id: `${Date.now()}`,
|
||||
title: '成员离会通知',
|
||||
message: `【${name}】离开了【会议:${data.meeting.number}】!`,
|
||||
});
|
||||
|
||||
// 不是自己,不需处理
|
||||
if (
|
||||
data.member.basedata_id !== sessionStorage.getItem('user_basedata_id')
|
||||
) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
/**
|
||||
* 更新会议主题通知
|
||||
* */
|
||||
updateSubjecCallbackId.value =
|
||||
sdkConfernceControlModule.addUpdateSubjectListener((data) => {
|
||||
console.log('+++++++++ 更新会议主题通知 ++++++++++', data);
|
||||
|
||||
ElNotification.info({
|
||||
id: `${Date.now()}`,
|
||||
title: '更新会议主题通知',
|
||||
message: `【${data.operator.alias}】修改了会议主题!`,
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* 设置成员角色通知
|
||||
* */
|
||||
setMemberRoleCallbackId.value =
|
||||
sdkConfernceControlModule.addSetMemberRoleListener((data) => {
|
||||
console.log('+++++++++ 设置成员角色通知 ++++++++++', data);
|
||||
|
||||
const roleDesc = {
|
||||
0: '成员',
|
||||
1: '主席',
|
||||
2: '创建者',
|
||||
};
|
||||
|
||||
ElNotification.info({
|
||||
id: `${Date.now()}`,
|
||||
title: '设置成员角色通知',
|
||||
message: `${data.operator.alias} 将 ${data.member.alias} 设置为了【${
|
||||
roleDesc[data.member_role]
|
||||
}】`,
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* 修改会议成员昵称通知
|
||||
* */
|
||||
updateMemberNickCallbackId.value =
|
||||
sdkConfernceControlModule.addModifyMemberNickListener((data) => {
|
||||
console.log('+++++++++ 修改会议成员昵称通知 ++++++++++', data);
|
||||
|
||||
ElNotification.info({
|
||||
id: `${Date.now()}`,
|
||||
title: '修改会议成员昵称通知',
|
||||
message: `【${data.operator.alias}】修改了会议成员昵称为【${data.nickname}】!`,
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* 呼叫未入会成员通知
|
||||
* */
|
||||
inviteMemberCallbackId.value =
|
||||
sdkConfernceControlModule.addInviteMemberListener((data) => {
|
||||
console.log('+++++++++ 呼叫未入会成员通知 ++++++++++', data);
|
||||
|
||||
ElNotification.info({
|
||||
id: `${Date.now()}`,
|
||||
title: '呼叫未入会成员通知',
|
||||
message: `收到会议号【${data.meeting.number}】的入会通知!`,
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* 摄像头开关通知
|
||||
* */
|
||||
memberCameraCallbackId.value =
|
||||
sdkConfernceControlModule.addMemberCameraListener((data) => {
|
||||
console.log('+++++++++ 摄像头开关通知 ++++++++++', data);
|
||||
|
||||
const cameraDesc = {
|
||||
0: '已关闭',
|
||||
1: '已开启',
|
||||
2: '无',
|
||||
};
|
||||
|
||||
ElNotification.info({
|
||||
id: `${Date.now()}`,
|
||||
title: '摄像头开关通知',
|
||||
message: `${data.operator.alias}【${cameraDesc[data.status]}】${
|
||||
data.member.alias
|
||||
} 的摄像头`,
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* 禁言通知
|
||||
* */
|
||||
memberProhibitionCallbackId.value =
|
||||
sdkConfernceControlModule.addMemberProhibitionListener((data) => {
|
||||
console.log('+++++++++ 禁言通知 ++++++++++', data);
|
||||
|
||||
const prohibitioDesc = {
|
||||
0: '解除禁言',
|
||||
1: '禁言',
|
||||
};
|
||||
const name = data.member.alias || data.member.number;
|
||||
ElNotification.info({
|
||||
id: `${Date.now()}`,
|
||||
title: '禁言通知',
|
||||
message: `${data.operator.alias} 对【${name}】${
|
||||
prohibitioDesc[data.status]
|
||||
}!`,
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* 全部禁言通知
|
||||
* */
|
||||
allMemberProhibitionCallbackId.value =
|
||||
sdkConfernceControlModule.addAllMemberProhibitionListener((data) => {
|
||||
console.log('+++++++++ 全部禁言通知 ++++++++++', data);
|
||||
|
||||
const prohibitioDesc = {
|
||||
0: '解除全部禁言',
|
||||
1: '开启全部禁言',
|
||||
};
|
||||
|
||||
ElNotification.info({
|
||||
id: `${Date.now()}`,
|
||||
title: '全部禁言通知',
|
||||
message: `${data.operator.alias} ${prohibitioDesc[data.status]}!`,
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* 静音通知
|
||||
* */
|
||||
memberMuteCallbackId.value = sdkConfernceControlModule.addMemberMuteListener(
|
||||
(data) => {
|
||||
console.log('+++++++++ 静音通知 ++++++++++', data);
|
||||
|
||||
const muteDesc = {
|
||||
0: '取消静音',
|
||||
1: '静音',
|
||||
2: '无音频',
|
||||
};
|
||||
const name = data.member.alias || data.member.number;
|
||||
|
||||
ElNotification.info({
|
||||
id: `${Date.now()}`,
|
||||
title: '静音通知',
|
||||
message: `${data.operator.alias} 对【${name}】${
|
||||
muteDesc[data.status]
|
||||
}!`,
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
/**
|
||||
* 设备列表变化通知
|
||||
* */
|
||||
deviceListChangegCallbackId.value =
|
||||
sdkConfernceControlModule.addDeviceListChangeListener((data) => {
|
||||
console.log('+++++++++ 设备列表变化通知 ++++++++++', data);
|
||||
if (onDeviceListChange) {
|
||||
onDeviceListChange(data);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* 指定成员讲话通知
|
||||
* */
|
||||
memberSpeakCallbackId.value =
|
||||
sdkConfernceControlModule.addAssignMemberSpeakListener((data) => {
|
||||
console.log('+++++++++ 指定成员讲话通知 ++++++++++', data);
|
||||
|
||||
const name = data.member.alias || data.member.number;
|
||||
|
||||
ElNotification.info({
|
||||
id: `${Date.now()}`,
|
||||
title: '指定成员讲话通知',
|
||||
message: `${data.operator.alias} 指定【${name}】讲话!`,
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* 取消指定成员讲话通知
|
||||
* */
|
||||
cancelMemberSpeakCallbackId.value =
|
||||
sdkConfernceControlModule.addCancelMemberSpeakListener((data) => {
|
||||
console.log('+++++++++ 取消成员讲话通知 ++++++++++', data);
|
||||
|
||||
const name = data.member.alias || data.member.number;
|
||||
|
||||
ElNotification.info({
|
||||
id: `${Date.now()}`,
|
||||
title: '取消成员讲话通知',
|
||||
message: `${data.operator.alias} 取消【${name}】讲话!`,
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* 成员讲话状态通知
|
||||
* */
|
||||
memberSpeakingStateCallbackId.value =
|
||||
sdkConfernceControlModule.addMemberSpeakingStateListener((data) => {
|
||||
console.log('+++++++++ 成员讲话状态通知 ++++++++++', data);
|
||||
});
|
||||
|
||||
/**
|
||||
* 语音激励成员讲话状态通知
|
||||
* */
|
||||
voiceStimulationCallbackId.value =
|
||||
sdkConfernceControlModule.addVoiceStimulationListener((data) => {
|
||||
console.log('+++++++++ 语音激励成员讲话状态通知 ++++++++++', data);
|
||||
});
|
||||
|
||||
/**
|
||||
* 修改布局通知
|
||||
* */
|
||||
setLayoutTypenCallbackId.value =
|
||||
sdkConfernceControlModule.addSetLayoutTypeListener((data) => {
|
||||
console.log('+++++++++ 修改布局通知 ++++++++++', data);
|
||||
|
||||
ElNotification.info({
|
||||
id: `${Date.now()}`,
|
||||
title: '修改布局通知',
|
||||
message: `修改布局通知`,
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* 屏幕共享通知
|
||||
* */
|
||||
screenSharingCallbackId.value =
|
||||
sdkConfernceControlModule.addScreenSharingListener((data) => {
|
||||
console.log('+++++++++ 屏幕共享通知 ++++++++++', data);
|
||||
|
||||
const descMap = {
|
||||
0: '取消共享', //(未共享)
|
||||
1: '共享屏幕', //(已共享)
|
||||
};
|
||||
|
||||
ElNotification.info({
|
||||
id: `${Date.now()}`,
|
||||
title: '屏幕共享通知',
|
||||
message: `【${data.member.alias}】${descMap[data.sharing_status]}`,
|
||||
});
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user