diff --git a/src/entities/additional-service/api/payout/use-extension-payout-detail-download-cetificate-mutation.ts b/src/entities/additional-service/api/payout/use-extension-payout-detail-download-cetificate-mutation.ts index 5a55346..74c6df9 100644 --- a/src/entities/additional-service/api/payout/use-extension-payout-detail-download-cetificate-mutation.ts +++ b/src/entities/additional-service/api/payout/use-extension-payout-detail-download-cetificate-mutation.ts @@ -17,7 +17,7 @@ export const extensionPayoutDetailDownloadCertificate = (params: ExtensionPayout ); }; -export const useExtensionPayoutDetailMutation = (options?: UseMutationOptions) => { +export const useExtensionPayoutDetailDownloadCertificateMutation = (options?: UseMutationOptions) => { const mutation = useMutation({ ...options, mutationFn: (params: ExtensionPayoutDetailDownloadCertificateParams) => extensionPayoutDetailDownloadCertificate(params), diff --git a/src/entities/additional-service/ui/payout/payout-list.tsx b/src/entities/additional-service/ui/payout/payout-list.tsx deleted file mode 100644 index e69de29..0000000 diff --git a/src/entities/common/model/types.ts b/src/entities/common/model/types.ts index d7a7cca..8bc7307 100644 --- a/src/entities/common/model/types.ts +++ b/src/entities/common/model/types.ts @@ -16,7 +16,8 @@ export enum FilterDateOptions { }; export enum CalendarType { Start = 'Start', - End = 'End' + End = 'End', + Single = 'Single' }; export interface DefaultRequestPagination { cursor: string; diff --git a/src/pages/additional-service/payout/detail-page.tsx b/src/pages/additional-service/payout/detail-page.tsx index efb37f8..a3a8ce4 100644 --- a/src/pages/additional-service/payout/detail-page.tsx +++ b/src/pages/additional-service/payout/detail-page.tsx @@ -7,9 +7,35 @@ import { useSetFooterMode, useSetOnBack } from '@/widgets/sub-layout/use-sub-layout'; +import { useExtensionPayoutDetailMutation } from '@/entities/additional-service/api/payout/use-extension-payout-detail-mutation'; +import { useLocation } from 'react-router'; +import { ExtensionPayoutDetailDownloadCertificateParams, ExtensionPayoutDetailDownloadCertificateResponse, ExtensionPayoutDetailParams, ExtensionPayoutDetailResponse } from '@/entities/additional-service/model/payout/types'; +import { useEffect, useState } from 'react'; +import { NumericFormat } from 'react-number-format'; +import { useExtensionPayoutDetailDownloadCertificateMutation } from '@/entities/additional-service/api/payout/use-extension-payout-detail-download-cetificate-mutation'; export const PayoutDetailPage = () => { const { navigate } = useNavigate(); + const location = useLocation(); + + const tid = location.state.tid; + const mid = location.state.mid; + + const [detail, setDetail] = useState(); + + const { mutateAsync: extensionPayoutDetail } = useExtensionPayoutDetailMutation(); + const { mutateAsync: extensionPayoutDetailDownloadCertification } = useExtensionPayoutDetailDownloadCertificateMutation(); + + const callSettlementDetail = () => { + let params: ExtensionPayoutDetailParams = { + tid: tid, + mid: mid, + }; + + extensionPayoutDetail(params).then((rs: ExtensionPayoutDetailResponse) => { + setDetail(rs); + }); + }; useSetHeaderTitle('지급대행 상세'); useSetHeaderType(HeaderType.LeftArrow); @@ -18,6 +44,20 @@ export const PayoutDetailPage = () => { navigate(PATHS.additionalService.payout.list); }); + const onClickToDownload = () => { + let params: ExtensionPayoutDetailDownloadCertificateParams = { + tid: tid, + mid: mid, + }; + extensionPayoutDetailDownloadCertification(params).then((rs: ExtensionPayoutDetailDownloadCertificateResponse) => { + console.log(rs); + }); + }; + + useEffect(() => { + callSettlementDetail(); + }, []); + return ( <>
@@ -25,14 +65,22 @@ export const PayoutDetailPage = () => {
- 10,000,000원 + + +
나이스테스트가맹점
2025.08.19
diff --git a/src/pages/additional-service/payout/list-page.tsx b/src/pages/additional-service/payout/list-page.tsx index 705898c..3a26aaf 100644 --- a/src/pages/additional-service/payout/list-page.tsx +++ b/src/pages/additional-service/payout/list-page.tsx @@ -160,6 +160,7 @@ export const PayoutListPage = () => { rs.push( { const { navigate } = useNavigate(); + const [calendarOpen, setCalendarOpen] = useState(false); + const [mid, setMid] = useState('nictest001m') + const [submallId, setSubmallId] = useState(''); + const [disbursementAmount, setDisbursementAmount] = useState(0); + const [settlementDate, setSettlementDate] = useState(''); + + const { mutateAsync: extensionPayoutRequest } = useExtensionPayoutRequestMutation(); + useSetHeaderTitle('지급대행 신청'); - useSetHeaderType(HeaderType.LeftArrow); + useSetHeaderType(HeaderType.RightClose); useSetFooterMode(false); useSetOnBack(() => { navigate(PATHS.additionalService.payout.list); }); + const callExtensionPayoutRequest = () => { + let params: ExtensionPayoutRequestParams = { + mid: mid, + submallId: submallId, + disbursementAmount: disbursementAmount, + settlementDate: settlementDate, + }; + extensionPayoutRequest(params).then((rs: ExtensionPayoutRequestResponse) => { + navigate(PATHS.additionalService.payout.list); + }); + }; + + const setNewDate = (date: string) => { + setSettlementDate(date); + setCalendarOpen(false); + }; + const onClickToOpenCalendar = () => { + setCalendarOpen(true); + }; return ( <>
@@ -31,8 +62,8 @@ export const PayoutRequestPage = () => {
setSubmallId(e.target.value) } />
@@ -41,8 +72,8 @@ export const PayoutRequestPage = () => {
setDisbursementAmount(parseInt(e.target.value)) } />
@@ -54,11 +85,12 @@ export const PayoutRequestPage = () => { className="date-input" type="text" placeholder="날짜 선택" - value="2025.06.08" + value={ settlementDate } />
+
+ +
+ ); }; \ No newline at end of file diff --git a/src/shared/ui/calendar/nice-calendar.tsx b/src/shared/ui/calendar/nice-calendar.tsx index 7aee69f..f5a79c6 100644 --- a/src/shared/ui/calendar/nice-calendar.tsx +++ b/src/shared/ui/calendar/nice-calendar.tsx @@ -9,8 +9,9 @@ import { CalendarType } from '@/entities/common/model/types'; interface NiceCalendarProps { calendarOpen: boolean; setCalendarOpen: (calendarOpen: boolean) => void; - startDate: string; - endDate: string; + startDate?: string; + endDate?: string; + singleDate?: string; calendarType: CalendarType; setNewDate: (date: string) => void; }; @@ -20,6 +21,7 @@ const NiceCalendar = ({ setCalendarOpen, startDate, endDate, + singleDate, calendarType, setNewDate }: NiceCalendarProps) => { @@ -37,14 +39,21 @@ const NiceCalendar = ({ const setMinMaxValueDate = () => { if(calendarType === CalendarType.Start){ setMinDate(undefined); - setMaxDate(new Date(endDate)); + if(!!endDate){ + setMaxDate(new Date(endDate)); + } setValueDate(startDate); } else if(calendarType === CalendarType.End){ - setMinDate(new Date(startDate)); + if(!!startDate){ + setMinDate(new Date(startDate)); + } setMaxDate(new Date()); setValueDate(endDate); } + else if(calendarType === CalendarType.Single){ + setValueDate(singleDate); + } }; const formatMonthYear = (locale: string | undefined, date: Date) => {