SettingController.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <?php
  2. namespace App\Admin\Controllers\Setting;
  3. use App\Models\Setting;
  4. use Dcat\Admin\Form;
  5. use Dcat\Admin\Grid;
  6. use Dcat\Admin\Layout\Content;
  7. use Dcat\Admin\Show;
  8. use Dcat\Admin\Http\Controllers\AdminController;
  9. use Dingo\Api\Http\Request;
  10. class SettingController extends AdminController
  11. {
  12. const TYPE_BASIC = 'basic'; // 基础设置
  13. const TYPE_TIPS = 'tips'; // 消息设置
  14. const TYPE_GOLD = 'gold'; // 金币设置
  15. const TYPE_ROLE = 'role'; // 会员权限
  16. const TYPE_SIGN = 'sign'; // 签到权限
  17. protected $type = '';
  18. public function __construct()
  19. {
  20. $route = \request()->route();
  21. $arr = explode("/",$route->uri);
  22. $this->type = $arr[3];
  23. }
  24. /**
  25. * Make a grid builder.
  26. *
  27. * @return Grid
  28. */
  29. protected function grid()
  30. {
  31. return Grid::make(new Setting(), function (Grid $grid) {
  32. $grid->column('id')->sortable();
  33. if($this->type == self::TYPE_BASIC){
  34. $grid->column('name');
  35. $grid->column('logo')->image('',150);
  36. $grid->column('contact')->editable();
  37. $grid->column('is_review')->switch();
  38. }elseif($this->type == self::TYPE_TIPS){
  39. $grid->column('tips')->editable();
  40. }elseif($this->type == self::TYPE_GOLD){
  41. $grid->column('recharge_bg_img')->image('',150);;
  42. $grid->column('recharge_button_txt');
  43. $grid->column('recharge_desc');
  44. }elseif($this->type == self::TYPE_ROLE){
  45. $grid->column('vip_role')->radio(config('global.vip_role'));
  46. }elseif($this->type == self::TYPE_SIGN){
  47. $grid->column('is_open_sign')->radio(config('global.open_sign'));
  48. }
  49. if($this->type == self::TYPE_ROLE || $this->type == self::TYPE_SIGN){
  50. $grid->disableEditButton();
  51. $grid->disableActions();
  52. }
  53. $grid->disableDeleteButton();
  54. $grid->disableCreateButton();
  55. $grid->disableViewButton();
  56. $grid->disableRowSelector();
  57. });
  58. }
  59. /**
  60. * Make a show builder.
  61. *
  62. * @param mixed $id
  63. *
  64. * @return Show
  65. */
  66. protected function detail($id)
  67. {
  68. return Show::make($id, new Setting(), function (Show $show) {
  69. $show->field('id');
  70. $show->field('name');
  71. $show->field('logo');
  72. $show->field('contact');
  73. $show->field('tips');
  74. $show->field('is_watch_auto_pay');
  75. $show->field('recharge_bg_img');
  76. $show->field('recharge_button_txt');
  77. $show->field('recharge_desc');
  78. $show->field('created_at');
  79. $show->field('updated_at');
  80. });
  81. }
  82. /**
  83. * Make a form builder.
  84. *
  85. * @param $type
  86. * @return Form
  87. */
  88. protected function form()
  89. {
  90. return Form::make(new Setting(), function (Form $form) {
  91. $form->display('id');
  92. if($this->type == self::TYPE_BASIC){
  93. $form->text('name');
  94. $form->image('logo')->saveFullUrl()
  95. ->uniqueName()->autoUpload()
  96. ->autoSave(false)
  97. ->removable(false)
  98. ->width(4);
  99. $form->text('contact')->minLength(11)->maxLength(11);
  100. $form->radio('is_review')->options(config('global.bool_status'))->default(0);
  101. $form->editor('protocol');
  102. }elseif($this->type == self::TYPE_TIPS){
  103. $form->text('tips');
  104. }elseif($this->type == self::TYPE_GOLD){
  105. $form->image('recharge_bg_img')->saveFullUrl()
  106. ->uniqueName()->autoUpload()
  107. ->autoSave(false)
  108. ->removable(false)
  109. ->width(4);
  110. $form->text('recharge_button_txt')->maxLength(10);
  111. $form->textarea('recharge_desc');
  112. } elseif($this->type == self::TYPE_ROLE){
  113. $form->radio('vip_role')->options(config('global.vip_role'))->default(1);
  114. }
  115. $form->disableViewButton();
  116. $form->disableDeleteButton();
  117. $form->disableListButton();
  118. $form->disableEditingCheck();
  119. $form->disableViewCheck();
  120. });
  121. }
  122. }