import { IPSAppDEUIAction } from '@ibizstudio/runtime'; import { PluginService } from '../app-service/common-service/plugin-service'; import { AppBackEndAction } from './app-backend-action'; import { AppFrontAction } from './app-front-action'; import { AppSysAction } from './app-sys-action'; import { AppDesignFrontAction } from './app-design-front-action'; export class AppLogicFactory { protected static pluginService: PluginService = PluginService.getInstance(); /** * 获取界面行为 * * @public * @static * @memberof AppLogicFactory */ static async getInstance(modelData: IPSAppDEUIAction, context: any) { const plugin = modelData.getPSSysPFPlugin(); if (plugin) { const importPlugin: any = this.pluginService.getPluginInstance('UIACTION', plugin.pluginCode); if (importPlugin) { const importModule = await importPlugin(); return new importModule.default(modelData, context); } } else { switch (modelData.uIActionMode) { case 'FRONT': if (modelData.userTag === 'DESIGN') { return new AppDesignFrontAction(modelData, context); } return new AppFrontAction(modelData, context); case 'BACKEND': return new AppBackEndAction(modelData, context); case 'SYS': return new AppSysAction(modelData, context); default: return undefined; } } } }