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

- 부가서비스 엑셀 다운로드 이메일 바텀시트 추가
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; accountName: string;
accountNo: string; accountNo: string;
applicationDate: string; applicationDate: string;
requsetDate: string; requestDate: string;
resultMessage: string; resultMessage: string;
failReason: string; failReason: string;
bankName: string; bankName: string;

View File

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

View File

@@ -125,7 +125,7 @@ export const FundAccountTransferListWrap = () => {
const getListDateGroup = () => { const getListDateGroup = () => {
let rs = []; let rs = [];
let date = ''; let date = '';
let list = []; let list = [];
for (let i = 0; i < listItems.length; i++) { for (let i = 0; i < listItems.length; i++) {
let items = listItems[i]; let items = listItems[i];
@@ -137,7 +137,6 @@ export const FundAccountTransferListWrap = () => {
date = registDate; date = registDate;
} }
if (date !== registDate) { if (date !== registDate) {
date = registDate;
if (list.length > 0) { if (list.length > 0) {
rs.push( rs.push(
<ListDateGroup <ListDateGroup
@@ -148,6 +147,7 @@ export const FundAccountTransferListWrap = () => {
></ListDateGroup> ></ListDateGroup>
); );
} }
date = registDate;
list = []; list = [];
} }
list.push(items); 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 { useExtensionLinkPayHistoryDownloadExcelMutation } from '../../api/link-payment/use-extension-link-pay-history-download-excel-mutation';
import { useStore } from '@/shared/model/store'; import { useStore } from '@/shared/model/store';
import { ExtensionLinkPayHistoryListParams, LinkPaymentHistoryListItem, LinkPaymentPaymentMethod, LinkPaymentPaymentStatus, LinkPaymentSearchCl, LinkPaymentSendMethod, LinkPaymentSendStatus } from '../../model/link-pay/types'; import { ExtensionLinkPayHistoryListParams, LinkPaymentHistoryListItem, LinkPaymentPaymentMethod, LinkPaymentPaymentStatus, LinkPaymentSearchCl, LinkPaymentSendMethod, LinkPaymentSendStatus } from '../../model/link-pay/types';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
const paymentResultBtnGroup = [ const paymentResultBtnGroup = [
{ name: '전체', value: LinkPaymentPaymentStatus.ALL }, { name: '전체', value: LinkPaymentPaymentStatus.ALL },
@@ -41,8 +42,7 @@ export const LinkPaymentHistoryWrap = () => {
const [paymentStatus, setPaymentStatus] = useState<LinkPaymentPaymentStatus>(LinkPaymentPaymentStatus.ALL); const [paymentStatus, setPaymentStatus] = useState<LinkPaymentPaymentStatus>(LinkPaymentPaymentStatus.ALL);
const [sendStatus, setSendStatus] = useState<LinkPaymentSendStatus>(LinkPaymentSendStatus.ALL); const [sendStatus, setSendStatus] = useState<LinkPaymentSendStatus>(LinkPaymentSendStatus.ALL);
const [sendMethod, setSendMethod] = useState<LinkPaymentSendMethod>(LinkPaymentSendMethod.ALL); const [sendMethod, setSendMethod] = useState<LinkPaymentSendMethod>(LinkPaymentSendMethod.ALL);
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
const [email, setEmail] = useState<string>('');
const { mutateAsync: linkPayHistoryList } = useExtensionLinkPayHistoryListMutation(); const { mutateAsync: linkPayHistoryList } = useExtensionLinkPayHistoryListMutation();
const { mutateAsync: downloadExcel } = useExtensionLinkPayHistoryDownloadExcelMutation(); const { mutateAsync: downloadExcel } = useExtensionLinkPayHistoryDownloadExcelMutation();
@@ -77,21 +77,28 @@ export const LinkPaymentHistoryWrap = () => {
}); });
}; };
const onClickToDownloadExcel = () => { const onClickToOpenEmailBottomSheet = () => {
downloadExcel({ setEmailBottomSheetOn(true);
mid: mid, };
email: email,
searchCl: searchCl, const onSendRequest = (selectedEmail?: string) => {
searchValue: searchValue, if (selectedEmail) {
paymentMethod: paymentMethod, downloadExcel({
fromDate: fromDate, mid: mid,
toDate: toDate, email: selectedEmail,
paymentStatus: paymentStatus, searchCl: searchCl,
sendStatus: sendStatus, searchValue: searchValue,
sendMethod: sendMethod, paymentMethod: paymentMethod,
}).then((rs) => { fromDate: fromDate,
console.log('Excel Dowload Status : ' + rs.status); toDate: toDate,
}); paymentStatus: paymentStatus,
sendStatus: sendStatus,
sendMethod: sendMethod,
}).then((rs) => {
console.log('Excel Download Status: ' + rs.status);
});
}
setEmailBottomSheetOn(false);
}; };
const onClickPaymentStatus = (val: LinkPaymentPaymentStatus) => { const onClickPaymentStatus = (val: LinkPaymentPaymentStatus) => {
@@ -149,11 +156,11 @@ export const LinkPaymentHistoryWrap = () => {
<button <button
className="download-btn" className="download-btn"
aria-label="다운로드" aria-label="다운로드"
onClick={() => onClickToOpenEmailBottomSheet()}
> >
<img <img
src={IMAGE_ROOT + '/ico_download.svg'} src={IMAGE_ROOT + '/ico_download.svg'}
alt="다운로드" alt="다운로드"
onClick={() => onClickToDownloadExcel()}
/> />
</button> </button>
</div> </div>
@@ -211,6 +218,13 @@ export const LinkPaymentHistoryWrap = () => {
setSendStatus={setSendStatus} setSendStatus={setSendStatus}
setSendMethod={setSendMethod} setSendMethod={setSendMethod}
></LinkPaymentHistoryFilter> ></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 [processStatus, setProcessStatus] = useState<LinkPaymentProcessStatus>(LinkPaymentProcessStatus.ALL);
const [listItems, setListItems] = useState<Array<LinkPaymentWaitListItem>>([]); const [listItems, setListItems] = useState<Array<LinkPaymentWaitListItem>>([]);
const [pageParam, setPageParam] = useState<DefaultRequestPagination>(DEFAULT_PAGE_PARAM); 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: pendingSendList } = useExtensionLinkPayWaitListMutation();
const { mutateAsync: downloadExcel } = useExtensionLinkPayWaitDownloadExcelMutation(); const { mutateAsync: downloadExcel } = useExtensionLinkPayWaitDownloadExcelMutation();
@@ -71,19 +71,26 @@ export const LinkPaymentWaitSendWrap = () => {
}); });
}; };
const onClickToDownloadExcel = () => { const onClickToOpenEmailBottomSheet = () => {
downloadExcel({ setEmailBottomSheetOn(true);
mid: mid, };
email: email,
searchCl: searchType, const onSendRequest = (selectedEmail?: string) => {
searchValue: searchValue, if (selectedEmail) {
fromDate: startDate, downloadExcel({
toDate: endDate, mid: mid,
sendMethod: sendMethod, //email: selectedEmail,
processStatus: processStatus, searchCl: searchType,
}).then((rs) => { searchValue: searchValue,
console.log('Excel Dowload Status : ' + rs.status); fromDate: startDate,
}); toDate: endDate,
sendMethod: sendMethod,
processStatus: processStatus,
}).then((rs) => {
console.log('Excel Download Status: ' + rs.status);
});
}
setEmailBottomSheetOn(false);
}; };
const onClickToSort = (sort: SortTypeKeys) => { const onClickToSort = (sort: SortTypeKeys) => {
@@ -135,11 +142,11 @@ export const LinkPaymentWaitSendWrap = () => {
<button <button
className="download-btn" className="download-btn"
aria-label="다운로드" aria-label="다운로드"
onClick={() => onClickToOpenEmailBottomSheet()}
> >
<img <img
src={IMAGE_ROOT + '/ico_download.svg'} src={IMAGE_ROOT + '/ico_download.svg'}
alt="다운로드" alt="다운로드"
onClick={() => onClickToDownloadExcel()}
/> />
</button> </button>
</div> </div>
@@ -194,6 +201,13 @@ export const LinkPaymentWaitSendWrap = () => {
setSendMethod={setSendMethod} setSendMethod={setSendMethod}
setProcessStatus={setProcessStatus} setProcessStatus={setProcessStatus}
></LinkPaymentWaitSendFilter> ></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) { else if (additionalServiceCategory === AdditionalServiceCategory.FundAccountResult) {
if (applicationDate && applicationDate.length >= 12) { if (applicationDate && applicationDate.length >= 12) {
timeStr = applicationDate.substring(8, 10) + ':' + applicationDate.substring(10, 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) { 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 = () => { const onClickToOpenFilter = () => {
setFilterOn(!filterOn); setFilterOn(!filterOn);
@@ -155,11 +145,12 @@ export const AccountHolderAuthPage = () => {
</div> </div>
<button <button
className="download-btn" className="download-btn"
aria-label="다운로드"
onClick={() => onClickToOpenEmailBottomSheet()}
> >
<img <img
src={IMAGE_ROOT + '/ico_download.svg'} src={IMAGE_ROOT + '/ico_download.svg'}
alt="다운로드" alt="다운로드"
onClick={() => onClickToDownloadExcel()}
/> />
</button> </button>
</div> </div>

View File

@@ -40,7 +40,6 @@ export const AccountHolderSearchPage = () => {
const [bank, setBank] = useState<string>(''); const [bank, setBank] = useState<string>('');
const [processResult, setProcessResult] = useState<ProcessResult>(ProcessResult.ALL); const [processResult, setProcessResult] = useState<ProcessResult>(ProcessResult.ALL);
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false); const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
const [email, setEmail] = useState<string>('');
useSetHeaderTitle('계좌성명조회'); useSetHeaderTitle('계좌성명조회');
useSetHeaderType(HeaderType.LeftArrow); useSetHeaderType(HeaderType.LeftArrow);
@@ -87,8 +86,6 @@ export const AccountHolderSearchPage = () => {
const onSendRequest = (selectedEmail?: string) => { const onSendRequest = (selectedEmail?: string) => {
if (selectedEmail) { if (selectedEmail) {
// 이메일을 설정한 후 다운로드 실행
downloadExcel({ downloadExcel({
mid: mid, mid: mid,
//email: selectedEmail, //email: selectedEmail,
@@ -105,20 +102,6 @@ export const AccountHolderSearchPage = () => {
setEmailBottomSheetOn(false); 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) => { const onClickToSort = (sort: SortTypeKeys) => {
setSortType(sort); setSortType(sort);
callList({ 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 { ArsPaymentStatusBtnGroup } from '@/entities/additional-service/model/ars/constant';
import { ArsFilter } from '@/entities/additional-service/ui/filter/ars-filter'; import { ArsFilter } from '@/entities/additional-service/ui/filter/ars-filter';
import { useStore } from '@/shared/model/store'; import { useStore } from '@/shared/model/store';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
export const ArsListPage = () => { export const ArsListPage = () => {
const { navigate } = useNavigate(); const { navigate } = useNavigate();
@@ -38,6 +39,7 @@ export const ArsListPage = () => {
const [orderStatus, setOrderStatus] = useState<OrderStatus>(OrderStatus.ALL); const [orderStatus, setOrderStatus] = useState<OrderStatus>(OrderStatus.ALL);
const [minAmount, setMinAmount] = useState<number>(); const [minAmount, setMinAmount] = useState<number>();
const [maxAmount, setMaxAmount] = useState<number>(); const [maxAmount, setMaxAmount] = useState<number>();
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
const { mutateAsync: extensionArsList } = useExtensionArsListMutation(); const { mutateAsync: extensionArsList } = useExtensionArsListMutation();
const { mutateAsync: extensionArsDownloadExcel } = useExtensionArsDownloadExcelMutation(); const { mutateAsync: extensionArsDownloadExcel } = useExtensionArsDownloadExcelMutation();
@@ -75,20 +77,28 @@ export const ArsListPage = () => {
}); });
}; };
const callDownloadExcel = () => { const onClickToOpenEmailBottomSheet = () => {
let params: ExtensionArsDownloadExcelParams = { setEmailBottomSheetOn(true);
mid: mid, };
moid: moid,
fromDate: fromDate,
toDate: toDate,
paymentStatus: paymentStatus,
orderStatus: orderStatus,
minAmount: minAmount,
maxAmount: maxAmount,
};
extensionArsDownloadExcel(params).then((rs: ExtensionArsDownloadExcelResponse) => {
}); const onSendRequest = (selectedEmail?: string) => {
if (selectedEmail) {
const params: ExtensionArsDownloadExcelParams = {
mid: mid,
moid: moid,
fromDate: fromDate,
toDate: toDate,
paymentStatus: paymentStatus,
orderStatus: orderStatus,
minAmount: minAmount,
maxAmount: maxAmount,
//email: selectedEmail
};
extensionArsDownloadExcel(params).then((rs: ExtensionArsDownloadExcelResponse) => {
console.log('Excel Download Status:', rs);
});
}
setEmailBottomSheetOn(false);
}; };
const onClickToNavigate = () => { const onClickToNavigate = () => {
@@ -96,10 +106,6 @@ export const ArsListPage = () => {
state: { mid } state: { mid }
}); });
}; };
const onClickToDownloadExcel = () => {
callDownloadExcel();
};
const onClickToOpenFilter = () => { const onClickToOpenFilter = () => {
setFilterOn(!filterOn); setFilterOn(!filterOn);
}; };
@@ -206,7 +212,7 @@ export const ArsListPage = () => {
<button <button
className="download-btn" className="download-btn"
aria-label="다운로드" aria-label="다운로드"
onClick={() => onClickToDownloadExcel()} onClick={() => onClickToOpenEmailBottomSheet()}
> >
<img <img
src={IMAGE_ROOT + '/ico_download.svg'} src={IMAGE_ROOT + '/ico_download.svg'}
@@ -268,6 +274,13 @@ export const ArsListPage = () => {
setMinAmount={setMinAmount} setMinAmount={setMinAmount}
setMaxAmount={setMaxAmount} setMaxAmount={setMaxAmount}
></ArsFilter> ></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 { FaceAuthFilter } from '@/entities/additional-service/ui/face-auth/filter/face-auth-filter';
import { FaceAuthListItem, FaceAuthTransactionType } from '@/entities/additional-service/model/face-auth/types'; import { FaceAuthListItem, FaceAuthTransactionType } from '@/entities/additional-service/model/face-auth/types';
import { ResultStatusBtnGroup } from '@/entities/additional-service/model/face-auth/constant'; import { ResultStatusBtnGroup } from '@/entities/additional-service/model/face-auth/constant';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
export const FaceAuthPage = () => { export const FaceAuthPage = () => {
const { navigate } = useNavigate(); const { navigate } = useNavigate();
@@ -35,6 +36,7 @@ export const FaceAuthPage = () => {
const [endDate, setEndDate] = useState(moment().format('YYYY-MM-DD')); const [endDate, setEndDate] = useState(moment().format('YYYY-MM-DD'));
const [transactionType, setTransactionType] = useState<FaceAuthTransactionType>(FaceAuthTransactionType.ALL); const [transactionType, setTransactionType] = useState<FaceAuthTransactionType>(FaceAuthTransactionType.ALL);
const [processResult, setProcessResult] = useState<ProcessResult>(ProcessResult.ALL); const [processResult, setProcessResult] = useState<ProcessResult>(ProcessResult.ALL);
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
useSetHeaderTitle('안면인증'); useSetHeaderTitle('안면인증');
useSetHeaderType(HeaderType.LeftArrow); useSetHeaderType(HeaderType.LeftArrow);
@@ -87,17 +89,25 @@ export const FaceAuthPage = () => {
//}); //});
}; };
const onClickToDownloadExcel = () => { const onClickToOpenEmailBottomSheet = () => {
// downloadExcel({ setEmailBottomSheetOn(true);
// mid: mid, };
// memberId: memberId,
// fromDate: startDate, const onSendRequest = (selectedEmail?: string) => {
// toDate: endDate, if (selectedEmail) {
// transactionType: transactionType, // downloadExcel({
// resultStatus: processResult // mid: mid,
// }).then((rs) => { // //email: selectedEmail,
// console.log('Excel Dowload Status : ' + rs.status); // memberId: memberId,
// }); // fromDate: startDate,
// toDate: endDate,
// transactionType: transactionType,
// resultStatus: processResult
// }).then((rs) => {
// console.log('Excel Download Status: ' + rs.status);
// });
}
setEmailBottomSheetOn(false);
}; };
const onClickToOpenFilter = () => { const onClickToOpenFilter = () => {
@@ -147,11 +157,12 @@ export const FaceAuthPage = () => {
</div> </div>
<button <button
className="download-btn" className="download-btn"
aria-label="다운로드"
onClick={() => onClickToOpenEmailBottomSheet()}
> >
<img <img
src={IMAGE_ROOT + '/ico_download.svg'} src={IMAGE_ROOT + '/ico_download.svg'}
alt="다운로드" alt="다운로드"
onClick={() => onClickToDownloadExcel()}
/> />
</button> </button>
</div> </div>
@@ -199,6 +210,13 @@ export const FaceAuthPage = () => {
setTransactionType={setTransactionType} setTransactionType={setTransactionType}
setProcessResult={setProcessResult} 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 moment from 'moment';
import { useExtensionFundAccountResultDetailMutation } from '@/entities/additional-service/api/fund-account/use-extension-fund-account-result-detail-mutation'; 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 { 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 = () => { export const FundAccountResultDetailPage = () => {
const { navigate } = useNavigate(); const { navigate } = useNavigate();
@@ -28,7 +29,7 @@ export const FundAccountResultDetailPage = () => {
const mid = location.state.mid; const mid = location.state.mid;
const [detail, setDetail] = useState<ExtensionFundAccountResultDetailResponse>(); const [detail, setDetail] = useState<ExtensionFundAccountResultDetailResponse>();
const [email, setEmail] = useState<string>(''); const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
const { mutateAsync: extensionFundAccountResultDetail } = useExtensionFundAccountResultDetailMutation(); const { mutateAsync: extensionFundAccountResultDetail } = useExtensionFundAccountResultDetailMutation();
const { mutateAsync: extensionFundAccountDownlaodReceipt } = useExtensionFundAccountDownloadReceiptMutation(); const { mutateAsync: extensionFundAccountDownlaodReceipt } = useExtensionFundAccountDownloadReceiptMutation();
@@ -40,19 +41,27 @@ export const FundAccountResultDetailPage = () => {
}; };
extensionFundAccountResultDetail(params).then((rs: ExtensionFundAccountResultDetailResponse) => { extensionFundAccountResultDetail(params).then((rs: ExtensionFundAccountResultDetailResponse) => {
console.log(rs.requestDate)
setDetail(rs); setDetail(rs);
}); });
}; };
const onClickToDownload = () => { const onClickToOpenEmailBottomSheet = () => {
let params: ExtensionFundAccountDownloadReceiptParams = { setEmailBottomSheetOn(true);
mid: mid, };
tid: tid,
email: email const onSendRequest = (selectedEmail?: string) => {
}; if (selectedEmail) {
extensionFundAccountDownlaodReceipt(params).then((rs: ExtensionFundAccountDownloadReceiptResponse) => { let params: ExtensionFundAccountDownloadReceiptParams = {
console.log(rs); mid: mid,
}); tid: tid,
email: selectedEmail
};
extensionFundAccountDownlaodReceipt(params).then((rs: ExtensionFundAccountDownloadReceiptResponse) => {
console.log('Receipt Download Status:', rs);
});
}
setEmailBottomSheetOn(false);
}; };
useSetHeaderTitle('자금이체 상세'); useSetHeaderTitle('자금이체 상세');
@@ -64,6 +73,7 @@ export const FundAccountResultDetailPage = () => {
useEffect(() => { useEffect(() => {
callDetail(); callDetail();
console.log(detail?.requestDate)
}, []); }, []);
return ( return (
@@ -83,7 +93,9 @@ export const FundAccountResultDetailPage = () => {
</span> </span>
</div> </div>
<div className="num-store">{detail?.accountName}({detail?.accountNo})</div> <div className="num-store">{detail?.accountName}({detail?.accountNo})</div>
<div className="num-day"> {moment(detail?.applicationDate, 'YYYYMMDDHHmmss').format('YYYY.MM.DD HH:mm:ss')}</div> {detail?.applicationDate && (
<div className="num-day"> {moment(detail?.applicationDate, 'YYYYMMDDHHmmss').format('YYYY.MM.DD HH:mm:ss')}</div>
)}
</div> </div>
{/* ✅ resultMessage가 "정상"일 때만 표시 */} {/* ✅ resultMessage가 "정상"일 때만 표시 */}
{detail?.resultMessage === '정상' && ( {detail?.resultMessage === '정상' && (
@@ -91,7 +103,7 @@ export const FundAccountResultDetailPage = () => {
<button <button
type="button" type="button"
className="receipt-btn" className="receipt-btn"
onClick={ onClickToDownload } onClick={ onClickToOpenEmailBottomSheet }
> >
<span className="icon-24 download"></span> <span className="icon-24 download"></span>
<span></span> <span></span>
@@ -104,19 +116,19 @@ export const FundAccountResultDetailPage = () => {
<ul className="kv-list"> <ul className="kv-list">
<li className="kv-row"> <li className="kv-row">
<span className="k"></span> <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>
<li className="kv-row"> <li className="kv-row">
<span className="k"></span> <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>
<li className="kv-row"> <li className="kv-row">
<span className="k"></span> <span className="k"></span>
<span className="v">{detail?.resultMessage}</span> <span className="v">{detail?.resultMessage || '-'}</span>
</li> </li>
<li className="kv-row"> <li className="kv-row">
<span className="k"></span> <span className="k"></span>
<span className="v">{detail?.failReason}</span> <span className="v">{detail?.failReason || '-'}</span>
</li> </li>
<li className="kv-row"> <li className="kv-row">
<span className="k"></span> <span className="k"></span>
@@ -147,6 +159,13 @@ export const FundAccountResultDetailPage = () => {
</div> </div>
</div> </div>
</main> </main>
<EmailBottomSheet
bottomSheetOn={emailBottomSheetOn}
setBottomSheetOn={setEmailBottomSheetOn}
imageSave={false}
sendEmail={true}
sendRequest={onSendRequest}
></EmailBottomSheet>
</> </>
); );
}; };

View File

@@ -120,7 +120,7 @@ export const FundAccountTransferDetailPage = () => {
</li> </li>
<li className="kv-row"> <li className="kv-row">
<span className="k"></span> <span className="k"></span>
<span className="v">{detail?.bankCode}</span> <span className="v">{detail?.bankCode || '-'} </span>
</li> </li>
<li className="kv-row"> <li className="kv-row">
<span className="k"></span> <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 { useStore } from '@/shared/model/store';
import { KeyInPaymentListItem, KeyInPaymentPaymentStatus } from '@/entities/additional-service/model/key-in/types'; import { KeyInPaymentListItem, KeyInPaymentPaymentStatus } from '@/entities/additional-service/model/key-in/types';
import { keyInPaymentPaymentStatusBtnGroup } from '@/entities/additional-service/model/key-in/constant'; import { keyInPaymentPaymentStatusBtnGroup } from '@/entities/additional-service/model/key-in/constant';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
export const KeyInPaymentPage = () => { export const KeyInPaymentPage = () => {
const { navigate } = useNavigate(); const { navigate } = useNavigate();
@@ -36,6 +37,7 @@ export const KeyInPaymentPage = () => {
const [paymentStatus, setPaymentStatus] = useState<KeyInPaymentPaymentStatus>(KeyInPaymentPaymentStatus.ALL) const [paymentStatus, setPaymentStatus] = useState<KeyInPaymentPaymentStatus>(KeyInPaymentPaymentStatus.ALL)
const [minAmount, setMinAmount] = useState<number>(); const [minAmount, setMinAmount] = useState<number>();
const [maxAmount, setMaxAmount] = useState<number>(); const [maxAmount, setMaxAmount] = useState<number>();
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
useSetHeaderTitle('KEY-IN 결제'); useSetHeaderTitle('KEY-IN 결제');
useSetHeaderType(HeaderType.LeftArrow); useSetHeaderType(HeaderType.LeftArrow);
@@ -83,25 +85,33 @@ export const KeyInPaymentPage = () => {
setFilterOn(!filterOn); setFilterOn(!filterOn);
}; };
const onClickToDownloadExcel = () => { const onClickToOpenEmailBottomSheet = () => {
let newMinAmount = minAmount; setEmailBottomSheetOn(true);
if (!!minAmount && typeof (minAmount) === 'string') { };
newMinAmount = parseInt(minAmount);
const onSendRequest = (selectedEmail?: string) => {
if (selectedEmail) {
let newMinAmount = minAmount;
if (!!minAmount && typeof (minAmount) === 'string') {
newMinAmount = parseInt(minAmount);
}
let newMaxAmount = maxAmount;
if (!!maxAmount && typeof (maxAmount) === 'string') {
newMaxAmount = parseInt(maxAmount);
}
downloadExcel({
mid: mid,
fromDate: startDate,
toDate: endDate,
paymentStatus: paymentStatus,
minAmount: newMinAmount,
maxAmount: newMaxAmount,
//email: selectedEmail
}).then((rs) => {
console.log('Excel Download Status:', rs.status);
});
} }
let newMaxAmount = maxAmount; setEmailBottomSheetOn(false);
if (!!maxAmount && typeof (maxAmount) === 'string') {
newMaxAmount = parseInt(maxAmount);
}
downloadExcel({
mid: mid,
fromDate: startDate,
toDate: endDate,
paymentStatus: paymentStatus,
minAmount: newMinAmount,
maxAmount: newMaxAmount
}).then((rs) => {
console.log('Excel Dowload Status : ' + rs.status);
});
}; };
const onClickToSort = (sort: SortTypeKeys) => { const onClickToSort = (sort: SortTypeKeys) => {
@@ -161,7 +171,7 @@ export const KeyInPaymentPage = () => {
<img <img
src={IMAGE_ROOT + '/ico_download.svg'} src={IMAGE_ROOT + '/ico_download.svg'}
alt="다운로드" alt="다운로드"
onClick={() => onClickToDownloadExcel()} onClick={() => onClickToOpenEmailBottomSheet()}
/> />
</button> </button>
</div> </div>
@@ -210,6 +220,13 @@ export const KeyInPaymentPage = () => {
setMinAmount={setMinAmount} setMinAmount={setMinAmount}
setMaxAmount={setMaxAmount} setMaxAmount={setMaxAmount}
></KeyInPaymentFilter> ></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 { ListDateGroup } from '@/entities/additional-service/ui/list-date-group';
import { AdditionalServiceCategory } from '@/entities/additional-service/model/types'; import { AdditionalServiceCategory } from '@/entities/additional-service/model/types';
import { useStore } from '@/shared/model/store'; import { useStore } from '@/shared/model/store';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
export const PayoutListPage = () => { export const PayoutListPage = () => {
const { navigate } = useNavigate(); const { navigate } = useNavigate();
@@ -44,6 +45,7 @@ export const PayoutListPage = () => {
const [status, setStatus] = useState<PayoutDisbursementStatus>(PayoutDisbursementStatus.ALL); const [status, setStatus] = useState<PayoutDisbursementStatus>(PayoutDisbursementStatus.ALL);
const [minAmount, setMinAmount] = useState<number>(0); const [minAmount, setMinAmount] = useState<number>(0);
const [maxAmount, setMaxAmount] = useState<number>(50000000); const [maxAmount, setMaxAmount] = useState<number>(50000000);
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
const { mutateAsync: extensionPayoutList } = useExtensionPayoutListMutation(); const { mutateAsync: extensionPayoutList } = useExtensionPayoutListMutation();
const { mutateAsync: extensionPayoutExcel } = useExtensionPayoutExcelMutation(); const { mutateAsync: extensionPayoutExcel } = useExtensionPayoutExcelMutation();
@@ -92,23 +94,27 @@ export const PayoutListPage = () => {
}); });
}; };
const callDownloadExcel = () => { const onClickToOpenEmailBottomSheet = () => {
let params: ExtensionPayoutExcelParams = { setEmailBottomSheetOn(true);
mid: mid,
searchDateType: searchDateType,
fromDate: fromDate,
toDate: toDate,
status: status,
minAmount: minAmount,
maxAmount: maxAmount,
};
extensionPayoutExcel(params).then((rs: ExtensionPayoutExcelResponse) => {
});
}; };
const onClickToDownloadExcel = () => { const onSendRequest = (selectedEmail?: string) => {
callDownloadExcel(); if (selectedEmail) {
const params: ExtensionPayoutExcelParams = {
mid: mid,
searchDateType: searchDateType,
fromDate: fromDate,
toDate: toDate,
status: status,
minAmount: minAmount,
maxAmount: maxAmount,
//email: selectedEmail
};
extensionPayoutExcel(params).then((rs: ExtensionPayoutExcelResponse) => {
console.log('Excel Download Status:', rs);
});
}
setEmailBottomSheetOn(false);
}; };
const onClickToOpenFilter = () => { const onClickToOpenFilter = () => {
setFilterOn(!filterOn); setFilterOn(!filterOn);
@@ -214,7 +220,7 @@ export const PayoutListPage = () => {
<button <button
className="download-btn" className="download-btn"
aria-label="다운로드" aria-label="다운로드"
onClick={ () => onClickToDownloadExcel() } onClick={ () => onClickToOpenEmailBottomSheet() }
> >
<img <img
src={ IMAGE_ROOT + '/ico_download.svg' } src={ IMAGE_ROOT + '/ico_download.svg' }
@@ -283,6 +289,13 @@ export const PayoutListPage = () => {
setMinAmount={ setMinAmount } setMinAmount={ setMinAmount }
setMaxAmount={ setMaxAmount } setMaxAmount={ setMaxAmount }
></PayoutFilter> ></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 { useStore } from '@/shared/model/store';
import { AdditionalServiceCategory } from '@/entities/additional-service/model/types'; import { AdditionalServiceCategory } from '@/entities/additional-service/model/types';
import { PATHS } from '@/shared/constants/paths'; import { PATHS } from '@/shared/constants/paths';
import { EmailBottomSheet } from '@/entities/common/ui/email-bottom-sheet';
export const SmsPaymentPage = () => { export const SmsPaymentPage = () => {
@@ -41,6 +42,7 @@ export const SmsPaymentPage = () => {
const [toDate, setToDate] = useState(moment().format('YYYYMMDD')); const [toDate, setToDate] = useState(moment().format('YYYYMMDD'));
const [smsCl, setSmsCl] = useState<SmsCl>(SmsCl.ALL); const [smsCl, setSmsCl] = useState<SmsCl>(SmsCl.ALL);
const [smsDetailData, setSmsDetailData] = useState<ExtensionSmsDetailResponse | null>(null); const [smsDetailData, setSmsDetailData] = useState<ExtensionSmsDetailResponse | null>(null);
const [emailBottomSheetOn, setEmailBottomSheetOn] = useState<boolean>(false);
const { mutateAsync: smsPaymentList } = useExtensionSmsListMutation(); const { mutateAsync: smsPaymentList } = useExtensionSmsListMutation();
const { mutateAsync: downloadExcel } = useExtensionSmsDownloadExcelMutation(); const { mutateAsync: downloadExcel } = useExtensionSmsDownloadExcelMutation();
@@ -85,18 +87,26 @@ export const SmsPaymentPage = () => {
}) })
} }
const onClickToDownloadExcel = () => { const onClickToOpenEmailBottomSheet = () => {
downloadExcel({ setEmailBottomSheetOn(true);
mid: mid, };
searchCl: searchCl,
searchValue: searchValue, const onSendRequest = (selectedEmail?: string) => {
fromDate: fromDate, if (selectedEmail) {
toDate: toDate, downloadExcel({
smsCl: smsCl, mid: mid,
}).then((rs) => { searchCl: searchCl,
console.log('Excel Dowload Status : ' + rs.status); searchValue: searchValue,
}); fromDate: fromDate,
} toDate: toDate,
smsCl: smsCl,
//email: selectedEmail
}).then((rs) => {
console.log('Excel Download Status:', rs.status);
});
}
setEmailBottomSheetOn(false);
};
const onClickToOpenFilter = () => { const onClickToOpenFilter = () => {
setFilterOn(!filterOn); setFilterOn(!filterOn);
@@ -153,7 +163,7 @@ export const SmsPaymentPage = () => {
<img <img
src={IMAGE_ROOT + '/ico_download.svg'} src={IMAGE_ROOT + '/ico_download.svg'}
alt="다운로드" alt="다운로드"
onClick={() => onClickToDownloadExcel()} onClick={() => onClickToOpenEmailBottomSheet()}
/> />
</button> </button>
</div> </div>
@@ -193,6 +203,13 @@ export const SmsPaymentPage = () => {
setToDate={setToDate} setToDate={setToDate}
setSmsCl={setSmsCl} setSmsCl={setSmsCl}
></SmsPaymentFilter> ></SmsPaymentFilter>
<EmailBottomSheet
bottomSheetOn={emailBottomSheetOn}
setBottomSheetOn={setEmailBottomSheetOn}
imageSave={false}
sendEmail={true}
sendRequest={onSendRequest}
></EmailBottomSheet>
</> </>
); );
}; };