diff --git a/src/entities/settlement/model/types.ts b/src/entities/settlement/model/types.ts index c31fa8a..5a5c04c 100644 --- a/src/entities/settlement/model/types.ts +++ b/src/entities/settlement/model/types.ts @@ -36,6 +36,11 @@ export enum SettlementPaymentMethod { CULTURE_VOUCHER = 'CULTURE_VOUCHER', TMONEY_PAY = 'TMONEY_PAY', }; + +export enum SettlementStatus { + COMPLETED = 'COMPLETED', + SCHEDULED = 'SCHEDULED' +}; export interface SettlementsTransactionSummaryParams { mid: string; periodType: SettlementPeriodType; @@ -172,7 +177,7 @@ export interface SettlementDays { settlementDate: string; completedAmount: number; scheduledAmount: number; - settlementStatus: string; + settlementStatus: SettlementStatus; }; export interface ListDateGroupProps { date?: string; diff --git a/src/entities/settlement/ui/calandar-amount-row.tsx b/src/entities/settlement/ui/calandar-amount-row.tsx new file mode 100644 index 0000000..b2e2900 --- /dev/null +++ b/src/entities/settlement/ui/calandar-amount-row.tsx @@ -0,0 +1,40 @@ +import { NumericFormat } from 'react-number-format'; +import { SettlementStatus } from '../model/types'; + +export interface CalendarAmountRowProps { + amount: number; + settlementStatus: SettlementStatus; +}; + +export const CalendarAmountRow = ({ + amount, + settlementStatus +}: CalendarAmountRowProps) => { + + const makeTitle = () => { + let rs = []; + if(settlementStatus === SettlementStatus.SCHEDULED){ + rs.push(예정) + } + else if(settlementStatus === SettlementStatus.COMPLETED){ + rs.push(완료) + } + return rs; + }; + + return ( + <> +
+
정산 { makeTitle() } 금액
+
+ +
+
+ + ); +}; \ No newline at end of file diff --git a/src/entities/settlement/ui/calandar-wrap.tsx b/src/entities/settlement/ui/calandar-wrap.tsx index ccf67d1..8079bb3 100644 --- a/src/entities/settlement/ui/calandar-wrap.tsx +++ b/src/entities/settlement/ui/calandar-wrap.tsx @@ -1,10 +1,65 @@ -import { NumericFormat } from 'react-number-format'; +import moment from 'moment'; import { IMAGE_ROOT } from '@/shared/constants/common'; +import { useSettlementsCalendarMutation } from '../api/use-settlements-calendar-mutation'; +import { useEffect, useState } from 'react'; +import { + SettlementDays, + SettlementsCalendarParams, + SettlementsCalendarResponse, + SettlementStatus +} from '../model/types'; +import { CalendarAmountRow } from './calandar-amount-row'; +import { CalendarSettlementItem } from './calendar-settlement-item'; export const CalendarWrap = () => { + moment.locale('ko'); + + const [mid, setMid] = useState('nictest001m'); + const [yearMonth, setYearMonth] = useState(moment().format('YYYY-MM')); + const [totalCompletedAmount, setTotalCompletedAmount] = useState(0); + const [totalScheduledAmount, setTotalScheduledAmount] = useState(0); + const [scheduledList, setScheduledList] = useState>([]); + const [completedList, setCompletedList] = useState>([]); + + const { mutateAsync: settlementsCalendar } = useSettlementsCalendarMutation(); + + const callCalendar = () => { + let params: SettlementsCalendarParams = { + mid: mid, + yearMonth: yearMonth + }; + settlementsCalendar(params).then((rs: SettlementsCalendarResponse) => { + console.log(rs); + setTotalCompletedAmount(rs.totalCompletedAmount); + setTotalScheduledAmount(rs.totalScheduledAmount); + setYearMonth(rs.yearMonth); + let scheduleArr = []; + let completedArr = []; + if(!!rs.settlementDays && rs.settlementDays.length > 0){ + for(let i=0;i { + + }; + + useEffect(() => { + callCalendar(); + }, []); return ( <> -
+