Skip to content

Latest commit

 

History

History
97 lines (72 loc) · 1.76 KB

components.md

File metadata and controls

97 lines (72 loc) · 1.76 KB

Components Development


Component development, taking the image component as an example.

New types and methods of upper interface

  • Create a new ImgAttribute type
type ImgAttribute interface {
	SetWidth(value string) ImgAttribute
	SetHeight(value string) ImgAttribute
	SetSrc(value string) ImgAttribute
	GetContent() template.HTML
}
  • In the Template interface, add a method:
type Template interface {
	...
	Image() types.ImgAttribute
	...
}

Specific implementation, with adminlte as an example

  • ImgAttribute

Create a new image.go file under ./template/adminlte/components, as follows:

package components

import (
	"github.com/GoAdminGroup/go-admin/template/types"
	"html/template"
)

type ImgAttribute struct {
	Name   string
	Witdh  string
	Height string
	Src    string
}

func (compo *ImgAttribute) SetWidth(value string) types.ImgAttribute {
	compo.Witdh = value
	return compo
}

func (compo *ImgAttribute) SetHeight(value string) types.ImgAttribute {
	compo.Height = value
	return compo
}

func (compo *ImgAttribute) SetSrc(value string) types.ImgAttribute {
	compo.Src = value
	return compo
}

func (compo *ImgAttribute) GetContent() template.HTML {
	return ComposeHtml(compo.TemplateList, *compo, "image")
}
  • Image()

In .template/adminlte/adminlte.go, add a function:

func (*Theme) Image() types.ImgAttribute {
	return &components.ImgAttribute{
		Name:   "image",
		Witdh:  "50",
		Height: "50",
		Src:    "",
	}
}

Still not completed here, you need to add static resource files.

  • Add the static resource file

Add image.tmpl file to .template/adminlte/resource/pages/components

Annoying, and the last step

  • Execute in the root directory:
adm assets