Skip to content

实战:后台用户管理 ​

本教程对应仓库示例 @selrux/example-admin(examples/admin)。使用内存模拟服务与 sessionStorage 演示认证,不是生产方案。完整壳需已能安装 @selrux/shell。

1. 运行示例(推荐) ​

在 selrux 单体仓库中:

bash
pnpm --filter @selrux/example-admin dev

浏览器打开本地端口(默认 8500)。也可从脚手架创建 shell 项目后,对照示例拷贝 src/services、src/pages、src/app.tsx 接入模式。

2. 账号与流程 ​

账号能力
alice / aliceadmin + user:edit,可编辑用户,可见「系统设置」
bob / bobuser,只读列表/详情,无编辑按钮,无设置页

建议路径:

  1. 打开 /login,用 alice 登录。
  2. 进入「用户管理」,筛选、翻页(状态写入 URL search)。
  3. 打开某用户详情:页签标题变为姓名,侧栏高亮列表;详情启用 keepAlive,再开另一用户后切回应保留滚动/已加载数据(参数用冻结 API)。
  4. 进入编辑并保存;故意填 taken@example.com 可看冲突错误后改正再保存。
  5. 首页「退出并切换账号」,改用 bob 登录:无编辑入口;直接访问 /settings 应被拒绝。
  6. 「模拟会话过期」后应回到登录。

3. 接入要点(自建项目) ​

src/app.tsx 模块顶层:

  • installShellAppStore + configureShellAuth + enableShellAccessGuard
  • configureShellRouteMeta:详情 activeMenu、设置页 roles
  • defineApp({ bootstrap }) 内 ensureSessionRestored

业务请求留在示例 services/,接受 AbortSignal;页面用 AbortController 丢弃过期结果。按钮权限用 hasButtonAccess / 订阅 store,不要只藏菜单。

详见 认证接入、菜单与图标、shell/config。

4. 回归命令 ​

bash
pnpm --filter @selrux/example-admin test
pnpm --filter @selrux/example-admin typecheck
pnpm --filter @selrux/example-admin build

浏览器深链刷新、多账号切换建议人工点一次;自动化单测覆盖服务层、search 解析与认证切换。

精简版默认可用;完整壳需显式启用并配置私服。