- 계좌성명조회 페이지 수정
This commit is contained in:
@@ -13,39 +13,19 @@ import {
|
|||||||
} from '@tanstack/react-query';
|
} from '@tanstack/react-query';
|
||||||
import { ExtensionAccountHolderSearchDetailParams, ExtensionAccountHolderSearchDetailResponse } from '../../model/account-holder-search/types';
|
import { ExtensionAccountHolderSearchDetailParams, ExtensionAccountHolderSearchDetailResponse } from '../../model/account-holder-search/types';
|
||||||
|
|
||||||
export const extensionAccountHolderSearchDetail = async (params: ExtensionAccountHolderSearchDetailParams): Promise<DetailResponse> => {
|
export const extensionAccountHolderSearchDetail = (params: ExtensionAccountHolderSearchDetailParams) => {
|
||||||
const response = await resultify(
|
return resultify(
|
||||||
axios.post<ExtensionAccountHolderSearchDetailResponse>(API_URL_ADDITIONAL_SERVICE.extensionAccountHolderSearchDetail(), params),
|
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 useExtensionAccountHolderSearchDetailtMutation = (options?: UseMutationOptions<ExtensionAccountHolderSearchDetailResponse, CBDCAxiosError, ExtensionAccountHolderSearchDetailParams>) => {
|
||||||
};
|
const mutation = useMutation<ExtensionAccountHolderSearchDetailResponse, CBDCAxiosError, ExtensionAccountHolderSearchDetailParams>({
|
||||||
|
|
||||||
export const useExtensionAccountHolderSearchDetailMutation = (options?: UseMutationOptions<DetailResponse, CBDCAxiosError, ExtensionAccountHolderSearchDetailParams>) => {
|
|
||||||
const mutation = useMutation<DetailResponse, CBDCAxiosError, ExtensionAccountHolderSearchDetailParams>({
|
|
||||||
...options,
|
...options,
|
||||||
mutationFn: (params: ExtensionAccountHolderSearchDetailParams) => extensionAccountHolderSearchDetail(params),
|
mutationFn: (params: ExtensionAccountHolderSearchDetailParams) => extensionAccountHolderSearchDetail(params),
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...mutation,
|
...mutation,
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import { ProcessResult } from "../types";
|
import { ProcessResult } from "../types";
|
||||||
import { AccountHolderResultStatus } from "./types";
|
import { AccountHolderResultStatus, AccountHolderSearchCl } from "./types";
|
||||||
|
|
||||||
|
|
||||||
export const resultStatusBtnGroup = [
|
export const resultStatusBtnGroup = [
|
||||||
@@ -7,3 +7,19 @@ export const resultStatusBtnGroup = [
|
|||||||
{ name: '성공', value: AccountHolderResultStatus.SUCCESS },
|
{ name: '성공', value: AccountHolderResultStatus.SUCCESS },
|
||||||
{ name: '실패', value: AccountHolderResultStatus.FAIL },
|
{ 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;
|
date = requestDate;
|
||||||
}
|
}
|
||||||
if (date !== requestDate) {
|
if (date !== requestDate) {
|
||||||
date = requestDate;
|
|
||||||
if (list.length > 0) {
|
if (list.length > 0) {
|
||||||
rs.push(
|
rs.push(
|
||||||
<ListDateGroup
|
<ListDateGroup
|
||||||
@@ -34,6 +34,7 @@ export const AccountHolderAuthList = ({
|
|||||||
></ListDateGroup>
|
></ListDateGroup>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
date = requestDate;
|
||||||
list = [];
|
list = [];
|
||||||
}
|
}
|
||||||
list.push(items);
|
list.push(items);
|
||||||
|
|||||||
@@ -12,33 +12,35 @@ export const AccountHolderSearchList = ({
|
|||||||
const { navigate } = useNavigate();
|
const { navigate } = useNavigate();
|
||||||
|
|
||||||
const getListDateGroup = () => {
|
const getListDateGroup = () => {
|
||||||
let rs: JSX.Element[] = [];
|
let rs = [];
|
||||||
let date = '';
|
let date = '';
|
||||||
let list: AccountHolderSearchListItem[] = [];
|
let list = [];
|
||||||
for (let i = 0; i < listItems.length; i++) {
|
for (let i = 0; i < listItems.length; i++) {
|
||||||
// requestDate format: "20211018140420" (YYYYMMDDHHmmss)
|
let items = listItems[i];
|
||||||
let requestDate = listItems[i]?.requestDate || '';
|
if (!!items) {
|
||||||
let itemDate = requestDate.substring(0, 8);
|
let requestDate = items?.requestDate;
|
||||||
|
requestDate = requestDate?.substring(0, 8);
|
||||||
|
if (!!requestDate) {
|
||||||
if (i === 0) {
|
if (i === 0) {
|
||||||
date = itemDate;
|
date = requestDate;
|
||||||
}
|
}
|
||||||
if (date !== itemDate) {
|
if (date !== requestDate) {
|
||||||
// 날짜가 바뀌면 이전 리스트를 푸시 (날짜 업데이트 전에!)
|
|
||||||
if (list.length > 0) {
|
if (list.length > 0) {
|
||||||
rs.push(
|
rs.push(
|
||||||
<ListDateGroup
|
<ListDateGroup
|
||||||
additionalServiceCategory={AdditionalServiceCategory.AccountHolderSearch}
|
additionalServiceCategory={AdditionalServiceCategory.AccountHolderSearch}
|
||||||
mid={mid}
|
|
||||||
key={date + '-' + i}
|
key={date + '-' + i}
|
||||||
date={date}
|
date={date}
|
||||||
items={list as any}
|
items={list}
|
||||||
></ListDateGroup>
|
></ListDateGroup>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
date = itemDate; // 그 다음에 날짜 업데이트
|
date = requestDate;
|
||||||
list = [];
|
list = [];
|
||||||
}
|
}
|
||||||
list.push(listItems[i] as any);
|
list.push(items);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (list.length > 0) {
|
if (list.length > 0) {
|
||||||
rs.push(
|
rs.push(
|
||||||
@@ -47,13 +49,14 @@ export const AccountHolderSearchList = ({
|
|||||||
mid={mid}
|
mid={mid}
|
||||||
key={date + '-last'}
|
key={date + '-last'}
|
||||||
date={date}
|
date={date}
|
||||||
items={list as any}
|
items={list}
|
||||||
></ListDateGroup>
|
></ListDateGroup>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return rs;
|
return rs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const onClickToNavigate = () => {
|
const onClickToNavigate = () => {
|
||||||
navigate(PATHS.additionalService.accountHolderSearch.request)
|
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 { FilterMotionDuration, FilterMotionStyle, FilterMotionVariants } from '@/entities/common/model/constant';
|
||||||
import { useStore } from '@/shared/model/store';
|
import { useStore } from '@/shared/model/store';
|
||||||
import { AccountHolderSearchFilterProps, AccountHolderSearchCl, AccountHolderResultStatus } from '@/entities/additional-service/model/account-holder-search/types';
|
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 = ({
|
export const AccountHolderSearchFilter = ({
|
||||||
filterOn,
|
filterOn,
|
||||||
@@ -42,6 +43,10 @@ export const AccountHolderSearchFilter = ({
|
|||||||
const [filterResultStatus, setFilterResultStatus] = useState<AccountHolderResultStatus>(resultStatus);
|
const [filterResultStatus, setFilterResultStatus] = useState<AccountHolderResultStatus>(resultStatus);
|
||||||
|
|
||||||
const midOptions = useStore.getState().UserStore.selectOptionsMids;
|
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 = () => {
|
const onClickToClose = () => {
|
||||||
setFilterOn(false);
|
setFilterOn(false);
|
||||||
@@ -62,21 +67,7 @@ export const AccountHolderSearchFilter = ({
|
|||||||
onClickToClose();
|
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 (
|
return (
|
||||||
<>
|
<>
|
||||||
@@ -108,18 +99,18 @@ export const AccountHolderSearchFilter = ({
|
|||||||
<div className="option-list pt-16">
|
<div className="option-list pt-16">
|
||||||
<FilterSelect
|
<FilterSelect
|
||||||
title='가맹점'
|
title='가맹점'
|
||||||
selectValue={mid}
|
selectValue={filterMid}
|
||||||
selectSetter={setMid}
|
selectSetter={setFilterMid}
|
||||||
selectOptions={midOptions}
|
selectOptions={midOptions}
|
||||||
></FilterSelect>
|
></FilterSelect>
|
||||||
|
|
||||||
<FilterSelectInput
|
<FilterSelectInput
|
||||||
title='예금주/계좌번호'
|
title='예금주/계좌번호'
|
||||||
selectValue={searchType}
|
selectValue={filterSearchType}
|
||||||
selectSetter={setSearchType}
|
selectSetter={setFilterSearchType}
|
||||||
selectOptions={searchTypeOption}
|
selectOptions={SearchTypeOption}
|
||||||
inputValue={searchKeyword}
|
inputValue={filterSearchKeyword}
|
||||||
inputSetter={setSearchKeyword}
|
inputSetter={setFilterSearchKeyword}
|
||||||
></FilterSelectInput>
|
></FilterSelectInput>
|
||||||
<FilterCalendar
|
<FilterCalendar
|
||||||
startDate={filterStartDate}
|
startDate={filterStartDate}
|
||||||
@@ -130,15 +121,15 @@ export const AccountHolderSearchFilter = ({
|
|||||||
|
|
||||||
<FilterSelect
|
<FilterSelect
|
||||||
title='은행'
|
title='은행'
|
||||||
selectValue={bank}
|
selectValue={filterBank}
|
||||||
selectSetter={setBank}
|
selectSetter={setFilterBank}
|
||||||
selectOptions={bankOptions}
|
selectOptions={bankOptions}
|
||||||
></FilterSelect>
|
></FilterSelect>
|
||||||
|
|
||||||
<FilterButtonGroups
|
<FilterButtonGroups
|
||||||
title='조회결과'
|
title='조회결과'
|
||||||
activeValue={filterResultStatus}
|
activeValue={filterResultStatus}
|
||||||
btnGroups={processResultBtnGroup}
|
btnGroups={resultStatusBtnGroup}
|
||||||
setter={setFilterResultStatus}
|
setter={setFilterResultStatus}
|
||||||
></FilterButtonGroups>
|
></FilterButtonGroups>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -9,12 +9,13 @@ import {
|
|||||||
useSetFooterMode,
|
useSetFooterMode,
|
||||||
useSetOnBack
|
useSetOnBack
|
||||||
} from '@/widgets/sub-layout/use-sub-layout';
|
} from '@/widgets/sub-layout/use-sub-layout';
|
||||||
import { useExtensionAccountHolderSearchDetailMutation } from '@/entities/additional-service/api/account-holder-search/use-extension-account-holder-search-detail-mutation';
|
|
||||||
import { AdditionalServiceCategory, DetailInfo, DetailResponse, TitleInfo } from '@/entities/additional-service/model/types';
|
import { AdditionalServiceCategory, DetailInfo, DetailResponse, TitleInfo } from '@/entities/additional-service/model/types';
|
||||||
import { TitleInfoWrap } from '@/entities/additional-service/ui/info-wrap/title-info-wrap';
|
import { TitleInfoWrap } from '@/entities/additional-service/ui/info-wrap/title-info-wrap';
|
||||||
import { useLocation } from 'react-router';
|
import { useLocation } from 'react-router';
|
||||||
import { DetailInfoWrap } from '@/entities/additional-service/ui/info-wrap/detail-info-wrap';
|
import { DetailInfoWrap } from '@/entities/additional-service/ui/info-wrap/detail-info-wrap';
|
||||||
import { ExtensionAccountHolderSearchDetailParams } from '@/entities/additional-service/model/account-holder-search/types';
|
import { ExtensionAccountHolderSearchDetailParams, ExtensionAccountHolderSearchDetailResponse } from '@/entities/additional-service/model/account-holder-search/types';
|
||||||
|
import { useExtensionAccountHolderSearchDetailtMutation } from '@/entities/additional-service/api/account-holder-search/use-extension-account-holder-search-detail-mutation';
|
||||||
|
import { getAccountHolderStatusText } from '@/entities/additional-service/model/account-holder-search/constant';
|
||||||
|
|
||||||
export const AccountHolderSearchDetailPage = () => {
|
export const AccountHolderSearchDetailPage = () => {
|
||||||
const { navigate } = useNavigate();
|
const { navigate } = useNavigate();
|
||||||
@@ -22,8 +23,7 @@ export const AccountHolderSearchDetailPage = () => {
|
|||||||
|
|
||||||
const { mid, tid } = location.state || {};
|
const { mid, tid } = location.state || {};
|
||||||
|
|
||||||
const [titleInfo, setTitleInfo] = useState<TitleInfo>();
|
const [detail, setDetail] = useState<ExtensionAccountHolderSearchDetailResponse>();
|
||||||
const [detailInfo, setDetailInfo] = useState<DetailInfo>();
|
|
||||||
|
|
||||||
useSetHeaderTitle('계좌성명조회 상세');
|
useSetHeaderTitle('계좌성명조회 상세');
|
||||||
useSetHeaderType(HeaderType.LeftArrow);
|
useSetHeaderType(HeaderType.LeftArrow);
|
||||||
@@ -32,19 +32,22 @@ export const AccountHolderSearchDetailPage = () => {
|
|||||||
navigate(PATHS.additionalService.accountHolderSearch.list);
|
navigate(PATHS.additionalService.accountHolderSearch.list);
|
||||||
});
|
});
|
||||||
|
|
||||||
const { mutateAsync: accountHolderSearchDetail } = useExtensionAccountHolderSearchDetailMutation();
|
const { mutateAsync: accountHolderSearchDetail } = useExtensionAccountHolderSearchDetailtMutation();
|
||||||
|
|
||||||
const callDetail = () => {
|
const callDetail = () => {
|
||||||
let accountHolderSearchDetailParams: ExtensionAccountHolderSearchDetailParams = {
|
let accountHolderSearchDetailParams: ExtensionAccountHolderSearchDetailParams = {
|
||||||
mid: mid,
|
mid: mid,
|
||||||
tid: tid
|
tid: tid
|
||||||
}
|
}
|
||||||
accountHolderSearchDetail(accountHolderSearchDetailParams).then((rs: DetailResponse) => {
|
accountHolderSearchDetail(accountHolderSearchDetailParams).then((rs: ExtensionAccountHolderSearchDetailResponse) => {
|
||||||
console.log("Detail Info: ", rs)
|
setDetail(rs);
|
||||||
setTitleInfo(rs.titleInfo);
|
|
||||||
setDetailInfo(rs.detailInfo);
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getDate = (date?: string) => {
|
||||||
|
return (date) ? moment(date, 'YYYYMMDDHHmmss').format('YYYY.MM.DD HH:mm:ss') : '';
|
||||||
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
callDetail();
|
callDetail();
|
||||||
}, []);
|
}, []);
|
||||||
@@ -54,17 +57,45 @@ export const AccountHolderSearchDetailPage = () => {
|
|||||||
<div className="tab-content">
|
<div className="tab-content">
|
||||||
<div className="tab-pane sub active">
|
<div className="tab-pane sub active">
|
||||||
<div className="pay-top">
|
<div className="pay-top">
|
||||||
<TitleInfoWrap
|
<div className="num-amount">
|
||||||
additionalServiceCategory={AdditionalServiceCategory.AccountHolderSearch}
|
<span className="amount">{detail?.accountNo}</span>
|
||||||
titleInfo={titleInfo}
|
</div>
|
||||||
></TitleInfoWrap>
|
<span className="num-day">{detail?.bankName}</span>
|
||||||
|
<div className="num-day">{getDate(detail?.requestDate)}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="pay-detail">
|
|
||||||
<div className="detail-divider"></div>
|
<div className="detail-divider"></div>
|
||||||
<DetailInfoWrap
|
<div className="pay-detail">
|
||||||
additionalServiceCategory={AdditionalServiceCategory.AccountHolderSearch}
|
<div className="detail-title">상세 정보</div>
|
||||||
detailInfo={detailInfo}
|
<ul className="kv-list">
|
||||||
></DetailInfoWrap>
|
<li className="kv-row">
|
||||||
|
<span className="k">예금주</span>
|
||||||
|
<span className="v">{detail?.accountName}</span>
|
||||||
|
</li>
|
||||||
|
<li className="kv-row">
|
||||||
|
<span className="k">조회 일시</span>
|
||||||
|
<span className="v">{detail?.requestDate}</span>
|
||||||
|
</li>
|
||||||
|
<li className="kv-row">
|
||||||
|
<span className="k">결과</span>
|
||||||
|
<span className="v">{getAccountHolderStatusText(detail?.resultStatus)}</span>
|
||||||
|
</li>
|
||||||
|
<li className="kv-row">
|
||||||
|
<span className="k">실패사유</span>
|
||||||
|
<span className="v">{detail?.failReason}</span>
|
||||||
|
</li>
|
||||||
|
<li className="kv-row">
|
||||||
|
<span className="k">은행</span>
|
||||||
|
<span className="v">{detail?.bankName}</span>
|
||||||
|
</li>
|
||||||
|
<li className="kv-row">
|
||||||
|
<span className="k">계좌번호</span>
|
||||||
|
<span className="v">{detail?.accountNo}</span>
|
||||||
|
</li>
|
||||||
|
<li className="kv-row">
|
||||||
|
<span className="k">요청 구분</span>
|
||||||
|
<span className="v">{detail?.requestWay}</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -15,7 +15,8 @@ import { useStore } from '@/shared/model/store';
|
|||||||
export const AccountHolderSearchRequestPage = () => {
|
export const AccountHolderSearchRequestPage = () => {
|
||||||
const { navigate } = useNavigate();
|
const { navigate } = useNavigate();
|
||||||
|
|
||||||
const userMid = useStore.getState().UserStore.mid
|
const midOptions = useStore.getState().UserStore.selectOptionsMids
|
||||||
|
const bankList = useStore.getState().CommonStore.bankList
|
||||||
|
|
||||||
useSetHeaderTitle('계좌성명조회_신청');
|
useSetHeaderTitle('계좌성명조회_신청');
|
||||||
useSetHeaderType(HeaderType.LeftArrow);
|
useSetHeaderType(HeaderType.LeftArrow);
|
||||||
@@ -27,7 +28,7 @@ export const AccountHolderSearchRequestPage = () => {
|
|||||||
const { mutateAsync: accountHolderSearchRequest } = useExtensionAccountHolderSearchRequestMutation();
|
const { mutateAsync: accountHolderSearchRequest } = useExtensionAccountHolderSearchRequestMutation();
|
||||||
|
|
||||||
const [formData, setFormData] = useState({
|
const [formData, setFormData] = useState({
|
||||||
mid: userMid,
|
mid: '',
|
||||||
bankCode: '',
|
bankCode: '',
|
||||||
accountNo: ''
|
accountNo: ''
|
||||||
})
|
})
|
||||||
@@ -39,7 +40,7 @@ export const AccountHolderSearchRequestPage = () => {
|
|||||||
const onClickToRequest = () => {
|
const onClickToRequest = () => {
|
||||||
const reuqestParams: ExtensionAccountHolderSearchRequestParams = {
|
const reuqestParams: ExtensionAccountHolderSearchRequestParams = {
|
||||||
mid: formData.mid,
|
mid: formData.mid,
|
||||||
bankCode: formData.bankCode, // 추후 진짜 은행코드 삽입 필요
|
bankCode: formData.bankCode,
|
||||||
accountNo: formData.accountNo
|
accountNo: formData.accountNo
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,6 +56,14 @@ export const AccountHolderSearchRequestPage = () => {
|
|||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const isFormValid = () => {
|
||||||
|
return (
|
||||||
|
formData.mid.trim() !== '' &&
|
||||||
|
formData.bankCode.trim() !== '' &&
|
||||||
|
formData.accountNo.trim() !== ''
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<main>
|
<main>
|
||||||
@@ -65,12 +74,15 @@ export const AccountHolderSearchRequestPage = () => {
|
|||||||
<div className="billing-row">
|
<div className="billing-row">
|
||||||
<div className="billing-label">가맹점</div>
|
<div className="billing-label">가맹점</div>
|
||||||
<div className="billing-field">
|
<div className="billing-field">
|
||||||
<select
|
<select value={formData.mid} onChange={(e) => handleInputChange('mid', e.target.value)}>
|
||||||
className="wid-100"
|
{
|
||||||
value={formData.mid}
|
midOptions.map((value) => (
|
||||||
onChange={(e) => handleInputChange('mid', e.target.value)}
|
<option
|
||||||
>
|
key={value.value}
|
||||||
<option>nictest00m</option>
|
value={value.value}
|
||||||
|
>{value.name}</option>
|
||||||
|
))
|
||||||
|
}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -78,13 +90,18 @@ export const AccountHolderSearchRequestPage = () => {
|
|||||||
<div className="billing-row">
|
<div className="billing-row">
|
||||||
<div className="billing-label">은행</div>
|
<div className="billing-label">은행</div>
|
||||||
<div className="billing-field">
|
<div className="billing-field">
|
||||||
<select
|
<select value={formData.bankCode} onChange={(e) => handleInputChange('bankCode', e.target.value)}>
|
||||||
className="wid-100"
|
<option value="">선택하세요</option>
|
||||||
value={formData.bankCode}
|
{
|
||||||
onChange={(e) => handleInputChange('bankCode', e.target.value)}
|
bankList
|
||||||
>
|
.filter((bank) => bank.code1 !== '****')
|
||||||
<option>우리은행</option>
|
.map((bank) => (
|
||||||
<option>카카오뱅크</option>
|
<option
|
||||||
|
key={bank.code1}
|
||||||
|
value={bank.code1}
|
||||||
|
>{bank.desc1}</option>
|
||||||
|
))
|
||||||
|
}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -105,6 +122,7 @@ export const AccountHolderSearchRequestPage = () => {
|
|||||||
<div className="apply-row">
|
<div className="apply-row">
|
||||||
<button
|
<button
|
||||||
className="btn-50 btn-blue flex-1"
|
className="btn-50 btn-blue flex-1"
|
||||||
|
disabled={!isFormValid()}
|
||||||
onClick={() => onClickToRequest()}
|
onClick={() => onClickToRequest()}
|
||||||
>신청</button>
|
>신청</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user