diff --git a/src/entities/additional-service/model/account-holder-auth/types.ts b/src/entities/additional-service/model/account-holder-auth/types.ts index 60bb213..90fdcb3 100644 --- a/src/entities/additional-service/model/account-holder-auth/types.ts +++ b/src/entities/additional-service/model/account-holder-auth/types.ts @@ -1,5 +1,5 @@ import { DefaulResponsePagination, DefaultRequestPagination } from "@/entities/common/model/types"; -import { AdditionalServiceCategory, ExtensionRequestParams, FilterProps, ListItemProps } from "../types"; +import { AdditionalServiceCategory, DetailData, ExtensionRequestParams, FilterProps, ListItemProps } from "../types"; // 계좌 점유 조회 관련 타입들 export enum AccountHolderAuthStatus { @@ -27,6 +27,7 @@ export interface AccountHolderAuthListProps { additionalServiceCategory: AdditionalServiceCategory; listItems: Array; mid: string; + setDetailData: (detailData: DetailData) => void; } export interface AccountHolderAuthFilterProps extends FilterProps { mid: string; diff --git a/src/entities/additional-service/ui/account-holder-auth/account-holder-auth-list.tsx b/src/entities/additional-service/ui/account-holder-auth/account-holder-auth-list.tsx index 1d19d4e..9d91b29 100644 --- a/src/entities/additional-service/ui/account-holder-auth/account-holder-auth-list.tsx +++ b/src/entities/additional-service/ui/account-holder-auth/account-holder-auth-list.tsx @@ -1,12 +1,11 @@ import { ListDateGroup } from '../list-date-group'; -import { AdditionalServiceCategory } from '../../model/types'; -import { AccountHolderAuthListProps, ExtensionAccountHolderAuthContentItem } from '../../model/account-holder-auth/types'; -import { JSX } from 'react'; +import { AccountHolderAuthListProps } from '../../model/account-holder-auth/types'; export const AccountHolderAuthList = ({ additionalServiceCategory, listItems, - mid + mid, + setDetailData }: AccountHolderAuthListProps) => { const getListDateGroup = () => { @@ -27,11 +26,12 @@ export const AccountHolderAuthList = ({ if (list.length > 0) { rs.push( ); } @@ -45,11 +45,12 @@ export const AccountHolderAuthList = ({ if (list.length > 0) { rs.push( ) } diff --git a/src/entities/additional-service/ui/account-holder-auth/detail/account-holder-auth-detail.tsx b/src/entities/additional-service/ui/account-holder-auth/detail/account-holder-auth-detail.tsx new file mode 100644 index 0000000..55ef9da --- /dev/null +++ b/src/entities/additional-service/ui/account-holder-auth/detail/account-holder-auth-detail.tsx @@ -0,0 +1,126 @@ +import { useEffect, useState } from 'react'; +import { motion } from 'framer-motion'; +import { useNavigate } from '@/shared/lib/hooks/use-navigate'; +import { useLocation } from 'react-router'; +import { useExtensionAccountHolderAuthDetailMutation } from '@/entities/additional-service/api/account-holder-auth/use-extension-account-holder-auth-deatil-mutation'; +import { ExtensionAccountHolderAuthDetailParams, ExtensionAccountHolderAuthDetailResponse } from '@/entities/additional-service/model/account-holder-auth/types'; +import moment from 'moment'; +import { getAuthStatusText } from '@/entities/additional-service/model/account-holder-auth/constant'; +import { getAuthResultStatusText } from '@/entities/additional-service/model/face-auth/constant'; +import { useTranslation } from 'react-i18next'; +import { DetailMotionDuration, DetailMotionStyle, DetailMotionVariants } from '@/entities/common/model/constant'; +import { FullMenuClose } from '@/entities/common/ui/full-menu-close'; + +export interface AccountHolderAuthDetailProps { + detailOn: boolean; + setDetailOn: (detailOn: boolean) => void; + mid: string; + tid: string; +}; + +export const AccountHolderAuthDetail = ({ + detailOn, + setDetailOn, + mid, + tid +}: AccountHolderAuthDetailProps) => { + const { t } = useTranslation(); + const [detail, setDetail] = useState(); + + const { mutateAsync: accountHolderAuthDetail } = useExtensionAccountHolderAuthDetailMutation(); + + const callDetail = () => { + let accountHolderAuthDetailParams: ExtensionAccountHolderAuthDetailParams = { + mid: mid, + tid: tid + } + accountHolderAuthDetail(accountHolderAuthDetailParams).then((rs: ExtensionAccountHolderAuthDetailResponse) => { + setDetail(rs); + }); + }; + const onClickToClose = () => { + setDetailOn(false); + }; + + const getDate = (date?: string) => { + return (date) ? moment(date, 'YYYYMMDDHHmmss').format('YYYY.MM.DD HH:mm:ss') : ''; + }; + + useEffect(() => { + if(!!mid && !!tid){ + callDetail(); + } + }, [mid, tid]); + + return ( + <> + +
+
+
{ t('additionalService.accountHolderAuth.detailTitle') }
+
+ +
+
+
+
+
+ {detail?.accountName} +
+ {detail?.accountNo} +
{getDate(detail?.requestDate)}
+
+
+
+
{t('transaction.sections.detailInfo')}
+
    +
  • + {t('transaction.fields.companyName')} + {detail?.companyName} +
  • +
  • + {t('transaction.fields.mid')} + {detail?.mid} +
  • +
  • + {t('additionalService.accountHolderAuth.requestDate')} + {getDate(detail?.requestDate)} +
  • +
  • + {t('transaction.fields.bank')} + {detail?.bankName} +
  • +
  • + {t('transaction.fields.accountNo')} + {detail?.accountNo} +
  • +
  • + {t('transaction.fields.accountHolder')} + {detail?.accountName} +
  • +
  • + {t('common.result')} + {getAuthStatusText(t)(detail?.authStatus)} +
  • +
  • + {t('transaction.fields.failureReason')} + {detail?.failReason ? getAuthResultStatusText(t)(detail?.failReason) : '-' } +
  • +
