Files
2026-06-02 14:46:39 +08:00

101 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# role-user
员工端 C 端工作台,基于 `access-manage` 后端和 `role-admin` 管理后台建设。
当前已搭建 React + Next.js App Router + TypeScript 前端骨架,采用移动优先、PWA 友好的工作台形态。
## 启动
```bash
pnpm install
cp .env.example .env.local
pnpm dev
```
默认访问:
- 登录页:http://localhost:3210/login
- 工作台:http://localhost:3210/dashboard
- 任务:http://localhost:3210/tasks
- 排班:http://localhost:3210/schedule
- 公告:http://localhost:3210/announcements
- 门店:http://localhost:3210/store
- 我的:http://localhost:3210/me
## 环境变量
```bash
ACCESS_MANAGE_API_BASE_URL=http://localhost:3500/api
ROLE_USER_SESSION_COOKIE=role_user_session
```
`ACCESS_MANAGE_API_BASE_URL` 指向 `access-manage` 服务端 API 根路径。员工登录会调用后端 `POST /api/auth/employee/login`,登录成功后只把 JWT 写入 Next.js 服务端 HttpOnly Cookie,不写入 `localStorage`
## 可用命令
```bash
pnpm dev
pnpm typecheck
pnpm lint
pnpm build
```
## 当前实现范围
- Next.js App Router 项目结构、TypeScript、ESLint、`@/*` 路径别名和基础样式。
- BFF Route Handlers
- `POST /api/auth/login`
- `POST|GET /api/auth/logout`
- `GET /api/auth/me`
- `PATCH /api/auth/me/password`
- `GET /api/permissions/me`
- `GET /api/mobile/tasks`
- `GET /api/mobile/tasks/:id`
- `POST /api/mobile/tasks/:id/start`
- `POST /api/mobile/tasks/:id/complete`
- `POST /api/mobile/tasks/:id/comment`
- `GET /api/mobile/announcements`
- `GET /api/mobile/announcements/:id`
- `POST /api/mobile/announcements/:id/read`
- `GET /api/mobile/shifts`
- `GET /api/mobile/shifts/today`
- `GET /api/mobile/store`
- `GET /api/mobile/store/employees`
- 页面:
- `/login`
- `/dashboard`
- `/tasks`
- `/tasks/:id`
- `/schedule`
- `/announcements`
- `/announcements/:id`
- `/store`
- `/me`
- 首页已消费正式 `mobile/bootstrap``latestAnnouncements``tasks``overdueTaskCount``todayShift/todayShifts`
- `/announcements` 支持全部、未读、已读筛选;公告详情进入后通过 BFF 标记已读。
- `/tasks` 支持全部、待处理、处理中、已完成筛选;任务详情支持开始、完成和追加备注。
- `/schedule` 支持今日、未来、全部排班筛选。
- `/me` 已接入本人修改密码表单,前端不持久化密码或 token。
- `/dashboard``/tasks``/announcements``/schedule` 会在后端临时不可用或 5xx 时保持基础资料和业务空态。
- `/store` 会尝试读取当前门店详情和本店员工列表;后端权限或接口不可用时保持门店基础信息和空态。
- 移动端底部导航、加载态、空态、会话缺失跳登录、401 清理 Cookie 的服务端路径。
- PWA manifest、应用图标、基础 service worker、安全响应头和参照 SeaCloud 的移动端工作台视觉系统。
## 文档
- `docs/C_EMPLOYEE_APP_REQUIREMENTS.md`: C 端员工工作台需求文档。
- `docs/FULLSTACK_BACKEND_GAP_ANALYSIS.md`: C 端员工工作台三端缺口与改动范围分析。
- `RTK.md`: 本项目 Codex/Agent 协作规则。
## 关联项目
- `/Users/mac033/Desktop/my-project/access-manage`: 服务端 API。
- `/Users/mac033/Desktop/my-project/role-admin`: 管理后台。
## 安全边界
- 不展示任何明文密码。
- 不把密码、JWT 或权限 token 持久化到前端存储。
- 员工端修改密码已通过 BFF 接入后端 `PATCH /api/auth/me/password`
- 公告、任务、排班已按正式后端接口接入列表、筛选、详情和员工端操作;后端临时不可用时页面保留业务空态。