- 부가서비스: KeyIn결제 목업 API 연결

This commit is contained in:
HyeonJongKim
2025-09-17 15:22:20 +09:00
parent 4f97767999
commit 67ded00a23
15 changed files with 229 additions and 334 deletions

View File

@@ -1,4 +1,4 @@
import { DefaulResponsePagination } from '@/entities/common/model/types';
import { DefaulResponsePagination, DefaultRequestPagination } from '@/entities/common/model/types';
export enum FundTransferTabKeys {
RequestList = 'RequestList',
@@ -31,8 +31,8 @@ export enum ProcessResult {
export enum KeyInPaymentTransactionStatus {
ALL = 'ALL',
APPROVE = 'APPROVE',
BF_CANCEL = 'BF_CANCEL',
AF_CANCEL = 'AF_CANCEL'
ALL_CANCEL = 'ALL_CANCEL',
AFTER_CANCEL = 'AFTER_CANCEL'
}
export enum AccountHolderSearchType {
ALL = 'ALL',
@@ -82,15 +82,9 @@ export enum AdditionalServiceCategory {
// 각 서비스별 개별 타입들
export interface KeyInPaymentListItem {
tid?: string;
mid?: string;
stateDate?: string;
stateCode?: string;
stateName?: string;
installmentMonth?: string;
serviceCode?: string;
serviceName?: string;
serviceDetailName?: string;
goodsAmount?: number;
paymentDate?: string;
paymentStatus?: string;
amount?: number;
}
export interface AccountHolderSearchListItem {
@@ -227,9 +221,10 @@ export interface ExtensionListResponse extends DefaulResponsePagination {
export interface ExtensionKeyinListParams extends ExtensionRequestParams {
fromDate: string;
toDate: string;
paymentStatus: string;
minAmount: number;
maxAmount: number;
paymentStatus: KeyInPaymentTransactionStatus;
minAmount?: number | string;
maxAmount?: number | string;
page?: DefaultRequestPagination;
};
export interface ExtensionKeyinListItemProps {
tid: string;
@@ -241,11 +236,11 @@ export interface ExtensionKeyinListResponse extends DefaulResponsePagination {
content: Array<ExtensionKeyinListItemProps>
};
export interface ExtensionKeyinDownloadExcelParams extends ExtensionRequestParams {
fromDate: string;
toDate: string;
paymentStatus: string;
minAmount: number;
maxAmount: number;
fromDate?: string;
toDate?: string;
paymentStatus?: string;
minAmount?: number | string;
maxAmount?: number | string;
};
export interface ExtensionKeyinDownloadExcelResponse {

View File

@@ -66,8 +66,8 @@ export const KeyInPaymentFilter = ({
let transactionStatusOption = [
{ name: '전체', value: KeyInPaymentTransactionStatus.ALL },
{ name: '승인', value: KeyInPaymentTransactionStatus.APPROVE },
{ name: '전취소', value: KeyInPaymentTransactionStatus.BF_CANCEL },
{ name: '후취소', value: KeyInPaymentTransactionStatus.AF_CANCEL },
{ name: '전취소', value: KeyInPaymentTransactionStatus.ALL_CANCEL },
{ name: '후취소', value: KeyInPaymentTransactionStatus.AFTER_CANCEL },
]
return (

View File

@@ -0,0 +1,44 @@
import { PATHS } from '@/shared/constants/paths';
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { KeyInPaymentListProps } from '../../model/types'
import { ListDateGroup } from '../list-date-group';
export const KeyInPaymentList = ({
additionalServiceCategory,
listItems
}: KeyInPaymentListProps ) => {
const { navigate } = useNavigate();
const getListDateGroup = () => {
let rs = [];
for (const [key, value] of Object.entries(listItems)) {
rs.push(
<ListDateGroup
additionalServiceCategory ={ additionalServiceCategory }
key={ key }
date={ key }
items={ value }
></ListDateGroup>
);
}
return rs;
};
const onClickToNavigate = () => {
navigate(PATHS.additionalService.keyInPayment.request)
};
return (
<>
<div className="transaction-list">
{ getListDateGroup() }
<div className="apply-row">
<button
className="btn-50 btn-blue flex-1"
onClick={ () => onClickToNavigate() }
> </button>
</div>
</div>
</>
);
}

View File

@@ -1,57 +0,0 @@
import { PATHS } from '@/shared/constants/paths';
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
interface LinkPaymentPendingItemProps {
transactionId: string;
customerName: string;
status: string;
channel: string;
amount: number;
}
export const LinkPaymentPendingItem = ({
transactionId,
customerName,
status,
channel,
amount
}: LinkPaymentPendingItemProps) => {
const { navigate } = useNavigate();
const onClickToNavigate = () => {
navigate(PATHS.additionalService.linkPayment.pendingDetail, {
state: {
transactionId: transactionId
}
});
};
const getStatusDotClass = () => {
if (status === '발송요청') {
return 'status-dot blue';
}
return 'status-dot gray';
};
return (
<>
<div
className="transaction-item approved"
onClick={() => onClickToNavigate()}
>
<div className="transaction-status">
<div className={getStatusDotClass()}></div>
</div>
<div className="transaction-content">
<div className="transaction-title">{customerName}</div>
<div className="transaction-details">
<span>{status}</span>
<span className="separator"></span>
<span>{channel}</span>
</div>
</div>
<div className="transaction-amount">{amount.toLocaleString()}</div>
</div>
</>
);
};

View File

@@ -2,6 +2,7 @@ import { LinkPaymentPendingListProps } from '../../model/types';
import { ListDateGroup } from '../list-date-group';
export const LinkPaymentPendingList = ({
additionalServiceCategory,
listItems
}: LinkPaymentPendingListProps) => {
@@ -10,10 +11,11 @@ export const LinkPaymentPendingList = ({
for (const [key, value] of Object.entries(listItems)) {
rs.push(
<ListDateGroup
additionalServiceCategory={additionalServiceCategory}
key={key}
date={key}
items={value}
/>
></ListDateGroup>
);
}
return rs;

View File

@@ -6,7 +6,7 @@ import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { PATHS } from "@/shared/constants/paths";
import { LinkPaymentPendingList } from "./link-payment-pending-list";
import { AdditionalServiceCategory, LinkPaymentSearchType, LinkPaymentSendingStatus, LinkPaymentSendMethod, SortByKeys } from "../../model/types";
import { SortOptionsBox } from './sort-options-box';
import { SortOptionsBox } from '../sort-options-box';
const sendingStatusBtnGrouup = [
{ name: '전체', value: LinkPaymentSendingStatus.ALL },

View File

@@ -1,62 +0,0 @@
import { PATHS } from '@/shared/constants/paths';
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import moment from 'moment';
interface LinkPaymentItemProps {
transactionId: string;
customerName: string;
status: string;
channel: string;
paymentMethod: string;
amount: number;
}
export const LinkPaymentItem = ({
transactionId,
customerName,
status,
channel,
paymentMethod,
amount
}: LinkPaymentItemProps) => {
const { navigate } = useNavigate();
const onClickToNavigate = () => {
navigate(PATHS.additionalService.linkPayment.detail, {
state: {
transactionId: transactionId
}
});
};
const getStatusDotClass = () => {
if (status === '결제완료' || status === '입금요청') {
return 'status-dot blue';
}
return 'status-dot gray';
};
return (
<>
<div
className="transaction-item approved"
onClick={() => onClickToNavigate()}
>
<div className="transaction-status">
<div className={getStatusDotClass()}></div>
</div>
<div className="transaction-content">
<div className="transaction-title">{customerName}</div>
<div className="transaction-details">
<span>{status}</span>
<span className="separator"></span>
<span>{channel}</span>
<span className="separator"></span>
<span>{paymentMethod}</span>
</div>
</div>
<div className="transaction-amount">{amount.toLocaleString()}</div>
</div>
</>
);
};

View File

@@ -2,6 +2,7 @@ import { LinkPaymentShippingListProps } from '../../model/types';
import { ListDateGroup } from '../list-date-group';
export const LinkPaymentSHippingHistoryList = ({
additionalServiceCategory,
listItems
}: LinkPaymentShippingListProps) => {
@@ -10,10 +11,11 @@ export const LinkPaymentSHippingHistoryList = ({
for (const [key, value] of Object.entries(listItems)) {
rs.push(
<ListDateGroup
additionalServiceCategory={additionalServiceCategory}
key={key}
date={key}
items={value}
/>
></ListDateGroup>
);
}
return rs;

View File

@@ -5,7 +5,7 @@ import { LinkPaymentShippingHistoryFilter } from "./filter/link-payment-shipping
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { PATHS } from "@/shared/constants/paths";
import { LinkPaymentSHippingHistoryList } from "./link-payment-shipping-history-list";
import { SortOptionsBox } from "./sort-options-box";
import { SortOptionsBox } from "../sort-options-box";
import { AdditionalServiceCategory, LinkPaymentSendMethod, LinkPaymentTransactionStatus, ProcessResult, SortByKeys } from "../../model/types";
import { LinkPaymentSearchType, } from "../../model/types";

View File

@@ -24,15 +24,8 @@ export const ListDateGroup = ({
additionalServiceCategory={ additionalServiceCategory }
key={ key }
tid={ items[i]?.tid }
mid={ items[i]?.mid }
stateDate={ items[i]?.stateDate }
stateCode={ items[i]?.stateCode }
stateName={ items[i]?.stateName }
installmentMonth={ items[i]?.installmentMonth }
serviceCode={ items[i]?.serviceCode }
serviceName={ items[i]?.serviceName }
serviceDetailName={ items[i]?.serviceDetailName }
goodsAmount={ items[i]?.goodsAmount }
paymentDate= { items[i]?.paymentDate}
paymentStatus={ items[i]?.paymentStatus}
requestId={ items[i]?.requestId }
requestDate={ items[i]?.requestDate }

View File

@@ -6,9 +6,7 @@ import moment from 'moment';
export const ListItem = ({
additionalServiceCategory,
tid, mid, stateDate, stateCode, stateName,
installmentMonth, serviceCode, serviceName,
serviceDetailName, goodsAmount,
tid, paymentDate, paymentStatus,
requestId, requestDate, bank, accountNumber,
accountHolder, processResult,
@@ -19,13 +17,16 @@ export const ListItem = ({
const { navigate } = useNavigate();
const getItemClass = () => {
let rs = '';
if(stateCode === '0'){
if (paymentStatus === '') {
rs = '';
}
else if(stateCode === '1'){
else if (paymentStatus === "APPROVAL") {
rs = 'approved';
}
else if(stateCode === '2'){
else if (paymentStatus === "ALL_CANCEL") {
rs = 'refund';
}
else if (paymentStatus === 'AFTER_CANCEL') {
rs = 'refund';
}
return rs;
@@ -33,66 +34,65 @@ export const ListItem = ({
const getDotClass = (str?: string) => {
let rs = '';
if(stateCode === '0'){
if (paymentStatus === '') {
rs = '';
}
else if(stateCode === '1'){
else if (paymentStatus === "APPROVAL") {
rs = 'blue';
}
else if(stateCode === '2'){
else if (paymentStatus === "ALL_CANCEL") {
rs = 'gray';
}
else if (paymentStatus === 'AFTER_CANCEL') {
rs = 'gray';
}
return rs;
};
const onClickToNavigate = () => {
if(additionalServiceCategory === AdditionalServiceCategory.KeyInPayment){
navigate(PATHS.additionalService.keyInPayment, {
state: {
tid: tid,
serviceCode: serviceCode
if (additionalServiceCategory === AdditionalServiceCategory.KeyInPayment) {
return;
}
});
}
else if(additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch){
else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) {
navigate(PATHS.additionalService.accountHolderSearch.detail, {
state: {
requestId: requestId
}
});
}
else if(additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping){
else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping) {
navigate(PATHS.additionalService.linkPayment.detail, {
state: {
transactionId: transactionId
}
});
}
else if(additionalServiceCategory === AdditionalServiceCategory.LinkPaymentPending){
else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentPending) {
navigate(PATHS.additionalService.linkPayment.detail, {
state: {
transactionId: transactionId
}
});
}
else{
else {
alert('additionalServiceCategory가 존재하지 않습니다.');
}
};
const getTime = () => {
let timeStr = '';
if(additionalServiceCategory === AdditionalServiceCategory.KeyInPayment){
let time = stateDate?.substring(8, 12);
if (additionalServiceCategory === AdditionalServiceCategory.KeyInPayment) {
let time = paymentDate?.substring(8, 12);
timeStr = time?.substring(0, 2) + ':' + time?.substring(2, 4);
}
else if(additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch){
else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) {
timeStr = moment(requestDate).format('HH:mm');
}
else if(additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping){
else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping) {
timeStr = moment(transactionDate).format('HH:mm');
}
else if(additionalServiceCategory === AdditionalServiceCategory.LinkPaymentPending){
else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentPending) {
timeStr = moment(sendDate).format('HH:mm');
}
return timeStr
@@ -100,16 +100,16 @@ export const ListItem = ({
const getTitle = () => {
let str = '';
if(additionalServiceCategory === AdditionalServiceCategory.KeyInPayment){
str = `${serviceName}(${serviceDetailName})`;
if (additionalServiceCategory === AdditionalServiceCategory.KeyInPayment) {
str = `${tid}(${amount})`;
}
else if(additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch){
else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) {
str = `${accountHolder}(${accountNumber})`
}
else if(additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping){
else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping) {
str = `${customerName}(${transactionId})`
}
else if(additionalServiceCategory === AdditionalServiceCategory.LinkPaymentPending){
else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentPending) {
str = `${customerName}(${transactionId})`
}
return str;
@@ -117,54 +117,45 @@ export const ListItem = ({
const getDetail = () => {
let rs = [];
if(additionalServiceCategory === AdditionalServiceCategory.KeyInPayment){
if (additionalServiceCategory === AdditionalServiceCategory.KeyInPayment) {
rs.push(
<div className="transaction-details">
<span>{ getTime() }</span>
<span>{getTime()}</span>
<span className="separator">|</span>
<span>{ stateName }</span>
<span className="separator">|</span>
<span>{ mid }</span>
{
(!!installmentMonth && parseInt(installmentMonth) > 1) &&
<>
<span className="separator">|</span>
<span>{ installmentMonth } </span>
</>
}
<span>{paymentStatus}</span>
</div>
);
}
else if(additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch){
else if (additionalServiceCategory === AdditionalServiceCategory.AccountHolderSearch) {
rs.push(
<div className="transaction-details">
<span>{ getTime() }</span>
<span>{getTime()}</span>
<span className="separator">|</span>
<span>{ bank }</span>
<span>{bank}</span>
<span className="separator">|</span>
<span>{ processResult }</span>
<span>{processResult}</span>
</div>
);
}
else if(additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping){
else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentShipping) {
rs.push(
<div className="transaction-details">
<span>{ getTime() }</span>
<span>{getTime()}</span>
<span className="separator">|</span>
<span>{ status }</span>
<span>{status}</span>
<span className="separator">|</span>
<span>{ channel }</span>
<span>{channel}</span>
</div>
);
}
else if(additionalServiceCategory === AdditionalServiceCategory.LinkPaymentPending){
else if (additionalServiceCategory === AdditionalServiceCategory.LinkPaymentPending) {
rs.push(
<div className="transaction-details">
<span>{ getTime() }</span>
<span>{getTime()}</span>
<span className="separator">|</span>
<span>{ status }</span>
<span>{status}</span>
<span className="separator">|</span>
<span>{ channel }</span>
<span>{channel}</span>
</div>
);
}
@@ -174,22 +165,22 @@ export const ListItem = ({
return (
<>
<div
className={ `transaction-item ${getItemClass()}` }
onClick={ () => onClickToNavigate() }
className={`transaction-item ${getItemClass()}`}
onClick={() => onClickToNavigate()}
>
<div className="transaction-status">
<div className={ `status-dot ${getDotClass()}`}></div>
<div className={`status-dot ${getDotClass()}`}></div>
</div>
<div className="transaction-content">
<div className="transaction-title">{ getTitle() }</div>
{ getDetail() }
<div className="transaction-title">{getTitle()}</div>
{getDetail()}
</div>
<div className="transaction-amount">
<NumericFormat
value={ goodsAmount || amount }
value={amount}
thousandSeparator
displayType="text"
suffix={ '원' }
suffix={'원'}
></NumericFormat>
</div>
</div>

View File

@@ -1,7 +1,7 @@
import {
SortByKeys,
SortOptionsBoxProps
} from '../../model/types';
} from '../model/types';
export const SortOptionsBox = ({
sortBy,
onClickToSort

View File

@@ -6,21 +6,24 @@ import { HeaderType } from '@/entities/common/model/types';
import {
useSetHeaderTitle,
useSetHeaderType,
useSetFooterMode
useSetFooterMode,
useSetOnBack
} from '@/widgets/sub-layout/use-sub-layout';
import { PATHS } from '@/shared/constants/paths';
import { useExtensionKeyinDownloadExcelMutation } from '@/entities/additional-service/api/use-extension-keyin-download-excel-mutation';
import { KeyInPaymentFilter } from '@/entities/additional-service/ui/key-in-payment/filter/key-in-payment-filter';
import { KeyInPaymentTransactionStatus, SortByKeys } from '@/entities/additional-service/model/types';
import { SortOptionsBox } from '@/entities/additional-service/ui/link-payment/sort-options-box';
import { AdditionalServiceCategory, KeyInPaymentListItem, KeyInPaymentTransactionStatus, SortByKeys } from '@/entities/additional-service/model/types';
import { SortOptionsBox } from '@/entities/additional-service/ui/sort-options-box';
import { useExtensionKeyinListMutation } from '@/entities/additional-service/api/use-extension-keyin-list-mutation';
import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constants';
import { KeyInPaymentList } from '@/entities/additional-service/ui/key-in-payment/key-in-payment-list';
// contant로 옮기기
const requestStatusBtnGroup = [
{ name: '전체', value: KeyInPaymentTransactionStatus.ALL },
{ name: '승인', value: KeyInPaymentTransactionStatus.APPROVE },
{ name: '전취소', value: KeyInPaymentTransactionStatus.BF_CANCEL },
{ name: '후취소', value: KeyInPaymentTransactionStatus.AF_CANCEL }
{ name: '전취소', value: KeyInPaymentTransactionStatus.ALL_CANCEL },
{ name: '후취소', value: KeyInPaymentTransactionStatus.AFTER_CANCEL }
];
export const KeyInPaymentPage = () => {
@@ -42,43 +45,99 @@ export const KeyInPaymentPage = () => {
useSetHeaderTitle('KEY-IN 결제');
useSetHeaderType(HeaderType.LeftArrow);
useSetFooterMode(false);
useSetOnBack(() => {
navigate(PATHS.home);
});
const { mutateAsync: keyinList } = useExtensionKeyinListMutation();
const { mutateAsync: downloadExcel } = useExtensionKeyinDownloadExcelMutation();
const callList = (option?: {
sortBy?: string,
val?: string
}) => {
pageParam.sortBy = (option?.sortBy) ? option.sortBy : sortBy;
setPageParam(pageParam);
let newMinAmount = minAmount;
if (!!minAmount && typeof (minAmount) === 'string') {
newMinAmount = parseInt(minAmount);
}
let newMaxAmount = maxAmount;
if (!!maxAmount && typeof (maxAmount) === 'string') {
newMaxAmount = parseInt(maxAmount);
}
let listParams = {
mid: mid,
fromDate: startDate,
toDate: endDate,
paymentStatus: transactionStatus,
minAmount: newMinAmount,
maxAmount: newMaxAmount,
page: pageParam
};
keyinList(listParams).then((rs) => {
setListItems(assembleData(rs.content));
});
}
const assembleData = (content: Array<KeyInPaymentListItem>) => {
console.log('rs.content:', content)
let data: any = {};
if (content && content.length > 0) {
for (let i = 0; i < content?.length; i++) {
let paymentDate = content[i]?.paymentDate?.substring(0, 8);
let groupDate = moment(paymentDate).format('YYYYMMDD');
if (!!groupDate && !data.hasOwnProperty(groupDate)) {
data[groupDate] = [];
}
if (!!groupDate && data.hasOwnProperty(groupDate)) {
data[groupDate].push(content[i]);
}
}
}
console.log('Data : ', data)
return data;
};
const onClickToOpenFilter = () => {
setFilterOn(!filterOn);
};
const onClickToDownloadExcel = () => {
// downloadExcel({
// mid,
// fromDate: '',
// toDate: '',
// paymentStatus: '',
// minAmount: 0,
// maxAmount: 0
// }).then((rs) => {
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: transactionStatus,
minAmount: minAmount,
maxAmount: maxAmount
}).then((rs) => {
// });
});
};
const onClickToSort = (sort: SortByKeys) => {
setSortBy(sort);
// TODO : callList 구현
callList({ sortBy: sort })
};
const onClickToTransactionStatus = (val: KeyInPaymentTransactionStatus) => {
setTransactionStatus(val);
// TODO : callList 구현
callList({ val: val });
};
const onClickToNavigation = () => {
navigate(PATHS.additionalService.keyInPayment.request)
}
useEffect(() => {
// TODO : callList();
callList();
}, []);
return (
@@ -92,7 +151,7 @@ export const KeyInPaymentPage = () => {
<input
className="credit-period"
type="text"
value={ moment(startDate).format('YYYY.MM.DD') + '-' + moment(endDate).format('YYYY.MM.DD') }
value={moment(startDate).format('YYYY.MM.DD') + '-' + moment(endDate).format('YYYY.MM.DD')}
readOnly={true}
/>
<button
@@ -109,6 +168,7 @@ export const KeyInPaymentPage = () => {
<button
className="download-btn"
aria-label="다운로드"
onClick={() => onClickToDownloadExcel()}
>
<img
src={IMAGE_ROOT + '/ico_download.svg'}
@@ -138,83 +198,13 @@ export const KeyInPaymentPage = () => {
</div>
</div>
</div>
<section className="transaction-list">
<div className="date-group">
<div className="date-header">2025.06.08()</div>
<div className="transaction-item approved">
<div className="transaction-status">
<div className="status-dot blue"></div>
</div>
<div className="transaction-content">
<div className="transaction-title">*(7000)</div>
<div className="transaction-details">
<span>20:00ㅣ승인</span>
<KeyInPaymentList
listItems={listItems}
additionalServiceCategory={AdditionalServiceCategory.KeyInPayment}
></KeyInPaymentList>
</div>
</div>
<div className="transaction-amount">5,254,000</div>
</div>
<div className="transaction-item refund">
<div className="transaction-status">
<div className="status-dot gray"></div>
</div>
<div className="transaction-content">
<div className="transaction-title">*(7000)</div>
<div className="transaction-details">
<span>08:35ㅣ승인</span>
</div>
</div>
<div className="transaction-amount">23,845,000</div>
</div>
<div className="transaction-item approved">
<div className="transaction-status">
<div className="status-dot blue"></div>
</div>
<div className="transaction-content">
<div className="transaction-title">*(7000)</div>
<div className="transaction-details">
<span>20:00ㅣ승인</span>
</div>
</div>
<div className="transaction-amount">5,254,000</div>
</div>
<div className="transaction-item approved">
<div className="transaction-status">
<div className="status-dot blue"></div>
</div>
<div className="transaction-content">
<div className="transaction-title">*(7000)</div>
<div className="transaction-details">
<span>20:00ㅣ후취소</span>
</div>
</div>
<div className="transaction-amount">5,254,000</div>
</div>
<div className="transaction-item refund">
<div className="transaction-status">
<div className="status-dot gray"></div>
</div>
<div className="transaction-content">
<div className="transaction-title">*(7000)</div>
<div className="transaction-details">
<span>20:00ㅣ후취소</span>
</div>
</div>
<div className="transaction-amount">23,845,000</div>
</div>
</div>
</section>
<div className="apply-row">
<button
className="btn-50 btn-blue flex-1"
onClick={() => onClickToNavigation()}
> </button>
</div>
</main>
<KeyInPaymentFilter
filterOn={filterOn}
setFilterOn={setFilterOn}
@@ -231,9 +221,6 @@ export const KeyInPaymentPage = () => {
setMinAmount={setMinAmount}
setMaxAmount={setMaxAmount}
></KeyInPaymentFilter>
</div>
</div>
</main>
</>
);
};

View File

@@ -38,7 +38,7 @@ export const KeyInPaymentRequestPage = () => {
moid: 'SMS',
};
keyInApply(keyInApplyParams).then((rs) => {
navigate(PATHS.additionalService.arsCardPayment.requestSuccess);
navigate(PATHS.additionalService.keyInPayment.requestSuccess);
console.log(rs)
}).catch(() => {