NurseController.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace App\Community\Controllers;
  3. use App\Models\Docter;
  4. use App\Models\DocterOrganization;
  5. use App\Models\Nurse;
  6. use Encore\Admin\Controllers\AdminController;
  7. use Encore\Admin\Facades\Admin;
  8. use Encore\Admin\Form;
  9. use Encore\Admin\Grid;
  10. use Encore\Admin\Show;
  11. class NurseController extends AdminController
  12. {
  13. /**
  14. * Title for current resource.
  15. *
  16. * @var string
  17. */
  18. protected $title = '用户管理';
  19. /**
  20. * Make a grid builder.
  21. *
  22. * @return Grid
  23. */
  24. protected function grid()
  25. {
  26. $grid = new Grid(new Nurse());
  27. $grid->disableCreateButton(false);
  28. $grid->column('id', __('ID'));
  29. $grid->column('name', __('项目名称'))->editable();
  30. $grid->column('used', __('已使用'))->display(function ($w){
  31. return $w??0;
  32. });
  33. $grid->column('today', __('今日预约'));
  34. $grid->column('docters','服务医生')->display(function ($ids){
  35. $docters = Docter::whereIn('id',$ids)->pluck('name')->toArray();
  36. if(count($docters) > 3) return $docters[0].','.$docters[1].','.$docters[2].'...';
  37. return implode(',',$docters);
  38. });
  39. $grid->column('price', __('价格'))->editable();
  40. $grid->column('remark', __('备注'))->editable('textarea');
  41. $grid->actions(function ($actions){
  42. $actions->disableView();
  43. });
  44. return $grid;
  45. }
  46. /**
  47. * Make a show builder.
  48. *
  49. * @param mixed $id
  50. * @return Show
  51. */
  52. protected function detail($id)
  53. {
  54. $show = new Show(Nurse::findOrFail($id));
  55. $show->field('id', __('Id'));
  56. $show->field('name', __('Name'));
  57. $show->field('price', __('Price'));
  58. $show->field('remark', __('Remark'));
  59. $show->field('created_at', __('Created at'));
  60. $show->field('updated_at', __('Updated at'));
  61. return $show;
  62. }
  63. /**
  64. * Make a form builder.
  65. *
  66. * @return Form
  67. */
  68. protected function form()
  69. {
  70. $form = new Form(new Nurse());
  71. $user = Admin::user();
  72. $org_id = $user->org_id;
  73. $form->text('name', __('项目名称'));
  74. $form->text('price', __('价格'));
  75. $form->multipleSelect('docters','服务医生')->options(function () use ($org_id) {
  76. if(empty($org_id)){
  77. return Docter::pluck('name','id');
  78. }
  79. $ids = DocterOrganization::where('organization_id',$org_id)->pluck('docter_id');
  80. if(empty($ids)) return [];
  81. return Docter::whereIn('id',$ids)->pluck('name','id');
  82. });
  83. $form->textarea('remark', __('备注'));
  84. $form->setWidth(6);
  85. return $form;
  86. }
  87. }