///
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;
}