import { IBaseService } from './base'; import { IDataItem, ServiceContext, IPart, TDataSourceItem, TDataMap, TDataKeyToPartIdsMap, IDataSourceConfig, ApiRequestPolicy } from '../types'; /** * 数据服务接口 * 负责管理应用中的数据,包括数据获取、转换、存储、查找等功能 */ export interface IDataService extends IBaseService { /** * 数据转换 * @param data 原始数据 * @param dataItem 数据转换配置项 * @param id 使用数据项的partId * @param context 服务上下文 * @returns {Promise} 转换后的数据 */ convert(data: any, dataItem: IDataItem, id: string, context: ServiceContext): Promise; /** * 更新数据 * @param dataSource 数据源配置项 * @returns {Promise | null} 获取到的数据,或未获取到时返回null */ update(dataSource: IDataSourceConfig): Promise; /** * 设置全局api策略 * @param policy */ setApiRequestPolicy(policy: ApiRequestPolicy): void; /** * 切换数据方案 * @param plan 数据方案名称 * @returns void */ changePlan(plan: string): void; /** * 获取数据 * @param dataKey 数据源配置项Key * @param dataSource 数据源配置项 * @returns {Promise} */ getData(dataSource: TDataSourceItem, dataKey?: string): Promise; /** * 根据partId获取数据 * @param id 组件partId * @returns {any} 对应的数据 */ getDataByPartId(id: string): any; /** * 根据key查找组件 * @param items 组件列表 * @param key 组件key * @returns {IPart} 匹配到的组件 */ findPartByKey(items: IPart[], key: string): IPart; /** * 获取数据键到组件ID的映射 * @param parts 组件列表 * @returns {TDataKeyToPartIdsMap} 数据键到组件ID的映射 */ getDataKeyToPartIdsMap(parts: IPart[]): TDataKeyToPartIdsMap; /** * 获取数据 * @param dataKey 数据源配置项Key * @param dataSource 数据源配置项 * @returns {Promise} */ dynamicFetch(dataKey: string, dataSource?: TDataSourceItem): Promise; /** * 根据partId获取数据 * @param id 组件partId * @returns {TDataSourceItem | undefined} 对应的数据源配置项 */ getDataSourceByPartId(id: string): TDataSourceItem | undefined; }