链街Dcat后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
4.8 KiB

  1. <?php
  2. namespace App\Admin\Controllers\v3;
  3. use App\Admin\Repositories\v3\Banners;
  4. use Dcat\Admin\Form;
  5. use Dcat\Admin\Grid;
  6. use Dcat\Admin\Show;
  7. use Dcat\Admin\Controllers\AdminController;
  8. use App\Models\ImsCjdcMarket as MarketModel;
  9. use App\Models\v3\Banners as BannersModel;
  10. class BannersController extends AdminController
  11. {
  12. /**
  13. * Make a grid builder.
  14. *
  15. * @return Grid
  16. */
  17. protected function grid()
  18. {
  19. return Grid::make(new Banners(), function (Grid $grid) {
  20. $marketList = MarketModel::getMarket();
  21. $grid->column('id')->sortable();
  22. $grid->column('market_ids','适用市场')->display(function($marketIds) use($marketList){
  23. $item = '';
  24. if(!empty($marketIds)){
  25. foreach($marketIds as $value){
  26. $item .= isset($marketList[$value])?$marketList[$value].'</br>' : '';
  27. }
  28. }
  29. return $item;
  30. });
  31. $grid->column('title');
  32. $grid->column('cover_url')->image('',100);
  33. $grid->column('bg_color')->editable();
  34. // $grid->column('bg_color')->display(function($bgColor){
  35. // return "<span style='display: block;background: $bgColor;width: 30px;height: 20px;'></span>";
  36. // });
  37. $grid->column('cover_type_text');
  38. $grid->column('path');
  39. $grid->column('path_type_text');
  40. $grid->column('type_text');
  41. $grid->column('sort')->sortable();
  42. $grid->column('status')->switch();
  43. // ->using(BannersModel::$_status)->label(['default' => 'primary',1 => 'primary', 0 => 'danger']);
  44. $grid->model()->orderby('id','desc');
  45. $grid->filter(function (Grid\Filter $filter) {
  46. $filter->equal('id');
  47. });
  48. });
  49. }
  50. /**
  51. * Make a show builder.
  52. *
  53. * @param mixed $id
  54. *
  55. * @return Show
  56. */
  57. protected function detail($id)
  58. {
  59. return Show::make($id, new Banners(), function (Show $show) {
  60. $show->row(function (Show\Row $show) {
  61. $show->width(6)->field('id');
  62. $show->width(6)->field('market_id')->as(function ($marketId){
  63. $market = MarketModel::getMarketInfo($marketId,'name');
  64. return empty($market) ? '' : $market->name;
  65. });
  66. $show->width(6)->field('title');
  67. $show->width(6)->field('sub_title');
  68. $show->width(6)->field('cover_type_text');
  69. $show->width(6)->field('cover')->image();
  70. $show->width(6)->field('bg_color')->color();
  71. $show->width(6)->field('type_text');
  72. });
  73. $show->row(function (Show\Row $show) {
  74. $show->width(6)->field('path_type_text');
  75. $show->width(6)->field('path');
  76. $show->width(6)->field('status_text');
  77. $show->width(6)->field('sort');
  78. $show->width(6)->field('created_at');
  79. $show->width(6)->field('updated_at');
  80. });
  81. });
  82. }
  83. /**
  84. * Make a form builder.
  85. *
  86. * @return Form
  87. */
  88. protected function form()
  89. {
  90. return Form::make(new Banners(), function (Form $form) {
  91. $form->column(6, function (Form $form) {
  92. $form->hidden('id');
  93. // 市场
  94. $marketList = MarketModel::getMarket();
  95. $form->hidden('market_id')->options($marketList)->default(0);
  96. // 多个市场
  97. $form->multipleSelect('market_ids')->options($marketList);
  98. $form->select('type')->options(BannersModel::$_TYPE)->required();
  99. $form->text('title')->required();
  100. $form->text('sub_title');
  101. $form->number('sort')->default(0);
  102. $form->switch('status')
  103. ->customFormat(function ($v) {
  104. return $v == 1 ? 1 : 0;
  105. })
  106. ->saving(function ($v) {
  107. return $v == 1 ? 1 : 0;
  108. });
  109. });
  110. $form->column(6, function (Form $form) {
  111. $form->color('bg_color')->required()->default('#FF7B21');
  112. $form->image('cover')->autoUpload()->required()->uniqueName();
  113. $form->select('cover_type')->options(BannersModel::$_COVER_TYPE)->required();
  114. $form->text('path')->default('');
  115. $form->select('path_type')->options(BannersModel::$_PATH_TYPE)->default('');
  116. });
  117. $form->disableResetButton();
  118. $form->disableViewCheck();
  119. $form->disableEditingCheck();
  120. $form->disableCreatingCheck();
  121. });
  122. }
  123. }