refactor(floorplan): 重构平面图组件与样式

- 移除未使用的编辑模式、热力图、搜索等功能
- 将样式代码抽离到独立样式文件
- 优化工具栏和缩放控制组件实现
- 添加导出图片功能
- 简化上下文状态管理
- 优化设备提示框和空状态显示
This commit is contained in:
zhang1106
2026-05-07 15:14:40 +08:00
parent c717ce30d6
commit 54b0a8e7bb
23 changed files with 564 additions and 1371 deletions
@@ -30,59 +30,11 @@ const useFloorPlanData = (roomId) => {
fetchLayout();
}, [fetchLayout]);
const updateRackPosition = useCallback(async (rackId, rowPos, colPos, facing) => {
try {
await axios.put(`/api/racks/${rackId}/position`, { rowPos, colPos, facing });
await fetchLayout();
return true;
} catch (err) {
setError(err.response?.data?.error || err.message);
return false;
}
}, [fetchLayout]);
const batchUpdatePositions = useCallback(async (positions) => {
try {
await axios.put(`/api/rooms/${roomId}/racks-positions`, { positions });
await fetchLayout();
return true;
} catch (err) {
setError(err.response?.data?.error || err.message);
return false;
}
}, [roomId, fetchLayout]);
const updateLayout = useCallback(async (gridRows, gridCols, layoutConfig) => {
try {
await axios.put(`/api/rooms/${roomId}/layout`, { gridRows, gridCols, layoutConfig });
await fetchLayout();
return true;
} catch (err) {
setError(err.response?.data?.error || err.message);
return false;
}
}, [roomId, fetchLayout]);
const initLayout = useCallback(async (gridRows, gridCols, layoutConfig) => {
try {
await axios.post(`/api/rooms/${roomId}/init-layout`, { gridRows, gridCols, layoutConfig });
await fetchLayout();
return true;
} catch (err) {
setError(err.response?.data?.error || err.message);
return false;
}
}, [roomId, fetchLayout]);
return {
layoutData,
loading,
error,
refetch: fetchLayout,
updateRackPosition,
batchUpdatePositions,
updateLayout,
initLayout,
};
};