chart_theme.go 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. package chart_theme
  2. import (
  3. "errors"
  4. "eta/eta_chart_lib/global"
  5. "eta/eta_chart_lib/utils"
  6. "time"
  7. )
  8. // ChartTheme
  9. // @Description: 图表主题表
  10. type ChartTheme struct {
  11. //ChartThemeId int `description:"图表主题类型ID" orm:"column(chart_theme_id);pk"`
  12. ChartThemeId int `description:"图表主题类型ID" gorm:"column:chart_theme_id;primaryKey"`
  13. ChartThemeName string `description:"图表主题名称"`
  14. ChartThemeTypeId int `description:"图表主题类型ID"`
  15. ChartImage string `description:"缩略图"`
  16. Config string `description:"配置"`
  17. IsDelete int `description:"是否删除,0:未删除;1:已删除"`
  18. SysUserId int `description:"操作人"`
  19. SysUserRealName string `description:"操作人的真实名称"`
  20. IsSystemTheme int `description:"是否是系统主题,0:不是;1:是"`
  21. ModifyTime time.Time `description:"修改时间"`
  22. CreateTime time.Time `description:"创建时间"`
  23. }
  24. // GetChartThemeId
  25. // @Description: 根据id获取主题
  26. // @author: Roc
  27. // @datetime 2023-12-14 16:05:36
  28. // @param chartThemeId int
  29. // @return item *ChartTheme
  30. // @return err error
  31. func GetChartThemeId(chartThemeId int) (item *ChartTheme, err error) {
  32. //o := orm.NewOrmUsingDB("data")
  33. sql := `SELECT * FROM chart_theme where chart_theme_id = ? AND is_delete = 0`
  34. //err = o.Raw(sql, chartThemeId).QueryRow(&item)
  35. err = global.DbMap[utils.DbNameIndex].Raw(sql, chartThemeId).First(&item).Error
  36. return
  37. }
  38. // Add
  39. // @Description: 添加
  40. // @author: Roc
  41. // @receiver m
  42. // @datetime 2023-12-14 16:11:10
  43. // @param cols []string
  44. // @return err error
  45. func (m *ChartTheme) Add() (err error) {
  46. if m.ChartThemeId > 0 {
  47. err = errors.New("该配置已存在")
  48. return
  49. }
  50. //o := orm.NewOrmUsingDB("data")
  51. //lastId, err := o.Insert(m)
  52. err = global.DbMap[utils.DbNameIndex].Create(&m).Error
  53. if err != nil {
  54. return
  55. }
  56. //m.ChartThemeId = int(lastId)
  57. return
  58. }
  59. // Update
  60. // @Description: 更新
  61. // @author: Roc
  62. // @receiver m
  63. // @datetime 2023-12-14 16:11:10
  64. // @param cols []string
  65. // @return err error
  66. func (m *ChartTheme) Update(cols []string) (err error) {
  67. //o := orm.NewOrmUsingDB("data")
  68. //_, err = o.Update(m, cols...)
  69. err = global.DbMap[utils.DbNameIndex].Model(&m).Select(cols).Updates(&m).Error
  70. return
  71. }
  72. // GetChartThemeListByTypeId
  73. // @Description: 根据图表类型获取关联的图表主题列表
  74. // @author: Roc
  75. // @datetime 2023-12-13 17:39:48
  76. // @return list []*ChartTheme
  77. // @return err error
  78. func GetChartThemeListByTypeId(chartThemeTypeId int) (list []*ChartTheme, err error) {
  79. //o := orm.NewOrmUsingDB("data")
  80. sql := `SELECT * FROM chart_theme WHERE chart_theme_type_id = ? AND is_delete=0 ORDER BY chart_theme_id ASC `
  81. //_, err = o.Raw(sql, chartThemeTypeId).QueryRows(&list)
  82. err = global.DbMap[utils.DbNameIndex].Raw(sql, chartThemeTypeId).Find(&list).Error
  83. return
  84. }
  85. // GetAllChartThemeList
  86. // @Description: 获取所有图表主题列表
  87. // @author: Roc
  88. // @datetime 2023-12-13 17:39:48
  89. // @return list []*ChartTheme
  90. // @return err error
  91. func GetAllChartThemeList() (list []*ChartTheme, err error) {
  92. //o := orm.NewOrmUsingDB("data")
  93. sql := `SELECT * FROM chart_theme WHERE is_delete=0 ORDER BY chart_theme_id ASC `
  94. //_, err = o.Raw(sql).QueryRows(&list)
  95. err = global.DbMap[utils.DbNameIndex].Raw(sql).Find(&list).Error
  96. return
  97. }
  98. // ChartThemeItem
  99. // @Description: 图表主题配置
  100. type ChartThemeItem struct {
  101. ChartThemeId int `description:"图表主题类型ID" orm:"column(chart_theme_id);pk"`
  102. ChartThemeName string `description:"图表主题名称"`
  103. ChartThemeTypeId int `description:"图表主题类型ID"`
  104. Config string `description:"配置"`
  105. ChartImage string `description:"缩略图"`
  106. //IsDelete int `description:"是否删除,0:未删除;1:已删除"`
  107. IsSystemTheme int `description:"是否是系统主题,0:不是;1:是"`
  108. SysUserId int `description:"操作人"`
  109. SysUserRealName string `description:"操作人的真实名称"`
  110. ModifyTime time.Time `description:"修改时间"`
  111. CreateTime time.Time `description:"创建时间"`
  112. DefaultChartThemeId int `description:"默认使用的图表主题ID"`
  113. }
  114. // GetChartThemeItemList
  115. // @Description: 根据图表类型id获取配置列表
  116. // @author: Roc
  117. // @datetime 2023-12-14 14:26:35
  118. // @param chartThemeTypeId int
  119. // @return list []*ChartThemeConfig
  120. // @return err error
  121. func GetChartThemeItemList(chartThemeTypeId int) (list []*ChartThemeItem, err error) {
  122. //o := orm.NewOrmUsingDB("data")
  123. sql := `SELECT a.*,b.default_chart_theme_id FROM chart_theme a
  124. JOIN chart_theme_type b on a.chart_theme_type_id =b.chart_theme_type_id
  125. WHERE a.chart_theme_type_id = ? AND a.is_delete=0 ORDER BY a.chart_theme_id ASC `
  126. //_, err = o.Raw(sql, chartThemeTypeId).QueryRows(&list)
  127. err = global.DbMap[utils.DbNameIndex].Raw(sql, chartThemeTypeId).Find(&list).Error
  128. return
  129. }
  130. // GetSystemChartTheme
  131. // @Description: 根据图表类型id获取系统配置
  132. // @author: Roc
  133. // @datetime 2023-12-14 14:26:35
  134. // @param chartThemeTypeId int
  135. // @return item *ChartTheme
  136. // @return err error
  137. func GetSystemChartTheme(chartThemeTypeId int) (item *ChartTheme, err error) {
  138. //o := orm.NewOrmUsingDB("data")
  139. sql := `SELECT a.* FROM chart_theme a
  140. WHERE a.chart_theme_type_id = ? AND a.is_system_theme=1 ORDER BY a.chart_theme_id ASC `
  141. //err = o.Raw(sql, chartThemeTypeId).QueryRow(&item)
  142. err = global.DbMap[utils.DbNameIndex].Raw(sql, chartThemeTypeId).First(&item).Error
  143. return
  144. }
  145. type ColorsOptions []string
  146. type LegendOptions struct {
  147. VerticalAlign string `json:"verticalAlign"`
  148. ItemStyle struct {
  149. Color string `json:"color"`
  150. FontSize int `json:"fontSize"`
  151. Cursor string `json:"cursor"`
  152. FontWeight string `json:"fontWeight"`
  153. TextOverflow string `json:"textOverflow"`
  154. } `json:"itemStyle"`
  155. }
  156. type TitleOptions struct {
  157. Align string `json:"align"`
  158. Style struct {
  159. Color string `json:"color"`
  160. FontSize int `json:"fontSize"`
  161. } `json:"style"`
  162. }
  163. type MarkerOptions struct {
  164. Style struct {
  165. Color string `json:"color"`
  166. FontSize int `json:"fontSize"`
  167. } `json:"style"`
  168. }
  169. type AxisOptions struct {
  170. Style struct {
  171. Color string `json:"color"`
  172. FontSize int `json:"fontSize"`
  173. } `json:"style"`
  174. }
  175. type DrawOption struct {
  176. PlotBackgroundColor string `json:"plotBackgroundColor"`
  177. }
  178. type LineOptions struct {
  179. DashStyle string `json:"dashStyle"`
  180. LineWidth float64 `json:"lineWidth"`
  181. LineType string `json:"lineType"`
  182. Radius float64 `json:"radius"`
  183. }
  184. type OldChartOptions struct {
  185. ColorsOptions []string `json:"colorsOptions"`
  186. LineOptions LineOptions `json:"lineOptions"`
  187. LegendOptions interface{} `json:"legendOptions"`
  188. TitleOptions interface{} `json:"titleOptions"`
  189. MarkerOptions interface{} `json:"markerOptions"`
  190. XAxisOptions interface{} `json:"xAxisOptions"`
  191. YAxisOptions interface{} `json:"yAxisOptions"`
  192. DrawOption interface{} `json:"drawOption"`
  193. LineOptionList []LineStyleOptions `json:"lineOptionList"`
  194. }
  195. type NewChartOptions struct {
  196. OldChartOptions
  197. LineOptionList []NewLineOptions `json:"lineOptionList"`
  198. }
  199. type NewLineOptions struct {
  200. LineOptions
  201. Color string `json:"color"`
  202. DataMark string `json:"dataMark"`
  203. MarkType string `json:"markType"`
  204. MarkSize int `json:"markSize"`
  205. MarkColor string `json:"markColor"`
  206. }
  207. type LineStyleOptions struct {
  208. DashStyle string `json:"dashStyle"`
  209. Color string `json:"color"`
  210. LineWidth float64 `json:"lineWidth"`
  211. LineType string `json:"lineType"`
  212. Radius int `json:"radius"`
  213. DataMark string `json:"dataMark"`
  214. MarkType string `json:"markType"`
  215. MarkSize int `json:"markSize"`
  216. MarkColor string `json:"markColor"`
  217. }