diff --git a/src/hooks/eventHandler.hook.ts b/src/hooks/eventHandler.hook.ts index d7645cf..3df34ba 100644 --- a/src/hooks/eventHandler.hook.ts +++ b/src/hooks/eventHandler.hook.ts @@ -6,24 +6,14 @@ import { EventBus } from '@/utils/eventBus'; const chartEditStore = useChartEditStore(); const ceshiFunction = mapFun(); - -// 交互事件 -export const eventHandlerHook = ( +export const eventCommonHandler = ( componentList: any, - interactConfigEvents: any, + elementList: any, type: string, params: any = null, ) => { let obj: any = {}; let index = 0; - const elementList: any = []; - for (let i = 0; i < interactConfigEvents.length; i++) { - if (interactConfigEvents[i].type == type) { - for (let j = 0; j < interactConfigEvents[i].movementList.length; j++) { - elementList.push(interactConfigEvents[i].movementList[j]); - } - } - } for (let i = 0; i < componentList.length; i++) { for (let j = 0; j < elementList.length; j++) { if (elementList[j].movement == 'newaddress') { @@ -102,3 +92,38 @@ export const eventHandlerHook = ( } } }; +// 交互事件 +export const eventHandlerHook = ( + componentList: any, + interactConfigEvents: any, + type: string, + params: any = null, +) => { + const elementList: any = []; + for (let i = 0; i < interactConfigEvents.length; i++) { + if (interactConfigEvents[i].type == type) { + if (!interactConfigEvents[i].movementList) { + return false; + } + for (let j = 0; j < interactConfigEvents[i].movementList.length; j++) { + elementList.push(interactConfigEvents[i].movementList[j]); + } + } + } + + if (componentList.length == 0 || elementList.length == 0) { + return false; + } + eventCommonHandler(componentList, elementList, type, params); +}; +// websocket事件 +export const websocketEvent = (interactConfigEvents: any, params: any = null) => { + console.log('websocketEvent', interactConfigEvents, params); + interactConfigEvents.forEach((element) => { + if (element.messageType == params.type) { + element.elementId.forEach((item) => { + EventBus.emit(item + 'websocket', params); + }); + } + }); +}; diff --git a/src/packages/components/Icons/Default/Icon/index.vue b/src/packages/components/Icons/Default/Icon/index.vue index deea59f..5b7232d 100644 --- a/src/packages/components/Icons/Default/Icon/index.vue +++ b/src/packages/components/Icons/Default/Icon/index.vue @@ -20,6 +20,7 @@ import { GoIconify } from '@/components/GoIconify'; import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'; import { eventHandlerHook } from '@/hooks/eventHandler.hook'; + import { EventBus } from '@/utils/eventBus'; const chartEditStore = useChartEditStore(); const props = defineProps({ @@ -30,7 +31,6 @@ }); const { w, h } = toRefs(props.chartConfig.attr); const { dataset, color, size, rotate } = toRefs(props.chartConfig.option); - const clickBtn = (val) => { eventHandlerHook( chartEditStore.getComponentList, @@ -71,6 +71,16 @@ val, ); }; + onMounted(() => { + // 获取eventBus传过来的值 + EventBus.on(props.chartConfig.id + 'dataupdate', (data) => { + console.log('data', data); + }); + // websocket传过来的值 + EventBus.on(props.chartConfig.id + 'websocket', (data) => { + console.log('data', data); + }); + }); diff --git a/src/views/preview/suspenseIndex.vue b/src/views/preview/suspenseIndex.vue index 5aea605..bf546b3 100644 --- a/src/views/preview/suspenseIndex.vue +++ b/src/views/preview/suspenseIndex.vue @@ -23,6 +23,7 @@