header('顾问管理') ->description('列表') ->body(view('admin.company.consultant')->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->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. * * @param $type_id * @return Grid */ protected function grid() { $grid = new Grid(new Consultant); $grid->model()->when(get_subsite_id()>0, function ($query) { $query->where('subsite_id', get_subsite_id()); $query->whereHas('subsite',function ($query){ $query->where('effective', 1); }); })->orderBy('id', 'desc'); $grid->id('ID'); $grid->name('顾问姓名')->width(200); $grid->mobile('顾问手机')->width(200); $grid->qq('顾问QQ')->width(200); if(get_subsite_open()){ $grid->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('company_consultant_set')) { $url=route("consultant.list",['id'=>$actions->row['id']]); $actions->prepend(""); } if (Admin::user()->can('company_consultant_list_edit')) { $actions->disableEdit(false); } if (Admin::user()->can('company_consultant_list_delete')) { $actions->disableDelete(false); } $actions->disableView(true); }); if (Admin::user()->can('company_consultant_list_delete')) { $grid->tools(function ($tools) { $tools->batch(function ($batch) { $batch->disableDelete(false); }); }); $grid->disableRowSelector(false); } if (Admin::user()->can('company_consultant_list_create')) { $grid->disableCreateButton(false); } $grid->disableFilter(); return $grid; } /** * Make a form builder. * * @return Form */ protected function editForm($id) { $form = new Form(new Consultant); $Con = Consultant::whereHas('adminUser')->find($id); $form->text('name', '姓名')->rules([ 'required', new ChineseUsernameRule() ])->setWidth(3)->setMustMark(); $form->mobile('mobile', '手机')->rules([ 'required', new MobileRule() ])->setWidth(4)->setMustMark(); $form->text('telephone', '电话')->setWidth(3); $form->text('qq', 'QQ')->rules([ 'required', new QqRule() ])->setWidth(3)->setMustMark(); $no_user = AdminUser::whereDoesntHave('consultant')->pluck('username','id')->toArray(); $default = 0; if($Con){ $no_user[$Con->adminUser->id] = $Con->adminUser->username; $default = $Con->adminUser->id; } $form->select('admin_users_id','绑定用户')->options($no_user)->default($default)->setWidth(3); $form->image('avatar', '照片')->setWidth(3); $form->saving(function (Form $form){ if(!$form->admin_users_id){ $form->admin_users_id=0; } }); if (get_subsite_open()) { if (get_subsite_id() == 0) { //添加所属分站 $form->radio('subsite_id', '所属分站') ->options(array_column(get_all_subsite(), 'sitename', 'id')) ->default(0)->setWidth(6); } } return $form; } protected function createForm() { $form = new Form(new Consultant); $form->text('name', '姓名')->rules([ 'required', new ChineseUsernameRule() ])->setWidth(3)->setMustMark(); $form->mobile('mobile', '手机')->rules([ 'required', new MobileRule() ])->setWidth(4)->setMustMark(); $form->text('telephone', '电话')->setWidth(3); $form->text('qq', 'QQ')->rules([ 'required', new QqRule() ])->setWidth(3)->setMustMark(); $form->select('admin_users_id','绑定用户')->options(AdminUser::whereDoesntHave('consultant')->pluck('username','id'))->setWidth(3); $form->image('avatar', '照片')->setWidth(3); $form->saving(function (Form $form){ if(!$form->admin_users_id){ $form->admin_users_id=0; } }); if (get_subsite_open()) { if (get_subsite_id() == 0) { //添加所属分站 $form->radio('subsite_id', '所属分站')->options(array_column(get_all_subsite(), 'sitename', 'id'))->default(0)->setWidth(6); }else{ $form->hidden('subsite_id')->default(get_subsite_id()); } } return $form; } /** * Store a newly created resource in storage. * * @return mixed */ public function store() { return $this->createForm()->store(); } public function update($id) { return $this->editForm($id)->update($id); } public function destroy($id) { if (!$id) { $data = [ 'status' => false, 'message' => '顾问不存在!!', ]; return response()->json($data); } $id_arr = explode(',', $id); \DB::beginTransaction(); try { Consultant::destroy($id_arr); CompanyConsultant::whereIn('consultant_id', $id_arr)->delete(); $data = [ 'status' => true, 'message' => '删除成功!', ]; \DB::commit(); return response()->json($data); } catch (\Exception $e) { \DB::rollback(); $data = [ 'status' => false, 'message' => '删除失败!', ]; return response()->json($data); } } /** * Make a show builder. * * @param mixed $id * @return Show */ protected function detail($id) { $show = new Show(Consultant::findOrFail($id)); return $show; } /** * Make a form builder. * * @return Form */ protected function form() { $form = new Form(new Consultant); $form->display('ID'); $form->switch('status'); $form->text('points', '积分'); $form->text('times', '每天赠送积分上限'); $form->display('Created at'); $form->display('Updated at'); return $form; } public function consultantList(Content $content) { $username = ''; $qq = ''; $id = request()->id; if(empty($id)){ admin_toastr('顾问不存在!', 'error'); return back(); } $grid = new Grid(new CompanyConsultant); $grid->model()->whereHas('companys')->whereHas('consultants')->where('consultant_id', $id)->orderBy('id', 'desc'); $grid->column('companys.username','用户名')->display(function ($username){ return $username ? $username : '未填写'; }); $grid->column('companys.companyname','企业信息')->display(function ($companyname){ if($companyname){ return ''.$companyname.''; }else{ return '未填写'; } }); $grid->column('companys.audit','审核状态')->display(function ($audit){ if ($audit==3) { return'审核未通过'; } elseif ($audit==1) { return'审核通过'; } else { return'等待审核'; } }); $grid->column('companys.mobile','手机')->display(function ($mobile){ return $mobile ? $mobile : '未填写'; }); $grid->column('companys.email','邮箱')->display(function ($email){ return $email ? $email : '未填写'; }); $grid->column('companys.reg_time','注册时间')->display(function ($reg_time){ return $reg_time ? date('Y-m-d H:i:s', $reg_time) : ''; })->sortable(); $grid->column('companys.last_login_time','最后登录时间')->display(function ($last_login_time){ return $last_login_time ? date('Y-m-d H:i:s', $last_login_time) : ''; })->sortable(); $Consultant = Consultant::find($id); if($Consultant){ $username = $Consultant->name; $qq = $Consultant->qq; } $grid->filter(function ($filter) { $filter->column(1/2, function ($filter) { $filter->like('companys.username', '用户名'); $filter->like('companys.companyname', '企业信息'); }); $filter->column(1/2, function ($filter) { $filter->like('companys.mobile', '手机'); $filter->like('companys.email', '邮箱'); }); }); $grid->actions(function ($actions){ $actions->disableView(); if (Admin::user()->can('company_consultant_reset')) { $actions->append(""); } }); $grid->tools(function ($tools){ if (Admin::user()->can('company_consultant_reset')) { $but = << EOT; $tools->append($but); } }); return $content ->header('顾问列表') ->description('顾问姓名:'.$username.',顾问QQ:'.$qq) ->body(view('admin.company.consultant_list')->with(['gird'=>$grid->render()])); } public function consultantReset(Request $request) { $id = $request->id; $arr_id = array_filter(explode(',', $id)); if(empty($arr_id)){ return response()->json(['code'=>0,'info'=>'请勾选需要重置的会员']); } $result = CompanyConsultant::destroy($arr_id); if($result){ return response()->json(['code'=>1,'info'=>'重置成功!']); }else{ return response()->json(['code'=>0,'info'=>'重置失败!']); } } }