정산달력
This commit is contained in:
@@ -21,6 +21,9 @@ export const CalendarWrap = () => {
|
|||||||
const [totalScheduledAmount, setTotalScheduledAmount] = useState<number>(0);
|
const [totalScheduledAmount, setTotalScheduledAmount] = useState<number>(0);
|
||||||
const [scheduledList, setScheduledList] = useState<Array<SettlementDays | undefined>>([]);
|
const [scheduledList, setScheduledList] = useState<Array<SettlementDays | undefined>>([]);
|
||||||
const [completedList, setCompletedList] = useState<Array<SettlementDays | undefined>>([]);
|
const [completedList, setCompletedList] = useState<Array<SettlementDays | undefined>>([]);
|
||||||
|
const [scheduledDateList, setScheduledDateList] = useState<Array<number>>([]);
|
||||||
|
const [completedDateList, setCompletedDateList] = useState<Array<number>>([]);
|
||||||
|
|
||||||
|
|
||||||
const { mutateAsync: settlementsCalendar } = useSettlementsCalendarMutation();
|
const { mutateAsync: settlementsCalendar } = useSettlementsCalendarMutation();
|
||||||
|
|
||||||
@@ -30,23 +33,29 @@ export const CalendarWrap = () => {
|
|||||||
yearMonth: yearMonth
|
yearMonth: yearMonth
|
||||||
};
|
};
|
||||||
settlementsCalendar(params).then((rs: SettlementsCalendarResponse) => {
|
settlementsCalendar(params).then((rs: SettlementsCalendarResponse) => {
|
||||||
console.log(rs);
|
|
||||||
setTotalCompletedAmount(rs.totalCompletedAmount);
|
setTotalCompletedAmount(rs.totalCompletedAmount);
|
||||||
setTotalScheduledAmount(rs.totalScheduledAmount);
|
setTotalScheduledAmount(rs.totalScheduledAmount);
|
||||||
setYearMonth(rs.yearMonth);
|
setYearMonth(rs.yearMonth);
|
||||||
let scheduleArr = [];
|
let scheduleArr = [];
|
||||||
|
let scheduleDateArr = [];
|
||||||
let completedArr = [];
|
let completedArr = [];
|
||||||
|
let completedDateArr = [];
|
||||||
if(!!rs.settlementDays && rs.settlementDays.length > 0){
|
if(!!rs.settlementDays && rs.settlementDays.length > 0){
|
||||||
for(let i=0;i<rs.settlementDays.length;i++){
|
for(let i=0;i<rs.settlementDays.length;i++){
|
||||||
|
let date = moment(rs.settlementDays[i]?.settlementDate).date();
|
||||||
if(rs.settlementDays[i]?.settlementStatus === SettlementStatus.SCHEDULED){
|
if(rs.settlementDays[i]?.settlementStatus === SettlementStatus.SCHEDULED){
|
||||||
scheduleArr.push(rs.settlementDays[i]);
|
scheduleArr.push(rs.settlementDays[i]);
|
||||||
|
scheduleDateArr.push(date);
|
||||||
}
|
}
|
||||||
else if(rs.settlementDays[i]?.settlementStatus === SettlementStatus.COMPLETED){
|
else if(rs.settlementDays[i]?.settlementStatus === SettlementStatus.COMPLETED){
|
||||||
completedArr.push(rs.settlementDays[i]);
|
completedArr.push(rs.settlementDays[i]);
|
||||||
|
completedDateArr.push(date);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
setScheduledList(scheduleArr);
|
setScheduledList(scheduleArr);
|
||||||
|
setScheduledDateList(scheduleDateArr);
|
||||||
setCompletedList(completedArr);
|
setCompletedList(completedArr);
|
||||||
|
setCompletedDateList(completedDateArr);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -127,8 +136,8 @@ export const CalendarWrap = () => {
|
|||||||
|
|
||||||
<CalendarGrid
|
<CalendarGrid
|
||||||
yearMonth={ yearMonth }
|
yearMonth={ yearMonth }
|
||||||
scheduledList={ scheduledList }
|
scheduledDateList={ scheduledDateList }
|
||||||
completedList={ completedList }
|
completedDateList={ completedDateList }
|
||||||
></CalendarGrid>
|
></CalendarGrid>
|
||||||
|
|
||||||
<div className="settlement-list">
|
<div className="settlement-list">
|
||||||
|
|||||||
@@ -4,37 +4,16 @@ import { useEffect, useState } from 'react';
|
|||||||
|
|
||||||
export interface CalendarGridProps {
|
export interface CalendarGridProps {
|
||||||
yearMonth: string;
|
yearMonth: string;
|
||||||
scheduledList: Array<SettlementDays | undefined>;
|
scheduledDateList: Array<number>;
|
||||||
completedList: Array<SettlementDays | undefined>;
|
completedDateList: Array<number>;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const CalendarGrid = ({
|
export const CalendarGrid = ({
|
||||||
yearMonth,
|
yearMonth,
|
||||||
scheduledList,
|
scheduledDateList,
|
||||||
completedList,
|
completedDateList
|
||||||
}: CalendarGridProps) => {
|
}: CalendarGridProps) => {
|
||||||
|
|
||||||
const [scheduledDateList, setScheduledDateList] = useState<Array<number>>();
|
|
||||||
const [completedDateList, setCompletedDateList] = useState<Array<number>>();
|
|
||||||
const [assembled, setAssembled] = useState<boolean>(false);
|
|
||||||
|
|
||||||
const assembleDate = () => {
|
|
||||||
let rsScheduledDate = [];
|
|
||||||
let rsCompletedList = [];
|
|
||||||
for(let i=0;i<scheduledList.length;i++){
|
|
||||||
let date = moment(scheduledList[i]?.settlementDate).date();
|
|
||||||
rsScheduledDate.push(date);
|
|
||||||
}
|
|
||||||
for(let i=0;i<completedList.length;i++){
|
|
||||||
let date = moment(completedList[i]?.settlementDate).date();
|
|
||||||
rsCompletedList.push(date);
|
|
||||||
}
|
|
||||||
setScheduledDateList(rsScheduledDate);
|
|
||||||
setCompletedDateList(rsCompletedList);
|
|
||||||
|
|
||||||
setAssembled(true);
|
|
||||||
};
|
|
||||||
|
|
||||||
const makeCalendarDate = () => {
|
const makeCalendarDate = () => {
|
||||||
let startDay = moment(yearMonth).startOf('month').day();
|
let startDay = moment(yearMonth).startOf('month').day();
|
||||||
let lastDate = moment(yearMonth).endOf('month').date();
|
let lastDate = moment(yearMonth).endOf('month').date();
|
||||||
@@ -90,10 +69,6 @@ export const CalendarGrid = ({
|
|||||||
return rs;
|
return rs;
|
||||||
}
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
assembleDate();
|
|
||||||
}, [yearMonth])
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="calendar-grid">
|
<div className="calendar-grid">
|
||||||
@@ -107,7 +82,7 @@ export const CalendarGrid = ({
|
|||||||
<div className="weekday sat">토</div>
|
<div className="weekday sat">토</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="days">
|
<div className="days">
|
||||||
{ !!assembled && makeCalendarDate() }
|
{ makeCalendarDate() }
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
|
|||||||
Reference in New Issue
Block a user