- 계좌성명조회 페이지 수정
This commit is contained in:
@@ -13,39 +13,19 @@ import {
|
||||
} from '@tanstack/react-query';
|
||||
import { ExtensionAccountHolderSearchDetailParams, ExtensionAccountHolderSearchDetailResponse } from '../../model/account-holder-search/types';
|
||||
|
||||
export const extensionAccountHolderSearchDetail = async (params: ExtensionAccountHolderSearchDetailParams): Promise<DetailResponse> => {
|
||||
const response = await resultify(
|
||||
axios.post<ExtensionAccountHolderSearchDetailResponse>(API_URL_ADDITIONAL_SERVICE.extensionAccountHolderSearchDetail(), params),
|
||||
export const extensionAccountHolderSearchDetail = (params: ExtensionAccountHolderSearchDetailParams) => {
|
||||
return resultify(
|
||||
axios.post<ExtensionAccountHolderSearchDetailResponse>(API_URL_ADDITIONAL_SERVICE.extensionAccountHolderSearchList(), params),
|
||||
);
|
||||
|
||||
// ExtensionAccountHolderSearchDetailResponse를 DetailResponse로 변환
|
||||
const detailResponse: DetailResponse = {
|
||||
titleInfo: {
|
||||
accountNo: response.accountNo,
|
||||
bankName: response.bankName,
|
||||
requestDate: response.requestDate
|
||||
} as TitleInfo,
|
||||
detailInfo: {
|
||||
accountName: response.accountName,
|
||||
requestDate: response.requestDate,
|
||||
resultStatus: response.resultStatus,
|
||||
failureReason: response.failReason,
|
||||
bankName: response.bankName,
|
||||
accountNo: response.accountNo,
|
||||
requestWay: response.requestWay
|
||||
} as DetailInfo
|
||||
|
||||
};
|
||||
|
||||
return detailResponse;
|
||||
};
|
||||
|
||||
export const useExtensionAccountHolderSearchDetailMutation = (options?: UseMutationOptions<DetailResponse, CBDCAxiosError, ExtensionAccountHolderSearchDetailParams>) => {
|
||||
const mutation = useMutation<DetailResponse, CBDCAxiosError, ExtensionAccountHolderSearchDetailParams>({
|
||||
export const useExtensionAccountHolderSearchDetailtMutation = (options?: UseMutationOptions<ExtensionAccountHolderSearchDetailResponse, CBDCAxiosError, ExtensionAccountHolderSearchDetailParams>) => {
|
||||
const mutation = useMutation<ExtensionAccountHolderSearchDetailResponse, CBDCAxiosError, ExtensionAccountHolderSearchDetailParams>({
|
||||
...options,
|
||||
mutationFn: (params: ExtensionAccountHolderSearchDetailParams) => extensionAccountHolderSearchDetail(params),
|
||||
});
|
||||
|
||||
return {
|
||||
...mutation,
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -1,9 +1,25 @@
|
||||
import { ProcessResult } from "../types";
|
||||
import { AccountHolderResultStatus } from "./types";
|
||||
import { AccountHolderResultStatus, AccountHolderSearchCl } from "./types";
|
||||
|
||||
|
||||
export const resultStatusBtnGroup = [
|
||||
{ name: '전체', value: AccountHolderResultStatus.ALL },
|
||||
{ name: '성공', value: AccountHolderResultStatus.SUCCESS },
|
||||
{ name: '실패', value: AccountHolderResultStatus.FAIL },
|
||||
]
|
||||
]
|
||||
|
||||
export const SearchTypeOption = [
|
||||
{ name: '예금주', value: AccountHolderSearchCl.ACCOUNT_NAME },
|
||||
{ name: '계좌번호', value: AccountHolderSearchCl.ACCOUNT_NO },
|
||||
];
|
||||
|
||||
|
||||
export const getAccountHolderStatusText = (status?: string): string => {
|
||||
if (!status) return '';
|
||||
|
||||
const resultStatusMap: Record<string, string> = {
|
||||
'SUCCESS': '성공',
|
||||
'FAIL': '실패'
|
||||
};
|
||||
return resultStatusMap[status] || status;
|
||||
}
|
||||
@@ -23,7 +23,7 @@ export const AccountHolderAuthList = ({
|
||||
date = requestDate;
|
||||
}
|
||||
if (date !== requestDate) {
|
||||
date = requestDate;
|
||||
|
||||
if (list.length > 0) {
|
||||
rs.push(
|
||||
<ListDateGroup
|
||||
@@ -34,6 +34,7 @@ export const AccountHolderAuthList = ({
|
||||
></ListDateGroup>
|
||||
);
|
||||
}
|
||||
date = requestDate;
|
||||
list = [];
|
||||
}
|
||||
list.push(items);
|
||||
|
||||
@@ -12,33 +12,35 @@ export const AccountHolderSearchList = ({
|
||||
const { navigate } = useNavigate();
|
||||
|
||||
const getListDateGroup = () => {
|
||||
let rs: JSX.Element[] = [];
|
||||
let rs = [];
|
||||
let date = '';
|
||||
let list: AccountHolderSearchListItem[] = [];
|
||||
let list = [];
|
||||
for (let i = 0; i < listItems.length; i++) {
|
||||
// requestDate format: "20211018140420" (YYYYMMDDHHmmss)
|
||||
let requestDate = listItems[i]?.requestDate || '';
|
||||
let itemDate = requestDate.substring(0, 8);
|
||||
if (i === 0) {
|
||||
date = itemDate;
|
||||
}
|
||||
if (date !== itemDate) {
|
||||
// 날짜가 바뀌면 이전 리스트를 푸시 (날짜 업데이트 전에!)
|
||||
if (list.length > 0) {
|
||||
rs.push(
|
||||
<ListDateGroup
|
||||
additionalServiceCategory={AdditionalServiceCategory.AccountHolderSearch}
|
||||
mid={mid}
|
||||
key={date + '-' + i}
|
||||
date={date}
|
||||
items={list as any}
|
||||
></ListDateGroup>
|
||||
);
|
||||
let items = listItems[i];
|
||||
if (!!items) {
|
||||
let requestDate = items?.requestDate;
|
||||
requestDate = requestDate?.substring(0, 8);
|
||||
if (!!requestDate) {
|
||||
if (i === 0) {
|
||||
date = requestDate;
|
||||
}
|
||||
if (date !== requestDate) {
|
||||
if (list.length > 0) {
|
||||
rs.push(
|
||||
<ListDateGroup
|
||||
additionalServiceCategory={AdditionalServiceCategory.AccountHolderSearch}
|
||||
key={date + '-' + i}
|
||||
date={date}
|
||||
items={list}
|
||||
></ListDateGroup>
|
||||
);
|
||||
}
|
||||
date = requestDate;
|
||||
list = [];
|
||||
}
|
||||
list.push(items);
|
||||
}
|
||||
date = itemDate; // 그 다음에 날짜 업데이트
|
||||
list = [];
|
||||
}
|
||||
list.push(listItems[i] as any);
|
||||
}
|
||||
if (list.length > 0) {
|
||||
rs.push(
|
||||
@@ -47,13 +49,14 @@ export const AccountHolderSearchList = ({
|
||||
mid={mid}
|
||||
key={date + '-last'}
|
||||
date={date}
|
||||
items={list as any}
|
||||
items={list}
|
||||
></ListDateGroup>
|
||||
);
|
||||
}
|
||||
return rs;
|
||||
};
|
||||
|
||||
|
||||
const onClickToNavigate = () => {
|
||||
navigate(PATHS.additionalService.accountHolderSearch.request)
|
||||
};
|
||||
|
||||
@@ -13,6 +13,7 @@ import { FilterButtonGroups } from '@/shared/ui/filter/button-groups';
|
||||
import { FilterMotionDuration, FilterMotionStyle, FilterMotionVariants } from '@/entities/common/model/constant';
|
||||
import { useStore } from '@/shared/model/store';
|
||||
import { AccountHolderSearchFilterProps, AccountHolderSearchCl, AccountHolderResultStatus } from '@/entities/additional-service/model/account-holder-search/types';
|
||||
import { resultStatusBtnGroup, SearchTypeOption } from '@/entities/additional-service/model/account-holder-search/constant';
|
||||
|
||||
export const AccountHolderSearchFilter = ({
|
||||
filterOn,
|
||||
@@ -42,6 +43,10 @@ export const AccountHolderSearchFilter = ({
|
||||
const [filterResultStatus, setFilterResultStatus] = useState<AccountHolderResultStatus>(resultStatus);
|
||||
|
||||
const midOptions = useStore.getState().UserStore.selectOptionsMids;
|
||||
const bankList = useStore.getState().CommonStore.bankList;
|
||||
const bankOptions = bankList
|
||||
.filter((bank) => bank.code1 !== '****')
|
||||
.map((bank) => ({ name: bank.desc1, value: bank.code1 }));
|
||||
|
||||
const onClickToClose = () => {
|
||||
setFilterOn(false);
|
||||
@@ -61,22 +66,8 @@ export const AccountHolderSearchFilter = ({
|
||||
setResultStatus(filterResultStatus);
|
||||
onClickToClose();
|
||||
};
|
||||
|
||||
let bankOptions = [
|
||||
{ name: '우리은행', value: '우리은행' },
|
||||
{ name: '토스뱅킹', value: '토스뱅킹' }
|
||||
];
|
||||
|
||||
let searchTypeOption = [
|
||||
{ name: '예금주', value: AccountHolderSearchCl.ACCOUNT_NAME },
|
||||
{ name: '계좌번호', value: AccountHolderSearchCl.ACCOUNT_NO },
|
||||
];
|
||||
|
||||
let processResultBtnGroup = [
|
||||
{ name: '전체', value: ProcessResult.ALL },
|
||||
{ name: '성공', value: ProcessResult.SUCCESS },
|
||||
{ name: '실패', value: ProcessResult.FAIL },
|
||||
];
|
||||
|
||||
return (
|
||||
<>
|
||||
@@ -84,17 +75,17 @@ export const AccountHolderSearchFilter = ({
|
||||
className="full-menu-modal"
|
||||
initial="hidden"
|
||||
animate={(filterOn) ? 'visible' : 'hidden'}
|
||||
variants={ FilterMotionVariants }
|
||||
transition={ FilterMotionDuration }
|
||||
style={ FilterMotionStyle }
|
||||
variants={FilterMotionVariants}
|
||||
transition={FilterMotionDuration}
|
||||
style={FilterMotionStyle}
|
||||
>
|
||||
<div className="full-menu-container">
|
||||
<div className="full-menu-header">
|
||||
<div className="full-menu-title center">필터</div>
|
||||
<div className="full-menu-actions">
|
||||
<button
|
||||
id="closeFullMenu"
|
||||
className="full-menu-close"
|
||||
id="closeFullMenu"
|
||||
className="full-menu-close"
|
||||
>
|
||||
<img
|
||||
src={IMAGE_ROOT + '/ico_close.svg'}
|
||||
@@ -108,18 +99,18 @@ export const AccountHolderSearchFilter = ({
|
||||
<div className="option-list pt-16">
|
||||
<FilterSelect
|
||||
title='가맹점'
|
||||
selectValue={mid}
|
||||
selectSetter={setMid}
|
||||
selectValue={filterMid}
|
||||
selectSetter={setFilterMid}
|
||||
selectOptions={midOptions}
|
||||
></FilterSelect>
|
||||
|
||||
<FilterSelectInput
|
||||
title='예금주/계좌번호'
|
||||
selectValue={searchType}
|
||||
selectSetter={setSearchType}
|
||||
selectOptions={searchTypeOption}
|
||||
inputValue={searchKeyword}
|
||||
inputSetter={setSearchKeyword}
|
||||
selectValue={filterSearchType}
|
||||
selectSetter={setFilterSearchType}
|
||||
selectOptions={SearchTypeOption}
|
||||
inputValue={filterSearchKeyword}
|
||||
inputSetter={setFilterSearchKeyword}
|
||||
></FilterSelectInput>
|
||||
<FilterCalendar
|
||||
startDate={filterStartDate}
|
||||
@@ -130,15 +121,15 @@ export const AccountHolderSearchFilter = ({
|
||||
|
||||
<FilterSelect
|
||||
title='은행'
|
||||
selectValue={bank}
|
||||
selectSetter={setBank}
|
||||
selectValue={filterBank}
|
||||
selectSetter={setFilterBank}
|
||||
selectOptions={bankOptions}
|
||||
></FilterSelect>
|
||||
|
||||
<FilterButtonGroups
|
||||
title='조회결과'
|
||||
activeValue={filterResultStatus}
|
||||
btnGroups={processResultBtnGroup}
|
||||
btnGroups={resultStatusBtnGroup}
|
||||
setter={setFilterResultStatus}
|
||||
></FilterButtonGroups>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user