refactor: 统一代码风格并迁移至 ESLint 新配置

style(backend): 格式化模型文件代码
style(frontend): 调整组件代码格式
chore: 删除旧 ESLint 配置并添加新配置
refactor(backend): 重构模型定义语法
style: 统一箭头函数和对象属性简写
This commit is contained in:
zhang1106
2026-03-27 19:12:16 +08:00
parent 6a8d4144ff
commit 63f0cb570e
166 changed files with 15483 additions and 11170 deletions
@@ -47,7 +47,7 @@ const CascadingRackPanel = ({
const lowerSearch = searchText.toLowerCase().trim();
return rooms
.map((room) => {
.map(room => {
const roomNameMatch = room.name?.toLowerCase().includes(lowerSearch);
const roomIdMatch = room.roomId?.toLowerCase().includes(lowerSearch);
@@ -56,7 +56,7 @@ const CascadingRackPanel = ({
}
const filteredRacks = room.racks.filter(
(rack) =>
rack =>
rack.name?.toLowerCase().includes(lowerSearch) ||
rack.rackId?.toLowerCase().includes(lowerSearch)
);
@@ -67,13 +67,13 @@ const CascadingRackPanel = ({
return null;
})
.filter((room) => room !== null);
.filter(room => room !== null);
}, [rooms, searchText]);
const flatRackList = useMemo(() => {
const list = [];
filteredRooms.forEach((room) => {
room.racks.forEach((rack) => {
filteredRooms.forEach(room => {
room.racks.forEach(rack => {
list.push({ ...rack, roomKey: room.key, roomName: room.name });
});
});
@@ -81,7 +81,7 @@ const CascadingRackPanel = ({
}, [filteredRooms]);
useEffect(() => {
const handleKeyDown = (e) => {
const handleKeyDown = e => {
if (!visible) return;
switch (e.key) {
@@ -91,11 +91,11 @@ const CascadingRackPanel = ({
break;
case 'ArrowDown':
e.preventDefault();
setFocusedIndex((prev) => Math.min(prev + 1, flatRackList.length - 1));
setFocusedIndex(prev => Math.min(prev + 1, flatRackList.length - 1));
break;
case 'ArrowUp':
e.preventDefault();
setFocusedIndex((prev) => Math.max(prev - 1, 0));
setFocusedIndex(prev => Math.max(prev - 1, 0));
break;
case 'Enter':
e.preventDefault();
@@ -113,13 +113,13 @@ const CascadingRackPanel = ({
return () => document.removeEventListener('keydown', handleKeyDown);
}, [visible, focusedIndex, flatRackList, onSelect, onClose]);
const getUsageColor = (percent) => {
const getUsageColor = percent => {
if (percent >= 90) return '#ef4444';
if (percent >= 70) return '#f59e0b';
return '#22c55e';
};
const getUsageBadgeStatus = (percent) => {
const getUsageBadgeStatus = percent => {
if (percent >= 90) return 'error';
if (percent >= 70) return 'warning';
return 'success';
@@ -132,7 +132,7 @@ const CascadingRackPanel = ({
[onSelect]
);
const handlePanelClick = useCallback((e) => {
const handlePanelClick = useCallback(e => {
e.stopPropagation();
}, []);
@@ -191,7 +191,7 @@ const CascadingRackPanel = ({
<Input
ref={searchInputRef}
value={searchText}
onChange={(e) => {
onChange={e => {
setSearchText(e.target.value);
setFocusedIndex(-1);
}}
@@ -243,13 +243,9 @@ const CascadingRackPanel = ({
gap: 8,
cursor: 'pointer',
background:
activeRoomKey === room.key
? 'rgba(59, 130, 246, 0.1)'
: 'transparent',
activeRoomKey === room.key ? 'rgba(59, 130, 246, 0.1)' : 'transparent',
}}
onClick={() =>
setActiveRoomKey(activeRoomKey === room.key ? null : room.key)
}
onClick={() => setActiveRoomKey(activeRoomKey === room.key ? null : room.key)}
>
<DatabaseOutlined style={{ color: '#60a5fa', fontSize: 14 }} />
<span
@@ -285,9 +281,7 @@ const CascadingRackPanel = ({
{activeRoomKey === room.key && (
<div style={{ paddingLeft: 16 }}>
{room.racks.map((rack, rackIndex) => {
const globalIndex = flatRackList.findIndex(
(r) => r.rackId === rack.rackId
);
const globalIndex = flatRackList.findIndex(r => r.rackId === rack.rackId);
const deviceCount = rack.Devices?.length || rack.deviceCount || 0;
const height = rack.height || 45;
const usedU = deviceCount * 2;
@@ -313,9 +307,7 @@ const CascadingRackPanel = ({
margin: '2px 8px',
transition: 'all 0.15s ease',
borderLeft: isSelected ? '3px solid #3b82f6' : '3px solid transparent',
background: isHovered
? 'rgba(59, 130, 246, 0.15)'
: 'transparent',
background: isHovered ? 'rgba(59, 130, 246, 0.15)' : 'transparent',
}}
onClick={() => handleRackSelect(rack, room)}
onMouseEnter={() => setHoveredRackId(rack.rackId)}
@@ -406,4 +398,4 @@ const CascadingRackPanel = ({
);
};
export default CascadingRackPanel;
export default CascadingRackPanel;
@@ -54,7 +54,7 @@ const RackSelectorHeader = ({
const { screenSize, config, isMobile } = useResponsiveLayout();
useEffect(() => {
const handleClickOutside = (event) => {
const handleClickOutside = event => {
if (selectorRef.current && !selectorRef.current.contains(event.target)) {
setSelectorVisible(false);
}
@@ -77,40 +77,35 @@ const RackSelectorHeader = ({
[onRackSelect]
);
const handleKeyDown = useCallback(
(e) => {
if (e.key === 'Escape') {
setSelectorVisible(false);
}
if ((e.ctrlKey || e.metaKey) && e.key === 'k') {
e.preventDefault();
setSelectorVisible((prev) => !prev);
}
},
[]
);
const handleKeyDown = useCallback(e => {
if (e.key === 'Escape') {
setSelectorVisible(false);
}
if ((e.ctrlKey || e.metaKey) && e.key === 'k') {
e.preventDefault();
setSelectorVisible(prev => !prev);
}
}, []);
useEffect(() => {
document.addEventListener('keydown', handleKeyDown);
return () => document.removeEventListener('keydown', handleKeyDown);
}, [handleKeyDown]);
const selectedRoom = rooms.find((r) => r.key === selectedRoomKey);
const selectedRoom = rooms.find(r => r.key === selectedRoomKey);
const displayText = selectedRack
? `${selectedRoom?.name || ''} / ${selectedRack.name}`
: '选择机房 / 机柜';
const canNavigatePrev =
racksInSelectedRoom && racksInSelectedRoom.length > 1 && selectedRack;
const canNavigateNext =
racksInSelectedRoom && racksInSelectedRoom.length > 1 && selectedRack;
const canNavigatePrev = racksInSelectedRoom && racksInSelectedRoom.length > 1 && selectedRack;
const canNavigateNext = racksInSelectedRoom && racksInSelectedRoom.length > 1 && selectedRack;
const getCurrentRackIndex = () => {
if (!selectedRack || !racksInSelectedRoom) return -1;
return racksInSelectedRoom.findIndex((r) => r.rackId === selectedRack.rackId);
return racksInSelectedRoom.findIndex(r => r.rackId === selectedRack.rackId);
};
const dropdownMenuItems = ACTION_BUTTONS_CONFIG.map((btn) => ({
const dropdownMenuItems = ACTION_BUTTONS_CONFIG.map(btn => ({
key: btn.key,
label: (
<span style={{ display: 'flex', alignItems: 'center', gap: 8 }}>
@@ -190,13 +185,11 @@ const RackSelectorHeader = ({
}}
>
<div
onClick={() => setSelectorVisible((prev) => !prev)}
onClick={() => setSelectorVisible(prev => !prev)}
style={{
display: 'flex',
alignItems: 'center',
background: selectorVisible
? 'rgba(59, 130, 246, 0.15)'
: 'rgba(255, 255, 255, 0.08)',
background: selectorVisible ? 'rgba(59, 130, 246, 0.15)' : 'rgba(255, 255, 255, 0.08)',
border: selectorVisible
? '1px solid rgba(59, 130, 246, 0.5)'
: '1px solid rgba(255, 255, 255, 0.12)',
@@ -247,7 +240,7 @@ const RackSelectorHeader = ({
>
{canNavigatePrev && (
<div
onClick={(e) => {
onClick={e => {
e.stopPropagation();
onPrevRack();
}}
@@ -262,10 +255,10 @@ const RackSelectorHeader = ({
fontSize: 12,
transition: 'all 0.15s',
}}
onMouseEnter={(e) => {
onMouseEnter={e => {
e.currentTarget.style.background = 'rgba(255,255,255,0.15)';
}}
onMouseLeave={(e) => {
onMouseLeave={e => {
e.currentTarget.style.background = 'rgba(255,255,255,0.08)';
}}
>
@@ -274,7 +267,7 @@ const RackSelectorHeader = ({
)}
{canNavigateNext && (
<div
onClick={(e) => {
onClick={e => {
e.stopPropagation();
onNextRack();
}}
@@ -289,10 +282,10 @@ const RackSelectorHeader = ({
fontSize: 12,
transition: 'all 0.15s',
}}
onMouseEnter={(e) => {
onMouseEnter={e => {
e.currentTarget.style.background = 'rgba(255,255,255,0.15)';
}}
onMouseLeave={(e) => {
onMouseLeave={e => {
e.currentTarget.style.background = 'rgba(255,255,255,0.08)';
}}
>
@@ -420,11 +413,7 @@ const RackSelectorHeader = ({
return (
<div style={{ display: 'flex', alignItems: 'center', gap: 8, flexShrink: 0 }}>
{renderDeviceSlideToggle()}
<Dropdown
menu={{ items: dropdownMenuItems }}
trigger={['click']}
placement="bottomRight"
>
<Dropdown menu={{ items: dropdownMenuItems }} trigger={['click']} placement="bottomRight">
<Button
type="text"
icon={<MenuOutlined style={{ color: 'rgba(255,255,255,0.8)' }} />}
@@ -487,4 +476,4 @@ const RackSelectorHeader = ({
);
};
export default RackSelectorHeader;
export default RackSelectorHeader;