Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feat/dashboard

This commit is contained in:
dohyeons
2025-10-22 15:33:07 +09:00
40 changed files with 5490 additions and 3504 deletions

View File

@@ -7,7 +7,7 @@ import { DashboardTopMenu } from "./DashboardTopMenu";
import { ElementConfigSidebar } from "./ElementConfigSidebar";
import { DashboardSaveModal } from "./DashboardSaveModal";
import { DashboardElement, ElementType, ElementSubtype } from "./types";
import { GRID_CONFIG, snapToGrid, snapSizeToGrid, calculateCellSize } from "./gridUtils";
import { GRID_CONFIG, snapToGrid, snapSizeToGrid, calculateCellSize, calculateGridConfig } from "./gridUtils";
import { Resolution, RESOLUTIONS, detectScreenResolution } from "./ResolutionSelector";
import { DashboardProvider } from "@/contexts/DashboardContext";
import { useMenu } from "@/contexts/MenuContext";
@@ -215,22 +215,22 @@ export default function DashboardDesigner({ dashboardId: initialDashboardId }: D
return;
}
// 기본 크기 설정
let defaultCells = { width: 2, height: 2 }; // 기본 위젯 크기
// 기본 크기 설정 (서브그리드 기준)
const gridConfig = calculateGridConfig(canvasConfig.width);
const subGridSize = gridConfig.SUB_GRID_SIZE;
// 서브그리드 기준 기본 크기 (픽셀)
let defaultWidth = subGridSize * 10; // 기본 위젯: 서브그리드 10칸
let defaultHeight = subGridSize * 10; // 기본 위젯: 서브그리드 10칸
if (type === "chart") {
defaultCells = { width: 4, height: 3 }; // 차트
defaultWidth = subGridSize * 20; // 차트: 서브그리드 20칸
defaultHeight = subGridSize * 15; // 차트: 서브그리드 15칸
} else if (type === "widget" && subtype === "calendar") {
defaultCells = { width: 2, height: 3 }; // 달력 최소 크기
defaultWidth = subGridSize * 10; // 달력: 서브그리드 10칸
defaultHeight = subGridSize * 15; // 달력: 서브그리드 15칸
}
// 현재 해상도에 맞는 셀 크기 계산
const cellSize = Math.floor((canvasConfig.width + GRID_CONFIG.GAP) / GRID_CONFIG.COLUMNS) - GRID_CONFIG.GAP;
const cellWithGap = cellSize + GRID_CONFIG.GAP;
const defaultWidth = defaultCells.width * cellWithGap - GRID_CONFIG.GAP;
const defaultHeight = defaultCells.height * cellWithGap - GRID_CONFIG.GAP;
// 크기 유효성 검사
if (isNaN(defaultWidth) || isNaN(defaultHeight) || defaultWidth <= 0 || defaultHeight <= 0) {
// console.error("Invalid size calculated:", {