+
+
+
+
+ + ); +} \ No newline at end of file diff --git a/src/entities/additional-service/ui/list-item.tsx b/src/entities/additional-service/ui/list-item.tsx index 269272c..17dadf4 100644 --- a/src/entities/additional-service/ui/list-item.tsx +++ b/src/entities/additional-service/ui/list-item.tsx @@ -161,13 +161,13 @@ export const ListItem = ({ } //이하 상세페이지 존재 else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderAuth) { - navigate(PATHS.additionalService.accountHolderAuth.detail, { - state: { - additionalServiceCategory: additionalServiceCategory, + if(setDetailData && !!mid && !!tid){ + setDetailData({ mid: mid, - tid: tid - } - }) + tid: tid, + detailOn: true + }); + } } else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) { if(setDetailData && !!mid && !!tid){ @@ -177,7 +177,6 @@ export const ListItem = ({ detailOn: true }); } - } else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentHistory) { navigate(PATHS.additionalService.linkPayment.detail, { diff --git a/src/pages/additional-service/account-holder-auth/account-holder-auth-page.tsx b/src/pages/additional-service/account-holder-auth/account-holder-auth-page.tsx index 9816794..39be369 100644 --- a/src/pages/additional-service/account-holder-auth/account-holder-auth-page.tsx +++ b/src/pages/additional-service/account-holder-auth/account-holder-auth-page.tsx @@ -20,11 +20,12 @@ import { useTranslation } from 'react-i18next'; import { useExtensionAccountHolderAuthDownloadExcelMutation } from '@/entities/additional-service/api/account-holder-auth/use-extension-account-holder-auth-download-excel-mutation'; import { AccountHolderAuthFilter } from '@/entities/additional-service/ui/account-holder-auth/filter/account-holder-auth-filter'; import { useStore } from '@/shared/model/store'; -import { AccountHolderAuthListItem, AccountHolderAuthStatus, ExtensionAccountHolderAuthContentItem, ExtensionAccountHolderAuthDownloadExcelParams, ExtensionAccountHolderAuthDownloadExcelResponse } from '@/entities/additional-service/model/account-holder-auth/types'; -import { AdditionalServiceCategory } from '@/entities/additional-service/model/types'; +import { AccountHolderAuthStatus, ExtensionAccountHolderAuthContentItem, ExtensionAccountHolderAuthDownloadExcelParams, ExtensionAccountHolderAuthDownloadExcelResponse } from '@/entities/additional-service/model/account-holder-auth/types'; +import { AdditionalServiceCategory, DetailData } from '@/entities/additional-service/model/types'; import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet'; import { useExtensionAccessCheck } from '@/shared/lib/hooks/use-extension-access-check'; import useIntersectionObserver from '@/widgets/intersection-observer'; +import { AccountHolderAuthDetail } from '@/entities/additional-service/ui/account-holder-auth/detail/account-holder-auth-detail'; export const AccountHolderAuthPage = () => { const { navigate } = useNavigate(); @@ -46,7 +47,11 @@ export const AccountHolderAuthPage = () => { const [fromDate, setFromDate] = useState(moment().format('YYYYMMDD')); const [toDate, setToDate] = useState(moment().format('YYYYMMDD')); const [authStatus, setAuthStatus] = useState(AccountHolderAuthStatus.ALL) + const [detailOn, setDetailOn] = useState(false); + const [detailMid, setDetailMid] = useState(''); + const [detailTid, setDetailTid] = useState(''); const [emailBottomSheetOn, setEmailBottomSheetOn] = useState(false); + useSetHeaderTitle(t('additionalService.accountHolderAuth.title')); useSetHeaderType(HeaderType.LeftArrow); useSetFooterMode(false); @@ -132,6 +137,15 @@ export const AccountHolderAuthPage = () => { const onClickToAuthStatus = (val: AccountHolderAuthStatus) => { setAuthStatus(val); }; + const setDetailData = (detailData: DetailData) => { + setDetailOn(detailData.detailOn); + if(detailData.mid){ + setDetailMid(detailData.mid); + } + if(detailData.tid){ + setDetailTid(detailData.tid); + } + } const onClickToOpenEmailBottomSheet = () => { @@ -230,9 +244,10 @@ export const AccountHolderAuthPage = () => {
@@ -249,16 +264,20 @@ export const AccountHolderAuthPage = () => { setStartDate={setFromDate} setEndDate={setToDate} setAuthStatus={setAuthStatus} - > - - + > + + > ); }; \ 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 3e7fd5e..82cb504 100644 --- a/src/pages/additional-service/additional-service-pages.tsx +++ b/src/pages/additional-service/additional-service-pages.tsx @@ -36,8 +36,6 @@ import { LinkPaymentWaitDetailPage } from './link-payment/link-payment-wait-deta 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'; -import { AccountHolderAuthDetailPage } from './account-holder-auth/detail-page'; import { LinkPaymentSeparateApprovalPage } from './link-payment/separate-approval/link-payment-separate-approval-page'; import { FaceAuthPage } from './face-auth/face-auth-page'; @@ -59,12 +57,10 @@ export const AdditionalServicePages = () => { } /> } /> - } /> } /> } /> - } /> } /> diff --git a/src/shared/constants/paths.ts b/src/shared/constants/paths.ts index 68921ad..2131f1a 100644 --- a/src/shared/constants/paths.ts +++ b/src/shared/constants/paths.ts @@ -160,10 +160,6 @@ export const PATHS: RouteNamesType = { `${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, @@ -175,10 +171,6 @@ export const PATHS: RouteNamesType = { `${ROUTE_NAMES.additionalService.base}${ROUTE_NAMES.additionalService.accountHolderAuth.base}`, ROUTE_NAMES.additionalService.accountHolderAuth.list ), - detail: generatePath( - `${ROUTE_NAMES.additionalService.base}${ROUTE_NAMES.additionalService.accountHolderAuth.base}`, - ROUTE_NAMES.additionalService.accountHolderAuth.detail - ), }, 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 720c442..79a8483 100644 --- a/src/shared/constants/route-names.ts +++ b/src/shared/constants/route-names.ts @@ -79,13 +79,11 @@ export const ROUTE_NAMES = { accountHolderSearch: { base: '/account-holder-search/*', list: 'list', - detail: 'detail', request: 'request' }, accountHolderAuth: { base: '/account-holder-auth/*', list: 'list', - detail: 'detail' }, linkPayment: { base: '/link-payment/*',