| 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()) |
| } |
|
|