홈
This commit is contained in:
@@ -1,6 +1,76 @@
|
|||||||
|
import moment from 'moment';
|
||||||
|
import { useEffect, useState } from 'react';
|
||||||
import { IMAGE_ROOT } from '@/shared/constants/common';
|
import { IMAGE_ROOT } from '@/shared/constants/common';
|
||||||
|
import { HomeMonthParams, HomeMonthResponse, HomeOverviewParams, HomeOverviewResponse, Sales, Settlement, TopPaymentMethodInfo, TopSalesDayInfo, TopSalesTimeInfo } from '../model/types';
|
||||||
|
import { useHomeOverviewMutation } from '../api/use-home-overview-mutation';
|
||||||
|
import { useHomeMonthwMutation } from '../api/use-home-month-mutation';
|
||||||
|
import { NumericFormat } from 'react-number-format';
|
||||||
|
|
||||||
export const BoxContainer2 = () => {
|
export const BoxContainer2 = () => {
|
||||||
|
|
||||||
|
const [mid, setMid] = useState<string>('nictest001m');
|
||||||
|
const [searchDate, setSearchDate] = useState<string>(moment().format('YYYY-MM-DD'));
|
||||||
|
|
||||||
|
const [sales, setSales] = useState<Sales>();
|
||||||
|
const [settlement, setSettlement] = useState<Settlement>();
|
||||||
|
const [salesIncrease, setSalesIncrease] = useState<number>();
|
||||||
|
const [settlementIncrease, setSettlementIncrease] = useState<number>();
|
||||||
|
|
||||||
|
const [averageTransactionAmount, setAverageTransactionAmount] = useState<number>();
|
||||||
|
const [dailyAverageSales, setDailyAverageSales] = useState<number>();
|
||||||
|
const [dailyAverageCount, setDailyAverageCount] = useState<number>();
|
||||||
|
const [topSalesDayInfo, setTopSalesDayInfo] = useState<TopSalesDayInfo>();
|
||||||
|
const [topSalesTimeInfo, setTopSalesTimeInfo] = useState<TopSalesTimeInfo>();
|
||||||
|
const [topPaymentMethodInfo, setTopPaymentMethodInfo] = useState<TopPaymentMethodInfo>();
|
||||||
|
|
||||||
|
const { mutateAsync: homeMonth } = useHomeMonthwMutation();
|
||||||
|
const { mutateAsync: homeOverview } = useHomeOverviewMutation();
|
||||||
|
|
||||||
|
const callMonth = () => {
|
||||||
|
let params: HomeMonthParams = {
|
||||||
|
searchDate: searchDate,
|
||||||
|
mid: mid,
|
||||||
|
};
|
||||||
|
homeMonth(params).then((rs: HomeMonthResponse) => {
|
||||||
|
setSales(rs.sales);
|
||||||
|
setSettlement(rs.settlement);
|
||||||
|
|
||||||
|
let currentMonthAmount = rs.sales.currentMonthAmount;
|
||||||
|
let previousMonthAmount = rs.sales.previousMonthAmount;
|
||||||
|
if(currentMonthAmount && previousMonthAmount){
|
||||||
|
let increase = (currentMonthAmount - previousMonthAmount) / previousMonthAmount * 100;
|
||||||
|
setSalesIncrease(increase);
|
||||||
|
}
|
||||||
|
|
||||||
|
let currentMonthSettlementAmount = rs.settlement.currentMonthSettlementAmount;
|
||||||
|
let previousMonthSettlementAmount = rs.settlement.previousMonthSettlementAmount;
|
||||||
|
if(currentMonthSettlementAmount && previousMonthSettlementAmount){
|
||||||
|
let increase = (currentMonthSettlementAmount - previousMonthSettlementAmount) / previousMonthSettlementAmount * 100;
|
||||||
|
setSettlementIncrease(increase);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
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(() => {
|
||||||
|
// callMonth();
|
||||||
|
callOverview();
|
||||||
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div>
|
<div>
|
||||||
@@ -11,8 +81,23 @@ export const BoxContainer2 = () => {
|
|||||||
<div className="box-wrap two-sales">
|
<div className="box-wrap two-sales">
|
||||||
<h4>총 매출액</h4>
|
<h4>총 매출액</h4>
|
||||||
<div className="today-sales mt-sty">
|
<div className="today-sales mt-sty">
|
||||||
<span className="won01">937,284,000원</span>
|
<span className="won01">
|
||||||
<span className="per">↑ 43.6%</span>
|
<NumericFormat
|
||||||
|
value={ sales?.currentMonthAmount }
|
||||||
|
thousandSeparator
|
||||||
|
displayType="text"
|
||||||
|
suffix='원'
|
||||||
|
></NumericFormat>
|
||||||
|
</span>
|
||||||
|
<span className={ `per ${(salesIncrease && salesIncrease >= 0)? 'plus': 'minus'}` }>
|
||||||
|
<NumericFormat
|
||||||
|
value={ salesIncrease }
|
||||||
|
thousandSeparator
|
||||||
|
displayType="text"
|
||||||
|
prefix={ `${(salesIncrease && salesIncrease >= 0)? '↑ ': '↓ '}` }
|
||||||
|
suffix='%'
|
||||||
|
></NumericFormat>
|
||||||
|
</span>
|
||||||
<a className="arrow">
|
<a className="arrow">
|
||||||
<img src={ IMAGE_ROOT + '/ico_arrow.svg' } alt="오늘 매출 바로가기" />
|
<img src={ IMAGE_ROOT + '/ico_arrow.svg' } alt="오늘 매출 바로가기" />
|
||||||
</a>
|
</a>
|
||||||
@@ -21,8 +106,23 @@ export const BoxContainer2 = () => {
|
|||||||
<div className="box-wrap two-sales">
|
<div className="box-wrap two-sales">
|
||||||
<h4>총 정산액</h4>
|
<h4>총 정산액</h4>
|
||||||
<div className="today-sales mt-sty">
|
<div className="today-sales mt-sty">
|
||||||
<span className="won02">24,734,000원</span>
|
<span className="won02">
|
||||||
<span className="per">↑ 26.8%</span>
|
<NumericFormat
|
||||||
|
value={ settlement?.currentMonthSettlementAmount }
|
||||||
|
thousandSeparator
|
||||||
|
displayType="text"
|
||||||
|
suffix='원'
|
||||||
|
></NumericFormat>
|
||||||
|
</span>
|
||||||
|
<span className={ `per ${(settlementIncrease && settlementIncrease >= 0)? 'plus': 'minus'}` }>
|
||||||
|
<NumericFormat
|
||||||
|
value={ settlementIncrease }
|
||||||
|
thousandSeparator
|
||||||
|
displayType="text"
|
||||||
|
prefix={ `${(settlementIncrease && settlementIncrease >= 0)? '↑ ': '↓ '}` }
|
||||||
|
suffix='%'
|
||||||
|
></NumericFormat>
|
||||||
|
</span>
|
||||||
<a className="arrow">
|
<a className="arrow">
|
||||||
<img src={ IMAGE_ROOT + '/ico_arrow.svg' } alt="오늘 매출 바로가기" />
|
<img src={ IMAGE_ROOT + '/ico_arrow.svg' } alt="오늘 매출 바로가기" />
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ export const DayStatusBox = () => {
|
|||||||
<div className="con-box one active">
|
<div className="con-box one active">
|
||||||
{ <BoxContainer1></BoxContainer1> }
|
{ <BoxContainer1></BoxContainer1> }
|
||||||
</div>
|
</div>
|
||||||
<div className="con-box two">
|
<div className="con-box two active">
|
||||||
{ <BoxContainer2></BoxContainer2> }
|
{ <BoxContainer2></BoxContainer2> }
|
||||||
</div>
|
</div>
|
||||||
<div className="swiper-banner">
|
<div className="swiper-banner">
|
||||||
|
|||||||
Reference in New Issue
Block a user