import React from 'react'; /** * 数据容器公共属性 */ export interface IDataContainer { /** * 数据源 */ dataSourceType: 'data-model' | 'connector' | 'custom-connector' | 'expression'; /** * API */ bindConnectMetadata?: { datasource: { name?: string; }; }; /** * API方法 */ connectorMethod?: { name?: string; inParams?: string[]; outParams?: string[]; title?: string; }; /** * 数据模型 */ datasource?: { name?: string; extra?: { viewId?: string; methodName?: string; }; }; /** * API查询入参 */ connectorParams?: object; /** * 数据筛选 */ where?: { groupLogic?: null | 'or' | 'and'; logicData?: { keyType?: 'field' | 'var-font'; key: string; rel: 'eq' | 'neq' | 'lt' | 'gt' | 'gte' | 'lte' | 'in' | 'nin' | 'search'; value: any; valueType?: 'const' | 'var-font' | 'relative-amount' | 'field'; expression?: string | boolean; logic?: null | 'or' | 'and' | string; extra?: { type?: 'string' | 'number' | 'boolean' | 'object' | 'array' | string; format?: string | null; isExpression?: boolean; }; }[]; }[]; /** * 容器事件 */ events?: { onPagingChange?: (arg0: { query: { pageNo: number; pageSize: number; }; }) => void; queryEmpty?: any; querySuccess?: any; queryFail?: any; onDataChange?: (param: any) => any; }; /** * 类 */ className?: string; /** * app.cloud 对象依赖,默认会从 window.app 取值 */ appCloud?: { callDataSource?: any; isInIde?: any; }; /** * 子元素 */ children?: React.ReactNode | undefined; /** * 其他属性 */ [key: string]: any; } /** * 数据容器-列表视图 */ export interface IListView extends IDataContainer { /** * 数据字段 */ orderBy?: string; /** * 数据类型 */ orderType?: 'desc' | 'asc'; /** * 模板 */ template?: 'simpleList' | 'detailList' | 'imageTextList' | 'cardList' | 'none'; /** * 显示行数 */ pageSize?: number; /** * 分页类型,加载更多|底部刷新|分页器 */ pagination?: 'loadMoreButton' | 'bottomLoad' | 'pagination' | 'none'; /** * 调用 onDataChange 之前的数据转换,如列表视图需要接受 array,而数据视图需要接受 object */ beforeDataChange?: (param: any) => any; /** * 是否展示回调recoreds字段 */ isRecords?: boolean; /** * 加载到底提示语句,为空时不展示 */ loadCompletedText?: string; } /** * 查询状态 * 成功|失败|空|加载中|初始化 */ export type IStatus = 'success' | 'fail' | 'empty' | 'loading' | '';