ServiceManagementController.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <?php
  2. namespace App\Admin\Controllers\UserManagement\DocterManagement;
  3. use App\Admin\Actions\backstage\Docters\AppointAction;
  4. use App\Admin\Actions\backstage\Docters\ChatAction;
  5. use App\Admin\Actions\backstage\Docters\PhoneAction;
  6. use App\Admin\Actions\Community\Docter\Chat;
  7. use App\Models\Docter;
  8. use App\Models\ServiceApply;
  9. use App\Models\Serviceapplys;
  10. use function Couchbase\defaultDecoder;
  11. use Encore\Admin\Controllers\AdminController;
  12. use Encore\Admin\Form;
  13. use Encore\Admin\Grid;
  14. use Encore\Admin\Show;
  15. class ServiceManagementController extends AdminController
  16. {
  17. /**
  18. * Title for current resource.
  19. *
  20. * @var string
  21. */
  22. protected $title = '服务开通列表';
  23. /**
  24. * Make a grid builder.
  25. *
  26. * @return Grid
  27. */
  28. protected function grid()
  29. {
  30. $grid = new Grid(new Docter());
  31. $id = \request('id');
  32. $grid->filter(function ($filter){
  33. $filter->disableIdFilter();
  34. });
  35. $grid->disableBatchActions();
  36. $grid->disableCreateButton();
  37. $grid->actions(function ($actions){
  38. $actions->disableView();
  39. $actions->disableDelete();
  40. $actions->add (new ChatAction());
  41. $actions->add (new PhoneAction());
  42. $actions->add (new AppointAction());
  43. });
  44. $grid->model()->where('id',$id);
  45. $grid->column('id', __('id'));
  46. $grid->column('name', __('医生姓名'));
  47. $grid->column('avatar', __('头像'))->lightbox(['width' =>'', 'height' => 30]);
  48. $states = [
  49. 'on' => ['value' => 2, 'text' => '已开通', 'color' => 'primary'],
  50. 'off' => ['value' => 3, 'text' => '未开通', 'color' => 'danger'],
  51. ];
  52. //图文模块
  53. $grid->column('in_chat', __('图文咨询'))->display(function ()use ($grid){
  54. $status = Serviceapplys::where('docter_id',$this->id)->where('service_type',1)->value('status');
  55. if ($status == 2)
  56. {
  57. return '已开通';
  58. }else{
  59. return '未开通';
  60. }
  61. });
  62. $grid->column('is_chat', __('图文服务状态'))->using([0=>'未开启',1=>'已开启']);
  63. //电话模块
  64. $grid->column('in_phone', __('电话咨询'))->display(function ()use ($grid){
  65. $status = Serviceapplys::where('docter_id',$this->id)->where('service_type',2)->value('status');
  66. if ($status == 2)
  67. {
  68. return '已开通';
  69. }else{
  70. return '未开通';
  71. }
  72. });
  73. $grid->column('is_phone', __('电话服务状态'))->using([0=>'未开启',1=>'已开启']);
  74. //预约模块
  75. $grid->column('in_appoint', __('门诊预约'))->display(function ()use ($grid){
  76. $status = Serviceapplys::where('docter_id',$this->id)->where('service_type',3)->value('status');
  77. if ($status == 2)
  78. {
  79. return '已开通';
  80. }else{
  81. return '未开通';
  82. }
  83. });
  84. $grid->column('is_appoint', __('门诊预约状态'))->using([0=>'未开启',1=>'已开启']);
  85. return $grid;
  86. }
  87. /**
  88. * Make a form builder.
  89. *
  90. * @return Form
  91. */
  92. protected function form()
  93. {
  94. $form = new Form(new Docter());
  95. $form->hidden('id');
  96. $states = [
  97. 'on' => ['value' => 2, 'text' => '已开通', 'color' => 'primary'],
  98. 'off' => ['value' => 3, 'text' => '未开通', 'color' => 'danger'],
  99. ];
  100. $form->switch('in_chat','图文状态')->states($states)->default(function ()use ($form){
  101. $a = Serviceapplys::where('docter_id',$form->model()->id)->where('service_type',1)->value('status');
  102. return $a;
  103. });
  104. $form->switch('in_phone','电话状态')->states($states)->default(function ()use ($form){
  105. $a = Serviceapplys::where('docter_id',$form->model()->id)->where('service_type',2)->value('status');
  106. return $a;
  107. });
  108. $form->switch('in_appoint','预约状态')->states($states)->default(function ()use ($form){
  109. $a = Serviceapplys::where('docter_id',$form->model()->id)->where('service_type',3)->value('status');
  110. return $a;
  111. });
  112. $form->setAction('/admin/putdata');
  113. return $form;
  114. }
  115. }