service = new UserService(); } /** * 列表页面 * * @return Grid */ protected function grid() { return Grid::make(new UserRepository(['info']), function (Grid $grid) { $helper = new GridHelper($grid, $this); $helper->columnUserID('id'); // 使用高复用价值的列方法 $helper->columnUserInfo(); // 组合列,显示用户ID、用户名和头像 $helper->columnUserContact('phone', 'email', 'wx_id'); // 组合列,显示联系方式 // 用户安全信息 $helper->columnUserSecurity(); // 组合列,显示安全密码和最后验证时间 // 用户活动时间 $helper->columnUserActivityTimes(); // 组合列,显示最后登录时间和最后活动时间 $helper->columnTimes(); // 组合列,显示创建和更新时间 // 行操作 $grid->actions(function (Grid\Displayers\Actions $actions){ // 禁用删除按钮 $actions->disableDelete(); // 添加修改密码操作 $actions->append(new ChangePasswordAction()); $actions->append(ResetLogin::make()); // 添加相关页面链接操作 $actions->append(new UserRelatedPagesAction()); }); // 筛选器 $grid->filter(function (Grid\Filter $filter) { $helper = new FilterHelper($filter, $this); $helper->equalUserId(); $helper->equal('username','手机号码'); // 手机号筛选 $helper->likeEmail(); // 邮箱筛选 }); }); } /** * 详情页面 * * @param mixed $id * @return Show */ protected function detail($id) { return Show::make($id, new UserRepository(), function (Show $show) { // 确保加载用户信息关联 $show->model()->load('info'); $helper = new ShowHelper($show, $this); // 使用高复用价值的面板方法 $helper->show->divider('基本信息'); $helper->fieldUserId(); $helper->fieldUsername(); $helper->show->field('nickname', '昵称'); $helper->fieldAvatar(); $helper->fieldStatus(); $helper->show->divider('联系信息'); $helper->show->field('phone', '手机号'); $helper->show->field('email', '邮箱'); $helper->show->field('wx_id', '微信号'); $helper->show->divider('安全信息'); $helper->fieldSecretPassword(); $helper->show->field('last_check_at', '最后验证时间'); $helper->show->divider('活动信息'); $helper->fieldLastLoginTime(); $helper->fieldLastActivityTime(); $helper->show->divider('时间信息'); $helper->show->field('created_at', '创建时间'); $helper->show->field('updated_at', '更新时间'); $helper->show->field('deleted_at', '删除时间'); // 显示其他特殊字段 $show->field('google2fa_secret', 'Google双因素密钥'); }); } /** * 表单页面 * * @return Form */ protected function form() { return Form::make(new UserRepository(), function (Form $form) { $form->display('id', 'ID'); // 用户基本信息 $form->text('username', '用户名') ->required() ->rules('required|max:100'); $form->radio('status2', '状态') ->options([ STATUS2::Normal->value => '正常', STATUS2::Restrict->value => '限制登录', STATUS2::Ban->value => '封禁', STATUS2::Hidden->value => '隐藏账户', STATUS2::Deleteing->value => '删除中', ]) ->default(STATUS2::Normal->value); $form->display('created_at', '创建时间'); $form->display('updated_at', '更新时间'); }); } }