UNPKG

trs-ui-app

Version:

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

38 lines (35 loc) 1.61 kB
import { toRefs, ref } from 'vue'; import useAPIData from './useAPIData.js'; import useStaticData from './useStaticData.js'; async function dealData(data, sourceOptions, eventHandlers) { if (sourceOptions.after && eventHandlers[sourceOptions.after]) { data = await eventHandlers[sourceOptions.after](data); } return data; } async function useGetData(sourceKey, props, allRefs, dymicStores, globalData, route, eventHandlers, logFunction, selfStates = {}, params = {}, isResutlSingleObj = false) { const { uiSchema, trsData } = toRefs(props); const data = ref([]); if (trsData.value && JSON.stringify(trsData.value) !== '{}' && trsData.value[sourceKey]) { data.value = trsData.value[sourceKey]; if (isResutlSingleObj) { data.value = data.value[0]; } return data; } const dataOption = uiSchema.value.dataOptions.find((it) => it.sourceKey === sourceKey); if (dataOption && dataOption.sourceType === 'API') { data.value = await useAPIData(dataOption.sourceOptions, dymicStores, allRefs, selfStates, globalData, route, params, isResutlSingleObj, eventHandlers, logFunction); data.value = await dealData(data.value, dataOption.sourceOptions, eventHandlers); return data; } else if (dataOption && dataOption.sourceType === 'Static') { data.value = useStaticData(dataOption.sourceOptions.data); if (isResutlSingleObj) { data.value = data.value[0]; } return data; } return data; } export { useGetData as default };