From 7d473cdc0ac5ad84c1d5488fad87249adc49e0ed Mon Sep 17 00:00:00 2001 From: "focp212@naver.com" Date: Mon, 22 Sep 2025 19:58:05 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9E=90=EA=B7=B8=E3=85=81=E3=85=87=E3=85=A3?= =?UTF-8?q?=E3=85=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/fund-account/constant.ts | 8 + .../model/fund-account/types.ts | 16 +- .../additional-service/model/types.ts | 5 +- .../ui/fund-account/transfer-list-wrap.tsx | 158 ++++++++++++++++-- src/entities/settlement/ui/list-wrap.tsx | 4 +- .../additional-service/payout/list-page.tsx | 4 +- 6 files changed, 166 insertions(+), 29 deletions(-) diff --git a/src/entities/additional-service/model/fund-account/constant.ts b/src/entities/additional-service/model/fund-account/constant.ts index e69de29..fc86209 100644 --- a/src/entities/additional-service/model/fund-account/constant.ts +++ b/src/entities/additional-service/model/fund-account/constant.ts @@ -0,0 +1,8 @@ +import { FundAccountStatus } from './types'; + +export const FundAccountStatusBtnGroup = [ + {name: '전체', value: FundAccountStatus.ALL}, + {name: '성공', value: FundAccountStatus.SUCCESS}, + {name: '실패', value: FundAccountStatus.FAIL}, + {name: '중지', value: FundAccountStatus.PENDING}, +]; \ No newline at end of file diff --git a/src/entities/additional-service/model/fund-account/types.ts b/src/entities/additional-service/model/fund-account/types.ts index f1a7ac7..db1ed6e 100644 --- a/src/entities/additional-service/model/fund-account/types.ts +++ b/src/entities/additional-service/model/fund-account/types.ts @@ -44,14 +44,14 @@ export interface FundAccountTransferContent { items: Array; }; export interface FundAccountTransferContentItem { - tid: string; - requestDate: string; - transferAmount: number; - receiveBankName: string; - receiveAccountNo: string; - receiveAccountName: string; - status: FundAccountStatus; - processDate: string; + tid?: string; + requestDate?: string; + transferAmount?: number; + receiveBankName?: string; + receiveAccountNo?: string; + receiveAccountName?: string; + status?: FundAccountStatus; + processDate?: string; }; export interface ExtensionFundAccountTransferExcelParams { mid: string; diff --git a/src/entities/additional-service/model/types.ts b/src/entities/additional-service/model/types.ts index e8717c8..51a6aa1 100644 --- a/src/entities/additional-service/model/types.ts +++ b/src/entities/additional-service/model/types.ts @@ -1,6 +1,7 @@ import { DefaulResponsePagination, DefaultRequestPagination } from '@/entities/common/model/types'; import { PayoutContent } from './payout/types'; import { P } from 'node_modules/framer-motion/dist/types.d-Cjd591yU'; +import { FundAccountTransferContentItem } from './fund-account/types'; // ======================================== // 공통 Enums 및 타입들 @@ -365,8 +366,8 @@ export interface SettlementAgencyBottomAgreeProps { export interface ListItemProps extends KeyInPaymentListItem, AccountHolderSearchListItem, AccountHolderAuthListItem,LinkPaymentHistoryListItem, - LinkPaymentWaitListItem, - PayoutContent { + LinkPaymentWaitListItem, PayoutContent, + FundAccountTransferContentItem { additionalServiceCategory?: AdditionalServiceCategory; mid?: string } diff --git a/src/entities/additional-service/ui/fund-account/transfer-list-wrap.tsx b/src/entities/additional-service/ui/fund-account/transfer-list-wrap.tsx index ecec2fd..d65ce88 100644 --- a/src/entities/additional-service/ui/fund-account/transfer-list-wrap.tsx +++ b/src/entities/additional-service/ui/fund-account/transfer-list-wrap.tsx @@ -1,6 +1,129 @@ -import { IMAGE_ROOT } from "@/shared/constants/common"; +import { SortByKeys } from '@/entities/common/model/types'; +import { IMAGE_ROOT } from '@/shared/constants/common'; +import { useNavigate } from '@/shared/lib/hooks'; +import { useEffect, useState } from 'react'; +import { + ExtensionFundAccountTransferExcelParams, + ExtensionFundAccountTransferExcelResponse, + ExtensionFundAccountTransferListParams, + ExtensionFundAccountTransferListResponse, + FundAccountStatus, + FundAccountTransferContent, + FundAccountTransferContentItem +} from '../../model/fund-account/types'; +import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant'; +import moment from 'moment'; +import { useExtensionFundAccountTransferListMutation } from '../../api/fund-account/use-extension-fund-account-transfer-list-mutation'; +import { ListDateGroup } from '../list-date-group'; +import { AdditionalServiceCategory } from '../../model/types'; +import { SortOptionsBox } from '@/entities/common/ui/sort-options-box'; +import { useExtensionFundAccountTransferExcelMutation } from '../../api/fund-account/use-extension-fund-account-transfer-excel-mutation'; +import { FundAccountStatusBtnGroup } from '../../model/fund-account/constant'; export const FundAccountTransferListWrap = () => { + 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 [fromDate, setFromDate] = useState(moment().format('YYYYMMDD')); + const [toDate, setToDate] = useState(moment().format('YYYYMMDD')); + const [status, setStatus] = useState(FundAccountStatus.ALL); + + const { mutateAsync: extensionFundAccountTransferList } = useExtensionFundAccountTransferListMutation(); + const { mutateAsync: extensionFundAccountTransferExcel } = useExtensionFundAccountTransferExcelMutation(); + const callList = (option?: { + sortBy?: string, + val?: string + }) => { + + pageParam.sortBy = (option?.sortBy)? option.sortBy: sortBy; + setPageParam(pageParam); + + let params: ExtensionFundAccountTransferListParams = { + mid: mid, + fromDate: fromDate, + toDate: toDate, + status: status, + pagination: pageParam + }; + + extensionFundAccountTransferList(params).then((rs: ExtensionFundAccountTransferListResponse) => { + console.log(rs); + setListItems(assembleData(rs.content)); + }); + + }; + + const callDownloadExcel = () => { + let params: ExtensionFundAccountTransferExcelParams = { + mid: mid, + fromDate: fromDate, + toDate: toDate, + status: status, + }; + extensionFundAccountTransferExcel(params).then((rs: ExtensionFundAccountTransferExcelResponse) => { + + }); + }; + + const assembleData = (content: Array) => { + let data: any = {}; + if(content && !!content[0] && content.length > 0){ + let items: Array = content[0].items; + for(let i=0;i { + callDownloadExcel(); + }; + + const onClickToOpenFilter = () => { + setFilterOn(!filterOn); + }; + + const onClickToSort = (sort: SortByKeys) => { + setSortBy(sort); + callList({sortBy: sort}); + }; + const onClickToStatus = (val: FundAccountStatus) => { + setStatus(val); + callList({val: val}); + }; + + const getListDateGroup = () => { + let rs = []; + if(Object.keys(listItems).length > 0){ + for (const [key, value] of Object.entries(listItems)) { + rs.push( + + ); + } + } + return rs; + }; + + useEffect(() => { + callList(); + }, []); return ( <> @@ -8,14 +131,15 @@ export const FundAccountTransferListWrap = () => {
@@ -47,17 +172,20 @@ export const FundAccountTransferListWrap = () => {
-
- - | - -
+
-
- 전체 - 성공 - 실패 -
+ { + FundAccountStatusBtnGroup.map((value, index) => ( + onClickToStatus(value.value) } + >{ value.name } + )) + }
diff --git a/src/entities/settlement/ui/list-wrap.tsx b/src/entities/settlement/ui/list-wrap.tsx index b296f7c..a737f5a 100644 --- a/src/entities/settlement/ui/list-wrap.tsx +++ b/src/entities/settlement/ui/list-wrap.tsx @@ -159,7 +159,7 @@ export const ListWrap = ({ } return data; }; - const onCliCkToSort = (sort: SortByKeys) => { + const onClickToSort = (sort: SortByKeys) => { setSortBy(sort); if(periodType === SettlementPeriodType.SETTLEMENT_DATE){ callSettlementList({sortBy: sort}); @@ -309,7 +309,7 @@ export const ListWrap = ({
diff --git a/src/pages/additional-service/payout/list-page.tsx b/src/pages/additional-service/payout/list-page.tsx index 3a26aaf..7af75e8 100644 --- a/src/pages/additional-service/payout/list-page.tsx +++ b/src/pages/additional-service/payout/list-page.tsx @@ -188,22 +188,22 @@ export const PayoutListPage = () => {