feat(client): 用户管理页 + E2E 门禁(E15/E16/E18)
- 新增系统用户管理页(创建/禁用启用/重置密码/角色) - 引入 Playwright E2E:覆盖登录-报销-待办-票据-OCR-支付-登出 - 新增 ci-e2e 工作流(PR + nightly)
这个提交包含在:
+27
@@ -28,6 +28,11 @@ cd /home/shunli/Projects/hyb-oa/client
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## 3.1 试运行/单域托管部署(推荐)
|
||||
试运行/上线演练建议使用仓库内置部署包(server 托管 `client/dist`,同域 cookie 更稳定):
|
||||
- `deploy/trialrun/runbook.md`
|
||||
- `deploy/trialrun/checklist.md`
|
||||
|
||||
## 4. 鉴权与会话说明
|
||||
- Access Token 仅保存在内存,不写入 `localStorage/sessionStorage`。
|
||||
- Refresh Token 由后端通过 HttpOnly Cookie 维护。
|
||||
@@ -54,6 +59,7 @@ npm run dev
|
||||
- 待我处理:`expense.approve`。
|
||||
- 票据中心:`invoice.upload` / `invoice.view_own` / `invoice.manage`。
|
||||
- 审计工作台:`system.audit.view`(finance_mgr/admin)。
|
||||
- 用户管理:`system.users`(hr/admin)。
|
||||
- 个人设置:登录即可访问。
|
||||
|
||||
## 6. 页面现状(P3)
|
||||
@@ -78,6 +84,27 @@ npm run dev
|
||||
npm run typecheck
|
||||
npm run build
|
||||
npm run preview
|
||||
npm run test:e2e
|
||||
```
|
||||
|
||||
## 8.1 Playwright E2E(E15)
|
||||
前置:本地启动 DB + server(建议 `SERVE_CLIENT_DIST=true` 单域托管),并启用 mock OCR:
|
||||
```bash
|
||||
cd /home/shunli/Projects/hyb-oa
|
||||
docker compose up -d db
|
||||
|
||||
cd /home/shunli/Projects/hyb-oa/server
|
||||
OCR_PROVIDER=mock OCR_POLL_CRON="*/5 * * * * *" npm run prisma:migrate:deploy
|
||||
OCR_PROVIDER=mock OCR_POLL_CRON="*/5 * * * * *" npm run seed:dev
|
||||
OCR_PROVIDER=mock OCR_POLL_CRON="*/5 * * * * *" SERVE_CLIENT_DIST=true npm run dev
|
||||
```
|
||||
|
||||
执行:
|
||||
```bash
|
||||
cd /home/shunli/Projects/hyb-oa/client
|
||||
npm install
|
||||
npx playwright install --with-deps
|
||||
npm run test:e2e
|
||||
```
|
||||
|
||||
## 9. 仓库级最小门禁
|
||||
|
||||
在新工单中引用
屏蔽一个用户