header('面试邀请') ->description('列表') ->body($this->grid()); } /** * Show interface. * * @param mixed $id * @param Content $content * @return Content */ public function show($id, Content $content) { return $content ->header('面试邀请') ->description('详细') ->body($this->detail($id)); } /** * Edit interface. * * @param mixed $id * @param Content $content * @return Content */ public function edit($id, Content $content) { return $content ->header('面试邀请') ->description('编辑') ->body($this->editForm($id)->edit($id)); } /** * Create interface. * * @param Content $content * @return Content */ public function create(Content $content) { return $content ->header('面试邀请') ->description('创建') ->body($this->createForm()); } /** * Make a grid builder. * * @return Grid */ protected function grid() { $grid = new Grid(new CompanyInterView); $grid->model()->when(get_subsite_id()>0, function ($query) { $query->whereHas('resumes', function ($query) { $query->where('subsite_id', get_subsite_id()); }); })->orderBy('id', 'desc'); $grid->id('ID'); $grid->jobs_name('职位名称')->width(200); $grid->company_name('公司名称')->width(200); $grid->resume_name('简历名称')->width(150); $grid->personal_look('查看状态')->display(function ($personal_look) { switch ($personal_look) { case 1: $personal_look = '未查看'; break; case 2: $personal_look = '已查看'; break; default: $personal_look = '未查看'; break; } return $personal_look; }); $grid->interview_time('邀请时间')->display(function ($interview_time) { return date('Y-m-d H:i:s', $interview_time); })->sortable(); $grid->column('members.subsite_id', '所属分站')->display(function ($subsite_id) { if ($subsite_id) { $Subsite = Subsite::find($subsite_id); return isset($Subsite->sitename) ? $Subsite->sitename : '未知'; } return '总站'; })->width(150); $grid->created_at('申请时间')->sortable(); $grid->updated_at('更新时间')->sortable(); $grid->actions(function ($actions) use ($grid) { if (Admin::user()->can('person_apply_jobs_delete')) { $actions->disableDelete(false); } }); if (Admin::user()->can('person_apply_jobs_delete')) { $grid->tools(function ($tools) { $tools->batch(function ($batch) { $batch->disableDelete(false); }); }); $grid->disableRowSelector(false); } $grid->filter(function ($filter) { $filter->disableIdFilter(); $filter->where(function ($query) { switch ($this->input) { case 1: $query->whereRaw(" personal_look =".$this->input); break; case 2: $query->whereRaw(" personal_look =".$this->input); break; } }, '查看状态', 'look')->select([ 1=>'未查看', 2=>'已查看', ]); $filter->where(function ($query) { switch ($this->input) { case 3: $date = date('Y-m-d H:i:s', strtotime('-3 day')); $query->whereRaw(" created_at >='".$date."'"); break; case 7: $date = date('Y-m-d H:i:s', strtotime('-7 day')); $query->whereRaw(" created_at >='".$date."'"); break; case 30: $date = date('Y-m-d H:i:s', strtotime('-30 day')); $query->whereRaw(" created_at >='".$date."'"); break; case 180: $date = date('Y-m-d H:i:s', strtotime('-180 day')); $query->whereRaw(" created_at >='".$date."'"); break; case 365: $date = date('Y-m-d H:i:s', strtotime('-365 day')); $query->whereRaw(" created_at >='".$date."'"); break; } }, '时间范围', 'apply')->select([ 3=>'三天内', 7=>'一周内', 30=>'一月内', 180=>'半年内', 365=>'一年内', ]); $filter->like('company_name', '公司名称'); $filter->like('resume_name', '简历名称 '); $filter->equal('members.subsite_id', '所属分站')->select(array_column(get_all_subsite(), 'sitename', 'id')); }); return $grid; } /** * Make a show builder. * * @param mixed $id * @return Show */ protected function detail($id) { $show = new Show(CompanyInterView::findOrFail($id)); $show->id('ID'); $show->jobs_name('职位名称'); $show->company_name('公司名称'); $show->resume_name('简历名称'); $show->personal_look('查看状态')->as(function ($personal_look) { switch ($personal_look) { case 1: $personal_look = '未查看'; break; case 2: $personal_look = '已查看'; break; default: $personal_look = '未查看'; break; } return $personal_look; }); $show->interview_time('邀请时间')->as(function ($interview_time) { return date('Y-m-d H:i:s', $interview_time); })->sortable(); $show->members('所属分站')->as(function ($members) { if ($members->subsite_id) { $Subsite = Subsite::find($members->subsite_id); return isset($Subsite->sitename) ? $Subsite->sitename : '未知'; } return '总站'; }); $show->created_at('添加时间'); $show->updated_at('更新时间'); return $show; } /** * Make a form builder. * * @return Form */ protected function form() { $form = new Form(new CompanyInterView); $form->display('id'); $form->display('created_at'); $form->display('updated_at'); return $form; } /** * Make a form builder. * * @return Form */ protected function editForm($id) { $form = new Form(new CompanyInterView); $form->setAction(route('admin.personal.addPoints')); $MembersHandsel = MembersHandsel::findOrFail($id); $utype = $MembersHandsel->utype; $points = MembersHandsel::find($id)->membersPoints()->where('utype', $utype)->first(); $form->display('points_num', '会员积分')->with(function () use ($points) { return $points->points; }); $form->radio('points_type', '操作积分')->options([1 => '增加', 2=> '减少'])->default(1); $form->number('many_point', '增减积分')->default(0)->min(0); $form->text('explain', '操作说明'); $form->switch('ismany', '是否收费?'); $form->number('amount', '收费金额')->default(0)->min(0); $form->hidden('points_id')->default($points->id); $form->footer(function ($footer) { // 去掉`重置`按钮 $footer->disableReset(); // 去掉`查看`checkbox $footer->disableViewCheck(); // 去掉`继续编辑`checkbox $footer->disableEditingCheck(); // 去掉`继续创建`checkbox $footer->disableCreatingCheck(); }); $form->tools(function (Form\Tools $tools) { // 去掉`删除`按钮 $tools->disableDelete(); }); return $form; } protected function createForm() { $form = new Form(new CompanyInterView); $form->display('id'); $form->display('created_at'); $form->display('updated_at'); return $form; } /** * Store a newly created resource in storage. * * @return mixed */ public function store() { return $this->createForm()->store(); } /** * Update the specified resource in storage. * * @param int $id * * @return \Illuminate\Http\Response|\Symfony\Component\HttpFoundation\Response */ public function update($id) { return $this->editForm()->update($id); } }