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 { store: IServiceStore; chartRef?: (echart: any) => void; onChartWillMount?: (echarts: any) => void | Promise; onChartMount?: (chart: any, echarts: any) => void; onChartUnMount?: (chart: any, echarts: any) => void; onDataFilter?: (config: any, echarts: any, data?: any) => any; }