链街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.

97 lines
2.8 KiB

  1. <?php
  2. namespace App\Admin\Controllers\v3;
  3. use App\Admin\Repositories\v3\GoodsCategory;
  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\v3\Category as CategoryModel;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Illuminate\Support\Facades\DB;
  11. use App\Models\v3\GoodsCategory as GoodsCategoryModel;
  12. class GoodsCategoryController extends AdminController
  13. {
  14. /**
  15. * Make a grid builder.
  16. *
  17. * @return Grid
  18. */
  19. protected function grid()
  20. {
  21. return Grid::make(new GoodsCategory(), function (Grid $grid) {
  22. $grid->column('id')->sortable();
  23. $grid->column('category_id')->display(function($categoryId){
  24. $item = CategoryModel::getInfo($categoryId,'title');
  25. return empty($item) ? '' : $item->title;
  26. });
  27. $grid->column('title');
  28. $grid->column('cover_img')->image('',50);
  29. $grid->column('sort');
  30. $grid->model()->orderBy('id','desc');
  31. $grid->filter(function (Grid\Filter $filter) {
  32. $filter->equal('id');
  33. });
  34. $grid->disableBatchDelete();
  35. });
  36. }
  37. /**
  38. * Make a show builder.
  39. *
  40. * @param mixed $id
  41. *
  42. * @return Show
  43. */
  44. protected function detail($id)
  45. {
  46. return Show::make($id, new GoodsCategory(), function (Show $show) {
  47. $show->field('id');
  48. $show->field('category_id')->as(function($categoryId){
  49. $item = CategoryModel::getInfo($categoryId,'title');
  50. return empty($item) ? '' : $item->title;
  51. });
  52. $show->field('title');
  53. $show->field('cover_img')->image('',50);
  54. $show->field('sort');
  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 GoodsCategory(), function (Form $form) {
  67. $form->hidden('id');
  68. $category = CategoryModel::getArray([['parent_id','>',0]]);
  69. $form->select('category_id')->width(4)->required()->options($category);
  70. $form->text('title')->width(4)->required();
  71. $form->image('cover_img')->width(2)->uniqueName();
  72. $form->number('sort');
  73. $form->disableResetButton();
  74. $form->disableViewCheck();
  75. $form->disableEditingCheck();
  76. $form->disableCreatingCheck();
  77. });
  78. }
  79. /**
  80. * 获取商品类目列表
  81. */
  82. public function getList(Request $request)
  83. {
  84. $categoryId = $request->get('q');
  85. $list = GoodsCategoryModel::where('category_id',$categoryId)->get(['id',DB::raw('title as text')]);
  86. return $list;
  87. }
  88. }