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