jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
78 lines (77 loc) • 2.35 kB
TypeScript
import type { FuncString, IServiceStore, RendererProps, SchemaClassName, SchemaExpression, SchemaName } from 'jamis-core';
import type { ActionSchema, BaseSchema, SchemaApi, SchemaTokenizeableString } from '../types';
/**
* Chart 图表组件。
*/
export interface ChartSchema extends BaseSchema {
/**
* 指定为 chart 类型
*/
type: 'chart';
bodyClassName?: SchemaClassName;
/**
* Chart 主题配置
*/
chartTheme?: any;
/**
* 图表配置接口
*/
api?: SchemaApi;
/**
* 是否初始加载。
* @deprecated 建议直接配置 api 的 sendOn
*/
initFetch?: boolean;
/**
* 是否初始加载用表达式来配置
* @deprecated 建议用 api.sendOn 属性。
*/
initFetchOn?: SchemaExpression;
/**
* 配置echart的config,支持数据映射。如果用了数据映射,为了同步更新,请设置 trackExpression
*/
config?: any;
/**
* 跟踪表达式,如果这个表达式的运行结果发生变化了,则会更新 Echart,当 config 中用了数据映射时有用。
*/
trackExpression?: SchemaExpression;
/**
* 宽度设置
*/
width?: number;
/**
* 高度设置
*/
height?: number;
/**
* 刷新时间
*/
interval?: number;
name?: SchemaName;
dataFilter?: FuncString | ((config: any, echarts: any, data?: any) => any);
source?: SchemaTokenizeableString;
/**
* 默认开启 Config 中的数据映射,如果想关闭,请开启此功能
*/
disableDataMapping?: boolean;
/**
* 点击行为配置,可以用来满足下钻操作等
*/
clickAction?: ActionSchema;
/**
* 默认配置时追加的,如果更新配置想完全替换配置请配置为 true.
*/
replaceChartOption?: boolean;
/**
* 不可见的时候隐藏
*/
unMountOnHidden?: boolean;
}
export interface ChartProps extends RendererProps, Omit<ChartSchema, 'type' | 'className'> {
store: IServiceStore;
chartRef?: (echart: any) => void;
onChartWillMount?: (echarts: any) => void | Promise<void>;
onChartMount?: (chart: any, echarts: any) => void;
onChartUnMount?: (chart: any, echarts: any) => void;
onDataFilter?: (config: any, echarts: any, data?: any) => any;
}