TeamController.php 2.8 KB

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