diff --git a/src/App.tsx b/src/App.tsx index 2ef5b9f..62f0165 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -427,7 +427,11 @@ export default function App() { return mc && mb && md && mm && mr; }), [customerData, customerFilters]); const uniqueBrands = useMemo(() => Array.from(new Set(customerData.map((s) => s.brand).filter(Boolean))), [customerData]); - const uniqueDepts = useMemo(() => Array.from(new Set(customerData.map((s) => s.department).filter(Boolean))), [customerData]); + const uniqueDepts = useMemo(() => { + const numMap: Record = { '一': 1, '二': 2, '三': 3, '四': 4, '五': 5, '六': 6, '七': 7, '八': 8, '九': 9, '十': 10 }; + const getOrder = (name: string) => { const m = name.match(/[一二三四五六七八九十]/); return m ? (numMap[m[0]] || 99) : 99; }; + return Array.from(new Set(customerData.map((s) => s.department).filter(Boolean))).sort((a, b) => getOrder(a) - getOrder(b)); + }, [customerData]); const uniqueRegions = useMemo(() => Array.from(new Set(customerData.map((s) => s.region))), [customerData]); const uniqueCities = useMemo(() => Array.from(new Set(customerData.map((s) => s.city).filter(Boolean))), [customerData]); const uniqueCustomerNames = useMemo(() => Array.from(new Set(customerData.map((s) => s.customer).filter(Boolean))), [customerData]); @@ -1044,7 +1048,6 @@ export default function App() { {isInventoryFilterOpen && ( <> -