refactor: enhance echarts mark data

This commit is contained in:
vicanso 2022-02-19 16:22:57 +08:00
parent edee23a6dd
commit 513c93e209
2 changed files with 40 additions and 4 deletions

View file

@ -209,11 +209,33 @@ type EChartsLegend struct {
TextStyle EChartsTextStyle `json:"textStyle"` TextStyle EChartsTextStyle `json:"textStyle"`
} }
type EChartsMarkData struct {
Type string `json:"type"`
}
type _EChartsMarkData EChartsMarkData
func (emd *EChartsMarkData) UnmarshalJSON(data []byte) error {
data = bytes.TrimSpace(data)
if len(data) == 0 {
return nil
}
data = convertToArray(data)
ds := make([]*_EChartsMarkData, 0)
err := json.Unmarshal(data, &ds)
if err != nil {
return err
}
for _, d := range ds {
if d.Type != "" {
emd.Type = d.Type
}
}
return nil
}
type EChartsMarkPoint struct { type EChartsMarkPoint struct {
SymbolSize int `json:"symbolSize"` SymbolSize int `json:"symbolSize"`
Data []struct { Data []EChartsMarkData `json:"data"`
Type string `json:"type"`
} `json:"data"`
} }
func (emp *EChartsMarkPoint) ToSeriesMarkPoint() SeriesMarkPoint { func (emp *EChartsMarkPoint) ToSeriesMarkPoint() SeriesMarkPoint {

View file

@ -330,6 +330,20 @@ func TestEChartsSeries(t *testing.T) {
}, esList) }, esList)
} }
func TestEChartsMarkData(t *testing.T) {
assert := assert.New(t)
emd := EChartsMarkData{}
err := emd.UnmarshalJSON([]byte(`{"type": "average"}`))
assert.Nil(err)
assert.Equal("average", emd.Type)
emd = EChartsMarkData{}
err = emd.UnmarshalJSON([]byte(`[{}, {"type": "average"}]`))
assert.Nil(err)
assert.Equal("average", emd.Type)
}
func TestEChartsMarkPoint(t *testing.T) { func TestEChartsMarkPoint(t *testing.T) {
assert := assert.New(t) assert := assert.New(t)