From 3b89dbdbb698726e2a3bc17fb2a75f85ffc3858a Mon Sep 17 00:00:00 2001 From: HyeonJongKim Date: Fri, 12 Sep 2025 17:32:48 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B3=84=EC=A2=8C=EC=84=B1=EB=AA=85=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20=ED=8E=98=EC=9D=B4=EC=A7=80=20UI=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20(=EB=82=B4=EC=97=AD,=EC=83=81=EC=84=B8,?= =?UTF-8?q?=EC=9A=94=EC=B2=AD,=ED=95=84=ED=84=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../additional-service/model/types.ts | 42 +++- .../account-holder-search-filter.tsx | 210 ++++++++++++++++++ .../link-payment/apply/link-payment-step1.tsx | 36 +-- .../account-holder-search-page.tsx | 202 ++++++++++++++++- .../account-holder-search/detail-page.tsx | 74 ++++++ .../account-holder-search/request-page.tsx | 101 +++++++++ .../additional-service-pages.tsx | 18 +- .../key-in-payment/requeset-page.tsx | 4 +- .../transaction/cash-receipt/list-page.tsx | 210 +++++++++--------- src/shared/constants/paths.ts | 16 +- src/shared/constants/route-names.ts | 11 +- src/shared/ui/menu/index.tsx | 2 +- 12 files changed, 782 insertions(+), 144 deletions(-) create mode 100644 src/entities/additional-service/ui/account-holder-search/account-holder-search-filter.tsx create mode 100644 src/pages/additional-service/account-holder-search/detail-page.tsx create mode 100644 src/pages/additional-service/account-holder-search/request-page.tsx diff --git a/src/entities/additional-service/model/types.ts b/src/entities/additional-service/model/types.ts index c50ee68..ecbff8c 100644 --- a/src/entities/additional-service/model/types.ts +++ b/src/entities/additional-service/model/types.ts @@ -23,6 +23,16 @@ export enum SortByKeys { New = 'New', Amount = 'Amount', }; +export enum AccountHolderSearchType { + ALL = 'ALL', + ACCOUNT_HOLDER = 'ACCOUNT_HOLDER', + ACCOUNT_NUMBER = 'ACCOUNT_NUMBER' +}; +export enum AccountHolderSearchProcessResult { + ALL = 'ALL', + SUCCESS = 'SUCCESS', + FAILURE = 'FAILURE' +}; export interface SortOptionsBoxProps { sortBy: SortByKeys; onClickToSort: (sortBy: SortByKeys) => void; @@ -232,7 +242,7 @@ export interface ExtensionAlimtalkSettingSaveResponse { }; export interface ExtensionAlimtalkSettingDetailParams extends ExtensionRequestParams { - + }; export interface ExtensionAlimtalkSettingDetailItem { sendMerchantInfo: SendMerchantInfoItem; @@ -311,10 +321,34 @@ export interface SettlementAgencyBottomAgreeProps { bottomAgreeOn: boolean; setBottomAgreeOn: (bottomAgreeOn: boolean) => void; }; -export interface LinkPaymentFilterProps { - filterOn: boolean; - setFilterOn: (filterOn: boolean) => void; +/** + * FilterProps + */ +export interface FilterProps { + filterOn: boolean; + setFilterOn: (filterOn: boolean) => void; }; + +export interface AccountHolderSearchFilterProps extends FilterProps { + mid: string; + searchType: AccountHolderSearchType; + searchKeyword: string; + startDate: string; + endDate: string; + bank: string; + processResult: AccountHolderSearchProcessResult; + setMid: (mid: string) => void; + setSearchType: (searchType: AccountHolderSearchType) => void; + setSearchKeyword: (searchKeyWorld: string) => void; + setStartDate: (startDate: string) => void; + setEndDate: (endDate: string) => void; + setBank: (bank: string) => void; + setProcessResult: (processResult: AccountHolderSearchProcessResult) => void; +} +export interface LinkPaymentFilterProps extends FilterProps { + +}; + export enum DetailInfoSectionKeys { Payment = 'Payment', Deets = 'Deets' diff --git a/src/entities/additional-service/ui/account-holder-search/account-holder-search-filter.tsx b/src/entities/additional-service/ui/account-holder-search/account-holder-search-filter.tsx new file mode 100644 index 0000000..c2329fa --- /dev/null +++ b/src/entities/additional-service/ui/account-holder-search/account-holder-search-filter.tsx @@ -0,0 +1,210 @@ +import moment from 'moment'; +import { IMAGE_ROOT } from '@/shared/constants/common'; +import { motion } from 'framer-motion'; +import { ChangeEvent, useState } from 'react'; +import { + AccountHolderSearchType, + AccountHolderSearchFilterProps, + AccountHolderSearchProcessResult +} from '../../model/types'; +import { FilterDateOptions } from '@/entities/common/model/types'; +import { FilterCalendar } from '@/shared/ui/filter/filter-calendar'; +import { FilterButtonGroups } from '@/shared/ui/filter/button-groups'; + +export const AccountHolderSearchFilter = ({ + filterOn, + setFilterOn, + mid, + searchType, + searchKeyword, + startDate, + endDate, + bank, + processResult, + setMid, + setSearchType, + setSearchKeyword, + setStartDate, + setEndDate, + setBank, + setProcessResult +}: AccountHolderSearchFilterProps) => { + + const [filterMid, setFilterMid] = useState(mid); + const [filterSearchType, setFilterSearchType] = useState(searchType); + const [filterSearchKeyword, setFilterSearchKeyword] = useState(searchKeyword); + const [filterStartDate, setFilterStartDate] = useState(startDate); + const [filterEndDate, setFilterEndDate] = useState(endDate); + const [filterBank, setFilterBank] = useState(bank) + const [filterProcessResult, setFilterProcessResult] = useState(processResult); + const [dateReadOnly, setDateReadyOnly] = useState(true); + const [filterDateOptionsBtn, setFilterDateOptionsBtn] = useState(FilterDateOptions.Input); + + const [calendarOpen, setCalendarOpen] = useState(false); + + const variants = { + hidden: { x: '100%' }, + visible: { x: '0%' }, + }; + + const onClickToClose = () => { + setFilterOn(false); + }; + const setFilterDate = (dateOptions: FilterDateOptions) => { + if (dateOptions === FilterDateOptions.Today) { + setFilterStartDate(moment().format('YYYY-MM-DD')); + setFilterEndDate(moment().format('YYYY-MM-DD')); + setDateReadyOnly(true); + setFilterDateOptionsBtn(FilterDateOptions.Today); + } + else if (dateOptions === FilterDateOptions.Week) { + setFilterStartDate(moment().subtract(1, 'week').format('YYYY-MM-DD')); + setFilterEndDate(moment().format('YYYY-MM-DD')); + setDateReadyOnly(true); + setFilterDateOptionsBtn(FilterDateOptions.Week); + } + else if (dateOptions === FilterDateOptions.Month) { + setFilterStartDate(moment().subtract(1, 'month').format('YYYY-MM-DD')); + setFilterEndDate(moment().format('YYYY-MM-DD')); + setDateReadyOnly(true); + setFilterDateOptionsBtn(FilterDateOptions.Month); + } + else if (dateOptions === FilterDateOptions.Input) { + setDateReadyOnly(false); + setFilterDateOptionsBtn(FilterDateOptions.Input); + } + }; + const onClickToOpenCalendar = () => { + if (!dateReadOnly) { + setCalendarOpen(true); + } + else { + setCalendarOpen(false); + } + }; + + const setNewDate = (newDate: any) => { + console.log(newDate) + }; + + const onClickToSetFilter = () => { + setMid(filterMid); + setSearchType(filterSearchType); + setSearchKeyword(filterSearchKeyword); + setStartDate(filterStartDate); + setEndDate(filterEndDate); + setBank(filterBank); + setProcessResult(filterProcessResult); + }; + + let processResultBtnGroup = [ + { name: '전체', value: AccountHolderSearchProcessResult.ALL }, + { name: '성공', value: AccountHolderSearchProcessResult.SUCCESS }, + { name: '실패', value: AccountHolderSearchProcessResult.FAILURE }, + ]; + return ( + <> + +
+
+
필터
+
+ +
+
+ +
+
+
가맹점
+
+ +
+
+ +
+
예금주/계좌번호
+
+ + ) => setFilterSearchKeyword(e.target.value)} + /> +
+
+ + +
+
은행
+
+ +
+
+ + +
+
+ +
+
+
+ + ) + +} \ No newline at end of file diff --git a/src/entities/additional-service/ui/link-payment/apply/link-payment-step1.tsx b/src/entities/additional-service/ui/link-payment/apply/link-payment-step1.tsx index 4d1bfb8..efecb06 100644 --- a/src/entities/additional-service/ui/link-payment/apply/link-payment-step1.tsx +++ b/src/entities/additional-service/ui/link-payment/apply/link-payment-step1.tsx @@ -36,7 +36,7 @@ export const LinkPaymentStep1 = () => {
가맹점
- handleInputChange('productName', e.target.value)} /> @@ -87,9 +87,9 @@ export const LinkPaymentStep1 = () => {
상품가격
- handleInputChange('productPrice', e.target.value)} /> @@ -99,9 +99,9 @@ export const LinkPaymentStep1 = () => {
상품 주문번호
- handleInputChange('orderNumber', e.target.value)} /> @@ -113,15 +113,15 @@ export const LinkPaymentStep1 = () => {
- handleInputChange('validDate', e.target.value)} /> diff --git a/src/pages/additional-service/account-holder-search/account-holder-search-page.tsx b/src/pages/additional-service/account-holder-search/account-holder-search-page.tsx index c7ca6d3..1b627f1 100644 --- a/src/pages/additional-service/account-holder-search/account-holder-search-page.tsx +++ b/src/pages/additional-service/account-holder-search/account-holder-search-page.tsx @@ -1,18 +1,212 @@ +import moment from 'moment'; +import { PATHS } from '@/shared/constants/paths'; +import { useEffect, useState } from 'react'; +import { useNavigate } from '@/shared/lib/hooks/use-navigate'; +import { IMAGE_ROOT } from '@/shared/constants/common'; import { HeaderType } from '@/entities/common/model/types'; -import { - useSetHeaderTitle, - useSetHeaderType, - useSetFooterMode +import { useDownloadExcelMutation } from '@/entities/transaction/api/use-download-excel-mutation'; +import { AccountHolderSearchFilter } from '@/entities/additional-service/ui/account-holder-search/account-holder-search-filter'; +import { AccountHolderSearchProcessResult, AccountHolderSearchType } from '@/entities/additional-service/model/types'; +import { + useSetHeaderTitle, + useSetHeaderType, + useSetFooterMode } from '@/widgets/sub-layout/use-sub-layout'; + export const AccountHolderSearchPage = () => { + const { navigate } = useNavigate(); + + const [filterOn, setFilterOn] = useState(false); + const [mid, setMid] = useState('nictest001m'); + const [searchType, setSearchType] = useState(AccountHolderSearchType.ALL) + const [searchKeyword, setSearchKeyword] = useState(''); + const [startDate, setStartDate] = useState(moment().format('YYYY-MM-DD')); + const [endDate, setEndDate] = useState(moment().format('YYYY-MM-DD')); + const [bank, setBank] = useState(''); + const [processResult, setProcessResult] = useState(AccountHolderSearchProcessResult.ALL); + useSetHeaderTitle('계좌성명조회'); useSetHeaderType(HeaderType.LeftArrow); useSetFooterMode(true); + const { mutateAsync: downloadExcel } = useDownloadExcelMutation(); + + const transactionData = [ + { + id: '1', + accountNumber: '10002464******', + time: '20:00', + bank: '우리은행', + status: 'success', + statusColor: 'blue', + className: 'approved' + }, + { + id: '2', + accountNumber: '10002464******', + time: '20:00', + details: '결제완료ㅣ결제성공ㅣ호전환', + status: 'success', + statusColor: 'gray', + className: 'refund' + }, + { + id: '3', + accountNumber: '10002464******', + time: '20:00', + details: '결제완료ㅣ결제성공ㅣ호전환', + status: 'success', + statusColor: 'blue', + className: 'approved' + }, + { + id: '4', + accountNumber: '10002464******', + time: '20:00', + details: '미결제ㅣ취소완료ㅣSMS', + status: 'success', + statusColor: 'gray', + className: 'refund' + }, + { + id: '5', + accountNumber: '10002464******', + time: '20:00', + details: '미결제ㅣ기간만료ㅣSMS', + status: 'fail', + statusColor: 'blue', + className: 'approved' + } + ]; + + const onClickToOpenFilter = () => { + setFilterOn(!filterOn); + }; + + const onClickToDownloadExcel = () => { + // tid??? 확인 필요 + downloadExcel({ + // tid: tid + }).then((rs) => { + + }); + }; + + const onClickToNavigation = () => { + navigate(PATHS.additionalService.accountHolderSearch.request); + }; + + const onClickToGoDetail = (tid?: string) => { + navigate(PATHS.additionalService.accountHolderSearch.detail); + }; + return ( <> +
+
+
+
+
+
+ + +
+ +
+
+
+
+ + | + +
+
+
+ 전체 + 성공 + 실패 +
+
+
+ +
+
+
25.06.08(일)
+ {transactionData.map((item) => ( +
onClickToGoDetail(item.id)} + > +
+
+
+
+
{item.accountNumber}
+
+ + {item.time}ㅣ{item.bank || item.details} + +
+
+
+ {item.status === 'success' ? '성공' : '실패'} +
+
+ ))} +
+
+
+ +
+
+
+
+ ); }; \ No newline at end of file diff --git a/src/pages/additional-service/account-holder-search/detail-page.tsx b/src/pages/additional-service/account-holder-search/detail-page.tsx new file mode 100644 index 0000000..1189f8b --- /dev/null +++ b/src/pages/additional-service/account-holder-search/detail-page.tsx @@ -0,0 +1,74 @@ +import { useState } from 'react'; +import { PATHS } from '@/shared/constants/paths'; +import { useNavigate } from '@/shared/lib/hooks/use-navigate'; +import { IMAGE_ROOT } from '@/shared/constants/common'; +import { HeaderType } from '@/entities/common/model/types'; +import { + useSetHeaderTitle, + useSetHeaderType, + useSetFooterMode, + useSetOnBack +} from '@/widgets/sub-layout/use-sub-layout'; + +export const AccountHolderSearchDetailPage = () => { + const { navigate } = useNavigate(); + + useSetHeaderTitle('계좌성명조회 상세'); + useSetHeaderType(HeaderType.LeftArrow); + useSetFooterMode(false); + useSetOnBack(() => { + navigate(PATHS.additionalService.accountHolderSearch.list); + }); + + return ( + <> +
+
+
+
+
+ 10002464****** +
+
기업은행
+
2025.09.12 16:12:37
+
+
+
+
상세 정보
+
    +
  • + 예금주 +   +
  • +
  • + 조회 일시 + 2025.09.12 16:12:37 +
  • +
  • + 결과 + 실패 +
  • +
  • + 실패사유 + 기관미개시 +
  • +
  • + 은행 + 기업은행 +
  • +
  • + 계좌번호 + 1002464642587 +
  • +
  • + 요청구분 + API +
  • +
+
+
+
+
+ + ) +} \ No newline at end of file diff --git a/src/pages/additional-service/account-holder-search/request-page.tsx b/src/pages/additional-service/account-holder-search/request-page.tsx new file mode 100644 index 0000000..d538174 --- /dev/null +++ b/src/pages/additional-service/account-holder-search/request-page.tsx @@ -0,0 +1,101 @@ +import { useState } from 'react'; +import { PATHS } from '@/shared/constants/paths'; +import { useNavigate } from '@/shared/lib/hooks/use-navigate'; +import { IMAGE_ROOT } from '@/shared/constants/common'; +import { HeaderType } from '@/entities/common/model/types'; +import { + useSetHeaderTitle, + useSetHeaderType, + useSetFooterMode, + useSetOnBack +} from '@/widgets/sub-layout/use-sub-layout'; + +export const AccountHolderSearchRequestPage = () => { + const { navigate } = useNavigate(); + + + useSetHeaderTitle('계좌성명조회_신청'); + useSetHeaderType(HeaderType.LeftArrow); + useSetFooterMode(false); + useSetOnBack(() => { + navigate(PATHS.additionalService.accountHolderSearch.list); + }); + + const [formData, setFormData] = useState({ + mid: 'nictest001m', + bank: '', + accountNum: '' + }) + + const handleInputChange = (field: string, value: string) => { + setFormData(prev => ({ + ...prev, + [field]: value + })); + }; + + useSetOnBack(() => { + navigate(PATHS.additionalService.accountHolderSearch.list); + }); + + const onClickToRequest = () => { + navigate(PATHS.additionalService.accountHolderSearch.list) + }; + + return ( + <> +
+
+
+
+
+
+
가맹점
+
+ +
+
+ +
+
은행
+
+ +
+
+ +
+
계좌번호
+
+ +
+
+
+
+
+ +
+
+
+
+ + ) +} \ No newline at end of file diff --git a/src/pages/additional-service/additional-service-pages.tsx b/src/pages/additional-service/additional-service-pages.tsx index 0657885..90095ef 100644 --- a/src/pages/additional-service/additional-service-pages.tsx +++ b/src/pages/additional-service/additional-service-pages.tsx @@ -31,6 +31,8 @@ import { LinkPaymentDetailPage } from './link-payment/link-payment-detail-page'; import { LinkPaymentPendingDetailPage } from './link-payment/link-payment-pending-detail-page'; import { KeyInPaymentRequestPage } from './key-in-payment/requeset-page'; import { KeyInPaymentRequestSuccessPage } from './key-in-payment/request-success-page'; +import { AccountHolderSearchRequestPage } from './account-holder-search/request-page'; +import { AccountHolderSearchDetailPage } from './account-holder-search/detail-page'; export const AdditionalServicePages = () => { return ( @@ -44,15 +46,19 @@ export const AdditionalServicePages = () => { } /> - } /> - } /> - } /> + } /> + } /> + } /> } /> - } /> + + } /> + } /> + } /> + } /> - } /> + } /> } /> } /> } /> @@ -79,7 +85,7 @@ export const AdditionalServicePages = () => { } /> } /> - } /> + } /> diff --git a/src/pages/additional-service/key-in-payment/requeset-page.tsx b/src/pages/additional-service/key-in-payment/requeset-page.tsx index 6ebb90b..b573755 100644 --- a/src/pages/additional-service/key-in-payment/requeset-page.tsx +++ b/src/pages/additional-service/key-in-payment/requeset-page.tsx @@ -107,7 +107,7 @@ export const KeyInPaymentRequestPage = () => {
구매자 이메일 *
@@ -117,7 +117,7 @@ export const KeyInPaymentRequestPage = () => {
구매자 전화번호 *
diff --git a/src/pages/transaction/cash-receipt/list-page.tsx b/src/pages/transaction/cash-receipt/list-page.tsx index c235ea8..61fd49a 100644 --- a/src/pages/transaction/cash-receipt/list-page.tsx +++ b/src/pages/transaction/cash-receipt/list-page.tsx @@ -12,7 +12,7 @@ import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constants'; import { Filter } from '@/entities/transaction/ui/filter'; import { SortOptionsBox } from '@/entities/transaction/ui/sort-options-box'; import { HeaderType } from '@/entities/common/model/types'; -import { +import { useSetOnBack, useSetHeaderTitle, useSetHeaderType, @@ -20,22 +20,22 @@ import { } from '@/widgets/sub-layout/use-sub-layout'; const serviceCodes = [ - {name: '전체', key: 'all'}, - {name: '승인', key: 'approval'}, - {name: '취소', key: 'cancel'} + { name: '전체', key: 'all' }, + { name: '승인', key: 'approval' }, + { name: '취소', key: 'cancel' } ]; export const CashReceiptListPage = () => { const { navigate } = useNavigate(); - const [selectedServiceCode, setSelectedServiceCode] = useState('all'); + const [selectedServiceCode, setSelectedServiceCode] = useState('all'); const [sortBy, setSortBy] = useState(SortByKeys.New); const [listItems, setListItems] = useState({}); const [filterOn, setFilterOn] = useState(false); const [pageParam, setPageParam] = useState(DEFAULT_PAGE_PARAM); const [startDate, setStartDate] = useState(moment().subtract(1, 'month').format('YYYYMMDD')); const [endDate, setEndDate] = useState(moment().format('YYYYMMDD')); - + useSetHeaderTitle('현금영수증'); useSetHeaderType(HeaderType.LeftArrow); useSetOnBack(() => { @@ -45,70 +45,70 @@ export const CashReceiptListPage = () => { const { mutateAsync: cashReceiptList } = useCashReceiptListMutation(); const { mutateAsync: downloadExcel } = useDownloadExcelMutation(); - + const callList = (option?: { - sortBy?: string, - val?: string - }) => { - pageParam.sortBy = (option?.sortBy)? option.sortBy: sortBy; - setPageParam(pageParam); + sortBy?: string, + val?: string + }) => { + pageParam.sortBy = (option?.sortBy) ? option.sortBy : sortBy; + setPageParam(pageParam); let listParams = { - mid: 'string', - startDate: '2025-06-08', - endDate: '2025-06-08', - purposeType: 'ALL', - issueStatus: 'ALL', - processResult: 'ALL', + mid: 'string', + startDate: '2025-06-08', + endDate: '2025-06-08', + purposeType: 'ALL', + issueStatus: 'ALL', + processResult: 'ALL', pagination: pageParam - }; - - cashReceiptList(listParams).then((rs) => { + }; + + cashReceiptList(listParams).then((rs) => { console.log(rs) - setListItems(assembleData(rs.content)); - }); - - }; + setListItems(assembleData(rs.content)); + }); + + }; const assembleData = (content: Array) => { - let data: any = {}; - if(content && content.length > 0){ - for(let i=0;i 0) { + for (let i = 0; i < content?.length; i++) { + let groupDate = moment(content[i]?.transactionDateTime).format('YYYYMMDD'); + if (!!groupDate && !data.hasOwnProperty(groupDate)) { + data[groupDate] = []; + } + if (!!groupDate && data.hasOwnProperty(groupDate)) { + data[groupDate].push(content[i]); + } + } + } + return data; + }; const onClickToOpenFilter = () => { - setFilterOn(!filterOn); - }; - const onClickToDownloadExcel = () => { - // tid??? 확인 필요 - downloadExcel({ - // tid: tid - }).then((rs) => { + setFilterOn(!filterOn); + }; + const onClickToDownloadExcel = () => { + // tid??? 확인 필요 + downloadExcel({ + // tid: tid + }).then((rs) => { + + }); + }; + const onCliCkToSort = (sort: SortByKeys) => { + setSortBy(sort); + callList({ sortBy: sort }); + }; - }); - }; - const onCliCkToSort = (sort: SortByKeys) => { - setSortBy(sort); - callList({sortBy: sort}); - }; - const onClickToServiceCode = (val: string) => { - setSelectedServiceCode(val); - callList({val: val}); - }; + setSelectedServiceCode(val); + callList({ val: val }); + }; - useEffect(() => { - callList(); - }, []); + useEffect(() => { + callList(); + }, []); return ( <> @@ -118,26 +118,26 @@ export const CashReceiptListPage = () => {
-
@@ -145,19 +145,19 @@ export const CashReceiptListPage = () => { 승인 + suffix={'원'} + >
@@ -165,55 +165,55 @@ export const CashReceiptListPage = () => { 취소
- +
-
+ sortBy={sortBy} + onCliCkToSort={onCliCkToSort} + > +
- { - serviceCodes.map((value, index) => ( - onClickToServiceCode(value.key) } - >{ value.name } - )) - } + { + serviceCodes.map((value, index) => ( + onClickToServiceCode(value.key)} + >{value.name} + )) + }
- +
+ filterOn={filterOn} + setFilterOn={setFilterOn} + > ); }; \ No newline at end of file diff --git a/src/shared/constants/paths.ts b/src/shared/constants/paths.ts index b59b465..8574eee 100644 --- a/src/shared/constants/paths.ts +++ b/src/shared/constants/paths.ts @@ -173,7 +173,21 @@ export const PATHS: RouteNamesType = { ), }, smsPaymentNotification: generatePath(ROUTE_NAMES.additionalService.base, ROUTE_NAMES.additionalService.smsPaymentNotification), - accountHolderSearch: generatePath(ROUTE_NAMES.additionalService.base, ROUTE_NAMES.additionalService.accountHolderSearch), + accountHolderSearch: { + base: generatePath(`${ROUTE_NAMES.additionalService.base}${ROUTE_NAMES.additionalService.accountHolderSearch.base}`), + list: generatePath( + `${ROUTE_NAMES.additionalService.base}${ROUTE_NAMES.additionalService.accountHolderSearch.base}`, + ROUTE_NAMES.additionalService.accountHolderSearch.list + ), + detail: generatePath( + `${ROUTE_NAMES.additionalService.base}${ROUTE_NAMES.additionalService.accountHolderSearch.base}`, + ROUTE_NAMES.additionalService.accountHolderSearch.detail + ), + request: generatePath( + `${ROUTE_NAMES.additionalService.base}${ROUTE_NAMES.additionalService.accountHolderSearch.base}`, + ROUTE_NAMES.additionalService.accountHolderSearch.request, + ) + }, accountHolderAuth: generatePath(ROUTE_NAMES.additionalService.base, ROUTE_NAMES.additionalService.accountHolderAuth), linkPayment: { base: generatePath(`${ROUTE_NAMES.additionalService.base}${ROUTE_NAMES.additionalService.linkPayment.base}`), diff --git a/src/shared/constants/route-names.ts b/src/shared/constants/route-names.ts index 59ab87b..c14c14c 100644 --- a/src/shared/constants/route-names.ts +++ b/src/shared/constants/route-names.ts @@ -83,7 +83,12 @@ export const ROUTE_NAMES = { requestSuccess: 'request-success', }, smsPaymentNotification: 'sms-payment-notification', - accountHolderSearch: 'account-holder-search', + accountHolderSearch: { + base: '/account-holder-search/*', + list: 'list', + detail: 'detail', + request: 'request' + }, accountHolderAuth: 'account-holder-auth', linkPayment: { base: '/link-payment/*', @@ -112,7 +117,7 @@ export const ROUTE_NAMES = { deposit: 'deposit', member: 'member', register: 'register', - detail: 'detail', + detail: 'detail', }, paymentAgency: { base: '/payment-agency/*', @@ -120,7 +125,7 @@ export const ROUTE_NAMES = { detail: 'detail', request: 'request', }, - + }, support: { base: '/support/*', diff --git a/src/shared/ui/menu/index.tsx b/src/shared/ui/menu/index.tsx index 45874a6..4063858 100644 --- a/src/shared/ui/menu/index.tsx +++ b/src/shared/ui/menu/index.tsx @@ -85,7 +85,7 @@ export const Menu = ({ {title: 'ARS 카드결제', path: PATHS.additionalService.arsCardPayment.list}, {title: 'KEY-IN 결제', path: PATHS.additionalService.keyInPayment.list}, {title: 'SMS 결제 통보', path: PATHS.additionalService.smsPaymentNotification}, - {title: '계좌성명조회', path: PATHS.additionalService.accountHolderSearch}, + {title: '계좌성명조회', path: PATHS.additionalService.accountHolderSearch.list}, {title: '계좌점유인증', path: PATHS.additionalService.accountHolderAuth}, {title: '링크결제', path: PATHS.additionalService.linkPayment.dispatchList}, {title: '알림톡 결제통보', path: PATHS.additionalService.kakaoPaymentNotification.list},