GridHelperTrait.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace App\Module\Pet\AdminControllers\Helper;
  3. use App\Module\Pet\Enums\PetGrade;
  4. use App\Module\Pet\Enums\PetStatus;
  5. trait GridHelperTrait
  6. {
  7. /**
  8. * 宠物品阶列
  9. *
  10. * @param $field
  11. * @param $label
  12. * @return \Dcat\Admin\Grid\Column
  13. */
  14. public function columnPetGrade($field, $label = '品阶')
  15. {
  16. return $this->grid->column($field, $label)->display(function ($value) {
  17. if ($value instanceof PetGrade) {
  18. $value = $value->value;
  19. }
  20. $colors = [
  21. PetGrade::FIRST->value => 'primary',
  22. PetGrade::SECOND->value => 'success',
  23. PetGrade::THIRD->value => 'warning',
  24. PetGrade::FOURTH->value => 'danger',
  25. ];
  26. $labels = [
  27. PetGrade::FIRST->value => '一品',
  28. PetGrade::SECOND->value => '二品',
  29. PetGrade::THIRD->value => '三品',
  30. PetGrade::FOURTH->value => '四品',
  31. ];
  32. return "<span class='label bg-{$colors[$value]}'>{$labels[$value]}</span>";
  33. })->label();
  34. }
  35. /**
  36. * 宠物状态列
  37. *
  38. * @param $field
  39. * @param $label
  40. * @return \Dcat\Admin\Grid\Column
  41. */
  42. public function columnPetStatus($field, $label = '状态')
  43. {
  44. return $this->grid->column($field, $label)->display(function ($value) {
  45. if ($value instanceof PetStatus) {
  46. $value = $value->value;
  47. }
  48. $colors = [
  49. PetStatus::NONE->value => 'default',
  50. PetStatus::NORMAL->value => 'success',
  51. PetStatus::FIGHTING->value => 'warning',
  52. PetStatus::DEAD->value => 'danger',
  53. ];
  54. $labels = [
  55. PetStatus::NONE->value => '未知',
  56. PetStatus::NORMAL->value => '正常',
  57. PetStatus::FIGHTING->value => '战斗中',
  58. PetStatus::DEAD->value => '死亡',
  59. ];
  60. return "<span class='label bg-{$colors[$value]}'>{$labels[$value]}</span>";
  61. })->label();
  62. }
  63. }