TeamController.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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->column('id', __('Id'));
  30. $grid->column('name', __('团队名称'));
  31. $grid->column('introduction','简介')->limit(15,'...')->width(200);
  32. $grid->column('member','成员查看')->display(function (){
  33. return '点击查看';
  34. })->modal('成员列表', function ($model){
  35. $docters = $model->docter()->get()->map(function ($docter) {
  36. return $docter->only(['id', 'name']);
  37. });
  38. return new Table(['医生ID', '医生名称'], $docters->toArray());
  39. });
  40. $grid->column('created_at', __('创建时间'));
  41. $grid->column('updated_at', __('更新时间'));
  42. $status = [
  43. 'off' => ['value' => 0, 'text' => '禁用', 'color' => 'danger'],
  44. 'on' => ['value' => 1, 'text' => '启用', 'color' => 'success'],
  45. ];
  46. $grid->column('status', __('状态'))->switch($status);
  47. $grid->actions(function ($actions) {
  48. // 去掉查看
  49. $actions->disableView();
  50. });
  51. return $grid;
  52. }
  53. /**
  54. * Make a form builder.
  55. *
  56. * @return Form
  57. */
  58. protected function form()
  59. {
  60. $form = new Form(new Team());
  61. $form->text('name', __('团队名称'))->rules('required' ,['required'=>'请填写团队名称!']);
  62. $form->text('introduction','简介')->rules('required' ,['required'=>'请填写团队简介!']);
  63. $form->multipleSelect('member',' 成员')->options(function (){
  64. //筛选医生列表
  65. $member = Docter::where('is_then', 1)->pluck('name', 'id');
  66. return $member;
  67. })->rules('required');
  68. $status = [
  69. 'off' => ['value' => 0, 'text' => '禁用', 'color' => 'danger'],
  70. 'on' => ['value' => 1, 'text' => '启用', 'color' => 'success'],
  71. ];
  72. $form->switch('status', __('状态'))->states($status);
  73. $form->saved(function (Form $form) {
  74. //保存后回调插入数据
  75. $id = $form->model()->id;
  76. $team = TeamDocter::where('team_id',$id)->get();
  77. if ($team != null)
  78. {
  79. TeamDocter::where('team_id',$id)->delete();
  80. }
  81. foreach ($form->member as $value)
  82. {
  83. if ($value != null)
  84. {
  85. $arr = [
  86. 'docter_id' => $value,
  87. 'team_id' =>$id,
  88. ];
  89. TeamDocter::create($arr);
  90. }
  91. }
  92. });
  93. return $form;
  94. }
  95. }