NoticeTempleteController.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. namespace App\Module\System\AdminControllers;
  3. use Dcat\Admin\Form;
  4. use Dcat\Admin\Grid;
  5. use Dcat\Admin\Http\Controllers\AdminController;
  6. use Dcat\Admin\Show;
  7. /**
  8. *
  9. */
  10. class NoticeTempleteController extends AdminController
  11. {
  12. /**
  13. * Make a grid builder.
  14. *
  15. * @return Grid
  16. */
  17. protected function grid()
  18. {
  19. return Grid::make(new NoticeTemplete(), function (Grid $grid) {
  20. $grid->column('id')->sortable();
  21. $helper = new GridHelper($grid,$this);
  22. $grid->column('title');
  23. $grid->column('desc');
  24. $grid->column('status')->switch();
  25. $grid->column('content_title');
  26. $grid->column('cate');
  27. $helper->columnUsingVk('drive',NoticeDriver::getValueDescription());
  28. $helper->columnAtd('created_at');
  29. $grid->filter(function (Grid\Filter $filter) {
  30. $filterHelp= new FilterHelper($filter,$this);
  31. $filterHelp->equalSelectVk('cate',NoticeCate::getKv());
  32. $filterHelp->equalSelectVk('drive',NoticeDriver::getValueDescription());
  33. });
  34. });
  35. }
  36. /**
  37. * Make a show builder.
  38. *
  39. * @param mixed $id
  40. *
  41. * @return Show
  42. */
  43. protected function detail($id)
  44. {
  45. return Show::make($id, new NoticeTemplete(), function (Show $show) {
  46. $helper = new ShowHelper($show,$this);
  47. $show->field('id');
  48. $show->field('title');
  49. $show->field('status');
  50. $show->field('content_title');
  51. $show->field('drive');
  52. // $show->field('drive')->using(NoticeType::driverOptions2());
  53. $show->field('cate');
  54. $show->field('content')->unescape()->render();
  55. $show->field('created_at');
  56. $show->field('updated_at');
  57. });
  58. }
  59. /**
  60. * Make a form builder.
  61. *
  62. * @return Form
  63. */
  64. protected function form()
  65. {
  66. return Form::make(new NoticeTemplete(), function (Form $form) {
  67. $form->display('id');
  68. $form->display('title');
  69. $form->switch('status');
  70. $form->display('drive');
  71. $form->display('cate');
  72. //
  73. if($form->isEditing()){
  74. if($form->model()->drive =='sms'){
  75. $form->textarea('content');
  76. }else{
  77. $form->textarea('content_title');
  78. $form->editor('content', '内容');
  79. }
  80. }
  81. $form->display('created_at');
  82. $form->display('updated_at');
  83. });
  84. }
  85. }