TeamController.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. namespace App\Admin\Controllers\ServicePacksManagment;
  3. use App\Admin\Actions\Serve\Addmember;
  4. use App\Models\Docter;
  5. use App\Models\Team;
  6. use App\Models\TeamDocter;
  7. use Encore\Admin\Controllers\AdminController;
  8. use Encore\Admin\Form;
  9. use Encore\Admin\Grid;
  10. use Encore\Admin\Show;
  11. use Encore\Admin\Widgets\Table;
  12. class TeamController extends AdminController
  13. {
  14. /**
  15. * Title for current resource.
  16. *
  17. * @var string
  18. */
  19. protected $title = '团队列表';
  20. /**
  21. * Make a grid builder.
  22. *
  23. * @return Grid
  24. */
  25. protected function grid()
  26. {
  27. $grid = new Grid(new Team());
  28. $grid->model()->orderBy('id','desc');
  29. $grid->filter(function ($filter){
  30. $filter->disableIdFilter();
  31. $filter->like('name','团队名称');
  32. });
  33. $grid->column('id', __('Id'));
  34. $grid->column('name', __('团队名称'));
  35. $grid->column('introduction','简介')->limit(15,'...')->width(200);
  36. $grid->column('member','成员查看')->display(function (){
  37. return '点击查看';
  38. })->modal('成员列表', function ($model){
  39. $docters = $model->docter()->get()->map(function ($docter) {
  40. return $docter->only(['id', 'name']);
  41. });
  42. return new Table(['医生ID', '医生名称'], $docters->toArray());
  43. });
  44. $grid->column('created_at', __('创建时间'));
  45. $grid->column('updated_at', __('更新时间'));
  46. $status = [
  47. 'off' => ['value' => 0, 'text' => '禁用', 'color' => 'danger'],
  48. 'on' => ['value' => 1, 'text' => '启用', 'color' => 'success'],
  49. ];
  50. $grid->column('status', __('状态'))->switch($status);
  51. $grid->actions(function ($actions) {
  52. // 去掉查看
  53. $actions->disableView();
  54. });
  55. return $grid;
  56. }
  57. /**
  58. * Make a form builder.
  59. *
  60. * @return Form
  61. */
  62. protected function form()
  63. {
  64. $form = new Form(new Team());
  65. $form->text('name', __('团队名称'))->rules('required' ,['required'=>'请填写团队名称!']);
  66. $form->text('introduction','简介')->rules('required' ,['required'=>'请填写团队简介!']);
  67. $form->multipleSelect('member',' 成员')->options(function (){
  68. //筛选医生列表
  69. $member = Docter::where('is_then', 1)->pluck('name', 'id');
  70. return $member;
  71. })->rules('required');
  72. $status = [
  73. 'off' => ['value' => 0, 'text' => '禁用', 'color' => 'danger'],
  74. 'on' => ['value' => 1, 'text' => '启用', 'color' => 'success'],
  75. ];
  76. $form->switch('status', __('状态'))->states($status);
  77. $form->saved(function (Form $form) {
  78. //保存后回调插入数据
  79. $id = $form->model()->id;
  80. $team = TeamDocter::where('team_id',$id)->get();
  81. if ($team != null)
  82. {
  83. TeamDocter::where('team_id',$id)->delete();
  84. }
  85. foreach ($form->member as $value)
  86. {
  87. if ($value != null)
  88. {
  89. $arr = [
  90. 'docter_id' => $value,
  91. 'team_id' =>$id,
  92. ];
  93. TeamDocter::create($arr);
  94. }
  95. }
  96. });
  97. return $form;
  98. }
  99. }