header('投诉顾问') ->description('列表') ->body(view('admin.content.complaint_adviser')->with(['gird'=>$this->grid()->render()])); } /** * 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->form()->edit($id)); } /** * Create interface. * * @param Content $content * @return Content */ public function create(Content $content) { return $content ->header('投诉顾问') ->description('创建') ->body($this->form()); } /** * Make a grid builder. * * @return Grid */ protected function grid() { $grid = new Grid(new ComplaintConsultant); $grid->model()->whereHas('consultant')->whereHas('company')->orderByRaw('status asc,created_at desc'); $grid->column('consultant.name','被投诉顾问')->width(100); $grid->status('处理情况')->display(function ($status) { if($status==0){ return '未处理'; }elseif ($status==1){ return '属实'; }else{ return '不属实'; } }); $grid->notes('投诉内容')->display(function ($notes){ return ''.$notes.''; })->width(200); $grid->column('company.username','投诉者')->width(100); $grid->created_at('投诉时间'); $grid->actions(function ($actions) { $actions->disableView(); if (Admin::user()->can('company_consultant_complaint_adviser')) { $actions->append(""); } if (Admin::user()->can('company_consultant_complaint_delete')) { $actions->disableDelete(false); } }); $grid->tools(function ($tools) { if (Admin::user()->can('company_consultant_complaint_adviser')) { $but = << EOT; $tools->append($but); } }); //批量删除 if (Admin::user()->can('company_consultant_complaint_delete')) { $grid->tools(function ($tools) { $tools->batch(function ($batch) { $batch->disableDelete(false); }); }); } else { $grid->disableRowSelector(); } $grid->filter(function ($filter) { $filter->column(1/2, function ($filter) { $filter->like('consultant.name','被投诉顾问'); $filter->equal('status', '处理情况')->select([ 0=>'未处理', 1=>'属实', 2=>'不属实', ]); }); $filter->column(1/2, function ($filter) { $filter->like('company.username', '投诉者'); $filter->where(function ($query) { switch ($this->input) { case 3: $query->whereRaw("created_at>='".date('Y-m-d H:i:s', strtotime('-3 day'))."'"); break; case 7: $query->whereRaw("created_at>='".date('Y-m-d H:i:s', strtotime('-7 day'))."'"); break; case 30: $query->whereRaw("created_at>='".date('Y-m-d H:i:s', strtotime('-30 day'))."'"); break; } }, '投诉时间', 'created_at')->select([ 3=>'三天内', 7=>'一周内', 30=>'一月内', ]); }); }); return $grid; } /** * Make a show builder. * * @param mixed $id * @return Show */ protected function detail($id) { $show = new Show(ComplaintConsultant::findOrFail($id)); return $show; } /** * Make a form builder. * * @return Form */ protected function form() { $form = new Form(new ComplaintConsultant); return $form; } public function auditAdviser(Request $request) { $id = $request->id; $form = new \Encore\Admin\Widgets\Form(); $form->action(route('admin.complaint.auditAdviserR')); $form->disableReset(); $form->hidden('id', 'ID')->default($id); $form->radio('status', '处理情况')->options([1=>'属实',2=>'不属实'])->default(1); return json_encode(['html'=>$form->render(),'detail'=>'审核投诉']); } public function auditAdviserR(Request $request) { $id = $request->id; $status = $request->status; $arr = array_filter(explode(',', $id)); if (empty($arr)) { admin_toastr('请选择投诉对象', 'error'); return back(); } $result = ComplaintConsultant::whereIn('id', $arr)->update(['status'=>$status]); if($result){ admin_toastr('处理成功!', 'success'); }else{ admin_toastr('处理失败!', 'error'); } return back(); } }