PersonalJobsApplyController.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. <?php
  2. namespace App\Admin\Controllers\Company;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\PersonalJobsApply;
  5. use Encore\Admin\Controllers\HasResourceActions;
  6. use Encore\Admin\Form;
  7. use Encore\Admin\Grid;
  8. use Encore\Admin\Layout\Content;
  9. use Encore\Admin\Show;
  10. class PersonalJobsApplyController extends Controller
  11. {
  12. use HasResourceActions;
  13. /**
  14. * Index interface.
  15. *
  16. * @param Content $content
  17. * @return Content
  18. */
  19. public function index(Content $content)
  20. {
  21. return $content
  22. ->header('接收简历')
  23. ->description('列表')
  24. ->body($this->grid());
  25. }
  26. /**
  27. * Show interface.
  28. *
  29. * @param mixed $id
  30. * @param Content $content
  31. * @return Content
  32. */
  33. public function show($id, Content $content)
  34. {
  35. return $content
  36. ->header('收到的简历')
  37. ->description('收到的简历')
  38. ->body($this->detail($id));
  39. }
  40. /**
  41. * Edit interface.
  42. *
  43. * @param mixed $id
  44. * @param Content $content
  45. * @return Content
  46. */
  47. public function edit($id, Content $content)
  48. {
  49. return $content
  50. ->header('Edit')
  51. ->description('description')
  52. ->body($this->form()->edit($id));
  53. }
  54. /**
  55. * Create interface.
  56. *
  57. * @param Content $content
  58. * @return Content
  59. */
  60. public function create(Content $content)
  61. {
  62. return $content
  63. ->header('Create')
  64. ->description('description')
  65. ->body($this->form());
  66. }
  67. /**
  68. * Make a grid builder.
  69. *
  70. * @return Grid
  71. */
  72. protected function grid()
  73. {
  74. $grid = new Grid(new PersonalJobsApply);
  75. $grid->model()->whereHas('resumes');
  76. $grid->id('ID');
  77. $grid->column('resumes.fullname', '姓名');
  78. $grid->column('resumes.birthdate', '年龄')->display(function ($birthdate) {
  79. return date('Y')-$birthdate;
  80. });
  81. $grid->column('resumes.sex_cn', '性别');
  82. $grid->column('resumes.education_cn', '学历');
  83. $grid->column('resumes.experience_cn', '工作经验');
  84. $grid->column('jobs_name', '应聘职位');
  85. $grid->column('created_at', '投递时间');
  86. $grid->filter(function ($filter) {
  87. $filter->column(1/2, function ($filter) {
  88. $filter->equal('company_id', '企业ID');
  89. $filter->like('company_name', '企业名称');
  90. $filter->between('created_at', '添加时间')->datetime();
  91. });
  92. $filter->column(1/2, function ($filter) {
  93. $filter->equal('jobs_id', '职位ID');
  94. $filter->like('jobs_name', '职位名称');
  95. });
  96. });
  97. return $grid;
  98. }
  99. /**
  100. * Make a show builder.
  101. *
  102. * @param mixed $id
  103. * @return Show
  104. */
  105. protected function detail($id)
  106. {
  107. $show = new Show(PersonalJobsApply::findOrFail($id));
  108. $show->resumes()->fullname('姓名')->as(function ($resumes) {
  109. return $resumes->fullname;
  110. });
  111. $show->resumes()->birthdate('年龄')->as(function ($resumes) {
  112. return date('Y')-$resumes->birthdate;
  113. });
  114. $show->resumes()->sex_cn('性别')->as(function ($resumes) {
  115. return $resumes->sex_cn;
  116. });
  117. $show->resumes()->education_cn('学历')->as(function ($resumes) {
  118. return $resumes->education_cn;
  119. });
  120. $show->resumes()->experience_cn('工作经验')->as(function ($resumes) {
  121. return $resumes->experience_cn;
  122. });
  123. $show->jobs_name('应聘职位');
  124. $show->created_at('投递时间');
  125. return $show;
  126. }
  127. /**
  128. * Make a form builder.
  129. *
  130. * @return Form
  131. */
  132. protected function form()
  133. {
  134. $form = new Form(new PersonalJobsApply);
  135. $form->display('ID');
  136. $form->display('Created at');
  137. $form->display('Updated at');
  138. return $form;
  139. }
  140. }