diff --git a/furniture-3d-system/src/app/supply-chain/database/product-archive/ProductArchiveFilterOptionList.tsx b/furniture-3d-system/src/app/supply-chain/database/product-archive/ProductArchiveFilterOptionList.tsx
index f5c2718a..374e2274 100644
--- a/furniture-3d-system/src/app/supply-chain/database/product-archive/ProductArchiveFilterOptionList.tsx
+++ b/furniture-3d-system/src/app/supply-chain/database/product-archive/ProductArchiveFilterOptionList.tsx
@@ -16,12 +16,14 @@ export function ProductArchiveFilterOptionList({
filters,
selectedValues,
onToggle,
+ onSelectAll,
}: {
field: ProductArchiveFilterOptionKey
placeholder: string
filters: ProductArchiveFilters
selectedValues: string[]
onToggle: (value: string) => void
+ onSelectAll: (values: string[]) => void
}) {
const requestIdRef = useRef(0)
const [searchText, setSearchText] = useState('')
@@ -86,9 +88,18 @@ export function ProductArchiveFilterOptionList({
)}
- {selectedValues.length > 0 && (
-
已选 {selectedValues.length} 项
- )}
+
+ {selectedValues.length > 0 ? `已选 ${selectedValues.length} 项` : `共 ${visibleOptions.length} 项`}
+ {visibleOptions.length > 0 && (
+
+ )}
+
{
@@ -132,7 +143,15 @@ export function ProductArchiveFilterOptionList({
display: inline-flex; align-items: center; justify-content: center; padding: 0;
border: none; background: transparent; color: #a1a1aa; cursor: pointer;
}
- .archive-header-filter-selected-summary { padding: 8px 3px 5px; color: #52525b; font-size: 12px; font-weight: 600; }
+ .archive-header-filter-selected-summary {
+ display: flex; align-items: center; justify-content: space-between; gap: 6px;
+ padding: 8px 3px 5px; color: #52525b; font-size: 12px; font-weight: 600;
+ }
+ .archive-header-filter-select-all {
+ padding: 0; border: none; background: transparent; color: #2563eb;
+ font-size: 12px; font-weight: 600; cursor: pointer;
+ }
+ .archive-header-filter-select-all:hover { text-decoration: underline; }
.archive-header-filter-options {
display: flex; max-height: 254px; flex-direction: column; gap: 2px; margin-top: 8px; overflow-y: auto;
}
diff --git a/furniture-3d-system/src/app/supply-chain/database/product-archive/ProductArchiveHeaderFilter.tsx b/furniture-3d-system/src/app/supply-chain/database/product-archive/ProductArchiveHeaderFilter.tsx
index b8097fad..3b56efb3 100644
--- a/furniture-3d-system/src/app/supply-chain/database/product-archive/ProductArchiveHeaderFilter.tsx
+++ b/furniture-3d-system/src/app/supply-chain/database/product-archive/ProductArchiveHeaderFilter.tsx
@@ -164,6 +164,9 @@ export function ProductArchiveHeaderFilter({
filters={filters}
selectedValues={selectedValues}
onToggle={toggleOption}
+ onSelectAll={(values) => {
+ setSelectedValues((current) => [...new Set([...current, ...values])])
+ }}
/>
)}