- 빌링 결제신청(권한체크 'X' -> 'W')

- 에스크로 메일 재발송 버튼 활성화 조건 추가 , 권한체크 'X'-> 'W'
- 다국어 누락 부분 추가
This commit is contained in:
HyeonJongKim
2025-11-17 13:45:29 +09:00
parent a93cd44fd4
commit 5e2c276e74
8 changed files with 62 additions and 47 deletions

View File

@@ -1,8 +1,8 @@
import { import {
DefaulResponsePagination, DefaulResponsePagination,
DefaultRequestPagination, DefaultRequestPagination,
SortTypeKeys, SortTypeKeys,
SuccessResult SuccessResult
} from '@/entities/common/model/types'; } from '@/entities/common/model/types';
export enum CancelTabKeys { export enum CancelTabKeys {
@@ -243,7 +243,7 @@ export interface BillingListResponse extends DefaulResponsePagination {
content: Array<ListItemProps>; content: Array<ListItemProps>;
}; };
export interface AllTransactionListSummaryParams extends AllTransactionListParams {} export interface AllTransactionListSummaryParams extends AllTransactionListParams { }
export interface AllTransactionListSummaryResponse { export interface AllTransactionListSummaryResponse {
totalCount: number; totalCount: number;
@@ -280,7 +280,7 @@ export interface CashReceiptListParams {
searchNumber?: string; searchNumber?: string;
page?: DefaultRequestPagination page?: DefaultRequestPagination
}; };
export interface CashReceiptSummaryParams extends CashReceiptListParams {}; export interface CashReceiptSummaryParams extends CashReceiptListParams { };
export interface CashReceiptSummaryResponse { export interface CashReceiptSummaryResponse {
approvalCount: number; approvalCount: number;
@@ -315,7 +315,7 @@ export interface CashReceiptExcelDownloadParams {
transactionType: CashReceiptTransactionType; transactionType: CashReceiptTransactionType;
processResult: CashReceiptProcessResult; processResult: CashReceiptProcessResult;
}; };
export interface CashReceiptExcelDownloadResponse {}; export interface CashReceiptExcelDownloadResponse { };
export interface EscrowListParams { export interface EscrowListParams {
mid?: string; mid?: string;
searchType?: string; searchType?: string;
@@ -337,7 +337,7 @@ export interface EscrowDownloadExcelParams {
deliveryStatus: EscrowDeliveryStatus; deliveryStatus: EscrowDeliveryStatus;
settlementStatus: EscrowSettlementStatus; settlementStatus: EscrowSettlementStatus;
}; };
export interface EscrowDownloadExcelResponse {}; export interface EscrowDownloadExcelResponse { };
export interface BillingListParams { export interface BillingListParams {
mid?: string; mid?: string;
@@ -363,7 +363,7 @@ export interface BillingExcelParams {
processResult: BillingProcessResult, processResult: BillingProcessResult,
paymentMethod: BillingPaymentMethod paymentMethod: BillingPaymentMethod
}; };
export interface BillingExcelResponse {}; export interface BillingExcelResponse { };
export interface AllTransactionDetailParams { export interface AllTransactionDetailParams {
serviceCode?: string; serviceCode?: string;
@@ -393,7 +393,7 @@ export interface AmountInfo {
multiCouponAmount?: number; multiCouponAmount?: number;
receiptAmount?: number; receiptAmount?: number;
cupDepositAmount?: number; cupDepositAmount?: number;
customerName?: string; customerName?: string;
amount?: number; amount?: number;
supplyAmount?: number; supplyAmount?: number;
@@ -436,7 +436,7 @@ export interface ImportantInfo {
requestDate?: string; requestDate?: string;
cancelDate?: string; cancelDate?: string;
goodsName?: string; goodsName?: string;
orderNumber?: string; orderNumber?: string;
paymentMethod?: string; paymentMethod?: string;
productName?: string; productName?: string;
@@ -620,7 +620,7 @@ export interface DepositInfo {
export interface DetailResponse { export interface DetailResponse {
amount?: number; amount?: number;
customerName?: string; customerName?: string;
amountDetail?: AmountInfo; amountDetail?: AmountInfo;
amountInfo?: AmountInfo; amountInfo?: AmountInfo;
importantInfo?: ImportantInfo; importantInfo?: ImportantInfo;
paymentInfo?: PaymentInfo; paymentInfo?: PaymentInfo;
@@ -650,10 +650,10 @@ export interface InfoSectionProps extends DetailResponse {
export interface TransactionDownloadExcelParams extends AllTransactionListParams { export interface TransactionDownloadExcelParams extends AllTransactionListParams {
email: string; email: string;
}; };
export interface TransactionDownloadExcelResponse {}; export interface TransactionDownloadExcelResponse { };
export interface AllTransactionCancelParams{ export interface AllTransactionCancelParams {
tid: string; tid: string;
cancelAmount: number; cancelAmount: number;
cancelPassword: string; cancelPassword: string;
@@ -670,7 +670,7 @@ export interface AllTransactionCancelParams{
serviceCode: string; serviceCode: string;
}; };
export interface AllTransactionCancelResponse { export interface AllTransactionCancelResponse {
}; };
export interface AllTransactionCancelInfoParams { export interface AllTransactionCancelInfoParams {
serviceCode: string; serviceCode: string;
@@ -707,7 +707,7 @@ export interface DebtPreventionCancelDisplayInfo {
}; };
export interface DebtPreventionCancelRequestInfo { export interface DebtPreventionCancelRequestInfo {
tid: string; tid: string;
mid: string; mid: string;
gid: string; gid: string;
aid: string; aid: string;

View File

@@ -113,7 +113,7 @@ export const AllTransactionCancel = ({
const callTransactionCancel = () => { const callTransactionCancel = () => {
if(debtPreventionCancelDisplayInfo?.isCancel === false){ if(debtPreventionCancelDisplayInfo?.isCancel === false){
snackBar('취소요청이 불가능 합니다.'); snackBar(t('transaction.cancel.requestNotPossible'));
} }
else{ else{
let transactionCancelParams: AllTransactionCancelParams = { let transactionCancelParams: AllTransactionCancelParams = {
@@ -135,7 +135,7 @@ export const AllTransactionCancel = ({
transactionCancel(transactionCancelParams).then((rs: any) => { transactionCancel(transactionCancelParams).then((rs: any) => {
console.log(rs); console.log(rs);
if(rs.resultCode === "2024") { if(rs.resultCode === "2024") {
snackBar(rs.resultMessage); snackBar(t('transaction.cancel.passwordGroup.pleaseCheckPassword'));
setRequestSuccess(false); setRequestSuccess(false);
} else { } else {
setRequestSuccess(true); setRequestSuccess(true);
@@ -148,7 +148,7 @@ export const AllTransactionCancel = ({
} }
}); });
} }
}; };
const onClickToClose = () => { const onClickToClose = () => {

View File

@@ -8,7 +8,7 @@ import { EscrowInfoSection } from '@/entities/transaction/ui/section/escrow-info
import { PaymentInfoSection } from '@/entities/transaction/ui/section/payment-info-section'; import { PaymentInfoSection } from '@/entities/transaction/ui/section/payment-info-section';
import { TransactionInfoSection } from '@/entities/transaction/ui/section/transaction-info-section'; import { TransactionInfoSection } from '@/entities/transaction/ui/section/transaction-info-section';
import { SettlementInfoSection } from '@/entities/transaction/ui/section/settlement-info-section'; import { SettlementInfoSection } from '@/entities/transaction/ui/section/settlement-info-section';
import { import {
TransactionCategory, TransactionCategory,
EscrowDetailParams, EscrowDetailParams,
DetailResponse, DetailResponse,
@@ -19,7 +19,8 @@ import {
SettlementInfo, SettlementInfo,
InfoSectionKeys, InfoSectionKeys,
MerchantInfo, MerchantInfo,
AmountInfo AmountInfo,
EscrowDeliveryStatus
} from '@/entities/transaction/model/types'; } from '@/entities/transaction/model/types';
import { useEscrowMailResendMutation } from '@/entities/transaction/api/use-escrow-mail-resend-mutation'; import { useEscrowMailResendMutation } from '@/entities/transaction/api/use-escrow-mail-resend-mutation';
import { MerchantInfoSection } from '@/entities/transaction/ui/section/merchant-info-section'; import { MerchantInfoSection } from '@/entities/transaction/ui/section/merchant-info-section';
@@ -101,7 +102,7 @@ export const EscrowDetail = ({
const onClickToShowMailResend = () => { const onClickToShowMailResend = () => {
if(checkGrant(menuId, 'X')){ if(checkGrant(menuId, 'W')){
setDownloadBottomSheetOn(true); setDownloadBottomSheetOn(true);
} }
else{ else{
@@ -228,10 +229,14 @@ export const EscrowDetail = ({
</div> </div>
</div> </div>
<div className="apply-row"> <div className="apply-row">
<button <button
className="btn-50 btn-blue flex-1" className="btn-50 btn-blue flex-1"
onClick={ () => onClickToShowMailResend() } onClick={ () => onClickToShowMailResend() }
> </button> disabled={
escrowInfo?.deliveryStatus !== EscrowDeliveryStatus.DELIVERY_INSERT &&
escrowInfo?.deliveryStatus !== EscrowDeliveryStatus.DELIVERY_COMPLETE
}
>{ t('escrow.mailResend') }</button>
</div> </div>
</motion.div> </motion.div>
{ !!downloadBottomSheetOn && { !!downloadBottomSheetOn &&

View File

@@ -715,8 +715,10 @@
}, },
"passwordGroup": { "passwordGroup": {
"cancelPassword": "Cancel Password", "cancelPassword": "Cancel Password",
"passwordMismatch": "Password Mismatch" "passwordMismatch": "Password Mismatch",
"pleaseCheckPassword": "Please check your cancel password."
}, },
"requestNotPossible": "Cancellation request is not possible.",
"afterDeposit": { "afterDeposit": {
"title": "Transaction Cancel (After Deposit Cancel)", "title": "Transaction Cancel (After Deposit Cancel)",
"notice": "The requested transaction cancellation can be processed after deposit.", "notice": "The requested transaction cancellation can be processed after deposit.",
@@ -761,7 +763,8 @@
}, },
"escrow": { "escrow": {
"title": "Escrow", "title": "Escrow",
"detailTitle": "Escrow Details" "detailTitle": "Escrow Details",
"mailResend": "Resend Email"
}, },
"billing": { "billing": {
"title": "Billing", "title": "Billing",

View File

@@ -715,8 +715,10 @@
}, },
"passwordGroup": { "passwordGroup": {
"cancelPassword": "취소 비밀번호", "cancelPassword": "취소 비밀번호",
"passwordMismatch": "비밀번호 불일치" "passwordMismatch": "비밀번호 불일치",
"pleaseCheckPassword": "취소비밀번호를 확인해주세요."
}, },
"requestNotPossible": "취소요청이 불가능합니다.",
"afterDeposit": { "afterDeposit": {
"title": "거래취소(입금 후 취소)", "title": "거래취소(입금 후 취소)",
"notice": "요청하신 거래취소는 입금 후 취소처리 가능합니다.", "notice": "요청하신 거래취소는 입금 후 취소처리 가능합니다.",
@@ -761,7 +763,8 @@
}, },
"escrow": { "escrow": {
"title": "에스크로", "title": "에스크로",
"detailTitle": "에스크로 상세" "detailTitle": "에스크로 상세",
"mailResend": "메일 재발송"
}, },
"billing": { "billing": {
"title": "빌링", "title": "빌링",

View File

@@ -59,7 +59,7 @@ export const PayoutListPage = () => {
const [status, setStatus] = useState<PayoutDisbursementStatus>(PayoutDisbursementStatus.ALL); const [status, setStatus] = useState<PayoutDisbursementStatus>(PayoutDisbursementStatus.ALL);
const [minAmount, setMinAmount] = useState<number | undefined>(); const [minAmount, setMinAmount] = useState<number | undefined>();
const [maxAmount, setMaxAmount] = useState<number | undefined>(); const [maxAmount, setMaxAmount] = useState<number | undefined>();
const [downloadBottomSheetOn, setDownloadBottomSheetOn] = useState<boolean>(false); const [downloadBottomSheetOn, setDownloadBottomSheetOn] = useState<boolean>(false);
const [detailOn, setDetailOn] = useState<boolean>(false); const [detailOn, setDetailOn] = useState<boolean>(false);
@@ -150,7 +150,7 @@ export const PayoutListPage = () => {
&& rs.content.length === DEFAULT_PAGE_PARAM.size && rs.content.length === DEFAULT_PAGE_PARAM.size
); );
}).catch((e: any) => { }).catch((e: any) => {
if(e.response?.data?.error?.message){ if (e.response?.data?.error?.message) {
snackBar(e.response?.data?.error?.message); snackBar(e.response?.data?.error?.message);
return; return;
} }
@@ -166,12 +166,12 @@ export const PayoutListPage = () => {
}; };
const onRequestDownloadExcel = ( const onRequestDownloadExcel = (
selectedMode: DownloadSelectedMode, selectedMode: DownloadSelectedMode,
userEmail?: string userEmail?: string
) => { ) => {
if(selectedMode === DownloadSelectedMode.EMAIL if (selectedMode === DownloadSelectedMode.EMAIL
&& userEmail && userEmail
){ ) {
const params: ExtensionPayoutExcelParams = { const params: ExtensionPayoutExcelParams = {
mid: mid, mid: mid,
email: userEmail, email: userEmail,
@@ -181,7 +181,7 @@ export const PayoutListPage = () => {
extensionPayoutExcel(params).then((rs: ExtensionPayoutExcelResponse) => { extensionPayoutExcel(params).then((rs: ExtensionPayoutExcelResponse) => {
console.log('Excel Download Status:', rs); console.log('Excel Download Status:', rs);
}).catch((e: any) => { }).catch((e: any) => {
if(e.response?.data?.error?.message){ if (e.response?.data?.error?.message) {
snackBar(e.response?.data?.error?.message); snackBar(e.response?.data?.error?.message);
return; return;
} }
@@ -303,7 +303,7 @@ export const PayoutListPage = () => {
<button <button
className="download-btn" className="download-btn"
aria-label={t('common.download')} aria-label={t('common.download')}
onClick={ onClickToOpenDownloadBottomSheet } onClick={onClickToOpenDownloadBottomSheet}
> >
<img <img
src={IMAGE_ROOT + '/ico_download.svg'} src={IMAGE_ROOT + '/ico_download.svg'}
@@ -348,8 +348,8 @@ export const PayoutListPage = () => {
searchDateType={searchDateType} searchDateType={searchDateType}
mid={mid} mid={mid}
setDetailData={setDetailData} setDetailData={setDetailData}
onClickToOpenFilter={ onClickToOpenFilter } onClickToOpenFilter={onClickToOpenFilter}
onClickToOpenDownloadBottomSheet={ onClickToOpenDownloadBottomSheet } onClickToOpenDownloadBottomSheet={onClickToOpenDownloadBottomSheet}
></PayoutList> ></PayoutList>
<div ref={setTarget}></div> <div ref={setTarget}></div>
<div className="apply-row"> <div className="apply-row">
@@ -387,13 +387,13 @@ export const PayoutListPage = () => {
depositAmount={detailDepositAmount} depositAmount={detailDepositAmount}
> >
</PayoutDetail> </PayoutDetail>
{ !!downloadBottomSheetOn && {!!downloadBottomSheetOn &&
<DownloadBottomSheet <DownloadBottomSheet
bottomSheetOn={ downloadBottomSheetOn } bottomSheetOn={downloadBottomSheetOn}
setBottomSheetOn={ setDownloadBottomSheetOn } setBottomSheetOn={setDownloadBottomSheetOn}
imageMode={ false } imageMode={false}
emailMode={ true } emailMode={true}
sendRequest={ onRequestDownloadExcel } sendRequest={onRequestDownloadExcel}
></DownloadBottomSheet> ></DownloadBottomSheet>
} }
</> </>

View File

@@ -171,7 +171,7 @@ export const BillingListPage = () => {
setRequestStatus(val); setRequestStatus(val);
}; };
const onClickToNavigate = () => { const onClickToNavigate = () => {
if(checkGrant(menuId, 'X')){ if(checkGrant(menuId, 'W')){
navigate(PATHS.transaction.billing.charge); navigate(PATHS.transaction.billing.charge);
} }
else{ else{

View File

@@ -550,4 +550,8 @@ main.pop{
} }
.filter-section{ .filter-section{
margin-bottom: 0; margin-bottom: 0;
}
.resend-text {
word-break: break-all !important;
} }