From 020731dba56326e9bcd8fb1960dfa695d27582ba Mon Sep 17 00:00:00 2001 From: HyeonJongKim Date: Mon, 15 Sep 2025 13:40:44 +0900 Subject: [PATCH] =?UTF-8?q?KeyIn=20=EA=B2=B0=EC=A0=9C=20Sort=20=EC=BB=B4?= =?UTF-8?q?=ED=8F=AC=EB=84=8C=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../additional-service/model/types.ts | 2 +- .../key-in-payment/key-in-payment-page.tsx | 75 +++++++++++++++---- 2 files changed, 62 insertions(+), 15 deletions(-) diff --git a/src/entities/additional-service/model/types.ts b/src/entities/additional-service/model/types.ts index a74141d..16cf00e 100644 --- a/src/entities/additional-service/model/types.ts +++ b/src/entities/additional-service/model/types.ts @@ -369,9 +369,9 @@ export interface KeyInPaymentFilterProps extends FilterProps { setMid: (mid: string) => void; setStartDate: (startDate: string) => void; setEndDate: (endDate: string) => void; + setTransactionStatus: (transactionStatus: KeyInPaymentTransactionStatus) => void; setMinAmount: (minAmount: string | number) => void; setMaxAmount: (maxAmount: string | number) => void; - setTransactionStatus: (transactionStatus: KeyInPaymentTransactionStatus) => void; } // 계좌성명 조회 필터 export interface AccountHolderSearchFilterProps extends FilterProps { diff --git a/src/pages/additional-service/key-in-payment/key-in-payment-page.tsx b/src/pages/additional-service/key-in-payment/key-in-payment-page.tsx index 0fef48b..602dad4 100644 --- a/src/pages/additional-service/key-in-payment/key-in-payment-page.tsx +++ b/src/pages/additional-service/key-in-payment/key-in-payment-page.tsx @@ -1,5 +1,5 @@ import moment from 'moment'; -import { useState } from 'react'; +import { useEffect, useState } from 'react'; import { IMAGE_ROOT } from '@/shared/constants/common'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { HeaderType } from '@/entities/common/model/types'; @@ -9,15 +9,28 @@ import { useSetFooterMode } from '@/widgets/sub-layout/use-sub-layout'; import { PATHS } from '@/shared/constants/paths'; +import { useExtensionKeyinDownloadExcelMutation } from '@/entities/additional-service/api/use-extension-keyin-download-excel-mutation'; import { KeyInPaymentFilter } from '@/entities/additional-service/ui/key-in-payment/key-in-payment-filter'; -import { KeyInPaymentTransactionStatus,SortByKeys } from '@/entities/additional-service/model/types'; +import { KeyInPaymentTransactionStatus, SortByKeys } from '@/entities/additional-service/model/types'; +import { SortOptionsBox } from '@/entities/additional-service/ui/link-payment/sort-options-box'; +import { useExtensionKeyinListMutation } from '@/entities/additional-service/api/use-extension-keyin-list-mutation'; +import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constants'; + +const requestStatusBtnGroup = [ + { name: '전체', value: KeyInPaymentTransactionStatus.ALL }, + { name: '승인', value: KeyInPaymentTransactionStatus.APPROVE }, + { name: '전취소', value: KeyInPaymentTransactionStatus.BF_CANCEL }, + { name: '후취소', value: KeyInPaymentTransactionStatus.AF_CANCEL } +]; export const KeyInPaymentPage = () => { const { navigate } = useNavigate(); const [sortBy, setSortBy] = useState(SortByKeys.New); + const [listItems, setListItems] = useState({}); const [filterOn, setFilterOn] = useState(false); + const [pageParam, setPageParam] = useState(DEFAULT_PAGE_PARAM); const [mid, setMid] = useState('nictest001m'); const [startDate, setStartDate] = useState(moment().format('YYYY-MM-DD')); const [endDate, setEndDate] = useState(moment().format('YYYY-MM-DD')); @@ -30,21 +43,50 @@ export const KeyInPaymentPage = () => { useSetHeaderType(HeaderType.LeftArrow); useSetFooterMode(false); + const { mutateAsync: keyinList } = useExtensionKeyinListMutation(); + const { mutateAsync: downloadExcel } = useExtensionKeyinDownloadExcelMutation(); const onClickToOpenFilter = () => { setFilterOn(!filterOn); }; + const onClickToDownloadExcel = () => { + // downloadExcel({ + // mid, + // fromDate: '', + // toDate: '', + // paymentStatus: '', + // minAmount: 0, + // maxAmount: 0 + // }).then((rs) => { + + // }); + }; + + const onClickToSort = (sort: SortByKeys) => { + setSortBy(sort); + // TODO : callList 구현 + }; + + const onClickToTransactionStatus = (val: KeyInPaymentTransactionStatus) => { + setTransactionStatus(val); + // TODO : callList 구현 + }; + const onClickToNavigation = () => { navigate(PATHS.additionalService.keyInPayment.request) } + useEffect(() => { + // TODO : callList(); + }, []); + return ( <>
-
+
{ 다운로드 onClickToDownloadExcel()} />
-
-
- - | - -
+
+
- 전체 - 승인 - 전취소 - 후취소 + { + requestStatusBtnGroup.map((value, index) => ( + onClickToTransactionStatus(value.value)} + >{value.name} + )) + }
-
+