作者 Administrator

合并分支 'dev' 到 'master'

Dev



查看合并请求 !1
@@ -24,6 +24,7 @@ _testmain.go @@ -24,6 +24,7 @@ _testmain.go
24 .log 24 .log
25 .idea 25 .idea
26 .vscode 26 .vscode
  27 +cmd/chart-server/api/go_build_bchart
27 28
28 app.log 29 app.log
29 #go.sum 30 #go.sum
@@ -3,11 +3,13 @@ Host: 0.0.0.0 @@ -3,11 +3,13 @@ Host: 0.0.0.0
3 Port: 8080 3 Port: 8080
4 Verbose: true 4 Verbose: true
5 HostName: http://sumifcc-bchart-dev.sumifcc.com 5 HostName: http://sumifcc-bchart-dev.sumifcc.com
  6 +Timeout: 30000
6 7
7 Log: 8 Log:
8 Mode: file 9 Mode: file
9 Encoding: plain 10 Encoding: plain
10 Level: debug # info 11 Level: debug # info
  12 + MaxContentLength: 5120 # 5KB
11 13
12 JwtAuth: 14 JwtAuth:
13 AccessSecret: digital-platform 15 AccessSecret: digital-platform
@@ -3,6 +3,7 @@ Host: 0.0.0.0 @@ -3,6 +3,7 @@ Host: 0.0.0.0
3 Port: 8081 3 Port: 8081
4 Verbose: true 4 Verbose: true
5 HostName: http://sumifcc-bchart-dev.sumifcc.com 5 HostName: http://sumifcc-bchart-dev.sumifcc.com
  6 +Timeout: 30000
6 7
7 Log: 8 Log:
8 #Mode: file 9 #Mode: file
@@ -10,6 +11,7 @@ Log: @@ -10,6 +11,7 @@ Log:
10 Level: debug # info 11 Level: debug # info
11 MaxSize: 1 # 2MB 12 MaxSize: 1 # 2MB
12 TimeFormat: 2006-01-02 15:04:05.000 13 TimeFormat: 2006-01-02 15:04:05.000
  14 + MaxContentLength: 5120 # 5KB
