VaccinationController.php 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Models\Student;
  4. use Dcat\Admin\Form;
  5. use Dcat\Admin\Grid;
  6. use Dcat\Admin\Show;
  7. use App\Admin\Controllers\AdminController;
  8. use Dcat\Admin\Layout\Content;
  9. use App\Models\Vaccination;
  10. class VaccinationController extends AdminController
  11. {
  12. public function index($parent, Content $content)
  13. {
  14. $title = '疫苗接种记录';
  15. return $content
  16. ->title($title)
  17. ->description('列表')
  18. // 添加面包屑导航
  19. ->breadcrumb([
  20. 'text' => '返回列表',
  21. 'url' => admin_url('/student'),
  22. 'icon' => 'fa fa-step-backward'
  23. ],['text' => $title]
  24. )
  25. ->body($this->grid($parent));
  26. }
  27. /**
  28. * Make a grid builder.
  29. *
  30. * @return Grid
  31. */
  32. protected function grid($id)
  33. {
  34. return Grid::make(new Vaccination(), function (Grid $grid) use($id) {
  35. //$grid->column('student_id');
  36. $grid->column('student_id','学生信息')->display(function () {
  37. $str = "";
  38. $str .= "<div style='margin-right:10px;display: flex;align-items: center;padding-right:10px;'>";
  39. $str .= '<img data-action="preview-img" src="' . $this->student_id . '" style="height:56px;width:56px;cursor:pointer;margin-right:10px;" class="img img-thumbnail">';
  40. $str .= '<div>';
  41. $str .= '<p style="margin:0px">姓名:小朋友</p>';
  42. $str .= '<p style="margin:0px">出生年月:2023-01-01</p>';
  43. $str .= '<p style="margin:0px">家庭住址:四川省成都市金牛区三泰魔方</p>';
  44. $str .= '<p style="margin:0px">所属班级:黄桃班</p>';
  45. $str .= '<p style="margin:0px">入园日期:2022-03-10</p>';
  46. $str .= "</div>";
  47. $str .= "</div>";
  48. return $str;
  49. });
  50. $grid->column('name');
  51. $grid->column('inoculate_time');
  52. $grid->column('inoculate_unit');
  53. $grid->column('desc')->limit(50);
  54. $grid->column('photos')->display(function ($photo_urls){
  55. return json_decode($photo_urls, true);
  56. })->image('', '60', '60');;
  57. $grid->disableActions();
  58. $grid->filter(function (Grid\Filter $filter) {
  59. $filter->panel();
  60. $filter->like('student_id')->width(4);
  61. });
  62. });
  63. }
  64. /**
  65. * Make a show builder.
  66. *
  67. * @param mixed $id
  68. *
  69. * @return Show
  70. */
  71. protected function detail($id)
  72. {
  73. return Show::make($id, new Vaccination(), function (Show $show) {
  74. $show->field('id');
  75. });
  76. }
  77. /**
  78. * Make a form builder.
  79. *
  80. * @return Form
  81. */
  82. protected function form($id)
  83. {
  84. return Form::make(new Vaccination(), function (Form $form) use($id) {
  85. $form->width(6)->datetime('time')->required()->placeholder('时间');
  86. $form->width(6)->textarea('desc')->placeholder('长牙描述');
  87. $form->width(6)->multipleImage('photos')->placeholder('上传照片')->saveAsJson();
  88. });
  89. }
  90. }