정산달력 버그 픽스
This commit is contained in:
@@ -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>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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() }
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user