Component development, taking the image component as an example.
- 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
...
}
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