UNPKG

trs-ui-app

Version:

TRS 可视化低代码平台 前端移动 UI 组件库 👍

46 lines (44 loc) 1.57 kB
function parseHandler(event) { const newEvent = JSON.parse(JSON.stringify(event)); if (newEvent.eventHanlder) { newEvent.eventHandler = newEvent.eventHanlder; } return newEvent; } function useEventHandler(trsEvents, uiSchema, eventHandlers, allRefs) { const excuteEvent = (event, item) => { if (event.isLinkage) { const com = allRefs.value.find(item => item.key === event.eventHanlder.split('.')[0]); const action = event.eventHanlder.split('.')[1]; if (!com || !com[action]) { return; } return com[action](...item); } else { if (!eventHandlers[event.eventHandler]) { return; } return eventHandlers[event.eventHandler](...item); } }; return (config, ...item) => { const { eventType } = config; const event = trsEvents.value.length ? trsEvents?.value?.find(it => it.eventType === eventType) : uiSchema?.value?.eventOptions?.find(it => it.eventType === eventType); if (!event) { return; } if (event.eventHandlers && event.eventHandlers.length) { for (let i = 0; i < event.eventHandlers.length; i++) { const ev = event.eventHandlers[i]; excuteEvent(ev, item); } } else { return excuteEvent(parseHandler(event), item); } }; } export { useEventHandler as default };