companyImgRepository = $companyImgRepository; $this->pmsService = $pmsService; } /** * Index interface. * * @param Content $content * @return Content */ public function index(Content $content) { Permission::check('companyImg_manager'); return $content ->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) { Permission::check('companyImg_manager_edit'); return $content ->header('企业风采') ->description('编辑') ->body($this->editForm()->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 CompanyImg); $grid->model()->when(get_subsite_id()>0, function ($query) { $query->where('subsite_id', get_subsite_id()); })->whereHas('companys')->when(Admin::user()->isRole(AdminRole::$consultantSlug), function ($query) { $query->whereHas('companyConsultant',function ($query){ $query->where('consultant_id', isset(Admin::user()->consultant->id) ? Admin::user()->consultant->id : -1); }); })->orderByRaw('field(audit,0,2,1,3)')->orderBy('created_at', 'desc'); $grid->id('ID'); $grid->image()->image(); $grid->company_id('企业名称')->display(function ($company_id) { $companyname = Company::where('id', $company_id)->select(['companyname'])->first(); return $companyname['companyname']; })->width(200); $grid->audit('审核状态')->display(function ($audit) { switch ($audit) { case 1: return '审核通过'; break; case 2: return '审核中'; break; case 3: return '审核未通过'; break; case 0: return '未审核'; break; } }); $grid->subsite_id('所属分站')->display(function ($subsite_id) { if ($subsite_id == 0) { return "总站"; } else { $subsite = Subsite::findOrFail($subsite_id); return $subsite->sitename; } }); $grid->created_at('添加时间'); $grid->tools(function (Grid\Tools $tools) { if (Admin::user()->can('companyImg_manager_audit')) { $form = new \Encore\Admin\Widgets\Form(); $form->action(route('companyimg.audit')); $form->radio('audit1', '审核状态')->options([1=>'审核通过', 2=>'审核中', 3=>'审核未通过'])->default(1); $states = [ 'on' => ['value' => 1, 'text' => '是', 'color' => 'success'], 'off' => ['value' => 0, 'text' => '否', 'color' => 'danger'], ]; $form->textarea('reason', '备注'); $form->html("站内信通知"); $config = array( 'button' => "审核",//添加的按钮文字 'title' => "将所选企业",//弹窗标题 'dialog_cancel' => "取消",//取消文字 'dialog_ok' => "确认",//确认文字 'is_batch' => true//是否批量操作,如果是批量操作则提交表单时会带上ids参数 ); $tools->append(new DialogTool($form, $config)); } $tools->append(new GridView()); }); if (Request::get('view') !== 'table') { $grid->setView('admin.grid.card'); } $grid->actions(function (Grid\Displayers\Actions $actions) { if(Request::get('view') !== 'table') { if (Admin::user()->can('companyImg_manager_audit')) { $actions->append(""); } } if (Admin::user()->can('companyImg_manager_edit')) { $actions->disableEdit(false); } if (Admin::user()->can('companyImg_manager_delete')) { $actions->disableDelete(false); } }); $grid->filter(function ($filter) { $filter->where(function ($query) { $query->whereHas('companys', function ($query) { $query->where('companyname', 'like', "%{$this->input}%"); }); }, '公司名称'); $filter->equal('company_id', '企业ID'); $filter->column(1/2, function ($filter) { $filter->equal('audit', '审核状态')->select([0=>'未审核',1=>'审核通过',2=>'审核中',3=>'审核未通过']); }); $filter->column(1/2, function ($filter) { $subsite = Subsite::where('effective', 1)->select('id', 'sitename')->get(); $subsiteArr=[]; if ($subsite) { $subsiteArr = $subsite->toArray(); $subsiteArr = array_column($subsiteArr, 'sitename', 'id'); } $subsiteArr[0] = "总站"; ksort($subsiteArr); if (get_subsite_id()== 0) { $filter->equal('subsite_id', '所属分站')->select($subsiteArr); } $filter->between('created_at', '添加时间')->datetime(); }); }); return $grid; } /** * Make a show builder. * * @param mixed $id * @return Show */ protected function detail($id) { $show = new Show(CompanyImg::findOrFail($id)); $show->id('ID'); $show->title('标题'); $show->image('图片')->image(); $show->audit('审核状态')->as(function ($audit) { switch ($audit) { case 0: return '未审核'; break; case 1: return '审核通过'; break; case 2: return '审核中'; break; case 3: return '审核未通过'; break; } }); $show->created_at('创建时间'); return $show; } /** * Make a form builder. * * @return Form */ protected function form() { $form = new Form(new CompanyImg); $form->display('id'); $form->text('title', '标题'); $form->image('image', '图片')->rules('required'); $form->radio('audit', '审核状态')->options([0=>'未审核',1=>'审核通过',2=>'审核中',3=>'审核未通过',]); $form->display('created_at', '上传时间'); return $form; } public function editForm() { $form = new Form(new CompanyImg); $form->display('id'); $form->text('title', '标题'); $form->image('image', '图片')->rules('required'); $form->radio('audit', '审核状态')->options([0=>'未审核',1=>'审核通过',2=>'审核中',3=>'审核未通过',]); $form->display('created_at', '上传时间'); return $form; } public function update($id) { if (request()->has(Form\Field::FILE_DELETE_FLAG)) { return $this->editForm($id)->update($id); } return $this->editForm($id)->update($id); } public function companyImgAudit(Req $request) { $ids = $request->ids; if (!$ids) { return admin_toastr('请选择要审核的企业', 'error'); } $id = explode(',', $ids); $img_com_ids =$this->companyImgRepository->findWhereIn('id', $id, ['company_id','id'])->toArray(); $reason = $request->reason; $data = ['audit'=>$request->audit1]; if (CompanyImg::whereIn('id', $id)->update($data)) { //审核日志$reason $auditData= []; $auditData['ids'] = $id; $auditData['status'] = $request->audit1; $auditData['type'] = 9; $auditData['reason'] = $reason; AuditReason::addData($auditData); if ($request->is_send) { //站内信 $insertData = []; switch ($request->audit1) { case 1: $html = "通过审核"; break; case 2: $html = "审核中"; break; case 3: $html = "未通过审核"; break; } foreach ($img_com_ids as $key => $val) { $insertData[$key] = array( 'utype' => 1, 'msgtype' => 1, 'msgfromuid' => admin::user()->id, 'msgfrom' => admin::user()->username, 'msgtoname' =>getComUserName($val['company_id']), 'msgtouid' => $val['company_id'], 'message' => '企业风采'.$val['id'].$html.'【备注】'.$reason, 'new' => 1, 'created_at' =>date('Y-m-d H:i:s', time()), 'updated_at' =>date('Y-m-d H:i:s', time()), ); } $this->pmsService->addBatchPms($insertData); } if($request->type) { admin_toastr('企业风采审核成功', 'success'); return back(); } else{ return admin_toastr('企业风采审核成功', 'success'); } } else { if($request->type) { admin_toastr('企业风采审核失败', 'error'); return back(); } else{ return admin_toastr('企业风采审核失败', 'error'); } } } }