투두리스트랑 커스텀통계카드

This commit is contained in:
leeheejin
2025-10-20 15:52:22 +09:00
parent 652aa1e9b0
commit 7ceecd15af
11 changed files with 618 additions and 279 deletions

View File

@@ -118,8 +118,8 @@ const WorkHistoryWidget = dynamic(() => import("@/components/dashboard/widgets/W
loading: () => <div className="flex h-full items-center justify-center text-sm text-gray-500"> ...</div>,
});
// 운송 통계 위젯
const TransportStatsWidget = dynamic(() => import("@/components/dashboard/widgets/TransportStatsWidget"), {
// 커스텀 통계 카드 위젯
const CustomStatsWidget = dynamic(() => import("@/components/dashboard/widgets/CustomStatsWidget"), {
ssr: false,
loading: () => <div className="flex h-full items-center justify-center text-sm text-gray-500"> ...</div>,
});
@@ -750,9 +750,9 @@ export function CanvasElement({
<WorkHistoryWidget element={element} />
</div>
) : element.type === "widget" && element.subtype === "transport-stats" ? (
// 운송 통계 위젯 렌더링
// 커스텀 통계 카드 위젯 렌더링
<div className="h-full w-full">
<TransportStatsWidget element={element} />
<CustomStatsWidget element={element} />
</div>
) : element.type === "widget" && element.subtype === "todo" ? (
// To-Do 위젯 렌더링

View File

@@ -647,7 +647,7 @@ function getElementTitle(type: ElementType, subtype: ElementSubtype): string {
case "work-history":
return "작업 이력";
case "transport-stats":
return "운송 통계";
return "커스텀 통계 카드";
default:
return "위젯";
}
@@ -693,7 +693,7 @@ function getElementContent(type: ElementType, subtype: ElementSubtype): string {
case "work-history":
return "work-history";
case "transport-stats":
return "transport-stats";
return "커스텀 통계 카드";
default:
return "위젯 내용이 여기에 표시됩니다";
}

View File

@@ -226,7 +226,7 @@ export function DashboardSidebar() {
onDragStart={handleDragStart}
/>
<DraggableItem
title="운송 통계"
title="커스텀 통계 카드"
type="widget"
subtype="transport-stats"
onDragStart={handleDragStart}

View File

@@ -182,7 +182,7 @@ export function DashboardTopMenu({
<SelectLabel> </SelectLabel>
<SelectItem value="list"> </SelectItem>
<SelectItem value="yard-management-3d"> 3D</SelectItem>
<SelectItem value="transport-stats"> </SelectItem>
<SelectItem value="transport-stats"> </SelectItem>
{/* <SelectItem value="map">지도</SelectItem> */}
<SelectItem value="map-summary"> </SelectItem>
{/* <SelectItem value="list-summary">커스텀 목록 카드</SelectItem> */}

View File

@@ -52,7 +52,7 @@ export function ElementConfigModal({ element, isOpen, onClose, onSave }: Element
element.subtype === "customer-issues" ||
element.subtype === "driver-management" ||
element.subtype === "work-history" || // 작업 이력 위젯 (쿼리 필요)
element.subtype === "transport-stats"; // 운송 통계 위젯 (쿼리 필요)
element.subtype === "transport-stats"; // 커스텀 통계 카드 위젯 (쿼리 필요)
// 자체 기능 위젯 (DB 연결 불필요, 헤더 설정만 가능)
const isSelfContainedWidget =

View File

@@ -38,7 +38,7 @@ export type ElementSubtype =
| "list"
| "yard-management-3d" // 야드 관리 3D 위젯
| "work-history" // 작업 이력 위젯
| "transport-stats"; // 운송 통계 위젯
| "transport-stats"; // 커스텀 통계 카드 위젯
export interface Position {
x: number;