ConfigController.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Admin\Repositories\Config;
  4. use Dcat\Admin\Form;
  5. use Dcat\Admin\Grid;
  6. use Dcat\Admin\Show;
  7. use Dcat\Admin\Support\JavaScript;
  8. use Dcat\Admin\Http\Controllers\AdminController;
  9. class ConfigController extends AdminController
  10. {
  11. // public $types=['文本框','数值','编辑器'];
  12. /**
  13. * Make a grid builder.
  14. *
  15. * @return Grid
  16. */
  17. protected function grid()
  18. {
  19. return Grid::make(new Config(), function (Grid $grid) {
  20. // $grid->column('id')->sortable();
  21. $grid->column('name')->width("150px");
  22. $grid->column('key');
  23. $grid->column('val')->display(function() {
  24. return $this->type==1? $this->val1: $this->val;
  25. });
  26. $grid->column('beizhu');
  27. // $grid->column('created_at');
  28. $grid->column('updated_at')->sortable();
  29. $grid->model()->whereNotIn("key",['box_level_percent','box_level_paster','coupon_configs']);
  30. // $grid->filter(function (Grid\Filter $filter) {
  31. // $filter->equal('id');
  32. // });
  33. $grid->model()->orderBy("id","desc");
  34. // $grid->enableDialogCreate();
  35. // $grid->setDialogFormDimensions('70%', '60%');
  36. $grid->withBorder();
  37. $grid->actions(function (Grid\Displayers\Actions $actions) {
  38. // $actions->quickEdit(true);
  39. // $actions->disableEdit();
  40. $actions->disableView();
  41. });
  42. });
  43. }
  44. /**
  45. * Make a show builder.
  46. *
  47. * @param mixed $id
  48. *
  49. * @return Show
  50. */
  51. protected function detail($id)
  52. {
  53. return Show::make($id, new Config(), function (Show $show) {
  54. $show->field('id');
  55. $show->field('key');
  56. $show->field('val');
  57. $show->field('created_at');
  58. $show->field('updated_at');
  59. });
  60. }
  61. /**
  62. * Make a form builder.
  63. *
  64. * @return Form
  65. */
  66. protected function form()
  67. {
  68. return Form::make(new Config(), function (Form $form) {
  69. // $form->display('id');
  70. $form->text('name');
  71. if ($form->isCreating()) {
  72. $form->text('key')->required();
  73. } else {
  74. $form->text('key')->readonly();
  75. }
  76. $form->radio('type')
  77. ->when(0, function (Form $form) {
  78. $form->text('val','内容');
  79. })
  80. ->when(1, function (Form $form) {
  81. $form->editor('val1','内容')->options([
  82. 'toolbar' => [],
  83. 'setup' => JavaScript::make(
  84. <<<JS
  85. function (editor) {
  86. console.log('编辑器初始化成功', editor)
  87. }
  88. JS
  89. ),
  90. ]);
  91. })
  92. ->options([
  93. 0 => '显示文本框',
  94. 1 => '显示编辑器',
  95. ])->default(0);
  96. //
  97. $form->textarea('beizhu');
  98. // $form->display('created_at');
  99. // $form->display('updated_at');
  100. });
  101. }
  102. }