|
package components |
|
|
|
import ( |
|
"bytes" |
|
"html/template" |
|
|
|
"github.com/GoAdminGroup/go-admin/modules/config" |
|
"github.com/GoAdminGroup/go-admin/modules/logger" |
|
"github.com/GoAdminGroup/go-admin/modules/utils" |
|
template2 "github.com/GoAdminGroup/go-admin/template" |
|
) |
|
|
|
func ComposeHtml(temList map[string]string, separation bool, compo interface{}, templateName ...string) template.HTML { |
|
|
|
tmplName := "" |
|
if len(templateName) > 0 { |
|
tmplName = templateName[0] + " " |
|
} |
|
|
|
var ( |
|
tmpl *template.Template |
|
err error |
|
) |
|
|
|
if separation { |
|
files := make([]string, 0) |
|
root := config.GetAssetRootPath() + "pages/" |
|
for _, v := range templateName { |
|
files = append(files, root+temList["components/"+v]+".tmpl") |
|
} |
|
tmpl, err = template.New("comp").Funcs(template2.DefaultFuncMap).ParseFiles(files...) |
|
} else { |
|
var text = "" |
|
for _, v := range templateName { |
|
text += temList["components/"+v] |
|
} |
|
tmpl, err = template.New("comp").Funcs(template2.DefaultFuncMap).Parse(text) |
|
} |
|
|
|
if err != nil { |
|
logger.Panic(tmplName + "ComposeHtml Error:" + err.Error()) |
|
return "" |
|
} |
|
buf := new(bytes.Buffer) |
|
|
|
defineName := utils.ReplaceAll(templateName[0], "table/", "", "form/", "") |
|
|
|
err = tmpl.ExecuteTemplate(buf, defineName, compo) |
|
if err != nil { |
|
logger.Error(tmplName+" ComposeHtml Error:", err) |
|
} |
|
return template.HTML(buf.String()) |
|
} |
|
|