refactor: 简化工作台上手入口和个人设置(portal-onboarding-profile-simplification)
这个提交包含在:
@@ -0,0 +1,4 @@
|
||||
{"file": ".trellis/spec/hyb-oa/frontend-react-vite-design.md", "reason": "核对 A-class 工作台、个人设置页和欢迎弹窗是否符合小团队任务优先和降噪规则。"}
|
||||
{"file": ".trellis/spec/hyb-oa/security-privacy.md", "reason": "核对页面和证据不泄露敏感信息、权限原始字段和企业微信原始标识。"}
|
||||
{"file": ".trellis/spec/hyb-oa/docs-and-evidence.md", "reason": "核对截图与验证报告只记录相对路径和脱敏摘要。"}
|
||||
{"file": ".trellis/tasks/05-29-portal-onboarding-profile-simplification/research/grill-decisions.md", "reason": "核对实现是否符合已确认的产品决策。"}
|
||||
@@ -0,0 +1,4 @@
|
||||
{"file": ".trellis/spec/hyb-oa/frontend-react-vite-design.md", "reason": "前端工作台、欢迎弹窗和个人设置页降噪的设计与验证约束。"}
|
||||
{"file": ".trellis/spec/hyb-oa/security-privacy.md", "reason": "个人设置页不得暴露敏感账号、权限和企业微信原始标识。"}
|
||||
{"file": ".trellis/spec/hyb-oa/docs-and-evidence.md", "reason": "截图和验证证据需记录相对路径与脱敏摘要。"}
|
||||
{"file": ".trellis/tasks/05-29-portal-onboarding-profile-simplification/research/grill-decisions.md", "reason": "用户通过 grill-me 确认的产品决策。"}
|
||||
@@ -0,0 +1,45 @@
|
||||
# 实施说明
|
||||
|
||||
## Plan
|
||||
|
||||
1. 移除 `PortalHomePage` 的常驻 `GettingStartedCard` 渲染和清单数据,保留首次欢迎弹窗触发逻辑。
|
||||
2. 精简 `WelcomeDialog`:
|
||||
- 标题改为常用入口语义。
|
||||
- 只保留处理待办、提交报销、请假 3 个入口。
|
||||
- 移除个人设置、通知中心、考勤汇总。
|
||||
3. 精简 `ProfilePage`:
|
||||
- 第一屏主内容只保留账号信息、通知设置、企业微信绑定。
|
||||
- 完整员工档案作为次要入口。
|
||||
- 组织/角色状态移入折叠 `账号详情`。
|
||||
- 移除权限 code 默认展示。
|
||||
4. 更新 `login-portal-ux.spec.ts` 中 onboarding 断言,覆盖:
|
||||
- 欢迎弹窗入口数量和文案。
|
||||
- 快速上手清单不再显示。
|
||||
- 个人设置默认不出现权限 code。
|
||||
5. 跑本地验证并用 Playwright 生成截图。
|
||||
|
||||
## Risk
|
||||
|
||||
- 工作台新员工引导测试原本依赖 `快速上手` 卡片,需要同步改断言。
|
||||
- 个人设置页如果完全移除角色信息,管理员排查账号状态会少一个入口;因此保留折叠的自然语言 `账号详情`。
|
||||
- 移除快速上手可能影响首次用户发现功能;通过欢迎弹窗 3 个常用入口和左侧导航承接。
|
||||
|
||||
## Rollback
|
||||
|
||||
- 若用户确认仍需要常驻上手清单,可恢复 `GettingStartedCard`,但只放真实任务型入口,不再放个人设置/通知中心/流程说明。
|
||||
|
||||
## Local Evidence
|
||||
|
||||
- 截图:
|
||||
- `output/playwright/portal-onboarding-profile-simplification/welcome-dialog.png`
|
||||
- `output/playwright/portal-onboarding-profile-simplification/portal-workbench.png`
|
||||
- `output/playwright/portal-onboarding-profile-simplification/profile-settings.png`
|
||||
- 验证:
|
||||
- `cd client && npm run build`:通过。
|
||||
- `cd client && E2E_BASE_URL=http://127.0.0.1:5173 npx playwright test tests/e2e/login-portal-ux.spec.ts --workers=1 --reporter=list`:12/12 通过。
|
||||
- `node scripts/qa/check-ui-design-rules.mjs`:通过。
|
||||
- `python3 ./.trellis/scripts/task.py validate 05-29-portal-onboarding-profile-simplification`:通过。
|
||||
- `node scripts/qa/check-trellis-governance.mjs`:通过。
|
||||
- `node scripts/qa/check-process-contract.mjs --baseline --json`:通过。
|
||||
- `node scripts/qa/audit-docs.mjs --check-registry`:通过,保留既有 `unregistered docs files: 24` 警告。
|
||||
- `git diff --check`:通过。
|
||||
@@ -0,0 +1,112 @@
|
||||
# 工作台上手入口与个人设置降噪
|
||||
|
||||
## Goal
|
||||
|
||||
把工作台从“新手教学清单”拉回“今天该处理什么”的小团队工作入口,同时把个人设置页降噪成用户熟悉的账号与通知设置页。解决当前快速上手入口承诺与落地页面不一致的问题,降低国内小于 10 人科技初创公司员工首次使用 OA 的理解成本。
|
||||
|
||||
## What I Already Know
|
||||
|
||||
- 用户已通过 `grill-me` 逐项确认:
|
||||
- 工作台首页不承担常驻新手教学职责。
|
||||
- 删除常驻“快速上手”清单。
|
||||
- 首次欢迎弹窗保留,但改成轻量“常用入口”,最多 3 个入口。
|
||||
- `个人设置` 只放账号信息、通知设置、企业微信绑定。
|
||||
- 不在个人设置页默认展示权限 code。
|
||||
- 删除 `完善个人资料` 这个上手入口。
|
||||
- `了解请假流程` 改成业务入口 `请假` / `提交请假`。
|
||||
- `查看通知中心` 不放在欢迎/上手入口里,只在有未读通知时作为任务出现。
|
||||
- 本轮不新建“我的档案”页面。
|
||||
- 本地截图确认后,再部署公网。
|
||||
- 当前 `PortalHomePage.tsx` 里存在 `GettingStartedCard` 和 4 个上手项:完善个人资料、设置通知偏好、了解请假流程、查看通知中心。
|
||||
- 当前 `ProfilePage.tsx` 同时展示基本信息、完整员工档案、通知提醒、企业微信绑定、组织信息、账号状态、角色与权限 code,默认页面偏复杂。
|
||||
- 当前 `WelcomeDialog.tsx` 包含个人设置和通知中心入口,描述仍像新手功能列表。
|
||||
|
||||
## Scope
|
||||
|
||||
- 前端页面与交互文案改动:
|
||||
- 工作台首页 onboarding 区域。
|
||||
- 首次欢迎弹窗。
|
||||
- PC 个人设置页。
|
||||
- 前端聚焦测试与本地截图证据。
|
||||
- 本地验证通过后提交代码;公网部署不纳入本任务直接执行。
|
||||
|
||||
## Requirements
|
||||
|
||||
- 工作台页面:
|
||||
- 删除常驻 `快速上手` 卡片及其完成度清单。
|
||||
- 不再显示 `完善个人资料`、`设置通知偏好`、`了解请假流程`、`查看通知中心` 作为上手步骤。
|
||||
- 保留“今日任务”“下一步”和已有工作台业务信息架构。
|
||||
- 不新增新的 onboarding 常驻区块。
|
||||
- 欢迎弹窗:
|
||||
- 保留首次欢迎弹窗。
|
||||
- 改为轻量“常用入口”语义,不表达必须完成的步骤。
|
||||
- 入口最多 3 个:处理待办、提交报销、请假。
|
||||
- 不包含个人设置、通知中心、考勤汇总。
|
||||
- 个人设置页:
|
||||
- 默认只展示用户能理解、能操作、经常需要看的内容:
|
||||
- 账号信息:姓名、员工号、邮箱、手机号。
|
||||
- 通知设置:企业微信消息提醒开关,以及关闭后仍保留站内通知的说明。
|
||||
- 企业微信绑定:绑定状态、绑定/重新绑定/解绑操作。
|
||||
- 组织归属、直属汇报、账号状态、角色摘要最多进入折叠的 `账号详情`。
|
||||
- 默认不展示权限 code。
|
||||
- 不新建 `我的档案` 页面。
|
||||
- 完整员工档案只保留为次要入口,不能让用户误以为个人设置就是档案维护中心。
|
||||
- 文案:
|
||||
- 使用自然中文,避免 `Portal`、`Workflow` 等英文产品词。
|
||||
- `了解请假流程` 这类说明型入口不再出现;业务入口用 `请假` 或 `提交请假`。
|
||||
- 通知中心不作为上手入口出现。
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] 工作台不再显示常驻 `快速上手` 清单。
|
||||
- [ ] 欢迎弹窗只显示最多 3 个常用业务入口,且不包含个人设置和通知中心。
|
||||
- [ ] 个人设置页第一屏只呈现账号信息、通知设置、企业微信绑定这三类核心内容。
|
||||
- [ ] 个人设置页默认不展示权限 code。
|
||||
- [ ] `了解请假流程`、`查看通知中心`、`完善个人资料` 不再作为上手清单入口出现。
|
||||
- [ ] 本地截图能证明工作台、欢迎弹窗、个人设置页降噪效果。
|
||||
- [ ] 通过前端 typecheck、build、聚焦 Playwright、UI 设计规则和 Trellis governance。
|
||||
|
||||
## Test Plan
|
||||
|
||||
```bash
|
||||
cd client && npm run typecheck
|
||||
cd client && npm run build
|
||||
cd client && npx playwright test tests/e2e/login-portal-ux.spec.ts --workers=1 --reporter=list
|
||||
node scripts/qa/check-ui-design-rules.mjs
|
||||
python3 ./.trellis/scripts/task.py validate 05-29-portal-onboarding-profile-simplification
|
||||
node scripts/qa/check-trellis-governance.mjs
|
||||
git diff --check
|
||||
```
|
||||
|
||||
本地截图:
|
||||
|
||||
- 工作台:确认没有常驻快速上手,第一屏聚焦今日任务。
|
||||
- 欢迎弹窗:确认是轻量常用入口。
|
||||
- 个人设置:确认默认页面简洁、无权限 code 堆叠。
|
||||
|
||||
## Definition Of Done
|
||||
|
||||
- 代码改动完成并通过本地验证。
|
||||
- 截图证据保存在当前 task research 或 `output/playwright/` 对应目录。
|
||||
- 提交中文 commit,commit message 引用本 task。
|
||||
- 本轮不直接告知用户公网已更新;公网部署作为截图确认后的后续步骤执行。
|
||||
|
||||
## Out Of Scope
|
||||
|
||||
- 不新建“我的档案”页面。
|
||||
- 不改后端用户/权限/员工档案模型。
|
||||
- 不改真实业务流程、不创建业务数据、不执行审批/付款/企业微信写入。
|
||||
- 不扩大为全站导航重构。
|
||||
- 不在本任务内直接部署公网;部署需本地截图确认后另行执行。
|
||||
|
||||
## Technical Notes
|
||||
|
||||
- 主要代码:
|
||||
- `client/src/pages/PortalHomePage.tsx`
|
||||
- `client/src/components/onboarding/WelcomeDialog.tsx`
|
||||
- `client/src/pages/ProfilePage.tsx`
|
||||
- `client/tests/e2e/login-portal-ux.spec.ts`
|
||||
- 设计约束:
|
||||
- `.trellis/spec/hyb-oa/frontend-react-vite-design.md`
|
||||
- `docs/产品设计规则.md`
|
||||
- 当前用户背景:国内小于 10 人科技初创公司,一个人开发维护,优先减少默认复杂度和误导入口。
|
||||
@@ -0,0 +1,21 @@
|
||||
# Grill-me 决策记录
|
||||
|
||||
## 已确认
|
||||
|
||||
- 工作台首页不承担常驻新手教学职责。
|
||||
- 删除常驻“快速上手”清单。
|
||||
- 首次欢迎弹窗保留,但改成轻量“常用入口”,最多 3 个入口。
|
||||
- `个人设置` 只放账号信息、通知设置、企业微信绑定。
|
||||
- 不在个人设置页默认展示权限 code。
|
||||
- 删除 `完善个人资料` 这个上手入口。
|
||||
- `了解请假流程` 改成业务入口 `请假` / `提交请假`。
|
||||
- `查看通知中心` 不放在欢迎/上手入口里,只在有未读通知时作为任务出现。
|
||||
- 本轮不新建“我的档案”页面。
|
||||
- 本地截图确认后,再部署公网。
|
||||
- 单独创建 Trellis task,不混入 `oa-seven-day-trial-live-ops`。
|
||||
|
||||
## 产品判断
|
||||
|
||||
- 面向国内小于 10 人科技初创公司,工作台优先回答“今天该处理什么”,不要让用户先学习系统。
|
||||
- 上手入口必须和落地页面一致:说“流程”就应该是说明,说“申请”才进入申请页。
|
||||
- 个人设置页应符合常见账号设置心智,不展示开发者视角的权限 code。
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"id": "portal-onboarding-profile-simplification",
|
||||
"name": "portal-onboarding-profile-simplification",
|
||||
"title": "工作台上手入口与个人设置降噪",
|
||||
"description": "删除工作台常驻快速上手清单,轻量化首次欢迎弹窗,并将个人设置页降噪为账号、通知和企业微信绑定。",
|
||||
"status": "in_progress",
|
||||
"dev_type": null,
|
||||
"scope": "frontend",
|
||||
"package": null,
|
||||
"priority": "P2",
|
||||
"creator": "shunli",
|
||||
"assignee": "shunli",
|
||||
"createdAt": "2026-05-29",
|
||||
"completedAt": null,
|
||||
"branch": null,
|
||||
"base_branch": "main",
|
||||
"worktree_path": null,
|
||||
"commit": null,
|
||||
"pr_url": null,
|
||||
"subtasks": [],
|
||||
"children": [],
|
||||
"parent": null,
|
||||
"relatedFiles": [
|
||||
"client/src/pages/PortalHomePage.tsx",
|
||||
"client/src/components/onboarding/WelcomeDialog.tsx",
|
||||
"client/src/pages/ProfilePage.tsx",
|
||||
"client/tests/e2e/login-portal-ux.spec.ts"
|
||||
],
|
||||
"notes": "",
|
||||
"meta": {}
|
||||
}
|
||||
在新工单中引用
屏蔽一个用户