chart_property.go
3.0 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package domain
var (
RecordTable1 = "RecordTable"
MetricsCard1 = "MetricsCard"
ContainerCard1 = "ContainerCard"
QuarterChart1 = "QuarterChart"
)
type ChartProperty struct {
Title Title `json:"title,optional"` // 标题
TableAbility TableAbility `json:"table,optional"` // 表筛选功能
Series []Series `json:"series,optional"` // 系列(数据源)
Cover string `json:"cover,optional"` // 封面
//XAxis interface{} `json:"xAxis"` // X轴
//YAxis interface{} `json:"yAxis"` // Y轴
}
type Title struct {
TitleSwitch bool `json:"titleSwitch,optional"` // 组件标题开关
IntroduceSwitch bool `json:"introduceSwitch,optional"` // 组件说明开关
TitleType string `json:"titleType"` // 标题类型
Heading string `json:"heading,optional"` // 主标题
SubTitle string `json:"subTitle,optional"` // 副标题
ExplainType string `json:"explainType,optional,options=[text,file]"` // text file
ExplainTxt string `json:"explainTxt,optional"` // 文字说明
FileUrl string `json:"fileUrl,optional"` // 组件图片/视频
}
type TableAbility struct {
FilterSwitch bool `json:"filterSwitch,optional"` // 表筛选功能开关
DimensionList []Dimension `json:"dimensionList,optional"` // 维度列表
}
type Series struct {
// Type string `json:"type"` // 图表类型 (记录型表格:RecordTable-1 总体指标:MetricsCard-1 容器卡片:ContainerCard-1 四分图:QuarterChart-1)
Name string `json:"name"` // 名称 (例如 指标1、指标2)
SourceFrom string `json:"from,options=[ByteBank,User]"` // 数据源类型 ByteBank:字库 User:用户自定义
DataSourceId int64 `json:"dataSourceId,optional,omitempty"` // 数据源ID(from值为ByteBank时有值)
CustomText string `json:"customText,optional,omitempty"` // 自定义数据文本(from值为User时有值)
MatchExpressions []Expression `json:"matchExpressions,omitempty"` // 条件匹配表达式(总体指标)
}
type Expression struct {
Operator string `json:"operator,options=[<,>,==,<>,<=,>=]"` // 操作符号 <,>,==,<>,<=,>=
CompareValue string `json:"compareValue"` // 比较值
ToValue string `json:"toValue"` // 显示值(转为)
}
type Dimension struct {
Name string `json:"name"`
Value string `json:"value"`
}
func (e ChartProperty) GetFirstDataSourceId() int64 {
for _, s := range e.Series {
if s.DataSourceId > 0 {
return s.DataSourceId
}
}
return 0
}
func (e ChartProperty) GetAllDataSourceId() []int64 {
var idList = make([]int64, 0)
for _, s := range e.Series {
if s.DataSourceId > 0 {
idList = append(idList, s.DataSourceId)
}
}
return idList
}