자금이체 결과

This commit is contained in:
focp212@naver.com
2025-09-23 16:12:43 +09:00
parent 9c84991e93
commit e2516951fc
7 changed files with 609 additions and 108 deletions

View File

@@ -17,6 +17,7 @@ import { FundAccountTransferListPage } from './fund-account/transfer-list-page';
import { FundAccountTransferDetailPage } from './fund-account/transfer-detail-page';
import { FundAccountTransferRequestPage } from './fund-account/transfer-request-page';
import { FundAccountResultListPage } from './fund-account/result-list-page';
import { FundAccountResultDetailPage } from './fund-account/result-detail-page';
import { SettlementAgencyManagePage } from './settlement-agency/manage-page';
import { SettlementAgencyDepositPage } from './settlement-agency/deposit-page';
import { SettlementAgencyMemberPage } from './settlement-agency/member-page';
@@ -80,6 +81,7 @@ export const AdditionalServicePages = () => {
<Route path={ROUTE_NAMES.additionalService.fundAccount.transferDetail} element={<FundAccountTransferDetailPage />} />
<Route path={ROUTE_NAMES.additionalService.fundAccount.transferRequest} element={<FundAccountTransferRequestPage />} />
<Route path={ROUTE_NAMES.additionalService.fundAccount.resultList} element={<FundAccountResultListPage />} />
<Route path={ROUTE_NAMES.additionalService.fundAccount.resultDetail} element={<FundAccountResultDetailPage />} />
</Route>
<Route path={ROUTE_NAMES.additionalService.settlementAgency.base}>
<Route path={ROUTE_NAMES.additionalService.settlementAgency.manage} element={<SettlementAgencyManagePage />} />

View File

@@ -0,0 +1,137 @@
import { PATHS } from '@/shared/constants/paths';
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { HeaderType } from '@/entities/common/model/types';
import {
useSetHeaderTitle,
useSetHeaderType,
useSetFooterMode,
useSetOnBack
} from '@/widgets/sub-layout/use-sub-layout';
import { useLocation } from 'react-router';
import { useEffect, useState } from 'react';
import { NumericFormat } from 'react-number-format';
import { useExtensionFundAccountTransferDetailMutation } from '@/entities/additional-service/api/fund-account/use-extension-fund-account-transfer-detail-mutation';
import { ExtensionFundAccountTransferDetailParams, ExtensionFundAccountTransferDetailResponse, ExtensionFundAccountTransferRequestParams, ExtensionFundAccountTransferRequestResponse } from '@/entities/additional-service/model/fund-account/types';
import moment from 'moment';
import { useExtensionFundAccountTransferRequestMutation } from '@/entities/additional-service/api/fund-account/use-extension-fund-account-transfer-request-mutation';
export const FundAccountResultDetailPage = () => {
const { navigate } = useNavigate();
const location = useLocation();
const tid = location.state.tid;
const mid = location.state.mid;
const [detail, setDetail] = useState<ExtensionFundAccountTransferDetailResponse>();
const { mutateAsync: extensionFundAccountTransferDetail } = useExtensionFundAccountTransferDetailMutation();
const { mutateAsync: extensionFundAccountTransferRequest } = useExtensionFundAccountTransferRequestMutation();
const callDetail = () => {
let params: ExtensionFundAccountTransferDetailParams = {
tid: tid,
mid: mid,
};
extensionFundAccountTransferDetail(params).then((rs: ExtensionFundAccountTransferDetailResponse) => {
setDetail(rs);
});
};
useSetHeaderTitle('자금이체 상세');
useSetHeaderType(HeaderType.LeftArrow);
useSetFooterMode(false);
useSetOnBack(() => {
navigate(PATHS.additionalService.fundAccount.transferList);
});
useEffect(() => {
callDetail();
}, []);
const onClickToRequest = () =>{
let params: ExtensionFundAccountTransferRequestParams = {
mid: mid,
transferAmount: detail?.transferAmount,
receiveBankCode: detail?.receiveBankName,
receiveAccountNo: detail?.receiveAccountNo,
receiveAccountName: detail?.receiveAccountName,
transferMemo: ''
};
extensionFundAccountTransferRequest(params).then((rs: ExtensionFundAccountTransferRequestResponse) => {
console.log(rs)
alert(rs.message);
navigate(PATHS.additionalService.fundAccount.transferList);
});
};
return (
<>
<main className="full-height">
<div className="tab-content">
<div className="tab-pane sub active">
<div className="pay-top">
<div className="num-amount">
<span className="amount">
<NumericFormat
value={ detail?.transferAmount }
thousandSeparator
displayType="text"
suffix='원'
></NumericFormat>
</span>
</div>
<div className="num-store"></div>
<div className="num-day">2025.08.19</div>
</div>
<div className="detail-divider"></div>
<div className="pay-detail">
<div className="detail-title"> </div>
<ul className="kv-list">
<li className="kv-row">
<span className="k"></span>
<span className="v">{ moment(detail?.processDate).format('YYYY.MM.DD') }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ detail?.status }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ moment(detail?.requestDate).format('YYYY.MM.DD') }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ detail?.status }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ detail?.receiveAccountName }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ detail?.receiveBankName }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ detail?.receiveAccountNo }</span>
</li>
<li className="kv-row">
<span className="k">MID</span>
<span className="v">{ mid }</span>
</li>
</ul>
</div>
<div className="apply-row">
<button
className="btn-50 btn-blue flex-1"
onClick={ () => onClickToRequest() }
> </button>
</div>
</div>
</div>
</main>
</>
);
};