/// import { LineConfig, DualAxesConfig, AreaConfig, ColumnConfig, PieConfig } from '@ant-design/charts'; import { FormatType } from './utils'; /** Meta 定义 */ export interface IMeta { /** 别名 */ alias?: string; min?: number; max?: number; /** 展示刻度 */ tickCount?: number; /** 格式化 */ formatter?: (v: any) => string; } /** 比例展示多数据的数据映射 */ export interface IYFieldMapItems { [key: string]: { /** y轴字段 */ title: string; /** 格式化展示方法。存在formater优先使用formater. 不存在则使用dataType。否则直接显示原数据 */ formatter?: (v: any) => string; /** 数据类型。优先级低于formatter,自动格式化。类型参考 formatData 函数 */ dataType?: FormatType; }; } /** 折线Line 组件参数 */ export interface YwLineChartProps { /** 数据 */ data: any[]; /** 附加样式名 */ className?: string; /** 自定义样式 */ style?: React.CSSProperties; /** 周边间距 */ padding?: number[]; /** x轴字段 */ xField: string; /** x轴别名&格式化等配置 */ xFieldMeta?: IMeta; /** y轴字段 默认:value */ yField?: string; /** y轴别名&格式化等配置 */ yFieldMeta?: IMeta; /** 是否曲线 */ smooth?: boolean; /** 分组字段。多条折线时使用 */ seriesField?: string; /** 是否显示底部滑块 */ showSliderNum?: number; /** charts 原始配置. 参考 antd charts Line 参数配置 */ originalProps?: LineConfig; /** 是否比例展示模式。该模式会将Y轴数据转换为百分比进行展示。具体可参考示例DEMO */ proportionMode?: boolean; /** yFieldMap */ yFieldMap?: IYFieldMapItems; } /** 双轴 组件参数 */ export interface IYwDualAxesChartProps { /** x轴字段 */ xField: string; /** y轴字段 */ yField: string[]; /** 数据别名及数据格式化配置 */ meta: IMeta[]; /** 图表数据。 left为左侧轴,right为右侧轴 */ data: { left: any[]; right: any[]; }; /** 左右两边的图形配置。参考 DualAxes配置的 geometryOptions项 */ geometryOptions?: Array; /** charts 原始配置. 参考 antdCharts DualAxes 配置项。可覆盖默认配置 */ originalProps?: DualAxesConfig; /** 图表内边距 */ padding?: number[]; /** 自定义样式名 */ className?: string; /** 自定义样式 */ style?: React.CSSProperties; } /** 面积图 */ export interface IYwAreaChartProps { /** 数据 */ data: any[]; /** x轴字段 */ xField: string; /** y轴字段 */ yField: string; /** 数据别名及数据格式化配置 */ meta: IMeta[]; /** 是否曲线 */ smooth?: boolean; /** 分组字段。多数据堆叠时 */ seriesField?: string; /** 图表内边距 */ padding?: number[]; /** charts 原始配置.参考 antdCharts Area 配置项。可覆盖默认配置 */ originalProps?: AreaConfig; /** 自定义样式名 */ className?: string; /** 自定义样式 */ style?: React.CSSProperties; } /** 柱状图 */ export interface YwColumnChartProps { /** 数据 */ data: any[]; /** x轴字段 */ xField: string; /** y轴字段 */ yField: string; /** 数据别名及数据格式化配置 */ meta: IMeta[]; /** 是否分组 */ isGroup?: boolean; /** 分组字段 */ seriesField?: string; /** 图表内边距 */ padding?: number[]; /** charts 原始配置.参考 antdCharts Column 配置项。可覆盖默认配置 */ originalProps?: ColumnConfig; /** 自定义样式名 */ className?: string; /** 自定义样式 */ style?: React.CSSProperties; } /** 饼图&环形图 */ export interface YwPieChartProps { /** 数据 */ data: any[]; /** 数据别名及数据格式化配置 */ meta: IMeta[]; /** 是否环形图 */ donut?: boolean; /** 周边间距 */ padding?: number[]; /** 是否显示图例 */ legend?: boolean | any; /** 占比字段 */ angleField: string; /** 颜色字段 */ colorField: string; /** 外部圆大小:值:0-1 */ radius?: number; /** 默认饼图:title格式化函数 */ formatTitle?: (data: { type: string; value: number; percent: number; }) => string; /** 默认饼图:value格式化函数 */ formatValue?: (data: { type: string; value: number; percent: number; }) => string; /** 是否显示统计信息 */ hasStatistic?: boolean; /** 统计信息:标题 */ statisticTitle?: (datum: {}) => string; /** 统计信息:内容 */ statisticContent?: (datum: {}, data: any[]) => string; /** charts 原始配置.参考 antdCharts Pie 配置项。可覆盖默认配置 */ originalProps?: PieConfig; /** 自定义样式名 */ className?: string; /** 自定义样式 */ style?: React.CSSProperties; }