@@ -18,6 +18,7 @@ import (
18
18
"context"
19
19
"encoding/json"
20
20
"fmt"
21
+ "strconv"
21
22
22
23
"github.com/erda-project/erda-infra/base/servicehub"
23
24
"github.com/erda-project/erda-infra/providers/component-protocol/cptype"
@@ -41,9 +42,10 @@ func init() {
41
42
type Chart struct {
42
43
base.DefaultProvider
43
44
44
- PData []Data `json:"pData"`
45
- EData []Data `json:"eData"`
46
- XAxis XAxis `json:"xAxis"`
45
+ PData []Data `json:"pData"`
46
+ EData []Data `json:"eData"`
47
+ XAxis XAxis `json:"xAxis"`
48
+ State map [string ]interface {} `json:"state"`
47
49
}
48
50
49
51
type Props struct {
@@ -53,8 +55,8 @@ type Props struct {
53
55
}
54
56
55
57
type Data struct {
56
- Value string `json:"value"`
57
- MetaData gshelper.SelectChartItemData `json:"metaData"`
58
+ Value string `json:"value"`
59
+ MetaData map [ string ] gshelper.SelectChartItemData `json:"metaData"`
58
60
}
59
61
60
62
type TestPlanV2 struct {
@@ -109,6 +111,10 @@ type PData struct {
109
111
110
112
func (ch * Chart ) Render (ctx context.Context , c * cptype.Component , scenario cptype.Scenario , event cptype.ComponentEvent , gs * cptype.GlobalStateData ) error {
111
113
h := gshelper .NewGSHelper (gs )
114
+ if c .State == nil {
115
+ c .State = map [string ]interface {}{}
116
+ }
117
+ c .State ["isClick" ] = false
112
118
switch event .Operation {
113
119
case RateTrendingSelectItemOperationKey :
114
120
opData := OperationData {}
@@ -121,6 +127,7 @@ func (ch *Chart) Render(ctx context.Context, c *cptype.Component, scenario cptyp
121
127
}
122
128
123
129
h .SetSelectChartItemData (opData .MetaData .Data .Data .MetaData )
130
+ c .State ["isClick" ] = true
124
131
return nil
125
132
case cptype .InitializeOperation , cptype .DefaultRenderingKey , cptype .RenderingOperation :
126
133
atPlans := h .GetRateTrendingFilterTestPlanList ()
@@ -143,6 +150,7 @@ func (ch *Chart) Render(ctx context.Context, c *cptype.Component, scenario cptyp
143
150
eData := make ([]Data , 0 , len (historyList ))
144
151
xAxis := make ([]string , 0 , len (historyList ))
145
152
var sucApiNum , execApiNum , totalApiNum int64
153
+ metaData := make (map [string ]gshelper.SelectChartItemData , 0 )
146
154
for _ , v := range historyList {
147
155
if v .Type != apistructs .AutoTestPlan {
148
156
continue
@@ -154,7 +162,7 @@ func (ch *Chart) Render(ctx context.Context, c *cptype.Component, scenario cptyp
154
162
sucApiNum += v .SuccessApiNum
155
163
execApiNum += v .ExecuteApiNum
156
164
totalApiNum += v .TotalApiNum
157
- metaData : = gshelper.SelectChartItemData {
165
+ metaData [ strconv . FormatUint ( v . PlanID , 10 )] = gshelper.SelectChartItemData {
158
166
PlanID : v .PlanID ,
159
167
Name : func () string {
160
168
for _ , v2 := range h .GetGlobalAutoTestPlanList () {
@@ -164,14 +172,19 @@ func (ch *Chart) Render(ctx context.Context, c *cptype.Component, scenario cptyp
164
172
}
165
173
return ""
166
174
}(),
167
- PipelineID : v .PipelineID ,
175
+ PipelineID : v .PipelineID ,
176
+ ExecuteTime : v .ExecuteTime ,
177
+ }
178
+ currMeta := make (map [string ]gshelper.SelectChartItemData , 0 )
179
+ for k , data := range metaData {
180
+ currMeta [k ] = data
168
181
}
169
182
pData = append (pData , Data {
170
- MetaData : metaData ,
183
+ MetaData : currMeta ,
171
184
Value : calRate (sucApiNum , totalApiNum ),
172
185
})
173
186
eData = append (eData , Data {
174
- MetaData : metaData ,
187
+ MetaData : currMeta ,
175
188
Value : calRate (execApiNum , totalApiNum ),
176
189
})
177
190
xAxis = append (xAxis , v .ExecuteTime .Format ("2006-01-02 15:04:05" ))
@@ -181,23 +194,7 @@ func (ch *Chart) Render(ctx context.Context, c *cptype.Component, scenario cptyp
181
194
ch .XAxis = XAxis {xAxis }
182
195
c .Props = ch .convertToProps (ctx )
183
196
c .Operations = getOperations ()
184
- h .SetSelectChartItemData (func () gshelper.SelectChartItemData {
185
- if len (historyList ) == 0 {
186
- return gshelper.SelectChartItemData {}
187
- }
188
- return gshelper.SelectChartItemData {
189
- PlanID : historyList [len (historyList )- 1 ].PlanID ,
190
- PipelineID : historyList [len (historyList )- 1 ].PipelineID ,
191
- Name : func () string {
192
- for _ , v := range h .GetGlobalAutoTestPlanList () {
193
- if v .ID == historyList [len (historyList )- 1 ].PlanID {
194
- return v .Name
195
- }
196
- }
197
- return ""
198
- }(),
199
- }
200
- }())
197
+ h .SetSelectChartItemData (metaData )
201
198
return nil
202
199
}
203
200
return nil
0 commit comments