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

128 lines
3.8 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Admin\Repositories\LanzuServiceSpeaker;
  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\Market as MarketModel;
  9. use App\Models\v3\Store as StoreModel;
  10. use Illuminate\Http\Request;
  11. class LanzuServiceSpeakerController extends AdminController
  12. {
  13. /**
  14. * Make a grid builder.
  15. *
  16. * @return Grid
  17. */
  18. protected $title = '播报机管理';
  19. protected function grid()
  20. {
  21. return Grid::make(new LanzuServiceSpeaker(['store']), function (Grid $grid) {
  22. $grid->model()->orderBy('updated_at', 'desc');
  23. $grid->id->sortable();
  24. $grid->column('device_name', '设备编号');
  25. $grid->column('store_id', '商户ID');
  26. $grid->column('store.name', '商户名');
  27. $grid->column('is_bind', '是否绑定')->switch();
  28. // $grid->column('is_bind')
  29. // ->using([0 => '未绑定', 1 => '已绑定'])
  30. // ->label([0 => 'danger', 1 => 'success']);
  31. $grid->column('bind_time_text', '绑定时间')->sortable();
  32. $grid->filter(function (Grid\Filter $filter) {
  33. $storeList = StoreModel::getStoreArray();
  34. $filter->equal('id');
  35. $filter->like('device_name', '设备编号');
  36. $filter->equal('store_id','商户')->select($storeList);
  37. });
  38. });
  39. }
  40. /**
  41. * Make a show builder.
  42. *
  43. * @param mixed $id
  44. *
  45. * @return Show
  46. */
  47. protected function detail($id)
  48. {
  49. return Show::make($id, new LanzuServiceSpeaker(), function (Show $show) {
  50. $show->id;
  51. $show->created_at->as(function ($time) {
  52. if ($time) {
  53. return date('Y-m-d H:i', $time);
  54. } else {
  55. return '-';
  56. }
  57. });
  58. $show->updated_at->as(function ($time) {
  59. if ($time) {
  60. return date('Y-m-d H:i', $time);
  61. } else {
  62. return '-';
  63. }
  64. });
  65. });
  66. }
  67. /**
  68. * Make a form builder.
  69. *
  70. * @return Form
  71. */
  72. protected function form()
  73. {
  74. return Form::make(new LanzuServiceSpeaker(), function (Form $form) {
  75. $form->hidden('id');
  76. $form->text("device_name", '设备编号')->required();
  77. //$form->number("store_id",'商户ID')->required();
  78. // $form->select('market_id','所在市场')->options('/api/getAllMarket');
  79. $storeList = StoreModel::getStoreArray();
  80. $form->select('store_id', '商户')->options($storeList);
  81. $form->switch('is_bind', '是否绑定')
  82. ->customFormat(function ($v) {
  83. return $v == 1 ? 1 : 0;
  84. })
  85. ->saving(function ($v) {
  86. return $v == 1 ? 1 : 0;
  87. });
  88. //$form->image("device_name")->disk('oss');
  89. $form->disableResetButton();
  90. $form->disableViewCheck();
  91. $form->disableEditingCheck();
  92. $form->disableCreatingCheck();
  93. });
  94. }
  95. public function getAllMarkets()
  96. {
  97. $data = [];
  98. $markets = MarketModel::all();
  99. foreach ($markets as $market) {
  100. $item = [];
  101. $item['id'] = $market->id;
  102. $item['text'] = $market->name;
  103. $data[] = $item;
  104. }
  105. return response()->json($data);
  106. }
  107. public function getStores(Request $request)
  108. {
  109. $q = $request->get('q');
  110. return StoreModel::where('name', 'like', "%$q%")->paginate(null, ['id', 'name as text']);
  111. }
  112. }