13 15
14 JwtAuth: 16 JwtAuth:
15 AccessSecret: digital-platform 17 AccessSecret: digital-platform
@@ -32,7 +32,7 @@ func (l *SearchTableByModuleLogic) SearchTableByModule(req *types.SearchTableByM @@ -32,7 +32,7 @@ func (l *SearchTableByModuleLogic) SearchTableByModule(req *types.SearchTableByM
32 list, err := l.svcCtx.ByteMetadataService.ObjectTableSearch(l.ctx, bytelib.ObjectTableSearchRequest{ 32 list, err := l.svcCtx.ByteMetadataService.ObjectTableSearch(l.ctx, bytelib.ObjectTableSearchRequest{
33 Token: req.Token, 33 Token: req.Token,
34 TableTypes: []string{bytelib.MainTable, bytelib.SubTable, bytelib.SideTable}, 34 TableTypes: []string{bytelib.MainTable, bytelib.SubTable, bytelib.SideTable},
35 - Module: bytelib.ModuleDigitalCenter, 35 + Module: bytelib.ModuleChartTemplate,
36 }) 36 })
37 if err != nil { 37 if err != nil {
38 batchError.Add(err) 38 batchError.Add(err)
@@ -52,7 +52,7 @@ func (l *SearchTableByModuleLogic) SearchTableByModule(req *types.SearchTableByM @@ -52,7 +52,7 @@ func (l *SearchTableByModuleLogic) SearchTableByModule(req *types.SearchTableByM
52 }, func() { 52 }, func() {
53 list, err := l.svcCtx.ByteMetadataService.ObjectTableSearch(l.ctx, bytelib.ObjectTableSearchRequest{ 53 list, err := l.svcCtx.ByteMetadataService.ObjectTableSearch(l.ctx, bytelib.ObjectTableSearchRequest{
54 Token: req.Token, 54 Token: req.Token,
55 - TableTypes: []string{bytelib.CalculateItem, bytelib.CalculateSet}, 55 + TableTypes: []string{bytelib.CalculateItem},
56 Module: bytelib.ModuleCalculateCenter, 56 Module: bytelib.ModuleCalculateCenter,
57 ReturnGroupItem: true, 57 ReturnGroupItem: true,
58 ExcludeTables: []int{0}, 58 ExcludeTables: []int{0},
@@ -60,7 +60,19 @@ func (l *SearchTableByModuleLogic) SearchTableByModule(req *types.SearchTableByM @@ -60,7 +60,19 @@ func (l *SearchTableByModuleLogic) SearchTableByModule(req *types.SearchTableByM
60 if err != nil { 60 if err != nil {
61 batchError.Add(err) 61 batchError.Add(err)
62 } 62 }
63 - result["计算模块"] = newList(list) 63 + result["计算项"] = newList(list)
  64 + }, func() {
  65 + list, err := l.svcCtx.ByteMetadataService.ObjectTableSearch(l.ctx, bytelib.ObjectTableSearchRequest{
  66 + Token: req.Token,
  67 + TableTypes: []string{bytelib.CalculateSet},
  68 + Module: bytelib.ModuleCalculateCenter,
  69 + ReturnGroupItem: true,
  70 + ExcludeTables: []int{0},
  71 + })
  72 + if err != nil {
  73 + batchError.Add(err)
  74 + }
  75 + result["计算集"] = newList(list)
64 }) 76 })
65 if err = batchError.Err(); err != nil { 77 if err = batchError.Err(); err != nil {
66 logx.Error(err) 78 logx.Error(err)
@@ -39,9 +39,10 @@ func NewAppPageItem(appPage *domain.AppPage, charts []*domain.Chart) AppPageItem @@ -39,9 +39,10 @@ func NewAppPageItem(appPage *domain.AppPage, charts []*domain.Chart) AppPageItem
39 return item.Id, item 39 return item.Id, item
40 }) 40 })
41 item := AppPageItem{ 41 item := AppPageItem{
42 - Id: appPage.Id,  
43 - Name: appPage.Name,  
44 - Cover: appPage.Cover, 42 + Id: appPage.Id,
  43 + Name: appPage.Name,
  44 + Cover: appPage.Cover,
  45 + UpdatedAt: appPage.UpdatedAt,
45 } 46 }
46 for _, id := range appPage.Charts { 47 for _, id := range appPage.Charts {
47 if v, ok := chartsMap[id]; ok { 48 if v, ok := chartsMap[id]; ok {
@@ -82,6 +82,7 @@ type ChartItem struct { @@ -82,6 +82,7 @@ type ChartItem struct {
82 Name string `json:"name,optional"` // 名称 82 Name string `json:"name,optional"` // 名称
83 Cover string `json:"cover,optional"` // 封面 83 Cover string `json:"cover,optional"` // 封面
84 ChartType string `json:"chartType,optional"` // 图表类型 84 ChartType string `json:"chartType,optional"` // 图表类型
  85 + UpdatedAt int `json:"updatedAt,optional"` // 更新时间
85 ChartProperty *ChartProperty `json:"property,optional,omitempty"` //属性 86 ChartProperty *ChartProperty `json:"property,optional,omitempty"` //属性
86 } 87 }
87 88
@@ -151,8 +152,15 @@ type Title struct { @@ -151,8 +152,15 @@ type Title struct {
151 } 152 }
152 153
153 type TableAbility struct { 154 type TableAbility struct {
154 - FilterSwitch bool `json:"filterSwitch,optional"` // 表筛选功能开关  
155 - DimensionList []Dimension `json:"dimensionList,optional"` // 维度列表 155 + FilterSwitch bool `json:"filterSwitch,optional"` // 表筛选功能开关
  156 + DimensionList []Dimension `json:"dimensionList,optional"` // 维度列表
  157 + CardSwitch bool `json:"cardSwitch,optional"` // 顺序标识开关
  158 + CardIdent string `json:"cardIdent,optional"` // 顺序标识
  159 + CardOrderList []CardOrderItem `json:"cardOrderList,optional"` // 卡片列表顺序
  160 +}
  161 +
  162 +type CardOrderItem struct {
  163 + CardId string `json:"cardId,optional"`
156 } 164 }
157 165
158 type Series struct { 166 type Series struct {
@@ -287,10 +295,11 @@ type AppPageSearchResponse struct { @@ -287,10 +295,11 @@ type AppPageSearchResponse struct {
287 } 295 }
288 296
289 type AppPageItem struct { 297 type AppPageItem struct {
290 - Id int64 `json:"id,optional"` // 唯一标识  
291 - Name string `json:"name,optional"` // 名称  
292 - Cover string `json:"cover,optional"` // 封面  
293 - Charts []AppPageChartItem `json:"charts,optional"` // 图表 298 + Id int64 `json:"id,optional"` // 唯一标识
  299 + Name string `json:"name,optional"` // 名称
  300 + Cover string `json:"cover,optional"` // 封面
  301 + Charts []AppPageChartItem `json:"charts,optional"` // 图表
  302 + UpdatedAt int64 `json:"updatedAt,optional"` //更新时间
294 } 303 }
295 304
296 type AppPageChartItem struct { 305 type AppPageChartItem struct {
@@ -162,7 +162,7 @@ func (repository *AppPageRepository) Find(ctx context.Context, conn transaction. @@ -162,7 +162,7 @@ func (repository *AppPageRepository) Find(ctx context.Context, conn transaction.
162 total int64 162 total int64
163 ) 163 )
164 queryFunc := func() (interface{}, error) { 164 queryFunc := func() (interface{}, error) {
165 - tx = tx.Model(&ms).Order("id desc") 165 + tx = tx.Model(&ms).Order("updated_at desc")
166 if v, ok := queryOptions["tenantId"]; ok { 166 if v, ok := queryOptions["tenantId"]; ok {
167 tx.Where("tenant_id = ?", v) 167 tx.Where("tenant_id = ?", v)
168 } 168 }
@@ -119,7 +119,7 @@ func (repository *ChartRepository) Find(ctx context.Context, conn transaction.Co @@ -119,7 +119,7 @@ func (repository *ChartRepository) Find(ctx context.Context, conn transaction.Co
119 total int64 119 total int64
120 ) 120 )
121 queryFunc := func() (interface{}, error) { 121 queryFunc := func() (interface{}, error) {
122 - tx = tx.Model(&ms).Order("id desc") //.Order("pid asc").Order("sort asc") 122 + tx = tx.Model(&ms).Order("updated_at desc") //.Order("pid asc").Order("sort asc")
123 if v, ok := queryOptions["ids"]; ok { 123 if v, ok := queryOptions["ids"]; ok {
124 tx.Where("id in (?)", v) 124 tx.Where("id in (?)", v)
125 } 125 }
@@ -61,8 +61,15 @@ type Title struct { @@ -61,8 +61,15 @@ type Title struct {
61 } 61 }
62 62
63 type TableAbility struct { 63 type TableAbility struct {
64 - FilterSwitch bool `json:"filterSwitch,optional"` // 表筛选功能开关  
65 - DimensionList []Dimension `json:"dimensionList,optional"` // 维度列表 64 + FilterSwitch bool `json:"filterSwitch,optional"` // 表筛选功能开关
  65 + DimensionList []Dimension `json:"dimensionList,optional"` // 维度列表
  66 + CardSwitch bool `json:"cardSwitch,optional"` // 顺序标识开关
  67 + CardIdent string `json:"cardIdent,optional"` // 顺序标识
  68 + CardOrderList []CardOrderItem `json:"cardOrderList,optional"` // 卡片列表顺序
  69 +}
  70 +
  71 +type CardOrderItem struct {
  72 + CardId string `json:"cardId,optional"`
66 } 73 }
67 74
68 type Series struct { 75 type Series struct {
@@ -75,7 +75,7 @@ type TableData struct { @@ -75,7 +75,7 @@ type TableData struct {
75 //数据 75 //数据
76 Grid *TableDataGrid `json:"grid,optional"` 76 Grid *TableDataGrid `json:"grid,optional"`
77 //字段 77 //字段
78 - Fields []*Field `json:"fields"` 78 + Fields []*Field `json:"fields,optional"`
79 } 79 }
80 80
81 type TableDataGrid struct { 81 type TableDataGrid struct {
@@ -12,10 +12,11 @@ var ( @@ -12,10 +12,11 @@ var (
12 ) 12 )
13 13
14 const ( 14 const (
15 - ModuleAll = ModuleDigitalCenter | ModuleQuerySetCenter | ModuleCalculateCenter 15 + ModuleAll = ModuleDigitalCenter | ModuleQuerySetCenter | ModuleCalculateCenter | ModuleChartTemplate
16 ModuleDigitalCenter = 1 16 ModuleDigitalCenter = 1
17 ModuleQuerySetCenter = 2 17 ModuleQuerySetCenter = 2
18 ModuleCalculateCenter = 4 18 ModuleCalculateCenter = 4
  19 + ModuleChartTemplate = 8
19 ) 20 )
20 21
21 const ( 22 const (
@@ -94,6 +94,7 @@ type ( @@ -94,6 +94,7 @@ type (
94 Name string `json:"name,optional"` // 名称 94 Name string `json:"name,optional"` // 名称
95 Cover string `json:"cover,optional"` // 封面 95 Cover string `json:"cover,optional"` // 封面
96 Charts []AppPageChartItem `json:"charts,optional"`// 图表 96 Charts []AppPageChartItem `json:"charts,optional"`// 图表
  97 + UpdatedAt int64 `json:"updatedAt,optional"` //更新时间
97 } 98 }
98 AppPageChartItem struct{ 99 AppPageChartItem struct{
99 ChartId int64 `json:"chartId"` // 图表ID 100 ChartId int64 `json:"chartId"` // 图表ID
1 -  
2 syntax = "v1" 1 syntax = "v1"
3 2
4 info( 3 info(
5 - title: "天联字库图表模板"  
6 - desc: "图表模板"  
7 - author: "小火箭"  
8 - email: "email"  
9 - version: "v1" 4 + title: "天联字库图表模板"
  5 + desc: "图表模板"
  6 + author: "小火箭"
  7 + email: "email"
  8 + version: "v1"
10 ) 9 )
11 10
12 @server( 11 @server(
13 - prefix: v1  
14 - group: chart  
15 - jwt: JwtAuth  
16 - //middleware: Authority 12 + prefix: v1
  13 + group: chart
  14 + jwt: JwtAuth
  15 + //middleware: Authority
17 ) 16 )
18 service Core { 17 service Core {
19 - @doc "保存图表"  
20 - @handler saveChart  
21 - post /chart (ChartSaveRequest) returns (ChartSaveResponse)  
22 - @doc "图表另存为"  
23 - @handler saveAsChart  
24 - post /chart/saveas (ChartSaveAsRequest) returns (ChartSaveAsResponse)  
25 - @doc "删除图表"  
26 - @handler deleteChart  
27 - delete /chart/:id (ChartDeleteRequest) returns (ChartDeleteResponse)  
28 - @doc "更新图表(配置)"  
29 - @handler updateChart  
30 - put /chart/:id (ChartUpdateRequest) returns (ChartUpdateResponse)  
31 - @doc "搜索图表"  
32 - @handler searchChart  
33 - post /chart/search (ChartSearchRequest) returns (ChartSearchResponse)  
34 - @doc "移动图表"  
35 - @handler updateChartSort  
36 - post /chart/move (ChartUpdateSortRequest) returns (ChartUpdateSortResponse)  
37 - @doc "重命名图表"  
38 - @handler renameChartSort  
39 - post /chart/rename (ChartRenameRequest) returns (ChartRenameResponse) 18 + @doc "保存图表"
  19 + @handler saveChart
  20 + post /chart (ChartSaveRequest) returns (ChartSaveResponse)
  21 + @doc "图表另存为"
  22 + @handler saveAsChart
  23 + post /chart/saveas (ChartSaveAsRequest) returns (ChartSaveAsResponse)
  24 + @doc "删除图表"
  25 + @handler deleteChart
  26 + delete /chart/:id (ChartDeleteRequest) returns (ChartDeleteResponse)
  27 + @doc "更新图表(配置)"
  28 + @handler updateChart
  29 + put /chart/:id (ChartUpdateRequest) returns (ChartUpdateResponse)
  30 + @doc "搜索图表"
  31 + @handler searchChart
  32 + post /chart/search (ChartSearchRequest) returns (ChartSearchResponse)
  33 + @doc "移动图表"
  34 + @handler updateChartSort
  35 + post /chart/move (ChartUpdateSortRequest) returns (ChartUpdateSortResponse)
  36 + @doc "重命名图表"
  37 + @handler renameChartSort
  38 + post /chart/rename (ChartRenameRequest) returns (ChartRenameResponse)
40 39
41 - @doc "搜索图表组件"  
42 - @handler searchChartComponents  
43 - post /chart/components/search(ChartComponentSearchRequest)returns(ChartComponentSearchResponse) 40 + @doc "搜索图表组件"
  41 + @handler searchChartComponents
  42 + post /chart/components/search(ChartComponentSearchRequest)returns(ChartComponentSearchResponse)
44 } 43 }
45 44
46 @server( 45 @server(
47 - prefix: v1  
48 - group: chart 46 + prefix: v1
  47 + group: chart
49 ) 48 )
50 service Core { 49 service Core {
51 - @doc "加载图表数据"  
52 - @handler loadChartData  
53 - post /chart/load-data (LoadChartDataRequest) returns (LoadChartDataResponse)  
54 - @doc "获取图表详情"  
55 - @handler getChart  
56 - get /chart/:id (ChartGetRequest) returns (ChartGetResponse) 50 + @doc "加载图表数据"
  51 + @handler loadChartData
  52 + post /chart/load-data (LoadChartDataRequest) returns (LoadChartDataResponse)
  53 + @doc "获取图表详情"
  54 + @handler getChart
  55 + get /chart/:id (ChartGetRequest) returns (ChartGetResponse)
57 } 56 }
58 57
59 type ( 58 type (
60 - ChartGetRequest { 59 + ChartGetRequest {
61 Id int64 `path:"id"` 60 Id int64 `path:"id"`
62 } 61 }
63 - ChartGetResponse struct{ 62 + ChartGetResponse {
64 Chart ChartItem `json:"chart"` 63 Chart ChartItem `json:"chart"`
65 - }  
66 -  
67 - ChartSaveRequest struct{  
68 - Pid int64 `json:"pid,optional"`// 父级ID  
69 - Type string `json:"type"`// 类型 report:报表 group:分组 chart:图表  
70 - Name string `json:"name,optional"`// 名称  
71 - ChartType string `json:"chartType"` // 图表类型  
72 - Cover string `json:"cover,optional"` // 封面  
73 - ChartProperty ChartProperty `json:"property"` // 图表属性  
74 - }  
75 - ChartSaveResponse struct{  
76 - Chart ChartItem `json:"chart"`  
77 - } 64 + }
78 65
79 - ChartSaveAsRequest struct{  
80 - ChartId int64 `json:"chartId"` // 图表Id  
81 - Name string `json:"name"`// 名称  
82 - }  
83 - ChartSaveAsResponse struct{  
84 - Chart ChartItem `json:"chart"`  
85 - } 66 + ChartSaveRequest {
  67 + Pid int64 `json:"pid,optional"` // 父级ID
  68 + Type string `json:"type"` // 类型 report:报表 group:分组 chart:图表
  69 + Name string `json:"name,optional"` // 名称
  70 + ChartType string `json:"chartType"` // 图表类型
  71 + Cover string `json:"cover,optional"` // 封面
  72 + ChartProperty ChartProperty `json:"property"` // 图表属性
  73 + }
  74 + ChartSaveResponse {
  75 + Chart ChartItem `json:"chart"`
  76 + }
86 77
87 - ChartDeleteRequest struct{  
88 - Id int64 `path:"id"`  
89 - }  
90 - ChartDeleteResponse struct{} 78 + ChartSaveAsRequest {
  79 + ChartId int64 `json:"chartId"` // 图表Id
  80 + Name string `json:"name"` // 名称
  81 + }
  82 + ChartSaveAsResponse {
  83 + Chart ChartItem `json:"chart"`
  84 + }
91 85
92 - ChartUpdateRequest struct{ 86 + ChartDeleteRequest {
93 Id int64 `path:"id"` 87 Id int64 `path:"id"`
94 - Cover string `json:"cover,optional"` // 封面  
95 - ChartProperty ChartProperty `json:"property"` // 图表属性  
96 - }  
97 - ChartUpdateResponse struct{} 88 + }
  89 + ChartDeleteResponse struct{}
98 90
99 - ChartSearchRequest struct {  
100 - IncludeTypes []string `json:"includeTypes,optional"` //包含的类型: 类型 report:报表 group:分组 chart:图表(未指定返回所有)  
101 - DataStyle string `json:"dataStyle,optional"` // 数据样式 tree:树形 flat:平铺  
102 - }  
103 - ChartSearchResponse{  
104 - List []ChartItem `json:"list"`  
105 - Total int64 `json:"total"`  
106 - }  
107 - ChartUpdateSortRequest struct{  
108 - Id int64 `json:"id"`  
109 - Pid int64 `json:"pid"`  
110 - Index int `json:"index"` // 元素下标  
111 - }  
112 - ChartUpdateSortResponse struct{}  
113 - ChartRenameRequest struct{  
114 - Id int64 `json:"id"`  
115 - Name string `json:"name"`// 名称  
116 - }  
117 - ChartRenameResponse struct{}  
118 - ChartItem struct{  
119 - Id int64 `json:"id,optional"`// ID  
120 - Pid int64 `json:"pid,optional"`// 父级ID  
121 - Type string `json:"type,optional"`// 类型 report:报表 group:分组 chart:图表  
122 - Sort int64 `json:"sort,optional"`// 排序  
123 - Name string `json:"name,optional"`// 名称  
124 - Cover string `json:"cover,optional"` // 封面  
125 - ChartType string `json:"chartType,optional"` // 图表类型  
126 - ChartProperty *ChartProperty `json:"property,optional,omitempty"` //属性  
127 - }  
128 - LoadChartDataRequest struct{  
129 - ChartId int64 `json:"chartId"`  
130 - }  
131 - LoadChartDataResponse struct{ 91 + ChartUpdateRequest {
  92 + Id int64 `path:"id"`
  93 + Cover string `json:"cover,optional"` // 封面
  94 + ChartProperty ChartProperty `json:"property"` // 图表属性
  95 + }
  96 + ChartUpdateResponse struct{}
132 97
133 - } 98 + ChartSearchRequest {
  99 + IncludeTypes []string `json:"includeTypes,optional"` //包含的类型: 类型 report:报表 group:分组 chart:图表(未指定返回所有)
  100 + DataStyle string `json:"dataStyle,optional"` // 数据样式 tree:树形 flat:平铺
  101 + }
  102 + ChartSearchResponse {
  103 + List []ChartItem `json:"list"`
  104 + Total int64 `json:"total"`
  105 + }
  106 + ChartUpdateSortRequest {
  107 + Id int64 `json:"id"`
  108 + Pid int64 `json:"pid"`
  109 + Index int `json:"index"` // 元素下标
  110 + }
  111 + ChartUpdateSortResponse struct{}
  112 + ChartRenameRequest {
  113 + Id int64 `json:"id"`
  114 + Name string `json:"name"` // 名称
  115 + }
  116 + ChartRenameResponse struct{}
  117 + ChartItem {
  118 + Id int64 `json:"id,optional"` // ID
  119 + Pid int64 `json:"pid,optional"` // 父级ID
  120 + Type string `json:"type,optional"` // 类型 report:报表 group:分组 chart:图表
  121 + Sort int64 `json:"sort,optional"` // 排序
  122 + Name string `json:"name,optional"` // 名称
  123 + Cover string `json:"cover,optional"` // 封面
  124 + ChartType string `json:"chartType,optional"` // 图表类型
  125 + UpdatedAt int `json:"updatedAt,optional"` // 更新时间
  126 + ChartProperty *ChartProperty `json:"property,optional,omitempty"` //属性
  127 + }
  128 + LoadChartDataRequest {
  129 + ChartId int64 `json:"chartId"`
  130 + }
  131 + LoadChartDataResponse {
  132 + }
134 ) 133 )
135 134
136 -type(  
137 - ChartComponentSearchRequest{  
138 - Name string `json:"name,optional"`  
139 - }  
140 - ChartComponentSearchResponse{  
141 - List []ChartComponentItem `json:"list"`  
142 - Total int64 `json:"total"`  
143 - }  
144 - ChartComponentItem struct{  
145 - Name string `json:"name,optional"`// 名称  
146 - Code string `json:"code,optional"`// 编码  
147 - Cover string `json:"cover,optional"` // 封面  
148 - Desc string `json:"desc,optional"`// 描述  
149 - } 135 +type (
  136 + ChartComponentSearchRequest {
  137 + Name string `json:"name,optional"`
  138 + }
  139 + ChartComponentSearchResponse {
  140 + List []ChartComponentItem `json:"list"`
  141 + Total int64 `json:"total"`
  142 + }
  143 + ChartComponentItem {
  144 + Name string `json:"name,optional"` // 名称
  145 + Code string `json:"code,optional"` // 编码
  146 + Cover string `json:"cover,optional"` // 封面
  147 + Desc string `json:"desc,optional"` // 描述
  148 + }
150 ) 149 )
151 150
152 -type(  
153 - ChartProperty struct {  
154 - Title Title `json:"title,optional"` // 标题  
155 - TableAbility TableAbility `json:"table,optional"` // 表筛选功能  
156 - Series []Series `json:"series,optional"` // 系列(数据源)  
157 - Other Other `json:"other,optional"` // 其他额外配置  
158 - }  
159 - Other struct {  
160 - Quarter *Quarter `json:"quarter,optional,omitempty"` // 四分图  
161 - }  
162 - Quarter struct {  
163 - XAxisLabel string `json:"xAxisLabel"` // x轴标签名  
164 - XAxisFirstLabel string `json:"xAxisFirstLabel"` // 签名1  
165 - XAxisSecondLabel string `json:"xAxisSecondLabel"` // 签名2  
166 - YAxisLabel string `json:"yAxisLabel"` // y轴标签名  
167 - YAxisFirstLabel string `json:"yAxisFirstLabel"` // y标签1  
168 - YAxisSecondLabel string `json:"yAxisSecondLabel"` // y标签2  
169 - Area string `json:"area"` // 图形面积  
170 - AreaColor bool `json:"areaColor"` // 颜色  
171 - SeriesList []QuarterSeries `json:"seriesList"` // 图形系列  
172 - }  
173 - QuarterSeries struct {  
174 - SeriesValue string `json:"seriesValue"`  
175 - }  
176 - Title struct {  
177 - TitleSwitch bool `json:"titleSwitch,optional"` // 组件标题开关  
178 - IntroduceSwitch bool `json:"introduceSwitch,optional"` // 组件说明开关  
179 - TitleType string `json:"titleType"` // 标题类型  
180 - Heading string `json:"heading,optional"` // 主标题  
181 - SubTitle string `json:"subTitle,optional"` // 副标题  
182 - ExplainType string `json:"explainType,optional,options=[text,,file]"` // text file ,options=text||file  
183 - ExplainTxt string `json:"explainTxt,optional"` // 文字说明  
184 - FileName string `json:"fileName,optional"` // 文件名  
185 - FileUrl string `json:"fileUrl,optional"` // 组件图片/视频  
186 - Align string `json:"align,optional"` // 废弃 文本对齐方式 left center right  
187 - HeadingAlign string `json:"headingAlign,optional"` // 主标题 文本对齐方式 left center right  
188 - SubAlign string `json:"subAlign,optional"` // 副标题 文本对齐方式 left center right  
189 - }  
190 - TableAbility struct {  
191 - FilterSwitch bool `json:"filterSwitch,optional"` // 表筛选功能开关  
192 - DimensionList []Dimension `json:"dimensionList,optional"` // 维度列表  
193 - }  
194 - Series struct {// 图表类型 (记录型表格:RecordTable-1 总体指标:MetricsCard-1 容器卡片:ContainerCard-1 四分图:QuarterChart-1)  
195 - Name string `json:"name"` // 名称 (例如 指标1、指标2)  
196 - SourceFrom string `json:"from,options=[ByteBank,User]"` // 数据源类型 ByteBank:字库 User:用户自定义  
197 - DataSourceId int64 `json:"dataSourceId,optional,omitempty"` // 数据源ID(from值为ByteBank时有值)  
198 - CustomText string `json:"customText,optional,omitempty"` // 自定义数据文本(from值为User时有值)  
199 - MatchExpressions []Expression `json:"matchExpressions,optional,omitempty"` // 条件匹配表达式(总体指标)  
200 - TargetText string `json:"targetText,optional,omitempty"` // 指标名文本  
201 - TargetNum string `json:"targetNum,optional,omitempty"` // 指标数值  
202 - TargetUnit string `json:"targetUnit,optional,omitempty"` // 指标单位  
203 - }  
204 - Expression struct {  
205 - Operator string `json:"operator"` // 操作符号 <,>,==,<>,<=,>=  
206 - CompareValue string `json:"compareValue"` // 比较值  
207 - ToValue string `json:"toValue"` // 显示值(转为)  
208 - }  
209 - Dimension struct{  
210 - Name string `json:"name,optional,omitempty"`  
211 - Value string `json:"dimensionVal,optional"`  
212 - } 151 +type (
  152 + ChartProperty {
  153 + Title Title `json:"title,optional"` // 标题
  154 + TableAbility TableAbility `json:"table,optional"` // 表筛选功能
  155 + Series []Series `json:"series,optional"` // 系列(数据源)
  156 + Other Other `json:"other,optional"` // 其他额外配置
  157 + }
  158 + Other {
  159 + Quarter *Quarter `json:"quarter,optional,omitempty"` // 四分图
  160 + }
  161 + Quarter {
  162 + XAxisLabel string `json:"xAxisLabel"` // x轴标签名
  163 + XAxisFirstLabel string `json:"xAxisFirstLabel"` // 签名1
  164 + XAxisSecondLabel string `json:"xAxisSecondLabel"` // 签名2
  165 + YAxisLabel string `json:"yAxisLabel"` // y轴标签名
  166 + YAxisFirstLabel string `json:"yAxisFirstLabel"` // y标签1
  167 + YAxisSecondLabel string `json:"yAxisSecondLabel"` // y标签2
  168 + Area string `json:"area"` // 图形面积
  169 + AreaColor bool `json:"areaColor"` // 颜色
  170 + SeriesList []QuarterSeries `json:"seriesList"` // 图形系列
  171 + }
  172 + QuarterSeries {
  173 + SeriesValue string `json:"seriesValue"`
  174 + }
  175 + Title {
  176 + TitleSwitch bool `json:"titleSwitch,optional"` // 组件标题开关
  177 + IntroduceSwitch bool `json:"introduceSwitch,optional"` // 组件说明开关
  178 + TitleType string `json:"titleType"` // 标题类型
  179 + Heading string `json:"heading,optional"` // 主标题
  180 + SubTitle string `json:"subTitle,optional"` // 副标题
  181 + ExplainType string `json:"explainType,optional,options=[text,,file]"` // text file ,options=text||file
  182 + ExplainTxt string `json:"explainTxt,optional"` // 文字说明
  183 + FileName string `json:"fileName,optional"` // 文件名
  184 + FileUrl string `json:"fileUrl,optional"` // 组件图片/视频
  185 + Align string `json:"align,optional"` // 废弃 文本对齐方式 left center right
  186 + HeadingAlign string `json:"headingAlign,optional"` // 主标题 文本对齐方式 left center right
  187 + SubAlign string `json:"subAlign,optional"` // 副标题 文本对齐方式 left center right
  188 + }
  189 + TableAbility {
  190 + FilterSwitch bool `json:"filterSwitch,optional"` // 表筛选功能开关
  191 + DimensionList []Dimension `json:"dimensionList,optional"` // 维度列表
  192 + CardSwitch bool `json:"cardSwitch,optional"` // 顺序标识开关
  193 + CardIdent string `json:"cardIdent,optional"` // 顺序标识
  194 + CardOrderList []CardOrderItem `json:"cardOrderList,optional"` // 卡片列表顺序
  195 + }
  196 + CardOrderItem {
  197 + CardId string `json:"cardId,optional"`
  198 + }
  199 + Series { // 图表类型 (记录型表格:RecordTable-1 总体指标:MetricsCard-1 容器卡片:ContainerCard-1 四分图:QuarterChart-1)
  200 + Name string `json:"name"` // 名称 (例如 指标1、指标2)
  201 + SourceFrom string `json:"from,options=[ByteBank,User]"` // 数据源类型 ByteBank:字库 User:用户自定义
  202 + DataSourceId int64 `json:"dataSourceId,optional,omitempty"` // 数据源ID(from值为ByteBank时有值)
  203 + CustomText string `json:"customText,optional,omitempty"` // 自定义数据文本(from值为User时有值)
  204 + MatchExpressions []Expression `json:"matchExpressions,optional,omitempty"` // 条件匹配表达式(总体指标)
  205 + TargetText string `json:"targetText,optional,omitempty"` // 指标名文本
  206 + TargetNum string `json:"targetNum,optional,omitempty"` // 指标数值
  207 + TargetUnit string `json:"targetUnit,optional,omitempty"` // 指标单位
  208 + }
  209 + Expression {
  210 + Operator string `json:"operator"` // 操作符号 <,>,==,<>,<=,>=
  211 + CompareValue string `json:"compareValue"` // 比较值
  212 + ToValue string `json:"toValue"` // 显示值(转为)
  213 + }
  214 + Dimension {
  215 + Name string `json:"name,optional,omitempty"`
  216 + Value string `json:"dimensionVal,optional"`
  217 + }
213 ) 218 )