页面模块化


页面自定义需要调用引擎的Content方法,需要返回一个对象types.Panel

以下是types.Panel的定义:

  1. type Panel struct {
  2. Content template.HTML // 页面内容
  3. Title string // 页面标题
  4. Description string // 页面描述
  5. Url string
  6. }

对应的ui,可以看下图:

页面模块化 - 图1

如何使用

  1. package datamodel
  2. import (
  3. "github.com/GoAdminGroup/go-admin/modules/config"
  4. template2 "github.com/GoAdminGroup/go-admin/template"
  5. "github.com/GoAdminGroup/go-admin/template/types"
  6. "html/template"
  7. )
  8. func GetContent() (types.Panel, error) {
  9. components := template2.Get(config.Get().THEME)
  10. colComp := components.Col()
  11. infobox := components.InfoBox().
  12. SetText("CPU TRAFFIC").
  13. SetColor("blue").
  14. SetNumber("41,410").
  15. SetIcon("ion-ios-gear-outline").
  16. GetContent()
  17. var size = map[string]string{"md": "3", "sm": "6", "xs": "12"}
  18. infoboxCol1 := colComp.SetSize(size).SetContent(infobox).GetContent()
  19. row1 := components.Row().SetContent(infoboxCol1).GetContent()
  20. return types.Panel{
  21. Content: row1,
  22. Title: "Dashboard",
  23. Description: "this is a example",
  24. }, nil
  25. }

Col 列

一个col列对应的是ColAttribute这个类型,有三个方法如下:

  1. type ColAttribute interface {
  2. SetSize(value map[string]string) ColAttribute // 设置大小
  3. SetContent(value template.HTML) ColAttribute // 设置本列的内容
  4. GetContent() template.HTML // 获取内容
  5. }

关于size,参考的例子是:map[string]string{"md": "3", "sm": "6", "xs": "12"}

Row 行

一个row行对应的是RowAttribute这个类型,有两个方法如下:

  1. type RowAttribute interface {
  2. SetContent(value template.HTML) RowAttribute // 设置内容
  3. GetContent() template.HTML // 获取内容
  4. }