From 4f977679995dc8f6bb62f7edb192b0a69f073de2 Mon Sep 17 00:00:00 2001 From: HyeonJongKim Date: Wed, 17 Sep 2025 11:17:06 +0900 Subject: [PATCH] =?UTF-8?q?-=20=EB=B6=80=EA=B0=80=EC=84=9C=EB=B9=84?= =?UTF-8?q?=EC=8A=A4=20=EA=B3=B5=ED=86=B5=20ListDateGroupProps,ListItemPro?= =?UTF-8?q?ps=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 | 86 ++++++++ .../fund-transfer-request-list-wrap.tsx | 0 .../fund-transfer-result-inquiry-wrap.tsx | 0 .../{ => fund-transfer}/fund-transfer-tab.tsx | 2 +- .../{ => filter}/key-in-payment-filter.tsx | 2 +- .../ui/key-in-payment/key-in-payment-item.tsx | 0 .../ui/key-in-payment/key-in-payment-list.tsx | 0 .../link-payment/link-payment-date-group.tsx | 58 ----- .../ui/link-payment/link-payment-list.tsx | 41 ---- .../link-payment-pending-date-group.tsx | 56 ----- .../link-payment-pending-list.tsx | 17 +- .../link-payment-pending-send-wrap.tsx | 5 +- ...=> link-payment-shipping-history-item.tsx} | 0 .../link-payment-shipping-history-list.tsx | 29 +++ .../link-payment-shipping-history-wrap.tsx | 9 +- .../additional-service/ui/list-date-group.tsx | 67 ++++++ .../additional-service/ui/list-item.tsx | 198 ++++++++++++++++++ .../settlement-agency-bottom-agree.tsx | 2 +- .../settlement-agency-deposit-wrap.tsx | 0 .../settlement-agency-manage-wrap.tsx | 0 .../settlement-agency-member-wrap.tsx | 0 .../settlement-agency-tab.tsx | 2 +- .../fund-transfer/request-list-page.tsx | 4 +- .../fund-transfer/result-inquiry-page.tsx | 4 +- .../key-in-payment/key-in-payment-page.tsx | 2 +- .../settlement-agency/deposit-page.tsx | 4 +- .../settlement-agency/detail-page.tsx | 2 +- .../settlement-agency/manage-page.tsx | 4 +- .../settlement-agency/member-page.tsx | 4 +- 29 files changed, 407 insertions(+), 191 deletions(-) rename src/entities/additional-service/ui/{ => fund-transfer}/fund-transfer-request-list-wrap.tsx (100%) rename src/entities/additional-service/ui/{ => fund-transfer}/fund-transfer-result-inquiry-wrap.tsx (100%) rename src/entities/additional-service/ui/{ => fund-transfer}/fund-transfer-tab.tsx (97%) rename src/entities/additional-service/ui/key-in-payment/{ => filter}/key-in-payment-filter.tsx (99%) create mode 100644 src/entities/additional-service/ui/key-in-payment/key-in-payment-item.tsx create mode 100644 src/entities/additional-service/ui/key-in-payment/key-in-payment-list.tsx delete mode 100644 src/entities/additional-service/ui/link-payment/link-payment-date-group.tsx delete mode 100644 src/entities/additional-service/ui/link-payment/link-payment-list.tsx delete mode 100644 src/entities/additional-service/ui/link-payment/link-payment-pending-date-group.tsx rename src/entities/additional-service/ui/link-payment/{link-payment-item.tsx => link-payment-shipping-history-item.tsx} (100%) create mode 100644 src/entities/additional-service/ui/link-payment/link-payment-shipping-history-list.tsx create mode 100644 src/entities/additional-service/ui/list-date-group.tsx create mode 100644 src/entities/additional-service/ui/list-item.tsx rename src/entities/additional-service/ui/{ => settlement-agency}/settlement-agency-bottom-agree.tsx (97%) rename src/entities/additional-service/ui/{ => settlement-agency}/settlement-agency-deposit-wrap.tsx (100%) rename src/entities/additional-service/ui/{ => settlement-agency}/settlement-agency-manage-wrap.tsx (100%) rename src/entities/additional-service/ui/{ => settlement-agency}/settlement-agency-member-wrap.tsx (100%) rename src/entities/additional-service/ui/{ => settlement-agency}/settlement-agency-tab.tsx (98%) diff --git a/src/entities/additional-service/model/types.ts b/src/entities/additional-service/model/types.ts index 16cf00e..c6f9be1 100644 --- a/src/entities/additional-service/model/types.ts +++ b/src/entities/additional-service/model/types.ts @@ -68,6 +68,92 @@ export interface SortOptionsBoxProps { sortBy: SortByKeys; onClickToSort: (sortBy: SortByKeys) => void; }; + +// 부가서비스 카테고리 enum +export enum AdditionalServiceCategory { + KeyInPayment = 'KeyInPayment', + AccountHolderSearch = 'AccountHolderSearch', + LinkPaymentShipping = 'LinkPaymentShipping', + LinkPaymentPending = 'LinkPaymentPending', + FundTransfer = 'FundTransfer', + SettlementAgency = 'SettlementAgency', +} + +// 각 서비스별 개별 타입들 +export interface KeyInPaymentListItem { + tid?: string; + mid?: string; + stateDate?: string; + stateCode?: string; + stateName?: string; + installmentMonth?: string; + serviceCode?: string; + serviceName?: string; + serviceDetailName?: string; + goodsAmount?: number; +} + +export interface AccountHolderSearchListItem { + requestId?: string; + requestDate?: string; + bank?: string; + accountNumber?: string; + accountHolder?: string; + processResult?: string; +} + +export interface LinkPaymentShippingListItem { + transactionId?: string; + customerName?: string; + status?: string; + channel?: string; + amount?: number; + sendDate?: string; + transactionDate?: string; +} + +export interface LinkPaymentPendingListItem { + transactionId?: string; + customerName?: string; + status?: string; + channel?: string; + amount?: number; + requestDate?: string; +} + +// 공통 ListItemProps (transaction과 동일한 패턴) +export interface ListItemProps extends KeyInPaymentListItem, AccountHolderSearchListItem, LinkPaymentShippingListItem, LinkPaymentPendingListItem { + additionalServiceCategory?: AdditionalServiceCategory; +} + +// 공통 ListDateGroupProps +export interface ListDateGroupProps { + additionalServiceCategory?: AdditionalServiceCategory; + date?: string; + items?: Array; +} +// 공통 리스트 Props +export interface AdditionalServiceListProps { + additionalServiceCategory: AdditionalServiceCategory; + listItems: Record>; +} +export interface LinkPaymentShippingListProps { + additionalServiceCategory: AdditionalServiceCategory; + listItems: Record>; +} +export interface LinkPaymentPendingListProps { + additionalServiceCategory: AdditionalServiceCategory; + listItems: Record>; +} +export interface AccountHolderSearchListProps { + additionalServiceCategory: AdditionalServiceCategory; + listItems: Record>; +} +export interface KeyInPaymentListProps { + additionalServiceCategory: AdditionalServiceCategory; + listItems: Record>; +} + export interface SettlementAgencyTabProps { activeTab: SettlementAgencyTabKeys; }; diff --git a/src/entities/additional-service/ui/fund-transfer-request-list-wrap.tsx b/src/entities/additional-service/ui/fund-transfer/fund-transfer-request-list-wrap.tsx similarity index 100% rename from src/entities/additional-service/ui/fund-transfer-request-list-wrap.tsx rename to src/entities/additional-service/ui/fund-transfer/fund-transfer-request-list-wrap.tsx diff --git a/src/entities/additional-service/ui/fund-transfer-result-inquiry-wrap.tsx b/src/entities/additional-service/ui/fund-transfer/fund-transfer-result-inquiry-wrap.tsx similarity index 100% rename from src/entities/additional-service/ui/fund-transfer-result-inquiry-wrap.tsx rename to src/entities/additional-service/ui/fund-transfer/fund-transfer-result-inquiry-wrap.tsx diff --git a/src/entities/additional-service/ui/fund-transfer-tab.tsx b/src/entities/additional-service/ui/fund-transfer/fund-transfer-tab.tsx similarity index 97% rename from src/entities/additional-service/ui/fund-transfer-tab.tsx rename to src/entities/additional-service/ui/fund-transfer/fund-transfer-tab.tsx index cd47251..721a4ad 100644 --- a/src/entities/additional-service/ui/fund-transfer-tab.tsx +++ b/src/entities/additional-service/ui/fund-transfer/fund-transfer-tab.tsx @@ -3,7 +3,7 @@ import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { FundTransferTabKeys, FundTransferTabProps -} from '../model/types'; +} from '../../model/types'; export const FundTransferTab = ({ activeTab }: FundTransferTabProps) => { diff --git a/src/entities/additional-service/ui/key-in-payment/key-in-payment-filter.tsx b/src/entities/additional-service/ui/key-in-payment/filter/key-in-payment-filter.tsx similarity index 99% rename from src/entities/additional-service/ui/key-in-payment/key-in-payment-filter.tsx rename to src/entities/additional-service/ui/key-in-payment/filter/key-in-payment-filter.tsx index f4d0e5c..2c02f8e 100644 --- a/src/entities/additional-service/ui/key-in-payment/key-in-payment-filter.tsx +++ b/src/entities/additional-service/ui/key-in-payment/filter/key-in-payment-filter.tsx @@ -11,7 +11,7 @@ import { FilterRangeAmount } from '@/shared/ui/filter/range-amount'; import { KeyInPaymentFilterProps, KeyInPaymentTransactionStatus -} from '../../model/types'; +} from '../../../model/types'; export const KeyInPaymentFilter = ({ filterOn, diff --git a/src/entities/additional-service/ui/key-in-payment/key-in-payment-item.tsx b/src/entities/additional-service/ui/key-in-payment/key-in-payment-item.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/entities/additional-service/ui/key-in-payment/key-in-payment-list.tsx b/src/entities/additional-service/ui/key-in-payment/key-in-payment-list.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/entities/additional-service/ui/link-payment/link-payment-date-group.tsx b/src/entities/additional-service/ui/link-payment/link-payment-date-group.tsx deleted file mode 100644 index d99a4a6..0000000 --- a/src/entities/additional-service/ui/link-payment/link-payment-date-group.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import moment from 'moment'; -import 'moment/dist/locale/ko'; -import { LinkPaymentItem } from './link-payment-item'; -import { JSX } from 'react'; - -interface LinkPaymentTransaction { - transactionId: string; - customerName: string; - status: string; - channel: string; - paymentMethod: string; - amount: number; -} - -interface LinkPaymentDateGroupProps { - date: string; - items: LinkPaymentTransaction[]; -} - -export const LinkPaymentDateGroup = ({ - date, - items -}: LinkPaymentDateGroupProps) => { - moment.locale('ko'); - const getStateDate = () => { - let stateDate = moment(date).format('YY.MM.DD(ddd)'); - return stateDate; - }; - - const getLinkPaymentItem = () => { - const rs: JSX.Element[] = []; - if (items && items.length > 0) { - items.forEach((item, index) => { - const key = 'LinkPaymentItem-' + index; - rs.push( - - ) - }); - } - - return rs; - }; - - return ( - <> -
{getStateDate()}
- {getLinkPaymentItem()} - - ); -}; \ No newline at end of file diff --git a/src/entities/additional-service/ui/link-payment/link-payment-list.tsx b/src/entities/additional-service/ui/link-payment/link-payment-list.tsx deleted file mode 100644 index e4094aa..0000000 --- a/src/entities/additional-service/ui/link-payment/link-payment-list.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import { LinkPaymentDateGroup } from './link-payment-date-group'; - -interface LinkPaymentTransaction { - transactionId: string; - customerName: string; - status: string; - channel: string; - paymentMethod: string; - amount: number; -} - -interface LinkPaymentListProps { - listItems: Record; -} - -export const LinkPaymentList = ({ - listItems -}: LinkPaymentListProps) => { - - const getListDateGroup = () => { - let rs = []; - for (const [key, value] of Object.entries(listItems)) { - rs.push( - - ); - } - return rs; - }; - - return ( - <> -
- {getListDateGroup()} -
- - ) -}; \ No newline at end of file diff --git a/src/entities/additional-service/ui/link-payment/link-payment-pending-date-group.tsx b/src/entities/additional-service/ui/link-payment/link-payment-pending-date-group.tsx deleted file mode 100644 index c481b4e..0000000 --- a/src/entities/additional-service/ui/link-payment/link-payment-pending-date-group.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import moment from 'moment'; -import 'moment/dist/locale/ko'; -import { LinkPaymentPendingItem } from './link-payment-pending-item'; -import { JSX } from 'react'; - -interface LinkPaymentPendingTransaction { - transactionId: string; - customerName: string; - status: string; - channel: string; - amount: number; -} - -interface LinkPaymentPendingDateGroupProps { - date: string; - items: LinkPaymentPendingTransaction[]; -} - -export const LinkPaymentPendingDateGroup = ({ - date, - items -}: LinkPaymentPendingDateGroupProps) => { - moment.locale('ko'); - const getStateDate = () => { - let stateDate = moment(date).format('YY.MM.DD(ddd)'); - return stateDate; - }; - - const getLinkPaymentPendingItem = () => { - const rs: JSX.Element[] = []; - if (items && items.length > 0) { - items.forEach((item, index) => { - const key = 'LinkPaymentPendingItem-' + index; - rs.push( - - ) - }); - } - - return rs; - }; - - return ( - <> -
{getStateDate()}
- {getLinkPaymentPendingItem()} - - ); -}; \ No newline at end of file diff --git a/src/entities/additional-service/ui/link-payment/link-payment-pending-list.tsx b/src/entities/additional-service/ui/link-payment/link-payment-pending-list.tsx index ec705ec..bb9accc 100644 --- a/src/entities/additional-service/ui/link-payment/link-payment-pending-list.tsx +++ b/src/entities/additional-service/ui/link-payment/link-payment-pending-list.tsx @@ -1,16 +1,5 @@ -import { LinkPaymentPendingDateGroup } from './link-payment-pending-date-group'; - -interface LinkPaymentPendingTransaction { - transactionId: string; - customerName: string; - status: string; - channel: string; - amount: number; -} - -interface LinkPaymentPendingListProps { - listItems: Record; -} +import { LinkPaymentPendingListProps } from '../../model/types'; +import { ListDateGroup } from '../list-date-group'; export const LinkPaymentPendingList = ({ listItems @@ -20,7 +9,7 @@ export const LinkPaymentPendingList = ({ let rs = []; for (const [key, value] of Object.entries(listItems)) { rs.push( - { + additionalServiceCategory={AdditionalServiceCategory.LinkPaymentPending} + >
- + additionalServiceCategory={ AdditionalServiceCategory.LinkPaymentShipping } + >