+ {stats.map((stat, i) => (
+
+
{stat.label}
+
+ {stat.value}
+
+ {stat.change && (
+
+ {stat.change}
+
+ )}
+
+ ))}
+
+ );
+}
diff --git a/src/app/[locale]/(protected)/dashboard_type2/_components/mockData.ts b/src/app/[locale]/(protected)/dashboard_type2/_components/mockData.ts
new file mode 100644
index 00000000..858c2125
--- /dev/null
+++ b/src/app/[locale]/(protected)/dashboard_type2/_components/mockData.ts
@@ -0,0 +1,118 @@
+/** dashboard_type2 목업 데이터 */
+
+export interface StatCard {
+ label: string;
+ value: string;
+ color?: 'default' | 'green' | 'blue' | 'red' | 'orange';
+ change?: string;
+ changeDirection?: 'up' | 'down';
+}
+
+export interface TableRow {
+ [key: string]: string | number;
+}
+
+// === 전체 요약 탭 ===
+export const overviewStats: StatCard[] = [
+ { label: '현금성 자산', value: '305억', color: 'blue', change: '+5.2%', changeDirection: 'up' },
+ { label: '당월 매출', value: '12.8억', color: 'green', change: '+8.3%', changeDirection: 'up' },
+ { label: '당월 미수금', value: '10.1억', color: 'red', change: '+2.1%', changeDirection: 'up' },
+ { label: '당월 지출', value: '8.5억', color: 'orange', change: '-3.2%', changeDirection: 'down' },
+];
+
+export const overviewRecentOrders: TableRow[] = [
+ { no: 1, 거래처: '(주)대한건설', 품목: '전동개폐기 SET', 금액: '45,000,000', 상태: '진행중', 담당자: '김영민' },
+ { no: 2, 거래처: '삼성엔지니어링', 품목: '자동제어 시스템', 금액: '128,000,000', 상태: '완료', 담당자: '이수진' },
+ { no: 3, 거래처: '현대건설', 품목: '환기 시스템', 금액: '67,500,000', 상태: '진행중', 담당자: '박준혁' },
+ { no: 4, 거래처: 'LG전자', 품목: '공조기 제어반', 금액: '32,000,000', 상태: '대기', 담당자: '최민지' },
+ { no: 5, 거래처: 'SK에코플랜트', 품목: '모터 제어반', 금액: '89,000,000', 상태: '진행중', 담당자: '정하윤' },
+];
+
+// === 재무 관리 탭 ===
+export const financeStats: StatCard[] = [
+ { label: '현금성 자산 합계', value: '-1,392만', color: 'red', change: '+5.2%', changeDirection: 'up' },
+ { label: '외국환(USD) 합계', value: '$0', color: 'default', change: '+2.1%', changeDirection: 'up' },
+ { label: '입금 합계', value: '0원', color: 'green', change: '+12.0%', changeDirection: 'up' },
+ { label: '출금 합계', value: '0원', color: 'default', change: '-8.0%', changeDirection: 'down' },
+];
+
+export const financeExpenseData: TableRow[] = [
+ { no: 1, 항목: '매입', 금액: '5,234만', 전월대비: '+10.5%', 비율: '42%' },
+ { no: 2, 항목: '카드', 금액: '985만', 전월대비: '+3.2%', 비율: '8%' },
+ { no: 3, 항목: '발행어음', 금액: '0원', 전월대비: '-', 비율: '0%' },
+ { no: 4, 항목: '인건비', 금액: '3,200만', 전월대비: '+1.5%', 비율: '26%' },
+ { no: 5, 항목: '운영비', 금액: '1,580만', 전월대비: '-5.3%', 비율: '13%' },
+ { no: 6, 항목: '기타', 금액: '1,350만', 전월대비: '+7.8%', 비율: '11%' },
+];
+
+export const financeCardData: TableRow[] = [
+ { no: 1, 카드명: '법인카드(신한)', 사용액: '450만', 미정리: '2건', 한도: '1,000만', 잔여한도: '550만' },
+ { no: 2, 카드명: '법인카드(국민)', 사용액: '320만', 미정리: '1건', 한도: '800만', 잔여한도: '480만' },
+ { no: 3, 카드명: '법인카드(하나)', 사용액: '215만', 미정리: '2건', 한도: '500만', 잔여한도: '285만' },
+];
+
+// === 영업/매출 탭 ===
+export const salesStats: StatCard[] = [
+ { label: '수주 건수', value: '7건', color: 'blue' },
+ { label: '누적 미수금', value: '10억 3,186만', color: 'red' },
+ { label: '당월 미수금', value: '10억 2,586만', color: 'orange' },
+ { label: '채권추심 중', value: '4,782만', color: 'red' },
+];
+
+export const salesReceivableData: TableRow[] = [
+ { no: 1, 거래처: '(주)대한건설', 매출액: '120,000,000', 입금액: '80,000,000', 미수금: '40,000,000', 경과일: '45일', 상태: '정상' },
+ { no: 2, 거래처: '삼성엔지니어링', 매출액: '250,000,000', 입금액: '150,000,000', 미수금: '100,000,000', 경과일: '92일', 상태: '주의' },
+ { no: 3, 거래처: '현대건설', 매출액: '67,500,000', 입금액: '67,500,000', 미수금: '0', 경과일: '-', 상태: '완료' },
+ { no: 4, 거래처: 'SK에코플랜트', 매출액: '89,000,000', 입금액: '45,000,000', 미수금: '44,000,000', 경과일: '30일', 상태: '정상' },
+ { no: 5, 거래처: 'LG전자', 매출액: '32,000,000', 입금액: '0', 미수금: '32,000,000', 경과일: '120일', 상태: '위험' },
+];
+
+export const salesDebtData: TableRow[] = [
+ { no: 1, 거래처: '(주)동양전자', 채권액: '1,500만', 추심단계: '내용증명 발송', 경과일: '180일', 회수가능성: '중' },
+ { no: 2, 거래처: '(주)한국테크', 채권액: '2,300만', 추심단계: '법적조치 진행', 경과일: '250일', 회수가능성: '하' },
+ { no: 3, 거래처: '(주)미래산업', 채권액: '982만', 추심단계: '분할상환 협의', 경과일: '95일', 회수가능성: '상' },
+];
+
+// === 경비 관리 탭 ===
+export const expenseStats: StatCard[] = [
+ { label: '접대비 사용', value: '1,000만', color: 'blue' },
+ { label: '접대비 잔여한도', value: '2,190만', color: 'green' },
+ { label: '복리후생비 사용', value: '0원', color: 'default' },
+ { label: '복리후생비 잔여한도', value: '960만', color: 'green' },
+];
+
+export const expenseEntertainmentData: TableRow[] = [
+ { no: 1, 일자: '2026-02-03', 사용자: '김대표', 거래처: '(주)대한건설', 금액: '350,000', 용도: '식사', 결제수단: '법인카드' },
+ { no: 2, 일자: '2026-02-05', 사용자: '이부장', 거래처: '삼성엔지니어링', 금액: '520,000', 용도: '골프', 결제수단: '법인카드' },
+ { no: 3, 일자: '2026-02-07', 사용자: '김대표', 거래처: 'LG전자', 금액: '180,000', 용도: '식사', 결제수단: '법인카드' },
+ { no: 4, 일자: '2026-02-08', 사용자: '박이사', 거래처: 'SK에코플랜트', 금액: '450,000', 용도: '선물', 결제수단: '현금' },
+];
+
+export const expenseWelfareData: TableRow[] = [
+ { no: 1, 항목: '식대', 월한도: '200,000', 사용액: '180,000', 잔여: '20,000', 비고: '비과세 한도 내' },
+ { no: 2, 항목: '교통비', 월한도: '100,000', 사용액: '85,000', 잔여: '15,000', 비고: '-' },
+ { no: 3, 항목: '경조사비', 월한도: '200,000', 사용액: '100,000', 잔여: '100,000', 비고: '-' },
+ { no: 4, 항목: '체육문화비', 월한도: '100,000', 사용액: '0', 잔여: '100,000', 비고: '-' },
+];
+
+// === 일정/이슈 탭 ===
+export const scheduleStats: StatCard[] = [
+ { label: '오늘 일정', value: '4건', color: 'blue' },
+ { label: '이번 주 일정', value: '12건', color: 'default' },
+ { label: '미처리 이슈', value: '3건', color: 'red' },
+ { label: '이번 달 마감', value: '2건', color: 'orange' },
+];
+
+export const scheduleTodayItems = [
+ { id: 1, time: '09:00', title: '대한건설 현장 미팅', type: 'meeting' as const, person: '김영민' },
+ { id: 2, time: '11:00', title: '삼성엔지니어링 견적 검토', type: 'task' as const, person: '이수진' },
+ { id: 3, time: '14:00', title: '월간 실적 보고', type: 'report' as const, person: '박준혁' },
+ { id: 4, time: '16:00', title: 'SK에코플랜트 납품 확인', type: 'delivery' as const, person: '정하윤' },
+];
+
+export const scheduleIssueItems = [
+ { id: 1, date: '2026-02-08', title: '전동개폐기 납기 지연 (3일)', priority: 'high' as const, assignee: '김영민' },
+ { id: 2, date: '2026-02-09', title: '자재 단가 인상 통보 (동 파이프)', priority: 'medium' as const, assignee: '최민지' },
+ { id: 3, date: '2026-02-10', title: '품질 검사 부적합 2건 발생', priority: 'high' as const, assignee: '박준혁' },
+ { id: 4, date: '2026-02-10', title: '현대건설 설계 변경 요청', priority: 'medium' as const, assignee: '이수진' },
+];
diff --git a/src/app/[locale]/(protected)/dashboard_type2/_components/tabs/ExpenseTab.tsx b/src/app/[locale]/(protected)/dashboard_type2/_components/tabs/ExpenseTab.tsx
new file mode 100644
index 00000000..144aacf1
--- /dev/null
+++ b/src/app/[locale]/(protected)/dashboard_type2/_components/tabs/ExpenseTab.tsx
@@ -0,0 +1,83 @@
+'use client';
+
+import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
+import { expenseStats, expenseEntertainmentData, expenseWelfareData } from '../mockData';
+import { StatCards } from '../StatCards';
+
+export function ExpenseTab() {
+ return (
+