From 603a7b844d5e3f303b2ee23ff2655a98d49c0612 Mon Sep 17 00:00:00 2001 From: "focp212@naver.com" Date: Fri, 26 Sep 2025 15:20:20 +0900 Subject: [PATCH] =?UTF-8?q?=EC=98=A4=EB=8A=98=EB=A7=A4=EC=B6=9C=20?= =?UTF-8?q?=EC=98=A4=EB=8A=98=EC=A0=95=EC=82=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/entities/home/model/types.ts | 4 +- .../home/ui/day-status-box-container1.tsx | 162 ++++++++++++++++-- src/shared/ui/assets/css/style.css | 8 +- 3 files changed, 159 insertions(+), 15 deletions(-) diff --git a/src/entities/home/model/types.ts b/src/entities/home/model/types.ts index b426ec7..5ee44f3 100644 --- a/src/entities/home/model/types.ts +++ b/src/entities/home/model/types.ts @@ -17,8 +17,8 @@ export interface AuthRegisterProps { }; export interface HomeCommonParams { - mid: string; - searchDate: string; + mid?: string; + searchDate?: string; }; export interface HomeTodayParams extends HomeCommonParams {}; export interface HomeTodayResponse { diff --git a/src/entities/home/ui/day-status-box-container1.tsx b/src/entities/home/ui/day-status-box-container1.tsx index fbb59ff..b8ef12b 100644 --- a/src/entities/home/ui/day-status-box-container1.tsx +++ b/src/entities/home/ui/day-status-box-container1.tsx @@ -1,42 +1,180 @@ +import moment from 'moment'; +import { NumericFormat } from 'react-number-format'; +import { useEffect, useState } from 'react'; import { IMAGE_ROOT } from '@/shared/constants/common'; +import { useHomeOverviewMutation } from '../api/use-home-overview-mutation'; +import { useHomeTodayMutation } from '../api/use-home-today-mutation'; +import { HomeOverviewParams, HomeOverviewResponse, HomeTodayParams, HomeTodayResponse, Sales, Settlement, TopPaymentMethodInfo, TopSalesDayInfo, TopSalesTimeInfo } from '../model/types'; export const BoxContainer1 = () => { + + const [mid, setMid] = useState('nictest001m'); + const [searchDate, setSearchDate] = useState(moment().format('YYYY-MM-DD')); + + const [sales, setSales] = useState(); + const [settlement, setSettlement] = useState(); + const [increaseRate, setIncreaseRate] = useState(); + const [availableLimit, setAvailableLimit] = useState(); + + const [averageTransactionAmount, setAverageTransactionAmount] = useState(); + const [dailyAverageSales, setDailyAverageSales] = useState(); + const [dailyAverageCount, setDailyAverageCount] = useState(); + const [topSalesDayInfo, setTopSalesDayInfo] = useState(); + const [topSalesTimeInfo, setTopSalesTimeInfo] = useState(); + const [topPaymentMethodInfo, setTopPaymentMethodInfo] = useState(); + + + const { mutateAsync: homeToday } = useHomeTodayMutation(); + const { mutateAsync: homeOverview } = useHomeOverviewMutation(); + + const callToday = () => { + let params: HomeTodayParams = { + searchDate: searchDate, + mid: mid, + }; + homeToday(params).then((rs: HomeTodayResponse) => { + setSales(rs.sales); + + let yesterdayTotalAmount = rs.sales.yesterdayTotalAmount; + let todayTotalAmount = rs.sales.todayTotalAmount; + if(todayTotalAmount && yesterdayTotalAmount){ + let rate = ((todayTotalAmount / yesterdayTotalAmount) - 1) * 100; + let roundRate = Math.round(rate * 10) / 10; + setIncreaseRate(roundRate); + } + + let totalCreditLimit = rs.settlement.totalCreditLimit; + let availableCredit = rs.settlement.availableCredit; + if(totalCreditLimit && availableCredit){ + let rate = (availableCredit / totalCreditLimit) * 100; + let roundRate = Math.round(rate * 10) / 10; + setAvailableLimit(roundRate); + } + + setSettlement(rs.settlement); + }); + }; + const callOverview = () => { + let params: HomeOverviewParams = { + searchDate: searchDate, + mid: mid, + }; + homeOverview(params).then((rs: HomeOverviewResponse) => { + setAverageTransactionAmount(rs.averageTransactionAmount); + setDailyAverageSales(rs.dailyAverageSales); + setDailyAverageCount(rs.dailyAverageCount); + setTopSalesDayInfo(rs.topSalesDayInfo); + setTopSalesTimeInfo(rs.topSalesTimeInfo); + setTopPaymentMethodInfo(rs.topPaymentMethodInfo); + }); + }; + + useEffect(() => { + callToday(); + callOverview(); + }, []); + return ( <>

오늘 매출

    -
  • 승인 건수 8,277건
  • -
  • 취소 건수 320건
  • +
  • + 승인 건수 + + + +
  • +
  • + 취소 건수 + + + +

오늘 정산

- 24,734,000원 + + + 입금완료 - - 오늘 매출 바로가기 + + 오늘 매출 바로가기
정산한도 - 23% 남음 + + +
-
+
-
잔여정산한도 7,833,000원
+
+ 잔여정산한도 + + + +
diff --git a/src/shared/ui/assets/css/style.css b/src/shared/ui/assets/css/style.css index 528f223..e9aee36 100644 --- a/src/shared/ui/assets/css/style.css +++ b/src/shared/ui/assets/css/style.css @@ -576,9 +576,15 @@ main.pb-0 .tab-pane { .per { font-size: var(--fs-15); font-weight: var(--fw-400); - color: #3E6AFC; margin-left: 5px; } +.per.minus { + color: #3E6AFC; +} + +.per.plus { + color: #EB5757; +} .arrow { position: absolute;