fix: 移除筛选遮罩层防止阻塞Tab切换、部门选择按编号排序
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- 删除三个筛选面板的fixed backdrop div,不再阻塞页面交互 - 部门下拉选项按编号排序(业务一部→二部→三部→五部→六部) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -427,7 +427,11 @@ export default function App() {
|
|||||||
return mc && mb && md && mm && mr;
|
return mc && mb && md && mm && mr;
|
||||||
}), [customerData, customerFilters]);
|
}), [customerData, customerFilters]);
|
||||||
const uniqueBrands = useMemo(() => Array.from(new Set(customerData.map((s) => s.brand).filter(Boolean))), [customerData]);
|
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<string, number> = { '一': 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 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 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]);
|
const uniqueCustomerNames = useMemo(() => Array.from(new Set(customerData.map((s) => s.customer).filter(Boolean))), [customerData]);
|
||||||
@@ -1044,7 +1048,6 @@ export default function App() {
|
|||||||
<AnimatePresence>
|
<AnimatePresence>
|
||||||
{isInventoryFilterOpen && (
|
{isInventoryFilterOpen && (
|
||||||
<>
|
<>
|
||||||
<div className="fixed inset-0 z-40" />
|
|
||||||
<motion.div
|
<motion.div
|
||||||
initial={{ opacity: 0, y: 10, scale: 0.95 }}
|
initial={{ opacity: 0, y: 10, scale: 0.95 }}
|
||||||
animate={{ opacity: 1, y: 0, scale: 1 }}
|
animate={{ opacity: 1, y: 0, scale: 1 }}
|
||||||
|
|||||||
Reference in New Issue
Block a user