Files
wyndham-ARR/.project-docs/50-evidence/topics/2026-07-31-company-card-row-and-confirm-dialog.md
2026-07-31 15:11:42 +08:00

36 lines
2.3 KiB
Markdown
Raw 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.

# Company-channel card row and in-page generation confirmation
## Metadata
- Date: 2026-07-31
- Scope: `arr_web/static/index.html`, `arr_web/static/styles.css`, `arr_web/static/app.js`, `tests/test_arr_web.py`
- Change type: UI composition and interaction affordance only
- Business-data mutation: none
## Behavior facts
- The large `生成报表` surface now contains one desktop row ordered `上传 Excel 报表`, `第一期`, `第二期`,
`第三期`. The layout falls back to two columns at the tablet breakpoint and one column on narrow mobile screens.
- The `报表月份` input remains an accessible month control but its visible label is visually hidden. It sits in the
setup header's upper-right corner, continues to drive C/O release/history filtering, and is still submitted as
`report_month` after confirmation.
- Period card CTAs now visibly read `生成`; the period range, C/O range and release state remain visible in each card.
- Clicking a released period opens a styled in-page `<dialog>` with the selected month and period. The dialog uses a
restrained light card, backdrop blur, explicit `取消`/`确认生成` actions and focus on `取消` when opened.
- Cancel, Escape and backdrop dismissal close the dialog without calling the generation API. Explicit confirmation keeps
the existing POST body (`report_month`, `period`) and then uses the existing job save/poll/render path. Errors remain
inline in the dialog for retry or cancellation. No `window.confirm` remains in the generation path.
## Verification
- `node --check arr_web/static/app.js`: passed.
- HTML parser check: passed.
- Focused suite: `28 tests`, `OK` (`tests.test_arr_web`, `tests.test_arr_web_company_reports`).
- Full discovery: `348 tests`, `OK (skipped=10)`.
- Isolated authenticated fake-server browser QA did not upload, extract, delete, activate or submit a report. At
1280x720 all four cards share one row; at 390x844 the layout is single-column and `scrollWidth` equals the viewport.
The generation dialog opened with `确认生成`, showed `2026年07月01-10`, and cancel/Escape both closed it without
mutation. Browser console warnings/errors: none.
- The isolated QA server on port 8876 was stopped after verification. Shared port 8766 was restarted at 14:26:56 +08;
its `/healthz` endpoint returns `ready`.