Files
DashBoard/openspec/changes/archive/2026-02-22-reject-history-ui-polish/proposal.md

1.7 KiB

Why

The reject-history page was shipped as a monolithic single-file implementation. While functional, it has visual inconsistencies with other mature report pages (hold-history, wip-overview) and is missing standard UX affordances. Aligning it now reduces user confusion when switching between report pages and improves maintainability.

What Changes

  • Add tbody tr:hover highlight and missing loading overlay/spinner to match hold-history baseline
  • Localize pagination controls from English (Prev/Next/Page/Total) to Chinese (上一頁/下一頁/頁/共)
  • Remove ~120 lines of duplicated MultiSelect CSS from style.css (already provided by resource-shared/styles.css)
  • Add a "重新整理" (refresh) button in the header, consistent with hold-history
  • Extract monolithic App.vue (~968 lines) into focused sub-components mirroring hold-history's architecture: FilterPanel, SummaryCards, TrendChart, ParetoSection, DetailTable

Capabilities

New Capabilities

(none — no new functional capabilities are introduced)

Modified Capabilities

  • reject-history-page: UI/UX polish — add loading overlay, hover effects, localized pagination, header refresh button, and modular component extraction

Impact

  • Files modified: frontend/src/reject-history/App.vue, frontend/src/reject-history/style.css
  • Files created: frontend/src/reject-history/components/FilterPanel.vue, SummaryCards.vue, TrendChart.vue, ParetoSection.vue, DetailTable.vue
  • No API changes — all backend endpoints remain untouched
  • No dependency changes — continues using vue-echarts, resource-shared/MultiSelect