@farris/devkit-vue
Version:
102 lines (101 loc) • 2.46 kB
TypeScript
import { Reactive } from 'vue';
import { Injector } from '../common/index';
import { Entity, EntityState, EntityStore, UIState, UIStore, FormState, FormStore, FormArrayState, FormArrayStore, StateMachineState, StateMachine } from '../store/index';
import { Repository } from '../repository/index';
import { Command, CommandBus } from '../command/index';
import { ViewModelConfig, ViewModelConfigManager } from './configs/index';
import { ViewModelNode } from './viewmodel-node';
/**
* 注入Token
*/
declare const VIEWMODEL_INJECTION_TOKEN: unique symbol;
/**
* 视图模型状态
*/
declare class ViewModelState {
/**
* 实体状态
* BAP: BA统一查询平台支持多个entityState,所以新增any类型
*/
entityState?: EntityState<Entity> | any;
/**
* UI状态
*/
uiState?: UIState;
/**
* 表单状态
*/
form?: FormState;
/**
* 表单数组状态
*/
formArray?: FormArrayState;
/**
* 状态机状态
*/
stateMachine?: StateMachineState;
}
/**
* 视图模型
*/
declare class ViewModel<S extends ViewModelState> extends ViewModelNode {
/**
* ID
*/
id: string;
/**
* 配置管理
*/
configManager: ViewModelConfigManager;
/**
* 实体曾库
* BAP: BA统一查询平台支持多个entityStore,所以新增any类型
*/
entityStore: EntityStore<EntityState<Entity>> | any | null;
/**
* UI仓库
*/
uiStore: UIStore<UIState> | null;
/**
* 表单仓库
*/
formStore: FormStore<FormState> | null;
/**
* 表单数组仓库
*/
formArrayStore: FormArrayStore<FormArrayState> | null;
/**
* 状态机
*/
stateMachine: StateMachine<StateMachineState> | null;
/**
* 远程实体仓库
* BAP: BA统一查询平台支持多个repository,所以新增any类型
*/
repository: Repository<Entity> | any;
/**
* 视图模型状态
*/
state: Reactive<S>;
/**
* 命令总线
*/
commandBus: CommandBus | null;
/**
* 是否启用验证
*/
enableValidation: boolean;
/**
* 构造函数
*/
constructor(injector: Injector);
/**
* 初始化
*/
init(config: ViewModelConfig): void;
/**
* 初始化命令总线
*/
dispatch(command: Command): any;
}
export { VIEWMODEL_INJECTION_TOKEN, ViewModelState, ViewModel };