Files
cmbuyer/admin/internal/transport/webui/webui.go
T

46 lines
1.1 KiB
Go
Raw Normal View History

2026-08-04 14:57:40 +08:00
// Package webui 渲染采购服务当前可用的服务端页面。
package webui
import (
"embed"
"html/template"
"io"
2026-08-04 16:33:22 +08:00
"cmbuyer/admin/internal/tasks"
2026-08-04 14:57:40 +08:00
)
//go:embed templates/*.html
var templateFiles embed.FS
2026-08-04 16:33:22 +08:00
var templates = template.Must(template.New("webui").Funcs(template.FuncMap{"list": func(values ...any) []any { return values }}).ParseFS(templateFiles, "templates/*.html"))
2026-08-04 14:57:40 +08:00
// LoginData 是登录页面所需的非敏感展示数据。
type LoginData struct {
CSRFToken string
ReturnTo string
Username string
Error string
}
2026-08-04 16:33:22 +08:00
// TasksData 是受保护的 DRAFT 建单与列表页面所需数据。
2026-08-04 14:57:40 +08:00
type TasksData struct {
2026-08-04 16:33:22 +08:00
CSRFToken string
Drafts []tasks.Draft
Form tasks.Form
Errors tasks.Errors
OpenForm bool
FullPage bool
FocusField string
Success bool
2026-08-04 14:57:40 +08:00
}
// RenderLogin 写入登录页。
func RenderLogin(writer io.Writer, data LoginData) error {
return templates.ExecuteTemplate(writer, "login.html", data)
}
2026-08-04 16:33:22 +08:00
// RenderTasks 写入登录后的受保护任务页。
2026-08-04 14:57:40 +08:00
func RenderTasks(writer io.Writer, data TasksData) error {
return templates.ExecuteTemplate(writer, "tasks.html", data)
}