Files
nice-app-web/src/pages/additional-service/payout/detail-page.tsx
HyeonJongKim ab5bea6aeb - 링크결제 API 수정
- 지급대행 수정
2025-10-21 14:24:51 +09:00

145 lines
5.5 KiB
TypeScript

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 { useExtensionPayoutDetailMutation } from '@/entities/additional-service/api/payout/use-extension-payout-detail-mutation';
import { useLocation } from 'react-router';
import { ExtensionPayoutDetailDownloadCertificateParams, ExtensionPayoutDetailDownloadCertificateResponse, ExtensionPayoutDetailParams, ExtensionPayoutDetailResponse } from '@/entities/additional-service/model/payout/types';
import { useEffect, useState } from 'react';
import { NumericFormat } from 'react-number-format';
import { useExtensionPayoutDetailDownloadCertificateMutation } from '@/entities/additional-service/api/payout/use-extension-payout-detail-download-cetificate-mutation';
export const PayoutDetailPage = () => {
const { navigate } = useNavigate();
const location = useLocation();
const tid = location.state.tid;
const mid = location.state.mid;
const [requestType, setRequestType] = useState<string>('');
const [email, setEmail] = useState<string>('');
const [detail, setDetail] = useState<ExtensionPayoutDetailResponse>();
const { mutateAsync: extensionPayoutDetail } = useExtensionPayoutDetailMutation();
const { mutateAsync: extensionPayoutDetailDownloadCertification } = useExtensionPayoutDetailDownloadCertificateMutation();
const callDetail = () => {
let params: ExtensionPayoutDetailParams = {
tid: tid,
mid: mid,
};
extensionPayoutDetail(params).then((rs: ExtensionPayoutDetailResponse) => {
setDetail(rs);
});
};
useSetHeaderTitle('지급대행 상세');
useSetHeaderType(HeaderType.LeftArrow);
useSetFooterMode(false);
useSetOnBack(() => {
navigate(PATHS.additionalService.payout.list);
});
const onClickToDownload = () => {
let params: ExtensionPayoutDetailDownloadCertificateParams = {
tid: tid,
mid: mid,
requestType: requestType,
email: email
};
extensionPayoutDetailDownloadCertification(params).then((rs: ExtensionPayoutDetailDownloadCertificateResponse) => {
console.log(rs);
});
};
useEffect(() => {
callDetail();
}, []);
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?.disbursementAmount }
thousandSeparator
displayType="text"
suffix='원'
></NumericFormat>
</span>
</div>
<div className="num-store">{detail?.companyName}</div>
<div className="num-day">{detail?.settlementDate}</div>
<div className="receipt-row">
<button
className="receipt-btn"
type="button"
onClick={ onClickToDownload }
>
<span className="icon-24 download"></span>
<span> </span>
</button>
</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">{ detail?.disbursementStatus }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ detail?.transTypeName }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ detail?.requestDate }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ detail?.settlementDateTime }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ detail?.companyNo }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ detail?.accountName }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ detail?.bankName }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ detail?.accountNo }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ detail?.depositName }</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{ detail?.failReason }</span>
</li>
</ul>
</div>
</div>
</div>
</main>
</>
);
};