AskOrderController.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <?php
  2. namespace App\Admin\Controllers\Ask;
  3. use App\Admin\Repositories\Ask\AskOrder;
  4. use App\Wen\Utils\Settings;
  5. use Dcat\Admin\Form;
  6. use Dcat\Admin\Grid;
  7. use Dcat\Admin\Show;
  8. use Dcat\Admin\Http\Controllers\AdminController;
  9. use Illuminate\Http\Request;
  10. use Dcat\Admin\Widgets\Metrics\Card;
  11. class AskOrderController extends AdminController
  12. {
  13. public function askorder(Request $request)
  14. {
  15. $q = $request->get('q');
  16. return \App\Models\Ask\AskOrder::where('title', 'like', "%$q%")->paginate(null, ['id', 'title as text']);
  17. }
  18. /**
  19. * Make a grid builder.
  20. *
  21. * @return Grid
  22. */
  23. protected function grid()
  24. {
  25. return Grid::make(new AskOrder(), function (Grid $grid) {
  26. $grid->simplePaginate();
  27. $grid->model()->orderBy('id', 'desc');
  28. $grid->quickSearch(['user_id', 'blogger_user_id','question'])->placeholder('搜索咨询用户ID,答主用户ID');
  29. $grid->column('id');
  30. $grid->column('user_id');
  31. $grid->column('blogger_user_id');
  32. $grid->column('question','咨询内容')->display('更多')->expand(function ($a) {
  33. $question = $this->question;
  34. $images = explode(',',$this->images);
  35. $card = Card::make(view('admin/ask/askorder', compact('question', 'images')));
  36. return $card;
  37. });
  38. $grid->column('images')->display(function($images){
  39. return explode(',',$images);
  40. })->image('',50);
  41. $grid->column('ask_price');
  42. $grid->column('sit_price');
  43. $grid->column('ask_minute');
  44. $grid->column('is_hidden')->using([
  45. 0=>'非匿名',
  46. 1=>'匿名',
  47. ])->label([
  48. 'default' => 'primary', // 设置默认颜色,不设置则默认为 default
  49. 0 => 'danger',
  50. 1 => 'primary',
  51. ]);
  52. $grid->column('is_public')->using([
  53. 0=>'不公开',
  54. 1=>'公开',
  55. ])->label([
  56. 'default' => 'primary', // 设置默认颜色,不设置则默认为 default
  57. 0 => 'primary',
  58. 1 => 'danger',
  59. ]);
  60. $grid->column('eva_score');
  61. $grid->column('sit_number');
  62. $grid->column('status')->using([
  63. 0 =>'待支付',
  64. 10=>'已支付',
  65. 15=>'已回复',
  66. 20=>'已结束',
  67. ])->label([
  68. 'default' => 'info', // 设置默认颜色,不设置则默认为 default
  69. 0 => 'info',
  70. 10 => 'danger',
  71. 15 => 'warning',
  72. 20 => 'success',
  73. ]);
  74. $grid->column('createtime')->display(function($createtime){
  75. return empty($createtime) ? '' : date('Y-m-d H:i:s',$createtime);
  76. });
  77. $grid->filter(function (Grid\Filter $filter) {
  78. $filter->like('question');
  79. });
  80. // 禁用新增按钮
  81. $grid->disableCreateButton();
  82. // 禁用编辑按钮
  83. // $grid->disableEditButton();
  84. // 禁用详情按钮
  85. // $grid->disableViewButton();
  86. // 禁用删除按钮
  87. $grid->disableDeleteButton();
  88. });
  89. }
  90. /**
  91. * Make a show builder.
  92. *
  93. * @param mixed $id
  94. *
  95. * @return Show
  96. */
  97. protected function detail($id)
  98. {
  99. return Show::make($id, new AskOrder(), function (Show $show) {
  100. $show->field('id');
  101. $show->field('user_id');
  102. $show->field('blogger_user_id');
  103. $show->field('question');
  104. $show->field('images')->image();
  105. $show->field('ask_price');
  106. $show->field('sit_price');
  107. $show->field('ask_minute');
  108. $show->field('is_hidden')->using([
  109. 0=>'非匿名',
  110. 1=>'匿名',
  111. ]);
  112. $show->field('is_public')->using([
  113. 0=>'不公开',
  114. 1=>'公开',
  115. ]);
  116. $show->field('good_number');
  117. $show->field('eva_score');
  118. $show->field('eva_content');
  119. // $show->field('eva_time');
  120. $show->field('sit_number');
  121. $show->field('status')->using([
  122. 0 =>'待支付',
  123. 10=>'已支付',
  124. 15=>'已回复',
  125. 20=>'已结束',
  126. ]);
  127. $show->field('createtime')->as(function(){
  128. return empty($this->createtime) ? '' : date('Y-m-d H:i:s',$this->createtime);
  129. });
  130. // $show->field('paytime');
  131. // $show->field('finish_time');
  132. // $show->field('countdown_time');
  133. $show->field('blogger_rate');
  134. $show->field('blogger_price');
  135. });
  136. }
  137. /**
  138. * Make a form builder.
  139. *
  140. * @return Form
  141. */
  142. protected function form()
  143. {
  144. return Form::make(new AskOrder(), function (Form $form) {
  145. $form->display('id');
  146. $form->text('question')->required();
  147. $form->image('images')->url('files/uploads')->autoUpload()->required();
  148. $form->text('eva_content')->required();
  149. $form->deleting(function (Form $form){
  150. global $__MINI_GLOBAL_TENANT_ID__;
  151. if($__MINI_GLOBAL_TENANT_ID__ > 0){
  152. return $form->response()->error('权限不足,不可以删除其他分站对象');
  153. }
  154. });
  155. });
  156. }
  157. }