GridHelperTrait.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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. $color = $colors[$value] ?? 'default';
  33. $label = $labels[$value] ?? '未知';
  34. return "<span class='label bg-{$color}'>{$label}</span>";
  35. })->label();
  36. }
  37. /**
  38. * 宠物状态列
  39. *
  40. * @param $field
  41. * @param $label
  42. * @return \Dcat\Admin\Grid\Column
  43. */
  44. public function columnPetStatus($field, $label = '状态')
  45. {
  46. return $this->grid->column($field, $label)->display(function ($value) {
  47. if ($value instanceof PetStatus) {
  48. $value = $value->value;
  49. }
  50. $colors = [
  51. PetStatus::NONE->value => 'default',
  52. PetStatus::NORMAL->value => 'success',
  53. PetStatus::FIGHTING->value => 'warning',
  54. PetStatus::DEAD->value => 'danger',
  55. ];
  56. $labels = [
  57. PetStatus::NONE->value => '未知',
  58. PetStatus::NORMAL->value => '正常',
  59. PetStatus::FIGHTING->value => '战斗中',
  60. PetStatus::DEAD->value => '死亡',
  61. ];
  62. $color = $colors[$value] ?? 'default';
  63. $label = $labels[$value] ?? '未知';
  64. return "<span class='label bg-{$color}'>{$label}</span>";
  65. })->label();
  66. }
  67. }