WCM6 回填公网复检并等待真机门禁
这个提交包含在:
@@ -335,7 +335,13 @@ async function login(page: Page) {
|
||||
const accountLogin = page.getByRole("button", { name: "使用账号密码登录" });
|
||||
if (await accountLogin.isVisible().catch(() => false)) {
|
||||
await accountLogin.click();
|
||||
} else {
|
||||
const accountLoginText = page.getByText("使用账号密码登录", { exact: true });
|
||||
if (await accountLoginText.isVisible().catch(() => false)) {
|
||||
await accountLoginText.click();
|
||||
}
|
||||
}
|
||||
await expect(page.getByTestId("login-identifier")).toBeVisible();
|
||||
await page.getByTestId("login-identifier").fill(employee.email);
|
||||
await page.getByTestId("login-password").fill("Password1234");
|
||||
await page.getByTestId("login-submit").click();
|
||||
@@ -458,7 +464,7 @@ async function exerciseMobileRendering(page: Page, key: string, label: string) {
|
||||
}
|
||||
|
||||
await page.getByTestId("mobile-nav-approvals").click();
|
||||
await expect(page).toHaveURL(/\/mobile\/approvals$/);
|
||||
await expect(page).toHaveURL(/\/mobile\/approvals(?:\?.*)?$/);
|
||||
await expect(page.getByTestId("mobile-approvals-list")).toBeVisible();
|
||||
await expectRenderingStable(page, label, `${key}-mobile-approvals`);
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
|
||||
| ID | 级别 | 角色 | 入口/设备 | 流程 | 复现步骤 | 当前处理 | 负责人 | 状态 | 关联 Issue |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| R6-ISSUE-001 | 阻断 | 审批人 / 员工 | iPhone 12 / iOS 14.1 / 企业微信 WebView | 移动底部导航、审批入口、首页快捷卡 | 旧记录误写为 iPhone 11;用户更正为 iPhone 12 / iOS 14.1。真机截图显示首页快捷卡和底部 Tab 的字体图标漂移、重影、挤压,底部“审批”体验不稳定;自动化 Chromium UA 截图与真实 iOS 企业微信 WebView 存在差异 | `PAUSED`:WCM6 本地自动化已通过,移动核心图标改 SVG,补企业微信 WebView viewport/字号/safe-area,底部角标独立定位;320/360/375/390/393/414/430px 与字体失败场景通过,截图 `output/playwright/r6-wecom-mobile-rendering-hardening/`;待部署公网并由 iPhone 12 / iOS 14.1 / 企业微信和 Redmi K60 真机确认后关闭或降级 | Codex / 待指派 | open | `issues/2026-05-11_20-38-33-r6-wecom-mobile-rendering-hardening.csv` |
|
||||
| R6-ISSUE-001 | 阻断 | 审批人 / 员工 | iPhone 12 / iOS 14.1 / 企业微信 WebView | 移动底部导航、审批入口、首页快捷卡 | 旧记录误写为 iPhone 11;用户更正为 iPhone 12 / iOS 14.1。真机截图显示首页快捷卡和底部 Tab 的字体图标漂移、重影、挤压,底部“审批”体验不稳定;自动化 Chromium UA 截图与真实 iOS 企业微信 WebView 存在差异 | `PAUSED`:WCM6 已部署公网并完成自动复检,移动核心图标改 SVG,补企业微信 WebView viewport/字号/safe-area,底部角标独立定位;公网 WCM6 视觉专项 8 passed,live smoke readiness PASS,截图 `output/playwright/r6-wecom-mobile-rendering-hardening/`;待 iPhone 12 / iOS 14.1 / 企业微信和 Redmi K60 真机确认后关闭或降级 | Codex / 待指派 | open | `issues/2026-05-11_20-38-33-r6-wecom-mobile-rendering-hardening.csv` |
|
||||
| R6-ISSUE-002 | 一般 | 自动化 / 员工与财务测试账号 | 本地隔离 E2E / PC | 报销审批进度、报销支付批次 | `BUSINESS_FLOW_GROUPS=reimbursement bash scripts/qa/run-business-flow-gates.sh local` 中 2 条用例曾失败,失败点为 Playwright 查找旧导航入口 `票据中心`;当前正式员工路径应从报销详情添加 PDF 发票 | 已关闭:测试已改为报销详情页“添加发票”路径,不恢复普通员工“票据中心”入口;支付批次用例同步按业务编号定位待办,并按金额选择财务或财务主管二级审批;报销业务流 gate 10 passed、1 skipped | Codex | closed | `issues/2026-05-11_15-50-00-r6-reimbursement-e2e-nav-alignment.csv` |
|
||||
|
||||
级别定义:
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
| 工作台入口与免登录 | `oa_smoke_01` | `SMOKE002` | 从企业微信工作台进入 OA,已绑定后免登录 | 通过 | 用户确认;截图/录屏不提交仓库 |
|
||||
| 提交人移动报销体验 | `oa_smoke_01` | `SMOKE002` | 移动首页、报销页、详情页、PDF 发票入口可用 | 公网自动视觉通过;真机核心链路通过 | `output/playwright/r5-live-mobile-wecom-visual/` |
|
||||
| 审批人移动待办体验 | `oa_smoke_02` | `SMOKE101` | 移动审批待办、审批详情、结果反馈可用 | 公网自动视觉通过;真机审批与消息回流通过 | `output/playwright/r5-live-mobile-wecom-visual/` |
|
||||
| 移动底部导航与深层页 | `oa_smoke_01` / `oa_smoke_02` | `SMOKE002` / `SMOKE101` | 首页、审批、报销、我的固定可见;报销详情隐藏底部 Tab,吸底双按钮不遮挡 | `PAUSED`:WCM6 本地自动视觉通过;公网部署和代表性真机确认待补 | `output/playwright/r6-wecom-mobile-rendering-hardening/` |
|
||||
| 移动底部导航与深层页 | `oa_smoke_01` / `oa_smoke_02` | `SMOKE002` / `SMOKE101` | 首页、审批、报销、我的固定可见;报销详情隐藏底部 Tab,吸底双按钮不遮挡 | `PAUSED`:WCM6 已部署公网且自动视觉通过;代表性真机确认待补 | `output/playwright/r6-wecom-mobile-rendering-hardening/` |
|
||||
| 通知与 deeplink | `oa_smoke_01` / `oa_smoke_02` | `SMOKE002` / `SMOKE101` | 通知能回到移动待办或详情页 | 真机通过:收到个人应用消息,点击后首次需点进入工作台,后续可直达移动审批 | `output/playwright/r5-wecom-app-message-live/` |
|
||||
|
||||
自动化补充证据(用于审批链业务验收):
|
||||
@@ -111,7 +111,7 @@
|
||||
- `2026-05-11` 公网自动视觉补充:部署 `795e976` 后,Playwright 企业微信 UA 覆盖 iPhone 近似视口与 Redmi K60 视口;`SMOKE002` 移动首页、报销列表、报销详情、PDF-only 上传入口通过,`SMOKE101` 移动审批列表通过;截图目录 `output/playwright/r5-live-mobile-wecom-visual/`。用户已确认真实企业微信工作台入口和免登录通过。
|
||||
- `2026-05-11` 通知与 deeplink 自动视觉补充:`SMOKE101` 现有两条未读报销待办站内通知,iPhone 近似视口与 Redmi K60 近似视口、企业微信 UA 下通知页无横向溢出,通知卡片和“查看”按钮可见;点击后进入 `/mobile/approvals?taskId=177b3a9e-67fe-447d-92f4-96a652a06841` 移动审批详情,无 PC 壳混入,截图目录 `output/playwright/r5-notification-deeplink-live/`。该历史待办已处理,因此本证据只证明站内通知和移动 deeplink,不证明新待办审批按钮;通知投递审计显示渠道 `R50-MOCK-007334` 为 `mock_sent`,真实企业微信外发应用消息仍待通道确认或真机记录。
|
||||
- `2026-05-11` 个人企微应用消息补充:部署 `b1ae41f` 后启用 `R5-WECOM-APP-PERSONAL / wecom_app_message`,停用旧 mock 渠道;`SMOKE002` 创建请假测试单据并生成 `SMOKE101` 待办 `936362d8-c4e0-454f-a589-9c9653bcbfda`,通知 `9ee0602e-66a5-4a6e-81e5-04d41908c782` 投递审计为 `wecom_app_sent`、`errcode=0`、无 `invaliduser`。iPhone 近似视口与 Redmi K60 企业微信 UA 自动视觉验证通知列表和审批详情均无横向溢出,截图目录 `output/playwright/r5-wecom-app-message-live/`。用户确认手机企业微信 `oa_smoke_02` 收到“海音达工作台”应用消息,标题正确;点击后首次进入会提示进入工作台,进入后可看到移动审批,后续再次进入可直接看到移动审批;存在消息通知但未观察到系统弹窗。
|
||||
- `2026-05-11` R6 移动体验补充:RS6 响应式体系修复已完成公网自动化,320/360/375/390/393/414/430px 视觉矩阵通过;用户补充真实设备为 iPhone 12 / iOS 14.1 / 企业微信,截图显示字体图标漂移、重影和首页/底部导航视觉拥挤。当前记录为 `PAUSED`,不得将 `RS6-7`、`UI6-6` 或 `R6-ISSUE-001` 置为完成;WCM6 本地自动化已通过,移动核心 SVG 图标、企业微信 WebView 基线、多手机视口和字体失败场景均已覆盖,截图目录 `output/playwright/r6-wecom-mobile-rendering-hardening/`;R6-3 继续等待公网部署复检和代表性真机确认。
|
||||
- `2026-05-11` R6 移动体验补充:RS6 响应式体系修复已完成公网自动化,320/360/375/390/393/414/430px 视觉矩阵通过;用户补充真实设备为 iPhone 12 / iOS 14.1 / 企业微信,截图显示字体图标漂移、重影和首页/底部导航视觉拥挤。当前记录为 `PAUSED`,不得将 `RS6-7`、`UI6-6` 或 `R6-ISSUE-001` 置为完成;WCM6 已部署公网并完成自动复检,移动核心 SVG 图标、企业微信 WebView 基线、多手机视口和字体失败场景均已覆盖,公网 WCM6 视觉专项 8 passed,截图目录 `output/playwright/r6-wecom-mobile-rendering-hardening/`;R6-3 继续等待代表性真机确认。
|
||||
|
||||
- 经理账号可在移动端看到审批待办。
|
||||
- 审批详情可查看申请摘要、附件、发票、审批记录。
|
||||
|
||||
@@ -5,4 +5,4 @@ WCM6-3,企业微信 WebView 视口字号安全区基线,"补充 企业微信 iPh
|
||||
WCM6-4,底部 Tab 与首页宫格视觉密度重整,"底部导航保持四项等宽但减轻 active 大块深蓝态,badge 独立定位;首页宫格保持四项同行并固定图标槽和标题槽,避免 iPhone 企业微信真机上图标和文字互相挤压。","1) 底部首页/审批/报销/我的四项等宽、中心点命中自身;2) active 态不挤占相邻图标;3) badge 不参与图标文字排版;4) 首页宫格 4 项同一行,标题单行省略,触控高度不低于 44px。","流程级验证:Playwright 320/360/375/390/393/414/430 宽度截图;断言 nav/action 图标、文字、badge 不重叠;点击审批进入 /mobile/approvals;截图输出 output/playwright/r6-wecom-mobile-rendering-hardening/。",playwright,DONE,DONE,DONE,client/src/components/mobile/MobileBottomNav.tsx|client/src/pages/MobilePortalPage.tsx|client/src/styles/mobile-touch.css,"[""WCM6-2"",""WCM6-3""]",WCM6-4 completed:底部 active 态改为轻量选中态,待办 badge 固定为按钮级角标,不参与图标/文字排版;320/360/375/390/393/414/430px 企业微信多手机视觉矩阵通过。回滚路径:恢复 RS6 前一版移动导航样式。
|
||||
WCM6-5,R6 核心移动页巡检收口,"巡检审批、报销、通知、我的、票据上传和报销详情等 R6 核心移动页,必要时把桌面通用密度替换为移动 token,但不扩展新功能。","1) R6 核心移动页无 PC 壳、无桌面表格、无横向溢出;2) 图标渲染不依赖字体连字;3) 核心按钮不遮挡内容;4) 报销详情深层页继续隐藏底部 Tab。","流程级验证:访问 /mobile、/mobile/approvals、/mobile/reimbursements、/mobile/reimbursements/:id、/mobile/me、/mobile/notifications、/mobile/capture;断言无横向溢出、无 visible table、底部或吸底操作命中正常。",playwright|manual,DONE,DONE,DONE,client/src/pages/Mobile*.tsx,["WCM6-4"],WCM6-5 completed:/mobile、审批、报销、通知、我的、票据上传、报销详情核心路径通过 WCM6 专项与 RS6 响应式回归;无横向溢出、无 PC 表格、深层详情继续隐藏底部 Tab。回滚路径:按文件恢复本轮样式与组件改动。
|
||||
WCM6-6,补强企业微信多手机与字体失败视觉自动化,"新增或补强移动视觉 E2E,覆盖 iPhone/Android 企业微信 UA、多手机视口和 Material Symbols 字体失败场景,弥补此前只用单一模拟视口导致的真实企业微信 WebView 差异。","1) 新视觉用例覆盖 iPhone 12 企业微信近似视口 390x844;2) 拦截 Material Symbols 字体后移动核心图标仍正常;3) 自动截图写入 output/playwright/r6-wecom-mobile-rendering-hardening;4) 相关旧移动回归不下降。","流程级验证:cd client && npm run test:e2e -- r6-wecom-mobile-rendering-hardening.spec.ts r5-real-device-feedback-mobile-ux.spec.ts r6-mobile-responsive-system-hotfix.spec.ts r124-mobile-entry-matrix.spec.ts --workers=1 --reporter=list。",playwright,DONE,DONE,DONE,client/tests/e2e/r6-wecom-mobile-rendering-hardening.spec.ts|client/tests/e2e/*mobile*.spec.ts,["WCM6-5"],WCM6-6 completed:WCM6 专项 8 passed;R6 响应式矩阵拆分补跑 320/360/375/390/393/414/430px 全部通过;R124 入口矩阵 1 passed;R5 真机反馈模拟 2 passed;截图输出 output/playwright/r6-wecom-mobile-rendering-hardening/。自动化不能替代真机;回滚路径:移除新增视觉 spec 和截图产物。
|
||||
WCM6-7,部署公网复检并等待真机门禁,"本地验证通过后受控部署,复检 /ready、bundle、live smoke、PDF OCR 和企微个人应用消息;等待 iPhone 12 / iOS 14.1 / 企业微信与 Redmi K60 真机确认后再关闭或降级 R6-ISSUE-001。","1) 部署后 /ready 正常;2) 公网 bundle findings=0;3) live smoke readiness PASS;4) 公网移动视觉专项通过;5) 真机确认前 R6-ISSUE-001 仍 open/PAUSED。","流程级验证:bash deploy/trialrun/deploy.sh;LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readiness.sh;E2E_MODE=live 运行移动视觉专项;人工真机确认 iPhone 12 / iOS 14.1 / 企业微信和 Redmi K60 企业微信。",bash|playwright|manual,DOING,TODO,TODO,deploy/trialrun/*|docs/trialrun/*.md,["WCM6-6"],WCM6-7 in progress:本地 typecheck/build/WCM6 专项和移动回归已通过;待提交、部署公网、复检 /ready/bundle/live smoke/PDF OCR/企微个人应用消息,并等待 iPhone 12 / iOS 14.1 / 企业微信与 Redmi K60 真机确认。默认不覆盖远端 .env;真机通过前不启动 R6-3。
|
||||
WCM6-7,部署公网复检并等待真机门禁,"本地验证通过后受控部署,复检 /ready、bundle、live smoke、PDF OCR 和企微个人应用消息;等待 iPhone 12 / iOS 14.1 / 企业微信与 Redmi K60 真机确认后再关闭或降级 R6-ISSUE-001。","1) 部署后 /ready 正常;2) 公网 bundle findings=0;3) live smoke readiness PASS;4) 公网移动视觉专项通过;5) 真机确认前 R6-ISSUE-001 仍 open/PAUSED。","流程级验证:bash deploy/trialrun/deploy.sh;LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readiness.sh;E2E_MODE=live 运行移动视觉专项;人工真机确认 iPhone 12 / iOS 14.1 / 企业微信和 Redmi K60 企业微信。",bash|playwright|manual,DONE,DONE,TODO,deploy/trialrun/*|docs/trialrun/*.md,["WCM6-6"],WCM6-7 automated completed:已部署公网,/ready 正常,public bundle findings=0,live smoke readiness PASS,真实 OCR 样票返回“重复发票已用于报销”的可解释终态且测试通过,公网 WCM6 移动视觉专项 8 passed;真机确认前 R6-ISSUE-001 保持 open/PAUSED,R6-3 不启动。默认不覆盖远端 .env。
|
||||
|
||||
|
无法渲染此文件,因为它包含了意外字符,其位于第 3 行和第 836 列。
|
在新工单中引用
屏蔽一个用户