| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- package pages
- import (
- "fmt"
- "github.com/GoAdminGroup/go-admin/context"
- "github.com/GoAdminGroup/go-admin/modules/config"
- "github.com/GoAdminGroup/go-admin/plugins/admin/modules/paginator"
- "github.com/GoAdminGroup/go-admin/plugins/admin/modules/parameter"
- "github.com/GoAdminGroup/go-admin/template"
- "github.com/GoAdminGroup/go-admin/template/icon"
- "github.com/GoAdminGroup/go-admin/template/types"
- "github.com/GoAdminGroup/go-admin/template/types/action"
- )
- func GetTableContent(ctx *context.Context) (types.Panel, error) {
- comp := template.Get(ctx, config.GetTheme())
- table := comp.DataTable().
- SetInfoList([]map[string]types.InfoItem{
- {
- "id": {Content: "0"},
- "name": {Content: "Jack"},
- "gender": {Content: "men"},
- "age": {Content: "20"},
- },
- {
- "id": {Content: "1"},
- "name": {Content: "Jane"},
- "gender": {Content: "women"},
- "age": {Content: "23"},
- },
- }).
- SetPrimaryKey("id").
- SetThead(types.Thead{
- {Head: "ID", Field: "id"},
- {Head: "Name", Field: "name"},
- {Head: "Gender", Field: "gender"},
- {Head: "Age", Field: "age"},
- })
- allBtns := make(types.Buttons, 0)
- // Add a ajax button action
- allBtns = append(allBtns, types.GetDefaultButton("Click me", icon.ArrowLeft, action.Ajax("ajax_id",
- func(ctx *context.Context) (success bool, msg string, data interface{}) {
- fmt.Println("ctx request", ctx.FormValue("id"))
- return true, "ok", nil
- })))
- btns, btnsJs := allBtns.Content(ctx)
- table = table.SetButtons(btns).SetActionJs(btnsJs)
- cbs := make(types.Callbacks, 0)
- for _, btn := range allBtns {
- cbs = append(cbs, btn.GetAction().GetCallbacks())
- }
- body := table.GetContent()
- return types.Panel{
- Content: comp.Box().
- SetBody(body).
- SetNoPadding().
- SetHeader(table.GetDataTableHeader()).
- WithHeadBorder().
- SetFooter(paginator.Get(ctx, paginator.Config{
- Size: 50,
- PageSizeList: []string{"10", "20", "30", "50"},
- Param: parameter.GetParam(ctx.Request.URL, 10),
- }).GetContent()).
- GetContent(),
- Title: "Table",
- Description: "table example",
- Callbacks: cbs,
- }, nil
- }
|