profile.go 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package tables
  2. import (
  3. "path/filepath"
  4. "strings"
  5. "github.com/GoAdminGroup/go-admin/context"
  6. "github.com/GoAdminGroup/go-admin/modules/db"
  7. "github.com/GoAdminGroup/go-admin/plugins/admin/modules/table"
  8. "github.com/GoAdminGroup/go-admin/template/types"
  9. "github.com/GoAdminGroup/go-admin/template/types/form"
  10. )
  11. func GetProfileTable(ctx *context.Context) table.Table {
  12. profile := table.NewDefaultTable(ctx, table.DefaultConfigWithDriver("sqlite"))
  13. info := profile.GetInfo().HideFilterArea().SetFilterFormLayout(form.LayoutFilter)
  14. info.AddField("ID", "id", db.Int).FieldFilterable()
  15. info.AddField("UUID", "uuid", db.Varchar).FieldCopyable()
  16. info.AddField("Pass", "pass", db.Tinyint).FieldBool("1", "0")
  17. info.AddField("Photos", "photos", db.Varchar).FieldCarousel(func(value string) []string {
  18. return strings.Split(value, ",")
  19. }, 150, 100)
  20. info.AddField("Finish State", "finish_state", db.Tinyint).
  21. FieldDisplay(func(value types.FieldModel) interface{} {
  22. if value.Value == "0" {
  23. return "Step 1"
  24. }
  25. if value.Value == "1" {
  26. return "Step 2"
  27. }
  28. if value.Value == "2" {
  29. return "Step 3"
  30. }
  31. return "Unknown"
  32. }).
  33. FieldDot(map[string]types.FieldDotColor{
  34. "Step 1": types.FieldDotColorDanger,
  35. "Step 2": types.FieldDotColorInfo,
  36. "Step 3": types.FieldDotColorPrimary,
  37. }, types.FieldDotColorDanger)
  38. info.AddField("Progress", "finish_progress", db.Int).FieldProgressBar()
  39. info.AddField("Resume", "resume", db.Varchar).
  40. FieldDisplay(func(value types.FieldModel) interface{} {
  41. return filepath.Base(value.Value)
  42. }).
  43. FieldDownLoadable("http://yinyanghu.github.io/files/")
  44. info.AddField("FileSize", "resume_size", db.Int).FieldFileSize()
  45. info.SetTable("profile").SetTitle("Profile").SetDescription("Profile")
  46. formList := profile.GetForm()
  47. formList.AddField("UUID", "uuid", db.Varchar, form.Text)
  48. formList.AddField("Photos", "photos", db.Varchar, form.Text)
  49. formList.AddField("Resume", "resume", db.Varchar, form.Text)
  50. formList.AddField("FileSize", "resume_size", db.Int, form.Number)
  51. formList.AddField("Finish State", "finish_state", db.Tinyint, form.Number)
  52. formList.AddField("Progress", "finish_progress", db.Int, form.Number)
  53. formList.AddField("Pass", "pass", db.Tinyint, form.Number)
  54. formList.SetTable("profile").SetTitle("Profile").SetDescription("Profile")
  55. return profile
  56. }