MIF7T-1/MIF7T-7 收口真机反馈并统一移动体验

这个提交包含在:
2026-05-13 10:17:50 +08:00
父节点 44b5af4f1e
当前提交 cf2bba02d5
共修改 30 个文件,包含 793 行新增和 264 行删除
@@ -795,6 +795,8 @@ test.describe("MIF7 移动信息架构整改", () => {
await expect(mobile.page.getByTestId("mobile-action-approvals-label")).toHaveCount(0);
await expect(mobile.page.getByTestId("mobile-pending-summary")).toHaveCount(0);
await expect(mobile.page.getByTestId("mobile-action-grid")).toBeVisible();
await expect(mobile.page.getByTestId("mobile-action-purchase-label")).toHaveText("采购");
await expect(mobile.page.getByTestId("mobile-action-asset-scan")).toHaveCount(0);
await expectCommonActionsDoNotDuplicateBottomTabs(mobile.page);
await expectActionTileGapStable(mobile.page);
await expectNoMobileShellRegression(mobile.page);
@@ -812,6 +814,16 @@ test.describe("MIF7 移动信息架构整改", () => {
await expect(mobile.page.getByTestId("mobile-approval-progress-card")).toHaveCount(3);
await expectNoMobileShellRegression(mobile.page);
await mobile.page.screenshot({ path: screenshotPath(`employee-progress-w${width}`), fullPage: true });
await mobile.page.goto("/mobile/leave?view=records&status=approved");
await expect(mobile.page.getByTestId("mobile-leave-view-records")).toHaveAttribute("data-state", "active");
await expect(mobile.page.getByTestId("mobile-leave-record-card")).toBeVisible();
await expect(mobile.page.getByTestId("mobile-leave-form")).toHaveCount(0);
await mobile.page.goto("/mobile/purchase-requests?status=approved");
await expect(mobile.page.getByTestId("mobile-purchase-requests-list")).toBeVisible();
await expect(mobile.page.getByTestId("mobile-purchase-request-card")).toBeVisible();
await expect(mobile.page.getByTestId("mobile-purchase-tab-approved")).toHaveAttribute("data-state", "active");
} finally {
await mobile.context.close();
}
@@ -833,6 +845,7 @@ test.describe("MIF7 移动信息架构整改", () => {
await expectCommonActionsDoNotDuplicateBottomTabs(mobile.page);
await expect(mobile.page.getByTestId("mobile-pending-summary-count")).toHaveText("1");
await expect(mobile.page.getByTestId("mobile-pending-summary-primary")).toHaveCount(1);
await expect(mobile.page.getByTestId("mobile-pending-summary-primary")).not.toContainText("待处理");
await expect(mobile.page.getByRole("link", { name: "查看全部待办" })).toBeVisible();
await mobile.page.screenshot({ path: screenshotPath("home-manager-pending-summary"), fullPage: true });
@@ -869,6 +882,7 @@ test.describe("MIF7 移动信息架构整改", () => {
await mobile.page.goto("/mobile/approvals");
await expect(mobile.page.getByRole("tab", { name: "待我审批" })).toBeVisible();
await expect(mobile.page.getByRole("tab", { name: "已处理" })).toBeVisible();
await expect(mobile.page.getByTestId("mobile-approvals-queue")).toHaveCount(0);
await mobile.page.getByRole("tab", { name: "已处理" }).click();
await expect(mobile.page).toHaveURL(/\/mobile\/approvals\?taskTab=completed$/);
await expect(mobile.page.getByTestId("mobile-approvals-task-task-dg7-completed")).toBeVisible();
@@ -943,9 +957,22 @@ test.describe("MIF7 移动信息架构整改", () => {
await mobile.page.goto("/mobile/reimbursements");
await mobile.page.getByTestId("mobile-reimbursements-tab-approved").click();
await expect(mobile.page).toHaveURL(/\/mobile\/reimbursements\?status=approved$/);
await mobile.page.getByTestId("mobile-reimbursement-card").first().getByRole("link", { name: "查看详情" }).click();
await mobile.page.evaluate(() => {
const scroller = document.querySelector<HTMLElement>(".hyb-mobile-shell .overflow-y-auto");
if (scroller) {
scroller.scrollTo({ top: 600, behavior: "auto" });
return;
}
window.scrollTo({ top: 600, behavior: "auto" });
});
await mobile.page.getByTestId("mobile-reimbursement-card").first().getByRole("link").click();
await expect(mobile.page).toHaveURL(/\/mobile\/reimbursements\/reimbursement-dg7$/);
await expect(mobile.page.getByTestId("mobile-reimbursement-detail-header")).toBeVisible();
await expect
.poll(() =>
mobile.page.evaluate(() => document.querySelector<HTMLElement>(".hyb-mobile-shell .overflow-y-auto")?.scrollTop ?? window.scrollY),
)
.toBeLessThanOrEqual(2);
await expect(mobile.page.getByTestId("mobile-bottom-nav")).toHaveCount(0);
await mobile.page.getByTestId("mobile-reimbursement-detail-header").getByRole("button", { name: "返回" }).click();
await expect(mobile.page).toHaveURL(/\/mobile\/reimbursements\?status=approved$/);