amis-reports
Version:
爱速搭报表,基于 ECharts 实现的图表功能组件,旨在为用户提供简单和快捷的可视化报表能力,帮助用户在爱速搭平台上快速设计常见的数据报表页和大屏报表效果页。
132 lines (131 loc) • 3.47 kB
TypeScript
export interface PlainObject<T = any> {
[propsName: string]: T;
}
export interface ChartField {
name?: string;
label?: string;
key?: string;
table?: string;
customLabel?: string;
fieldType: 'modelField' | 'expression' | 'group' | 'dataBucket';
field: string;
statisticsFunction?: string;
orderBy: string;
as: string;
valueType?: string;
serieChartType?: string;
formatter?: string;
totalField?: string;
totalFieldAs?: string;
totalFieldFunc?: string;
}
export interface ModelField {
name: string;
type: string;
label: string;
isForeignKey?: boolean;
key?: string;
table?: string;
}
export interface Dimension extends ChartField {
}
export interface Measure extends ChartField {
formatter: string;
formatterToFixed?: number;
formatterClearZero?: boolean;
}
export interface OriginParams {
dataSourceType: 'dataModel' | 'dataSet' | 'context';
model?: string;
dataSet?: string;
__modelFields: ModelField[];
__relationModelFields: any[];
dimensions?: Dimension[];
measures: Measure[];
measures2?: Measure[];
doubleYAxis?: boolean;
whereConditionRaw?: any;
havingConditionRaw?: any;
limit?: number;
groupField?: string;
bubbleField?: Measure[];
}
export interface LabelConfig {
labelShow: boolean;
labelFontSize: number;
labelColor: string;
labelPosition: 'top' | 'left' | 'right' | 'bottom' | 'inside' | 'insideLeft' | 'insideRight' | 'insideTop' | 'insideBottom' | 'insideTopLeft' | 'insideBottomLeft' | 'insideTopRight' | 'insideBottomRight';
}
export interface TitleConfig {
titleShow?: boolean;
titleText?: string;
titleAlignment?: 'left' | 'center' | 'right';
titleColor?: string;
titleBackgroundColor?: string;
titleFontSize?: string;
titleLink?: string;
titleTextStyle?: TextStyle;
}
export interface TextStyle {
color?: string;
fontSize?: string;
fontStyle?: string;
fontWeight?: string;
fontFamily?: string;
lineHeight?: string;
}
export interface AxisTickStyleStyle {
show?: boolean;
length?: number;
color?: string;
width?: number;
}
export interface ChartItemStyle {
borderColor?: string;
borderWidth?: string;
borderType?: string;
opacity?: number;
borderRadius?: string;
}
export interface LegendConfig {
type: string;
legendType: string;
legendShow?: boolean;
legendFontSize?: number;
legendColor?: string;
legendAlign?: 'auto' | 'left' | 'right';
legendOrient?: 'horizontal' | 'vertical';
legendPosition?: 'left' | 'right' | 'top' | 'bottom' | 'leftTop' | 'rightTop' | 'leftBottom' | 'rightBottom';
legendWidth?: number | string;
legendHeight?: number | string;
legendTop?: number | string;
legendRight?: number | string;
legendBottom?: number | string;
legendLeft?: number | string;
legendTextStyle?: TextStyle;
legendDataShow?: boolean;
legendDataFormat?: string;
dimensions?: Array<any>;
measures?: Array<any>;
groupField?: string;
}
export interface JSONObject {
[key: string]: any;
}
export interface SelectParams {
exp?: string;
table?: string;
column?: string;
case?: {
when: any;
then: any;
}[];
else?: any;
as?: string;
func?: string;
}
export interface CustomReportFields {
expressions?: any[];
groups?: any[];
dataBuckets?: any[];
}