组件开发


组件开发,以图片组件为例。

上层接口新增类型与方法

  • 新建一个ImgAttribute类型
  1. type ImgAttribute interface {
  2. SetWidth(value string) ImgAttribute
  3. SetHeight(value string) ImgAttribute
  4. SetSrc(value string) ImgAttribute
  5. GetContent() template.HTML
  6. }
  • Template接口中,增加一个方法:
  1. type Template interface {
  2. ...
  3. Image() types.ImgAttribute
  4. ...
  5. }

具体实现,以adminlte为例子

  • 实现ImgAttribute

./template/adminlte/components下新建image.go文件,内容如下:

  1. package components
  2. import (
  3. "github.com/GoAdminGroup/go-admin/template/types"
  4. "html/template"
  5. )
  6. type ImgAttribute struct {
  7. Name string
  8. Witdh string
  9. Height string
  10. Src string
  11. }
  12. func (compo *ImgAttribute) SetWidth(value string) types.ImgAttribute {
  13. compo.Witdh = value
  14. return compo
  15. }
  16. func (compo *ImgAttribute) SetHeight(value string) types.ImgAttribute {
  17. compo.Height = value
  18. return compo
  19. }
  20. func (compo *ImgAttribute) SetSrc(value string) types.ImgAttribute {
  21. compo.Src = value
  22. return compo
  23. }
  24. func (compo *ImgAttribute) GetContent() template.HTML {
  25. return ComposeHtml(compo.TemplateList, *compo, "image")
  26. }
  • 实现Image()

./template/adminlte/adminlte.go中,增加一个函数:

  1. func (*Theme) Image() types.ImgAttribute {
  2. return &components.ImgAttribute{
  3. Name: "image",
  4. Witdh: "50",
  5. Height: "50",
  6. Src: "",
  7. }
  8. }

到这里还是没有完成的,需要增加静态资源文件。

  • 增加静态资源文件

./template/adminlte/resource/pages/components增加image.tmpl文件

烦人,还有最后一步

  • 在根目录下执行:
  1. adm assets