Adds a Providers client component that wraps the app in ConfigProvider
locale=zhCN and sets dayjs zh-cn locale, so the date-filter RangePicker
shows Chinese weekdays/months (and other antd components localize too).
Framework-native; no custom control. Not deployed.
Co-Authored-By: Claude <noreply@anthropic.com>
Each filter dropdown (text/category/date) gains a 'show blanks only'
checkbox; when on, the column filters to rows where the field is empty
or whitespace-only (0/false are not blank), and the value control is
disabled. Implemented via a BLANK_SENTINEL key handled by matchesFilter,
with isBlank + 4 new unit tests. Not deployed.
Co-Authored-By: Claude <noreply@anthropic.com>
buildTableColumns now attaches antd controlled filter props (via
buildColumnFilterProps) to columns marked filterable; filters state is
controlled via Table onChange. A 'clear filters' button in the search bar
resets all filters and is disabled when none are active. Filters and row
lock reset on search/clear.
Also renames the component module table-filters.tsx -> table-filter-ui.tsx
to avoid a same-base-name resolution collision with the logic module
table-filters.ts.
Co-Authored-By: Claude <noreply@anthropic.com>
ColumnConfig gains filterable (default false), persisted to localStorage
with backward-compat for configs saved before this field existed. The
column-settings modal now shows a funnel toggle per row alongside the
visibility checkbox.
Co-Authored-By: Claude <noreply@anthropic.com>
Clicking a row locks an orange highlight (#fff7e6) across the whole row
including fixed columns; clicking the same row unlocks, clicking another
switches. Lock resets on search/clear. Highlight survives horizontal scroll
since rowClassName applies to all row fragments.
Co-Authored-By: Claude <noreply@anthropic.com>
src/app/table-filters.tsx renders type-specific filter UIs (text search,
category checkbox list, date range) and exposes buildColumnFilterProps to
attach antd controlled filter props (filterDropdown/onFilter/filteredValue)
to a column. Verified against antd v6.4.3 type defs.
Co-Authored-By: Claude <noreply@anthropic.com>
- Row highlight: hover + click-to-pin via onRow/rowClassName, persists across
horizontal scroll and filtering (keyed by rowKey=ID)
- Column filters: antd controlled filterDropdown per column, type auto-inferred
(date/category/text), multi-column AND; which columns are filterable is chosen
by the user in the existing column-settings modal and persisted to localStorage
- New module src/app/table-filters.tsx for FilterDropdown + type inference
- 'Clear filters' button in the search bar
- Long-content display explicitly deferred to a later iteration
Co-Authored-By: Claude <noreply@anthropic.com>
The LIKE-based fuzzy matching can return larger result sets than exact
match, requiring more query time. Raise requestTimeout from the default
15s to 60s on both production-data and export-excel API routes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The stored procedure now supports LIKE matching on 车间号,
so update the placeholder hint to inform users they can enter
partial workshop numbers for fuzzy matching.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add "导出全部" button that exports all contract production data to an
.xlsx file via a new API endpoint using exceljs, with formatted headers,
date columns, auto-width, and frozen header row.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Show last 10 search records on input focus with clock icon
- Filter history as user types
- Click history item to search directly
- Deduplicate and persist to localStorage
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove default workshop number from search input
- Add ColumnSettingsModal with checkboxes for show/hide per column
- Add drag-and-drop reordering using @dnd-kit/sortable
- Persist column config to localStorage across sessions
- Include search filter, select all/deselect all/reset defaults
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add API route to execute stored procedure and query production data
- Build search bar with isolated component to prevent input lag on large datasets
- Configure Ant Design Table with sticky header and horizontal scroll for 56 columns
- Add antd, @ant-design/icons, mssql dependencies
- Configure allowedDevOrigins for LAN access
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>