收口移动端入口与文案(05-30-mobile-confirmed-entry-copy-followups)
这个提交包含在:
@@ -0,0 +1,2 @@
|
||||
{"file":".trellis/spec/hyb-oa/frontend-react-vite-design.md","reason":"检查移动页面布局、文案、动作位置和验证要求。"}
|
||||
{"file":".trellis/spec/hyb-oa/wecom-boundary.md","reason":"检查移动请假不越过企业微信主办边界。"}
|
||||
@@ -0,0 +1,2 @@
|
||||
{"file":".trellis/spec/hyb-oa/frontend-react-vite-design.md","reason":"移动端统一 shell、轻动作、待我处理、财务/付款和列表搜索规则。"}
|
||||
{"file":".trellis/spec/hyb-oa/wecom-boundary.md","reason":"请假和考勤由企业微信主办,移动请假保持只读和 OA 应急边界。"}
|
||||
@@ -0,0 +1,21 @@
|
||||
# Implementation Notes
|
||||
|
||||
## Design Decision
|
||||
|
||||
移动端继续走“轻动作、少空壳、状态先行”的方向:
|
||||
|
||||
- 请假:企业微信主办,OA 只读展示记录和额度;OA 应急入口只给 `leave.manage`。
|
||||
- 财务:首页不常驻展示财务模块,只有待付款或异常/风险需要处理时才出现。
|
||||
- 搜索:报销和采购的移动搜索只过滤当前已加载列表,不暗示全局搜索。
|
||||
- 审批:统一叫 `待我处理`,避免 `待办` / `待我审批` / `审批` 多套叫法。
|
||||
|
||||
## Code Surface
|
||||
|
||||
- `client/src/pages/MobileLeavePage.tsx`
|
||||
- `client/src/pages/MobilePortalPage.tsx`
|
||||
- `client/src/pages/MobileApprovalsPage.tsx`
|
||||
- `client/src/pages/MobileReimbursementsPage.tsx`
|
||||
- `client/src/pages/MobilePurchaseRequestsPage.tsx`
|
||||
- `client/src/pages/MobileMePage.tsx`
|
||||
- `docs/产品设计规则.md`
|
||||
- 相关移动端 Playwright 测试
|
||||
@@ -0,0 +1,68 @@
|
||||
# 移动端已确认入口与文案收敛
|
||||
|
||||
## Goal
|
||||
|
||||
把前一轮已经确认但未进入 PC 导航任务的移动端规则落到代码:移动请假强化只读额度,移动财务卡只在有待处理付款/异常时出现,移动报销和采购搜索明确为当前列表搜索,移动审批统一使用 `待我处理`。
|
||||
|
||||
## Background
|
||||
|
||||
- 产品面向国内、小于 10 人的科技初创公司,移动端只承接轻动作:提交、补材料、查状态、处理待办、扫码和消息直达。
|
||||
- 用户已明确:请假和考勤由企业微信主办,OA 不重复处理日常请假,只展示镜像/记录/额度和应急入口。
|
||||
- 用户已确认:
|
||||
- 移动请假展示只读假期余额。
|
||||
- 移动财务卡只在存在待付款、付款异常或风险复核时显示。
|
||||
- 移动报销和移动采购搜索标为 `当前列表搜索`。
|
||||
- 移动审批统一使用 `待我处理`,不再使用 `待我审批`。
|
||||
|
||||
## Scope
|
||||
|
||||
- `MobileLeavePage`:普通员工记录视角也展示只读额度摘要和明细,不暴露 OA 日常请假提交动作。
|
||||
- `MobilePortalPage`:财务摘要只在有真实待付款或异常/风险时显示;无事项时不展示空壳财务卡。
|
||||
- `MobileReimbursementsPage` / `MobilePurchaseRequestsPage`:搜索控件中文标签统一为 `当前列表搜索`。
|
||||
- `MobileApprovalsPage` / `MobilePortalPage`:移动端审批入口、tab 和空态文案统一为 `待我处理`。
|
||||
- `MobileMePage`:不再提供无条件财务锚点入口,避免无待处理事项时跳到空财务区。
|
||||
- 产品事实源中明显过时的 `待我审批` 文案同步为 `待我处理`。
|
||||
|
||||
## Out Of Scope
|
||||
|
||||
- 不新增企业微信写入、请假提交或考勤动作。
|
||||
- 不新增财务付款能力,不改变付款批次、AP、审批 API 或权限模型。
|
||||
- 不调整 PC 页面。
|
||||
- 不做生产部署或公网检查。
|
||||
|
||||
## Requirements
|
||||
|
||||
1. 移动请假普通员工默认保持 `请假记录` + `企业微信主办` + `只读`。
|
||||
2. 移动请假在记录视角展示可用、冻结、已用额度汇总,并列出最多 3 个假种额度;加载、错误、无额度状态要自然中文表达。
|
||||
3. 移动财务卡只有在待付款、付款异常或风险复核数量大于 0 时展示;`paymentBatchEnabled` 只影响卡片语义,不制造空壳提示。
|
||||
4. 移动财务无待处理事项时,首页不显示财务空壳卡;`#finance` 深链也不应制造空白说明区。
|
||||
5. 移动报销和采购搜索控件具有明确 `当前列表搜索` 标签,不改变现有列表筛选语义。
|
||||
6. 移动审批相关用户文案统一使用 `待我处理`。
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] 普通员工移动请假页能看到只读额度摘要和假种额度,不看到 OA 新建/编辑/提交日常请假。
|
||||
- [ ] 财务角色在无待付款、无异常、无风险时不看到 `mobile-finance-summary`。
|
||||
- [ ] 财务角色在有待付款或异常/风险时能看到财务摘要卡。
|
||||
- [ ] 移动报销和移动采购搜索区域显示 `当前列表搜索`。
|
||||
- [ ] 移动首页和移动审批页不再出现 `待我审批`。
|
||||
- [ ] 移动我的页不展示无条件财务锚点入口,审批入口使用 `待我处理`。
|
||||
- [ ] 前端 typecheck/build 和相关 Playwright 通过。
|
||||
- [ ] Trellis governance 和 `git diff --check` 通过。
|
||||
|
||||
## Test Plan
|
||||
|
||||
- `cd client && npm run typecheck`
|
||||
- `cd client && npm run build`
|
||||
- 本地 Vite 启动后运行聚焦 Playwright:
|
||||
- `cd client && npx playwright test tests/e2e/r124-mobile-entry-matrix.spec.ts tests/e2e/dg7-mobile-information-dedupe.spec.ts --workers=1 --reporter=list`
|
||||
- `python3 ./.trellis/scripts/task.py validate 05-30-mobile-confirmed-entry-copy-followups`
|
||||
- `node scripts/qa/check-trellis-governance.mjs`
|
||||
- `git diff --check`
|
||||
|
||||
## Implementation Plan
|
||||
|
||||
1. 在移动请假记录视角复用现有余额查询,抽出只读额度渲染,避免把表单视角和普通员工路径混在一起。
|
||||
2. 在移动首页计算财务待办数量,只有待付款或异常大于 0 时渲染财务卡。
|
||||
3. 调整移动报销、采购、审批相关中文文案和测试断言。
|
||||
4. 跑前端构建和移动端聚焦 Playwright,必要时补充断言。
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"id": "mobile-confirmed-entry-copy-followups",
|
||||
"name": "mobile-confirmed-entry-copy-followups",
|
||||
"title": "移动端已确认入口与文案收敛",
|
||||
"description": "收口已确认的移动端入口、财务卡显示条件、请假只读额度和待我处理文案。",
|
||||
"status": "in_progress",
|
||||
"dev_type": null,
|
||||
"scope": "frontend-mobile",
|
||||
"package": null,
|
||||
"priority": "P2",
|
||||
"creator": "shunli",
|
||||
"assignee": "shunli",
|
||||
"createdAt": "2026-05-30",
|
||||
"completedAt": null,
|
||||
"branch": null,
|
||||
"base_branch": "main",
|
||||
"worktree_path": null,
|
||||
"commit": null,
|
||||
"pr_url": null,
|
||||
"subtasks": [],
|
||||
"children": [],
|
||||
"parent": null,
|
||||
"relatedFiles": [],
|
||||
"notes": "",
|
||||
"meta": {}
|
||||
}
|
||||
在新工单中引用
屏蔽一个用户