정산달력 버그 픽스

This commit is contained in:
focp212@naver.com
2025-11-17 10:23:15 +09:00
parent ab05f44a21
commit c83217b753
3 changed files with 49 additions and 15 deletions

View File

@@ -7,12 +7,14 @@ export interface CalendarGridProps {
yearMonth: string; yearMonth: string;
scheduledDateList: Array<number>; scheduledDateList: Array<number>;
completedDateList: Array<number>; completedDateList: Array<number>;
onClickToCalendarDate: (day: number) => void;
}; };
export const CalendarGrid = ({ export const CalendarGrid = ({
yearMonth, yearMonth,
scheduledDateList, scheduledDateList,
completedDateList completedDateList,
onClickToCalendarDate
}: CalendarGridProps) => { }: CalendarGridProps) => {
const { t } = useTranslation(); const { t } = useTranslation();
@@ -39,6 +41,7 @@ export const CalendarGrid = ({
<div <div
key={ `key-day-item-${i}` } key={ `key-day-item-${i}` }
className="day scheduled" className="day scheduled"
onClick={ () => onClickToCalendarDate(i) }
>{ i }</div> >{ i }</div>
); );
} }
@@ -47,6 +50,7 @@ export const CalendarGrid = ({
<div <div
key={ `key-day-item-${i}` } key={ `key-day-item-${i}` }
className="day complete" className="day complete"
onClick={ () => onClickToCalendarDate(i) }
>{ i }</div> >{ i }</div>
); );
} }

View File

@@ -3,19 +3,25 @@ import { useTranslation } from 'react-i18next';
import { PATHS } from '@/shared/constants/paths'; import { PATHS } from '@/shared/constants/paths';
import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { SettlementDays, SettlementStatus } from '../model/types'; import { SettlementDays, SettlementStatus } from '../model/types';
import { useState } from 'react';
export interface CalendarSettlementItemProps { export interface CalendarSettlementItemProps {
list: Array<SettlementDays | undefined>; list: Array<SettlementDays | undefined>;
settlementStatus: SettlementStatus; settlementStatus: SettlementStatus;
filterDate?: number;
}; };
export const CalendarSettlementItem = ({ export const CalendarSettlementItem = ({
list, list,
settlementStatus settlementStatus,
filterDate
}: CalendarSettlementItemProps) => { }: CalendarSettlementItemProps) => {
console.log(list)
const { navigate } = useNavigate(); const { navigate } = useNavigate();
const { t } = useTranslation(); const { t } = useTranslation();
const [newList, setNewList] = useState<Array<SettlementDays | undefined>>(list);
const getAmount = ( const getAmount = (
scheduledAmount: number | undefined, scheduledAmount: number | undefined,
completedAmount: number | undefined completedAmount: number | undefined
@@ -51,27 +57,42 @@ export const CalendarSettlementItem = ({
}); });
} }
}; };
return ( const showFilterDate = () => {
<> let rs = [];
{ list.map((value, index) => ( for(let i=0;i<newList.length;i++){
let item = newList[i];
if(filterDate && filterDate > 0){
let shortDate = item?.settlementDate.substring(6, 8);
if(shortDate){
let checkDate = parseInt(shortDate);
if(filterDate !== checkDate){
continue;
}
}
}
rs.push(
<div <div
key={ `settlement-item-${index}` } key={ `settlement-item-${i}` }
className="settlement-item" className="settlement-item"
onClick={ () => onClickToMoveList(value?.settlementDate) } onClick={ () => onClickToMoveList(item?.settlementDate) }
> >
<div className={ `settlement-tag ${getClassName()}` }>{ value?.settlementStatus }</div> <div className={ `settlement-tag ${getClassName()}` }>{ item?.settlementStatus }</div>
<div className="settlement-date"> <div className="settlement-date">
{ moment(value?.settlementDate).format('MM.DD(ddd)') } { moment(item?.settlementDate).format('MM.DD(ddd)') }
</div> </div>
<div className="settlement-amount"> <div className="settlement-amount">
{t('home.money', { value: new Intl.NumberFormat('en-US').format(getAmount(value?.scheduledAmount, value?.completedAmount)) })} {t('home.money', { value: new Intl.NumberFormat('en-US').format(getAmount(item?.scheduledAmount, item?.completedAmount)) })}
</div> </div>
</div> </div>
)) );
} }
return rs;
};
return (
<>
{ showFilterDate() }
</> </>
) )
}; };

View File

@@ -33,6 +33,7 @@ export const CalendarWrap = () => {
const [completedList, setCompletedList] = useState<Array<SettlementDays | undefined>>([]); const [completedList, setCompletedList] = useState<Array<SettlementDays | undefined>>([]);
const [scheduledDateList, setScheduledDateList] = useState<Array<number>>([]); const [scheduledDateList, setScheduledDateList] = useState<Array<number>>([]);
const [completedDateList, setCompletedDateList] = useState<Array<number>>([]); const [completedDateList, setCompletedDateList] = useState<Array<number>>([]);
const [filterDate, setFilterDate] = useState<number>(0);
const [lastMonth, setLastMonth] = useState<boolean>(false); const [lastMonth, setLastMonth] = useState<boolean>(false);
@@ -105,6 +106,7 @@ export const CalendarWrap = () => {
let newYearMonth = moment(yearMonth).subtract(1, 'month').format('YYYYMM'); let newYearMonth = moment(yearMonth).subtract(1, 'month').format('YYYYMM');
setYearMonth(newYearMonth); setYearMonth(newYearMonth);
setYearMonth(newYearMonth); setYearMonth(newYearMonth);
setFilterDate(0);
initialList(); initialList();
} }
}; };
@@ -116,10 +118,14 @@ export const CalendarWrap = () => {
let newYearMonthValue = moment(newYearMonth).format('YYYYMM'); let newYearMonthValue = moment(newYearMonth).format('YYYYMM');
if(parseInt(newYearMonthValue) <= parseInt(maxYearMonthValue)){ if(parseInt(newYearMonthValue) <= parseInt(maxYearMonthValue)){
setYearMonth(newYearMonth); setYearMonth(newYearMonth);
setFilterDate(0);
initialList(); initialList();
} }
} }
}; };
const onClickToCalendarDate = (day: number) => {
setFilterDate(day);
};
useEffect(() => { useEffect(() => {
if(!!mid){ if(!!mid){
@@ -196,6 +202,7 @@ export const CalendarWrap = () => {
yearMonth={ yearMonth } yearMonth={ yearMonth }
scheduledDateList={ scheduledDateList } scheduledDateList={ scheduledDateList }
completedDateList={ completedDateList } completedDateList={ completedDateList }
onClickToCalendarDate= { onClickToCalendarDate }
></CalendarGrid> ></CalendarGrid>
<div className="settlement-list"> <div className="settlement-list">
@@ -203,12 +210,14 @@ export const CalendarWrap = () => {
<CalendarSettlementItem <CalendarSettlementItem
list={ scheduledList } list={ scheduledList }
settlementStatus={ SettlementStatus.SCHEDULED } settlementStatus={ SettlementStatus.SCHEDULED }
filterDate={ filterDate }
></CalendarSettlementItem> ></CalendarSettlementItem>
} }
{ (!!completedList && completedList.length > 0) && { (!!completedList && completedList.length > 0) &&
<CalendarSettlementItem <CalendarSettlementItem
list={ completedList } list={ completedList }
settlementStatus={ SettlementStatus.COMPLETED } settlementStatus={ SettlementStatus.COMPLETED }
filterDate={ filterDate }
></CalendarSettlementItem> ></CalendarSettlementItem>
} }
</div> </div>