ShowHelperTrait.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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 ShowHelperTrait
  6. {
  7. /**
  8. * 宠物品阶显示
  9. *
  10. * @param $field
  11. * @param $label
  12. * @return \Dcat\Admin\Show\Field
  13. */
  14. public function fieldPetGrade($field, $label = '品阶')
  15. {
  16. return $this->show->field($field, $label)->as(function ($value) {
  17. if ($value instanceof PetGrade) {
  18. $value = $value->value;
  19. }
  20. $labels = [
  21. PetGrade::FIRST->value => '一品',
  22. PetGrade::SECOND->value => '二品',
  23. PetGrade::THIRD->value => '三品',
  24. PetGrade::FOURTH->value => '四品',
  25. ];
  26. return $labels[$value] ?? '未知';
  27. });
  28. }
  29. /**
  30. * 宠物状态显示
  31. *
  32. * @param $field
  33. * @param $label
  34. * @return \Dcat\Admin\Show\Field
  35. */
  36. public function fieldPetStatus($field, $label = '状态')
  37. {
  38. return $this->show->field($field, $label)->as(function ($value) {
  39. if ($value instanceof PetStatus) {
  40. $value = $value->value;
  41. }
  42. $labels = [
  43. PetStatus::NONE->value => '未知',
  44. PetStatus::NORMAL->value => '正常',
  45. PetStatus::FIGHTING->value => '战斗中',
  46. PetStatus::DEAD->value => '死亡',
  47. ];
  48. return $labels[$value] ?? '未知';
  49. });
  50. }
  51. }