12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package data
- import (
- "encoding/json"
- "eta_gn/eta_chart_lib/models/data_manage/chart_theme"
- "eta_gn/eta_chart_lib/utils"
- )
- func GetChartThemeConfig(chartThemeId, source, chartType int) (chartTheme *chart_theme.ChartTheme, err error) {
- chartTheme, err = chart_theme.GetChartThemeId(chartThemeId)
- if err != nil && !utils.IsErrNoRow(err) {
- return
- }
- err = nil
- if chartTheme != nil && chartTheme.ChartThemeId > 0 {
- newConfig, e := ConvertOldChartOptions(chartTheme.Config)
- if e == nil {
- chartTheme.Config = newConfig
- } else {
- err = e
- return
- }
- return
- }
- chartThemeType, err := chart_theme.GetChartThemeTypeByChartTypeAndSource(chartType, source)
- if err != nil {
- return
- }
- chartTheme, err = chart_theme.GetChartThemeId(chartThemeType.DefaultChartThemeId)
- if err != nil && !utils.IsErrNoRow(err) {
- return
- }
- err = nil
- if chartTheme != nil {
- newConfig, e := ConvertOldChartOptions(chartTheme.Config)
- if e == nil {
- chartTheme.Config = newConfig
- } else {
- err = e
- return
- }
- return
- }
- chartTheme, err = chart_theme.GetSystemChartTheme(chartThemeType.ChartThemeTypeId)
- newConfig, e := ConvertOldChartOptions(chartTheme.Config)
- if e == nil {
- chartTheme.Config = newConfig
- } else {
- err = e
- return
- }
- return
- }
- func ConvertOldChartOptions(config string) (newConfig string, err error) {
- var oldTheme chart_theme.OldChartOptions
- var newTheme chart_theme.NewChartOptions
- err = json.Unmarshal([]byte(config), &oldTheme)
- if err != nil {
- return
- }
- if oldTheme.LineOptionList != nil && len(oldTheme.LineOptionList) > 0 {
- newConfig = config
- return
- }
- newTheme.OldChartOptions = oldTheme
- for i := 0; i < 10; i++ {
- newLineOption := chart_theme.NewLineOptions{
- LineOptions: oldTheme.LineOptions,
- Color: oldTheme.ColorsOptions[i],
- DataMark: "none",
- MarkType: "square",
- MarkSize: 5,
- MarkColor: oldTheme.ColorsOptions[i],
- }
- newTheme.LineOptionList = append(newTheme.LineOptionList, newLineOption)
- }
- newThemeStr, _ := json.Marshal(newTheme)
- newConfig = string(newThemeStr)
- return
- }
|