GridHelperTrait.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace App\Module\Pet\AdminControllers\Helper;
  3. use App\Module\Pet\Enums\PetStatus;
  4. trait GridHelperTrait
  5. {
  6. /**
  7. * 宠物状态列
  8. *
  9. * @param $field
  10. * @param $label
  11. * @return \Dcat\Admin\Grid\Column
  12. */
  13. public function columnPetStatus($field, $label = '状态')
  14. {
  15. return $this->grid->column($field, $label)->display(function ($value) {
  16. if ($value instanceof PetStatus) {
  17. $value = $value->value;
  18. }
  19. $colors = [
  20. PetStatus::NONE->value => 'default',
  21. PetStatus::NORMAL->value => 'success',
  22. PetStatus::DEAD->value => 'danger',
  23. PetStatus::FEEDING->value => 'info',
  24. PetStatus::TRAINING->value => 'warning',
  25. PetStatus::RESTING->value => 'secondary',
  26. PetStatus::TRAVELING->value => 'primary',
  27. ];
  28. $labels = [
  29. PetStatus::NONE->value => '未知',
  30. PetStatus::NORMAL->value => '正常',
  31. PetStatus::DEAD->value => '死亡',
  32. PetStatus::FEEDING->value => '喂养中',
  33. PetStatus::TRAINING->value => '训练中',
  34. PetStatus::RESTING->value => '休息中',
  35. PetStatus::TRAVELING->value => '外出中',
  36. ];
  37. $color = $colors[$value] ?? 'default';
  38. $label = $labels[$value] ?? '未知';
  39. return "<span class='label bg-{$color}'>{$label}</span>";
  40. })->label();
  41. }
  42. }