# Conflicts:
#	src/entities/common/ui/deposit-receipt-sample.tsx
This commit is contained in:
focp212@naver.com
2025-11-11 18:24:22 +09:00
11 changed files with 69 additions and 49 deletions

View File

@@ -29,6 +29,7 @@ export interface PayoutListItem {
companyName?: string;
status?: PayoutDisbursementStatus;
amount?: number;
depositAmount?: number;
};
export interface ExtensionPayoutRequestParams {
@@ -93,4 +94,12 @@ export interface ExtensionPayoutDetailDownloadCertificateParams extends Extensio
email: string;
};
export interface ExtensionPayoutDetailDownloadCertificateResponse { };
export interface ExtensionPayoutDetailDownloadCertificateResponse {
depositDateTime?: string;
depositBank?: string;
depositAccount?: string;
amount?: number;
depositRemark?: string;
depositId?: string;
message?: string;
};

View File

@@ -154,6 +154,7 @@ export interface DetailData {
requestId?: string;
subReqId?: string;
detailOn: boolean;
depositAmount?: number;
}
// ========================================

View File

@@ -64,6 +64,7 @@ export const ListDateGroup = ({
settlementDate={ items[i]?.settlementDate }
companyName={ items[i]?. companyName }
status={ items[i]?.status }
depositAmount={ items[i]?.depositAmount }
orderStatus={ items[i]?.orderStatus }
orderTime={ items[i]?.orderTime }

View File

@@ -35,7 +35,8 @@ export const ListItem = ({
authResult, failReason, requestTime,
resendEnabled,
onResendClick,
setDetailData
setDetailData,
depositAmount
}: ListItemProps) => {
const { navigate } = useNavigate();
const { t, i18n } = useTranslation();
@@ -222,7 +223,8 @@ export const ListItem = ({
setDetailData({
mid: mid,
tid: tid,
detailOn: true
detailOn: true,
depositAmount: depositAmount
});
}
}

View File

@@ -12,19 +12,22 @@ import { showAlert } from '@/widgets/show-alert';
import { checkGrant } from '@/shared/lib/check-grant';
import { snackBar } from '@/shared/lib';
import { DepositReceiptSample } from '@/entities/common/ui/deposit-receipt-sample';
import { DepositInfo } from '@/entities/transaction/model/types';
export interface PayoutDetailProps {
detailOn: boolean;
setDetailOn: (detailOn: boolean) => void;
mid: string;
tid: string;
depositAmount?: number;
};
export const PayoutDetail = ({
detailOn,
setDetailOn,
mid,
tid
tid,
depositAmount
}: PayoutDetailProps) => {
const { t } = useTranslation();
@@ -32,6 +35,7 @@ export const PayoutDetail = ({
const [downloadBottomSheetOn, setDownloadBottomSheetOn] = useState<boolean>(false);
const [depositReceiptSampleOn, setDepositReceiptSampleOn] = useState<boolean>(false);
const [depositReceiptData, setDepositReceiptData] = useState<ExtensionPayoutDetailDownloadCertificateResponse>();
const { mutateAsync: extensionPayoutDetail } = useExtensionPayoutDetailMutation();
const { mutateAsync: extensionPayoutDetailDownloadCertification } = useExtensionPayoutDetailDownloadCertificateMutation();
@@ -70,12 +74,13 @@ export const PayoutDetail = ({
requestType: selectedMode,
email: ''
};
extensionPayoutDetailDownloadCertification(params).then((rs: ExtensionPayoutDetailDownloadCertificateResponse) => {
extensionPayoutDetailDownloadCertification(params).then((rs: any) => {
console.log('Certificate Download Status:', rs);
if (selectedMode === DownloadSelectedMode.IMAGE) {
setDepositReceiptSampleOn(true)
setDepositReceiptData(rs);
setDepositReceiptSampleOn(true);
} else if (selectedMode === DownloadSelectedMode.EMAIL) {
snackBar('입금확인서 다운 성공')
console.log('Certificate Download Status:', rs);
}
}).catch((error) => {
console.error('Certificate Download Failed:', error);
@@ -136,16 +141,18 @@ export const PayoutDetail = ({
</div>
<div className="num-store">{detail?.companyName}</div>
<div className="num-day">{moment(detail?.settlementDate).format('YYYY.MM.DD')}</div>
<div className="receipt-row">
<button
className="receipt-btn"
type="button"
onClick={onClickToOpenDownloadBottomSheet}
>
<span className="icon-24 download"></span>
<span>{t('additionalService.payout.depositCertificate')}</span>
</button>
</div>
{depositAmount != null && (
<div className="receipt-row">
<button
className="receipt-btn"
type="button"
onClick={onClickToOpenDownloadBottomSheet}
>
<span className="icon-24 download"></span>
<span>{t('additionalService.payout.depositCertificate')}</span>
</button>
</div>
)}
</div>
<div className="detail-divider"></div>
<div className="pay-detail">
@@ -208,6 +215,14 @@ export const PayoutDetail = ({
<DepositReceiptSample
depositReceiptSampleOn={depositReceiptSampleOn}
setDepositReceiptSampleOn={setDepositReceiptSampleOn}
depositInfo={{
depositDate: depositReceiptData?.depositDateTime ? moment(depositReceiptData.depositDateTime, 'YYYYMMDDHHmmss').format('YYYY/MM/DD HH:mm:ss') : undefined,
depositBank: depositReceiptData?.depositBank,
depositAccount: depositReceiptData?.depositAccount,
amount: depositReceiptData?.amount,
depositReason: depositReceiptData?.depositRemark,
depositId: depositReceiptData?.depositId
}}
></DepositReceiptSample>
}
</>

View File

@@ -118,4 +118,4 @@ export const DepositReceiptSample = ({
</div>
</>
);
};
};