- 자금이체 : 이체신청,결과조회 리스트,상세정보 수정

- 부가서비스 엑셀 다운로드 이메일 바텀시트 추가
This commit is contained in:
HyeonJongKim
2025-10-23 13:47:16 +09:00
parent a60b5ba69e
commit fbc910caf9
15 changed files with 293 additions and 181 deletions

View File

@@ -181,7 +181,7 @@ export interface ExtensionFundAccountResultDetailResponse {
accountName: string;
accountNo: string;
applicationDate: string;
requsetDate: string;
requestDate: string;
resultMessage: string;
failReason: string;
bankName: string;

View File

@@ -36,8 +36,7 @@ export const FundAccountResultListWrap = () => {
const [toDate, setToDate] = useState(moment().format('YYYYMMDD'));
const [bankCode, setBankCode] = useState<string>('');
const [resultStatus, setResultStatus] = useState<FundAccountResultStatus>(FundAccountResultStatus.ALL);
const [email, setEmail] = useState<string>('');
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
const [totalRequestCount, setTotalRequestCount] = useState<number>(0);
const [totalRequestAmount, setTotalRequestAmount] = useState<number>(0);
@@ -79,18 +78,6 @@ export const FundAccountResultListWrap = () => {
};
const callDownloadExcel = () => {
let params: ExtensionFundAccountResultExcelParams = {
mid: mid,
email: email,
searchDateType: searchDateType,
fromDate: fromDate,
toDate: toDate,
};
extensionFundAccountResultExcel(params).then((rs: ExtensionFundAccountResultExcelResponse) => {
});
};
const callSummary = () => {
let params: ExtensionFundAccountResultSummaryParams = {
mid: mid
@@ -106,8 +93,24 @@ export const FundAccountResultListWrap = () => {
});
};
const onClickToDownloadExcel = () => {
callDownloadExcel();
const onClickToOpenEmailBottomSheet = () => {
setEmailBottomSheetOn(true);
};
const onSendRequest = (selectedEmail?: string) => {
if (selectedEmail) {
let params: ExtensionFundAccountResultExcelParams = {
mid: mid,
email: selectedEmail,
searchDateType: searchDateType,
fromDate: fromDate,
toDate: toDate,
};
extensionFundAccountResultExcel(params).then((rs: ExtensionFundAccountResultExcelResponse) => {
console.log('Excel Download Status:', rs);
});
}
setEmailBottomSheetOn(false);
};
const onClickToOpenFilter = () => {
@@ -141,17 +144,18 @@ export const FundAccountResultListWrap = () => {
date = requestDate;
}
if (date !== requestDate) {
date = requestDate;
if (list.length > 0) {
rs.push(
<ListDateGroup
additionalServiceCategory={AdditionalServiceCategory.FundAccountResult}
mid={mid}
key={date + '-' + i}
date={date}
items={list}
></ListDateGroup>
);
}
date = requestDate;
list = [];
}
list.push(items);
@@ -219,7 +223,7 @@ export const FundAccountResultListWrap = () => {
<button
className="download-btn"
aria-label="다운로드"
onClick={() => onClickToDownloadExcel()}
onClick={() => onClickToOpenEmailBottomSheet()}
>
<img
src={IMAGE_ROOT + '/ico_download.svg'}
@@ -345,6 +349,13 @@ export const FundAccountResultListWrap = () => {
setBankCode={setBankCode}
setResultStatus={setResultStatus}
></FundAccountResultFilter>
<EmailBottomSheet
bottomSheetOn={emailBottomSheetOn}
setBottomSheetOn={setEmailBottomSheetOn}
imageSave={false}
sendEmail={true}
sendRequest={onSendRequest}
></EmailBottomSheet>
</>
);
};

View File

@@ -137,7 +137,6 @@ export const FundAccountTransferListWrap = () => {
date = registDate;
}
if (date !== registDate) {
date = registDate;
if (list.length > 0) {
rs.push(
<ListDateGroup
@@ -148,6 +147,7 @@ export const FundAccountTransferListWrap = () => {
></ListDateGroup>
);
}
date = registDate;
list = [];
}
list.push(items);

View File

@@ -13,6 +13,7 @@ import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant';
import { useExtensionLinkPayHistoryDownloadExcelMutation } from '../../api/link-payment/use-extension-link-pay-history-download-excel-mutation';
import { useStore } from '@/shared/model/store';
import { ExtensionLinkPayHistoryListParams, LinkPaymentHistoryListItem, LinkPaymentPaymentMethod, LinkPaymentPaymentStatus, LinkPaymentSearchCl, LinkPaymentSendMethod, LinkPaymentSendStatus } from '../../model/link-pay/types';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
const paymentResultBtnGroup = [
{ name: '전체', value: LinkPaymentPaymentStatus.ALL },
@@ -41,8 +42,7 @@ export const LinkPaymentHistoryWrap = () => {
const [paymentStatus, setPaymentStatus] = useState<LinkPaymentPaymentStatus>(LinkPaymentPaymentStatus.ALL);
const [sendStatus, setSendStatus] = useState<LinkPaymentSendStatus>(LinkPaymentSendStatus.ALL);
const [sendMethod, setSendMethod] = useState<LinkPaymentSendMethod>(LinkPaymentSendMethod.ALL);
const [email, setEmail] = useState<string>('');
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
const { mutateAsync: linkPayHistoryList } = useExtensionLinkPayHistoryListMutation();
const { mutateAsync: downloadExcel } = useExtensionLinkPayHistoryDownloadExcelMutation();
@@ -77,10 +77,15 @@ export const LinkPaymentHistoryWrap = () => {
});
};
const onClickToDownloadExcel = () => {
const onClickToOpenEmailBottomSheet = () => {
setEmailBottomSheetOn(true);
};
const onSendRequest = (selectedEmail?: string) => {
if (selectedEmail) {
downloadExcel({
mid: mid,
email: email,
email: selectedEmail,
searchCl: searchCl,
searchValue: searchValue,
paymentMethod: paymentMethod,
@@ -90,8 +95,10 @@ export const LinkPaymentHistoryWrap = () => {
sendStatus: sendStatus,
sendMethod: sendMethod,
}).then((rs) => {
console.log('Excel Dowload Status : ' + rs.status);
console.log('Excel Download Status: ' + rs.status);
});
}
setEmailBottomSheetOn(false);
};
const onClickPaymentStatus = (val: LinkPaymentPaymentStatus) => {
@@ -149,11 +156,11 @@ export const LinkPaymentHistoryWrap = () => {
<button
className="download-btn"
aria-label="다운로드"
onClick={() => onClickToOpenEmailBottomSheet()}
>
<img
src={IMAGE_ROOT + '/ico_download.svg'}
alt="다운로드"
onClick={() => onClickToDownloadExcel()}
/>
</button>
</div>
@@ -211,6 +218,13 @@ export const LinkPaymentHistoryWrap = () => {
setSendStatus={setSendStatus}
setSendMethod={setSendMethod}
></LinkPaymentHistoryFilter>
<EmailBottomSheet
bottomSheetOn={emailBottomSheetOn}
setBottomSheetOn={setEmailBottomSheetOn}
imageSave={false}
sendEmail={true}
sendRequest={onSendRequest}
></EmailBottomSheet>
</>
);
}

View File

@@ -34,8 +34,8 @@ export const LinkPaymentWaitSendWrap = () => {
const [processStatus, setProcessStatus] = useState<LinkPaymentProcessStatus>(LinkPaymentProcessStatus.ALL);
const [listItems, setListItems] = useState<Array<LinkPaymentWaitListItem>>([]);
const [pageParam, setPageParam] = useState<DefaultRequestPagination>(DEFAULT_PAGE_PARAM);
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
const [email, setEmail] = useState<string>('');
const { mutateAsync: pendingSendList } = useExtensionLinkPayWaitListMutation();
const { mutateAsync: downloadExcel } = useExtensionLinkPayWaitDownloadExcelMutation();
@@ -71,10 +71,15 @@ export const LinkPaymentWaitSendWrap = () => {
});
};
const onClickToDownloadExcel = () => {
const onClickToOpenEmailBottomSheet = () => {
setEmailBottomSheetOn(true);
};
const onSendRequest = (selectedEmail?: string) => {
if (selectedEmail) {
downloadExcel({
mid: mid,
email: email,
//email: selectedEmail,
searchCl: searchType,
searchValue: searchValue,
fromDate: startDate,
@@ -82,8 +87,10 @@ export const LinkPaymentWaitSendWrap = () => {
sendMethod: sendMethod,
processStatus: processStatus,
}).then((rs) => {
console.log('Excel Dowload Status : ' + rs.status);
console.log('Excel Download Status: ' + rs.status);
});
}
setEmailBottomSheetOn(false);
};
const onClickToSort = (sort: SortTypeKeys) => {
@@ -135,11 +142,11 @@ export const LinkPaymentWaitSendWrap = () => {
<button
className="download-btn"
aria-label="다운로드"
onClick={() => onClickToOpenEmailBottomSheet()}
>
<img
src={IMAGE_ROOT + '/ico_download.svg'}
alt="다운로드"
onClick={() => onClickToDownloadExcel()}
/>
</button>
</div>
@@ -194,6 +201,13 @@ export const LinkPaymentWaitSendWrap = () => {
setSendMethod={setSendMethod}
setProcessStatus={setProcessStatus}
></LinkPaymentWaitSendFilter>
<EmailBottomSheet
bottomSheetOn={emailBottomSheetOn}
setBottomSheetOn={setEmailBottomSheetOn}
imageSave={false}
sendEmail={true}
sendRequest={onSendRequest}
></EmailBottomSheet>
</>
);
}

View File

@@ -266,6 +266,8 @@ export const ListItem = ({
else if (additionalServiceCategory === AdditionalServiceCategory.FundAccountResult) {
if (applicationDate && applicationDate.length >= 12) {
timeStr = applicationDate.substring(8, 10) + ':' + applicationDate.substring(10, 12);
} else {
timeStr = requestDate?.substring(8,10) + ':' + requestDate?.substring(10, 12);
}
}
else if (additionalServiceCategory === AdditionalServiceCategory.Ars) {

View File

@@ -69,16 +69,6 @@ export const AccountHolderAuthPage = () => {
});
};
const onClickToDownloadExcel = () => {
downloadExcel({
mid: mid,
fromDate: fromDate,
toDate: toDate,
authStatus: authStatus
}).then((rs) => {
console.log('Excel Downlaod Status : ' + rs.status);
});
}
const onClickToOpenFilter = () => {
setFilterOn(!filterOn);
@@ -155,11 +145,12 @@ export const AccountHolderAuthPage = () => {
</div>
<button
className="download-btn"
aria-label="다운로드"
onClick={() => onClickToOpenEmailBottomSheet()}
>
<img
src={IMAGE_ROOT + '/ico_download.svg'}
alt="다운로드"
onClick={() => onClickToDownloadExcel()}
/>
</button>
</div>

View File

@@ -40,7 +40,6 @@ export const AccountHolderSearchPage = () => {
const [bank, setBank] = useState<string>('');
const [processResult, setProcessResult] = useState<ProcessResult>(ProcessResult.ALL);
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
const [email, setEmail] = useState<string>('');
useSetHeaderTitle('계좌성명조회');
useSetHeaderType(HeaderType.LeftArrow);
@@ -87,8 +86,6 @@ export const AccountHolderSearchPage = () => {
const onSendRequest = (selectedEmail?: string) => {
if (selectedEmail) {
// 이메일을 설정한 후 다운로드 실행
downloadExcel({
mid: mid,
//email: selectedEmail,
@@ -105,20 +102,6 @@ export const AccountHolderSearchPage = () => {
setEmailBottomSheetOn(false);
};
const onClickToDownloadExcel = () => {
downloadExcel({
mid: mid,
searchCl: searchType,
searchValue: searchKeyword,
fromDate: startDate,
toDate: endDate,
bankCode: bank,
resultStatus: processResult
}).then((rs) => {
console.log('Excel Dowload Status : ' + rs.status);
});
};
const onClickToSort = (sort: SortTypeKeys) => {
setSortType(sort);
callList({

View File

@@ -20,6 +20,7 @@ import { SortTypeBox } from '@/entities/common/ui/sort-type-box';
import { ArsPaymentStatusBtnGroup } from '@/entities/additional-service/model/ars/constant';
import { ArsFilter } from '@/entities/additional-service/ui/filter/ars-filter';
import { useStore } from '@/shared/model/store';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
export const ArsListPage = () => {
const { navigate } = useNavigate();
@@ -38,6 +39,7 @@ export const ArsListPage = () => {
const [orderStatus, setOrderStatus] = useState<OrderStatus>(OrderStatus.ALL);
const [minAmount, setMinAmount] = useState<number>();
const [maxAmount, setMaxAmount] = useState<number>();
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
const { mutateAsync: extensionArsList } = useExtensionArsListMutation();
const { mutateAsync: extensionArsDownloadExcel } = useExtensionArsDownloadExcelMutation();
@@ -75,8 +77,13 @@ export const ArsListPage = () => {
});
};
const callDownloadExcel = () => {
let params: ExtensionArsDownloadExcelParams = {
const onClickToOpenEmailBottomSheet = () => {
setEmailBottomSheetOn(true);
};
const onSendRequest = (selectedEmail?: string) => {
if (selectedEmail) {
const params: ExtensionArsDownloadExcelParams = {
mid: mid,
moid: moid,
fromDate: fromDate,
@@ -85,10 +92,13 @@ export const ArsListPage = () => {
orderStatus: orderStatus,
minAmount: minAmount,
maxAmount: maxAmount,
//email: selectedEmail
};
extensionArsDownloadExcel(params).then((rs: ExtensionArsDownloadExcelResponse) => {
console.log('Excel Download Status:', rs);
});
}
setEmailBottomSheetOn(false);
};
const onClickToNavigate = () => {
@@ -96,10 +106,6 @@ export const ArsListPage = () => {
state: { mid }
});
};
const onClickToDownloadExcel = () => {
callDownloadExcel();
};
const onClickToOpenFilter = () => {
setFilterOn(!filterOn);
};
@@ -206,7 +212,7 @@ export const ArsListPage = () => {
<button
className="download-btn"
aria-label="다운로드"
onClick={() => onClickToDownloadExcel()}
onClick={() => onClickToOpenEmailBottomSheet()}
>
<img
src={IMAGE_ROOT + '/ico_download.svg'}
@@ -268,6 +274,13 @@ export const ArsListPage = () => {
setMinAmount={setMinAmount}
setMaxAmount={setMaxAmount}
></ArsFilter>
<EmailBottomSheet
bottomSheetOn={emailBottomSheetOn}
setBottomSheetOn={setEmailBottomSheetOn}
imageSave={false}
sendEmail={true}
sendRequest={onSendRequest}
></EmailBottomSheet>
</>
);
};

View File

@@ -20,6 +20,7 @@ import { FaceAuthList } from '@/entities/additional-service/ui/face-auth/face-au
import { FaceAuthFilter } from '@/entities/additional-service/ui/face-auth/filter/face-auth-filter';
import { FaceAuthListItem, FaceAuthTransactionType } from '@/entities/additional-service/model/face-auth/types';
import { ResultStatusBtnGroup } from '@/entities/additional-service/model/face-auth/constant';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
export const FaceAuthPage = () => {
const { navigate } = useNavigate();
@@ -35,6 +36,7 @@ export const FaceAuthPage = () => {
const [endDate, setEndDate] = useState(moment().format('YYYY-MM-DD'));
const [transactionType, setTransactionType] = useState<FaceAuthTransactionType>(FaceAuthTransactionType.ALL);
const [processResult, setProcessResult] = useState<ProcessResult>(ProcessResult.ALL);
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
useSetHeaderTitle('안면인증');
useSetHeaderType(HeaderType.LeftArrow);
@@ -87,17 +89,25 @@ export const FaceAuthPage = () => {
//});
};
const onClickToDownloadExcel = () => {
const onClickToOpenEmailBottomSheet = () => {
setEmailBottomSheetOn(true);
};
const onSendRequest = (selectedEmail?: string) => {
if (selectedEmail) {
// downloadExcel({
// mid: mid,
// //email: selectedEmail,
// memberId: memberId,
// fromDate: startDate,
// toDate: endDate,
// transactionType: transactionType,
// resultStatus: processResult
// }).then((rs) => {
// console.log('Excel Dowload Status : ' + rs.status);
// console.log('Excel Download Status: ' + rs.status);
// });
}
setEmailBottomSheetOn(false);
};
const onClickToOpenFilter = () => {
@@ -147,11 +157,12 @@ export const FaceAuthPage = () => {
</div>
<button
className="download-btn"
aria-label="다운로드"
onClick={() => onClickToOpenEmailBottomSheet()}
>
<img
src={IMAGE_ROOT + '/ico_download.svg'}
alt="다운로드"
onClick={() => onClickToDownloadExcel()}
/>
</button>
</div>
@@ -199,6 +210,13 @@ export const FaceAuthPage = () => {
setTransactionType={setTransactionType}
setProcessResult={setProcessResult}
/>
<EmailBottomSheet
bottomSheetOn={emailBottomSheetOn}
setBottomSheetOn={setEmailBottomSheetOn}
imageSave={false}
sendEmail={true}
sendRequest={onSendRequest}
></EmailBottomSheet>
</>
);
};

View File

@@ -19,6 +19,7 @@ import {
import moment from 'moment';
import { useExtensionFundAccountResultDetailMutation } from '@/entities/additional-service/api/fund-account/use-extension-fund-account-result-detail-mutation';
import { useExtensionFundAccountDownloadReceiptMutation } from '@/entities/additional-service/api/fund-account/use-extension-fund-account-download-certificate-mutation';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
export const FundAccountResultDetailPage = () => {
const { navigate } = useNavigate();
@@ -28,7 +29,7 @@ export const FundAccountResultDetailPage = () => {
const mid = location.state.mid;
const [detail, setDetail] = useState<ExtensionFundAccountResultDetailResponse>();
const [email, setEmail] = useState<string>('');
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
const { mutateAsync: extensionFundAccountResultDetail } = useExtensionFundAccountResultDetailMutation();
const { mutateAsync: extensionFundAccountDownlaodReceipt } = useExtensionFundAccountDownloadReceiptMutation();
@@ -40,19 +41,27 @@ export const FundAccountResultDetailPage = () => {
};
extensionFundAccountResultDetail(params).then((rs: ExtensionFundAccountResultDetailResponse) => {
console.log(rs.requestDate)
setDetail(rs);
});
};
const onClickToDownload = () => {
const onClickToOpenEmailBottomSheet = () => {
setEmailBottomSheetOn(true);
};
const onSendRequest = (selectedEmail?: string) => {
if (selectedEmail) {
let params: ExtensionFundAccountDownloadReceiptParams = {
mid: mid,
tid: tid,
email: email
email: selectedEmail
};
extensionFundAccountDownlaodReceipt(params).then((rs: ExtensionFundAccountDownloadReceiptResponse) => {
console.log(rs);
console.log('Receipt Download Status:', rs);
});
}
setEmailBottomSheetOn(false);
};
useSetHeaderTitle('자금이체 상세');
@@ -64,6 +73,7 @@ export const FundAccountResultDetailPage = () => {
useEffect(() => {
callDetail();
console.log(detail?.requestDate)
}, []);
return (
@@ -83,7 +93,9 @@ export const FundAccountResultDetailPage = () => {
</span>
</div>
<div className="num-store">{detail?.accountName}({detail?.accountNo})</div>
{detail?.applicationDate && (
<div className="num-day"> {moment(detail?.applicationDate, 'YYYYMMDDHHmmss').format('YYYY.MM.DD HH:mm:ss')}</div>
)}
</div>
{/* ✅ resultMessage가 "정상"일 때만 표시 */}
{detail?.resultMessage === '정상' && (
@@ -91,7 +103,7 @@ export const FundAccountResultDetailPage = () => {
<button
type="button"
className="receipt-btn"
onClick={ onClickToDownload }
onClick={ onClickToOpenEmailBottomSheet }
>
<span className="icon-24 download"></span>
<span></span>
@@ -104,19 +116,19 @@ export const FundAccountResultDetailPage = () => {
<ul className="kv-list">
<li className="kv-row">
<span className="k"></span>
<span className="v">{moment(detail?.requsetDate).format('YYYY.MM.DD HH:mm:ss')}</span>
<span className="v">{moment(detail?.requestDate,'YYYYMMDDHHmmss').format('YYYY.MM.DD HH:mm:ss')}</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{moment(detail?.applicationDate, 'YYYYMMDDHHmmss').format('YYYY.MM.DD HH:mm:ss')}</span>
<span className="v">{detail?.applicationDate ? moment(detail?.applicationDate, 'YYYYMMDDHHmmss').format('YYYY.MM.DD HH:mm:ss') : '-'}</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{detail?.resultMessage}</span>
<span className="v">{detail?.resultMessage || '-'}</span>
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{detail?.failReason}</span>
<span className="v">{detail?.failReason || '-'}</span>
</li>
<li className="kv-row">
<span className="k"></span>
@@ -147,6 +159,13 @@ export const FundAccountResultDetailPage = () => {
</div>
</div>
</main>
<EmailBottomSheet
bottomSheetOn={emailBottomSheetOn}
setBottomSheetOn={setEmailBottomSheetOn}
imageSave={false}
sendEmail={true}
sendRequest={onSendRequest}
></EmailBottomSheet>
</>
);
};

View File

@@ -120,7 +120,7 @@ export const FundAccountTransferDetailPage = () => {
</li>
<li className="kv-row">
<span className="k"></span>
<span className="v">{detail?.bankCode}</span>
<span className="v">{detail?.bankCode || '-'} </span>
</li>
<li className="kv-row">
<span className="k"></span>

View File

@@ -21,6 +21,7 @@ import { KeyInPaymentList } from '@/entities/additional-service/ui/key-in-paymen
import { useStore } from '@/shared/model/store';
import { KeyInPaymentListItem, KeyInPaymentPaymentStatus } from '@/entities/additional-service/model/key-in/types';
import { keyInPaymentPaymentStatusBtnGroup } from '@/entities/additional-service/model/key-in/constant';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
export const KeyInPaymentPage = () => {
const { navigate } = useNavigate();
@@ -36,6 +37,7 @@ export const KeyInPaymentPage = () => {
const [paymentStatus, setPaymentStatus] = useState<KeyInPaymentPaymentStatus>(KeyInPaymentPaymentStatus.ALL)
const [minAmount, setMinAmount] = useState<number>();
const [maxAmount, setMaxAmount] = useState<number>();
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
useSetHeaderTitle('KEY-IN 결제');
useSetHeaderType(HeaderType.LeftArrow);
@@ -83,7 +85,12 @@ export const KeyInPaymentPage = () => {
setFilterOn(!filterOn);
};
const onClickToDownloadExcel = () => {
const onClickToOpenEmailBottomSheet = () => {
setEmailBottomSheetOn(true);
};
const onSendRequest = (selectedEmail?: string) => {
if (selectedEmail) {
let newMinAmount = minAmount;
if (!!minAmount && typeof (minAmount) === 'string') {
newMinAmount = parseInt(minAmount);
@@ -98,10 +105,13 @@ export const KeyInPaymentPage = () => {
toDate: endDate,
paymentStatus: paymentStatus,
minAmount: newMinAmount,
maxAmount: newMaxAmount
maxAmount: newMaxAmount,
//email: selectedEmail
}).then((rs) => {
console.log('Excel Dowload Status : ' + rs.status);
console.log('Excel Download Status:', rs.status);
});
}
setEmailBottomSheetOn(false);
};
const onClickToSort = (sort: SortTypeKeys) => {
@@ -161,7 +171,7 @@ export const KeyInPaymentPage = () => {
<img
src={IMAGE_ROOT + '/ico_download.svg'}
alt="다운로드"
onClick={() => onClickToDownloadExcel()}
onClick={() => onClickToOpenEmailBottomSheet()}
/>
</button>
</div>
@@ -210,6 +220,13 @@ export const KeyInPaymentPage = () => {
setMinAmount={setMinAmount}
setMaxAmount={setMaxAmount}
></KeyInPaymentFilter>
<EmailBottomSheet
bottomSheetOn={emailBottomSheetOn}
setBottomSheetOn={setEmailBottomSheetOn}
imageSave={false}
sendEmail={true}
sendRequest={onSendRequest}
></EmailBottomSheet>
</>
);
};

View File

@@ -28,6 +28,7 @@ import { PayoutDisbursementStatusBtnGroup } from '@/entities/additional-service/
import { ListDateGroup } from '@/entities/additional-service/ui/list-date-group';
import { AdditionalServiceCategory } from '@/entities/additional-service/model/types';
import { useStore } from '@/shared/model/store';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
export const PayoutListPage = () => {
const { navigate } = useNavigate();
@@ -44,6 +45,7 @@ export const PayoutListPage = () => {
const [status, setStatus] = useState<PayoutDisbursementStatus>(PayoutDisbursementStatus.ALL);
const [minAmount, setMinAmount] = useState<number>(0);
const [maxAmount, setMaxAmount] = useState<number>(50000000);
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
const { mutateAsync: extensionPayoutList } = useExtensionPayoutListMutation();
const { mutateAsync: extensionPayoutExcel } = useExtensionPayoutExcelMutation();
@@ -92,8 +94,13 @@ export const PayoutListPage = () => {
});
};
const callDownloadExcel = () => {
let params: ExtensionPayoutExcelParams = {
const onClickToOpenEmailBottomSheet = () => {
setEmailBottomSheetOn(true);
};
const onSendRequest = (selectedEmail?: string) => {
if (selectedEmail) {
const params: ExtensionPayoutExcelParams = {
mid: mid,
searchDateType: searchDateType,
fromDate: fromDate,
@@ -101,14 +108,13 @@ export const PayoutListPage = () => {
status: status,
minAmount: minAmount,
maxAmount: maxAmount,
//email: selectedEmail
};
extensionPayoutExcel(params).then((rs: ExtensionPayoutExcelResponse) => {
console.log('Excel Download Status:', rs);
});
};
const onClickToDownloadExcel = () => {
callDownloadExcel();
}
setEmailBottomSheetOn(false);
};
const onClickToOpenFilter = () => {
setFilterOn(!filterOn);
@@ -214,7 +220,7 @@ export const PayoutListPage = () => {
<button
className="download-btn"
aria-label="다운로드"
onClick={ () => onClickToDownloadExcel() }
onClick={ () => onClickToOpenEmailBottomSheet() }
>
<img
src={ IMAGE_ROOT + '/ico_download.svg' }
@@ -283,6 +289,13 @@ export const PayoutListPage = () => {
setMinAmount={ setMinAmount }
setMaxAmount={ setMaxAmount }
></PayoutFilter>
<EmailBottomSheet
bottomSheetOn={emailBottomSheetOn}
setBottomSheetOn={setEmailBottomSheetOn}
imageSave={false}
sendEmail={true}
sendRequest={onSendRequest}
></EmailBottomSheet>
</>
);
};

View File

@@ -20,6 +20,7 @@ import { useExtensionSmsDetailMutation } from '@/entities/additional-service/api
import { useStore } from '@/shared/model/store';
import { AdditionalServiceCategory } from '@/entities/additional-service/model/types';
import { PATHS } from '@/shared/constants/paths';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
export const SmsPaymentPage = () => {
@@ -41,6 +42,7 @@ export const SmsPaymentPage = () => {
const [toDate, setToDate] = useState(moment().format('YYYYMMDD'));
const [smsCl, setSmsCl] = useState<SmsCl>(SmsCl.ALL);
const [smsDetailData, setSmsDetailData] = useState<ExtensionSmsDetailResponse | null>(null);
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
const { mutateAsync: smsPaymentList } = useExtensionSmsListMutation();
const { mutateAsync: downloadExcel } = useExtensionSmsDownloadExcelMutation();
@@ -85,7 +87,12 @@ export const SmsPaymentPage = () => {
})
}
const onClickToDownloadExcel = () => {
const onClickToOpenEmailBottomSheet = () => {
setEmailBottomSheetOn(true);
};
const onSendRequest = (selectedEmail?: string) => {
if (selectedEmail) {
downloadExcel({
mid: mid,
searchCl: searchCl,
@@ -93,10 +100,13 @@ export const SmsPaymentPage = () => {
fromDate: fromDate,
toDate: toDate,
smsCl: smsCl,
//email: selectedEmail
}).then((rs) => {
console.log('Excel Dowload Status : ' + rs.status);
console.log('Excel Download Status:', rs.status);
});
}
setEmailBottomSheetOn(false);
};
const onClickToOpenFilter = () => {
setFilterOn(!filterOn);
@@ -153,7 +163,7 @@ export const SmsPaymentPage = () => {
<img
src={IMAGE_ROOT + '/ico_download.svg'}
alt="다운로드"
onClick={() => onClickToDownloadExcel()}
onClick={() => onClickToOpenEmailBottomSheet()}
/>
</button>
</div>
@@ -193,6 +203,13 @@ export const SmsPaymentPage = () => {
setToDate={setToDate}
setSmsCl={setSmsCl}
></SmsPaymentFilter>
<EmailBottomSheet
bottomSheetOn={emailBottomSheetOn}
setBottomSheetOn={setEmailBottomSheetOn}
imageSave={false}
sendEmail={true}
sendRequest={onSendRequest}
></EmailBottomSheet>
</>
);
};