CodeController.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Dealer;
  4. use App\Good;
  5. use App\Trace;
  6. use Encore\Admin\Form;
  7. use Encore\Admin\Grid;
  8. use Encore\Admin\Facades\Admin;
  9. use Encore\Admin\Layout\Content;
  10. use App\Http\Controllers\Controller;
  11. use Encore\Admin\Controllers\ModelForm;
  12. use Illuminate\Http\Request;
  13. class CodeController extends Controller
  14. {
  15. use ModelForm;
  16. /**
  17. * Index interface.
  18. *
  19. * @return Content
  20. */
  21. public function index(Request $request)
  22. {
  23. $gid = $request->get('gid', false);
  24. if ($gid) {
  25. return Admin::content(function (Content $content) use ($gid) {
  26. $content->header('码库管理');
  27. $content->description('列表');
  28. $content->body($this->grid1($gid));
  29. });
  30. }
  31. return Admin::content(function (Content $content) {
  32. $content->header('码库管理');
  33. $content->description('列表');
  34. $content->body($this->grid());
  35. });
  36. }
  37. /**
  38. * Edit interface.
  39. *
  40. * @param $id
  41. * @return Content
  42. */
  43. public function edit($id)
  44. {
  45. return Admin::content(function (Content $content) use ($id) {
  46. $content->header('码库管理');
  47. $content->description('编辑');
  48. $content->body($this->form()->edit($id));
  49. });
  50. }
  51. /**
  52. * Create interface.
  53. *
  54. * @return Content
  55. */
  56. public function create()
  57. {
  58. return Admin::content(function (Content $content) {
  59. $content->header('码库管理');
  60. $content->description('创建');
  61. $content->body($this->form());
  62. });
  63. }
  64. /**
  65. * Make a grid builder.
  66. *
  67. * @return Grid
  68. */
  69. protected function grid()
  70. {
  71. return Admin::grid(Trace::class, function (Grid $grid) {
  72. $grid->disableCreation();
  73. $grid->disableExport();
  74. $grid->disableRowSelector();
  75. $grid->id('ID')->sortable();
  76. $grid->key('编码');
  77. $grid->slug_value('秘钥');
  78. $grid->good()->name('产品名');
  79. $grid->group('分组编号');
  80. $grid->dealer_id('经销商')->select(Dealer::getOption());
  81. $grid->created_at('创建日期');
  82. $grid->actions(function ($actions) {
  83. $actions->disableDelete();
  84. });
  85. $grid->filter(function ($filter) {
  86. // 去掉默认的id过滤器
  87. $filter->disableIdFilter();
  88. // 在这里添加字段过滤器
  89. // $filter->like('key', '编号');
  90. $filter->where(function ($query) {
  91. $id = $this->input;
  92. $id = Trace::get_key($id);
  93. $query->where('id', 'like', $id);
  94. }, '编号');
  95. $filter->like('slug', '秘钥');
  96. $filter->in('gid', '产品')->multipleSelect(Good::pluck('name', 'id'));;
  97. $filter->equal('group', '分组');
  98. });
  99. });
  100. }
  101. protected function grid1($gid)
  102. {
  103. return Admin::grid(Trace::class, function (Grid $grid) use ($gid) {
  104. $grid->model()->where('gid', $gid)->groupBy('group');
  105. $grid->model()->orderBy('id', 'asc');
  106. $grid->disableCreation();
  107. $grid->disableExport();
  108. $grid->disableRowSelector();
  109. $grid->id('ID')->sortable();
  110. $grid->key('编码');
  111. $grid->slug_value('秘钥');
  112. $grid->good()->name('产品名');
  113. $grid->group('分组编号')->sortable();
  114. $grid->dealer_id('经销商')->select(Dealer::getOption());
  115. $grid->created_at('创建日期');
  116. $grid->actions(function ($actions) {
  117. $actions->disableDelete();
  118. });
  119. $grid->filter(function ($filter) {
  120. // 去掉默认的id过滤器
  121. $filter->disableIdFilter();
  122. // 在这里添加字段过滤器
  123. // $filter->like('key', '编号');
  124. $filter->where(function ($query) {
  125. $id = $this->input;
  126. $id = Trace::get_key($id);
  127. $query->where('id', 'like', $id);
  128. }, '编号');
  129. $filter->like('slug', '秘钥');
  130. $filter->equal('group', '分组');
  131. });
  132. });
  133. }
  134. /**
  135. * Make a form builder.
  136. *
  137. * @return Form
  138. */
  139. protected function form()
  140. {
  141. return Admin::form(Trace::class, function (Form $form) {
  142. $form->setAction('admin/code');
  143. $form->display('id', 'ID');
  144. $form->text('key', '编码')->readOnly();
  145. $form->text('slug_value', '秘钥')->readOnly();
  146. $form->select('gid', '产品')->options(Good::pluck('name', 'id'))->readOnly();
  147. $form->text('group', '分组')->readOnly();
  148. $form->select('dealer_id', '供应商')->options(Dealer::getOption());
  149. $form->display('created_at', '创建时间');
  150. $form->display('updated_at', '更新时间');
  151. });
  152. }
  153. }