diff --git a/apps/nowait-admin/src/assets/keyboard_arrow_down.svg b/apps/nowait-admin/src/assets/keyboard_arrow_down.svg new file mode 100644 index 00000000..e8fb2459 --- /dev/null +++ b/apps/nowait-admin/src/assets/keyboard_arrow_down.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/nowait-admin/src/pages/AdminAnalytics/AdminAnalytics.tsx b/apps/nowait-admin/src/pages/AdminAnalytics/AdminAnalytics.tsx index 119bbcc6..431a5343 100644 --- a/apps/nowait-admin/src/pages/AdminAnalytics/AdminAnalytics.tsx +++ b/apps/nowait-admin/src/pages/AdminAnalytics/AdminAnalytics.tsx @@ -1,5 +1,66 @@ +import BoothSalesRankingCard from "./components/BoothSalesRankingCard "; +import HeaderStatus from "./components/HeaderStatus"; + +interface BoothRanking { + rank: number; + name: string; + department: string; + salesCount: number; + rankChange: number; + isCurrentBooth?: boolean; +} + +// fakeData +const boothData: BoothRanking[] = [ + { + rank: 1, + name: "불타는닭발부스", + department: "컴퓨터공학과", + salesCount: 52, + rankChange: 1, + isCurrentBooth: false, + }, + { + rank: 2, + name: "하이볼의집", + department: "식품영양학과", + salesCount: 52, + rankChange: -1, + isCurrentBooth: false, + }, + { + rank: 3, + name: "치즈폭탄존", + department: "관광경영학과", + salesCount: 52, + rankChange: 0, + isCurrentBooth: false, + }, + { + rank: 4, + name: "치킨사교클럽", + department: "치위생학과", + salesCount: 52, + rankChange: 3, + isCurrentBooth: false, + }, + { + rank: 27, + name: "스페이시스", + department: "경찰행정학과", + salesCount: 52, + rankChange: 3, + isCurrentBooth: true, + }, +]; + const AdminAnalytics = () => { - return
AdminAnalytics AdminAnalytics
; + return ( +
+ + +
+ ); }; export default AdminAnalytics; diff --git a/apps/nowait-admin/src/pages/AdminAnalytics/components/BoothSalesRankingCard .tsx b/apps/nowait-admin/src/pages/AdminAnalytics/components/BoothSalesRankingCard .tsx new file mode 100644 index 00000000..4165074c --- /dev/null +++ b/apps/nowait-admin/src/pages/AdminAnalytics/components/BoothSalesRankingCard .tsx @@ -0,0 +1,93 @@ +import React from "react"; +import arrowIcon from "../../../assets/keyboard_arrow_down.svg"; + +interface BoothRanking { + rank: number; + name: string; + department: string; + salesCount: number; + rankChange: number; + isCurrentBooth?: boolean; +} + +interface BoothSalesRankingCardProps { + date: string; + data: BoothRanking[]; +} + +const BoothSalesRankingCard: React.FC = ({ + date, + data, +}) => { + return ( +
+
+
+

+ {"통계2"} +

+
+
매출 순위
+ + + +
+
+ {date} +
+ + +
+ ); +}; + +export default BoothSalesRankingCard; diff --git a/apps/nowait-admin/src/pages/AdminAnalytics/components/HeaderStatus.tsx b/apps/nowait-admin/src/pages/AdminAnalytics/components/HeaderStatus.tsx new file mode 100644 index 00000000..d248cd85 --- /dev/null +++ b/apps/nowait-admin/src/pages/AdminAnalytics/components/HeaderStatus.tsx @@ -0,0 +1,44 @@ +import React from "react"; +import SalesCard from "./SalesCard"; + +const HeaderStatus = () => { + return ( +
+
+ {/* 오늘 매출 */} + + {/* 누적 매출 */} + +
+ {/* 인기 메뉴 TOP 5 */} +
+
+

인기 메뉴 TOP 5

+ 2025.07.18 금 +
+
    + {[1, 2, 3, 4, 5].map((rank) => ( +
  • + {rank}위 참치마요주먹밥 + 100개 +
  • + ))} +
+
+
+ ); +}; + +export default HeaderStatus; diff --git a/apps/nowait-admin/src/pages/AdminAnalytics/components/SalesCard.tsx b/apps/nowait-admin/src/pages/AdminAnalytics/components/SalesCard.tsx new file mode 100644 index 00000000..00a0d81f --- /dev/null +++ b/apps/nowait-admin/src/pages/AdminAnalytics/components/SalesCard.tsx @@ -0,0 +1,34 @@ +interface SalesCardProps { + title: string; // 예: "오늘 매출" 또는 "누적 매출" + date: string; + amount: number; + diffAmount: number; + percent: number; +} + +const SalesCard: React.FC = ({ + title, + date, + amount, + diffAmount, + percent, +}) => ( +
+
+

{title}

+

{date}

+
+
+
+

+ {amount.toLocaleString()}원 +

+ +{percent}% +
+

+ 어제보다 {diffAmount.toLocaleString()}원 더 벌었어요! +

+
+
+); +export default SalesCard;