거래내역 관련
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
export const DEFAULT_PAGE_PARAM = {
|
export const DEFAULT_PAGE_PARAM = {
|
||||||
page: 0,
|
cursor: 'string',
|
||||||
size: 0,
|
size: 0,
|
||||||
sortBy: 'string',
|
sortBy: 'string',
|
||||||
sortOrder: 'ASC',
|
sortOrder: 'ASC',
|
||||||
orderBy: 'string',
|
orderBy: 'string',
|
||||||
offset: 0
|
limit: 0
|
||||||
};
|
};
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
export interface DefaultRequestPagination {
|
export interface DefaultRequestPagination {
|
||||||
page: number;
|
cursor: string;
|
||||||
size: number;
|
size: number;
|
||||||
sortBy: string;
|
sortBy: string;
|
||||||
sortOrder: string;
|
sortOrder: string;
|
||||||
orderBy: string;
|
orderBy: string;
|
||||||
offset: number;
|
limit: number;
|
||||||
};
|
};
|
||||||
export interface DefaulResponsePagination {
|
export interface DefaulResponsePagination {
|
||||||
nextCursor: string | null;
|
nextCursor: string | null;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { API_URL } from '@/shared/api/urls';
|
|||||||
import { resultify } from '@/shared/lib/resultify';
|
import { resultify } from '@/shared/lib/resultify';
|
||||||
import { CBDCAxiosError } from '@/shared/@types/error';
|
import { CBDCAxiosError } from '@/shared/@types/error';
|
||||||
import {
|
import {
|
||||||
CashReceitDetailParams,
|
CashReceiptDetailParams,
|
||||||
DetailResponse
|
DetailResponse
|
||||||
} from '../model/types';
|
} from '../model/types';
|
||||||
import {
|
import {
|
||||||
@@ -11,16 +11,16 @@ import {
|
|||||||
UseMutationOptions
|
UseMutationOptions
|
||||||
} from '@tanstack/react-query';
|
} from '@tanstack/react-query';
|
||||||
|
|
||||||
export const cashReceitDetail = (params: CashReceitDetailParams) => {
|
export const cashReceiptDetail = (params: CashReceiptDetailParams) => {
|
||||||
return resultify(
|
return resultify(
|
||||||
axios.post<DetailResponse>(API_URL.cashReceitDetail(), params),
|
axios.post<DetailResponse>(API_URL.cashReceiptDetail(), params),
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const useCashReceitDetailMutation = (options?: UseMutationOptions<DetailResponse, CBDCAxiosError, CashReceitDetailParams>) => {
|
export const useCashReceiptDetailMutation = (options?: UseMutationOptions<DetailResponse, CBDCAxiosError, CashReceiptDetailParams>) => {
|
||||||
const mutation = useMutation<DetailResponse, CBDCAxiosError, CashReceitDetailParams>({
|
const mutation = useMutation<DetailResponse, CBDCAxiosError, CashReceiptDetailParams>({
|
||||||
...options,
|
...options,
|
||||||
mutationFn: (params: CashReceitDetailParams) => cashReceitDetail(params),
|
mutationFn: (params: CashReceiptDetailParams) => cashReceiptDetail(params),
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
import axios from 'axios';
|
||||||
|
import { API_URL } from '@/shared/api/urls';
|
||||||
|
import { resultify } from '@/shared/lib/resultify';
|
||||||
|
import { CBDCAxiosError } from '@/shared/@types/error';
|
||||||
|
import {
|
||||||
|
CashReceiptListParams,
|
||||||
|
CashReceiptListResponse
|
||||||
|
} from '../model/types';
|
||||||
|
import {
|
||||||
|
useMutation,
|
||||||
|
UseMutationOptions
|
||||||
|
} from '@tanstack/react-query';
|
||||||
|
|
||||||
|
export const cashReceiptList = (params: CashReceiptListParams) => {
|
||||||
|
return resultify(
|
||||||
|
axios.post<CashReceiptListResponse>(API_URL.cashReceiptList(), params),
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const useCashReceiptListMutation = (options?: UseMutationOptions<CashReceiptListResponse, CBDCAxiosError, CashReceiptListParams>) => {
|
||||||
|
const mutation = useMutation<CashReceiptListResponse, CBDCAxiosError, CashReceiptListParams>({
|
||||||
|
...options,
|
||||||
|
mutationFn: (params: CashReceiptListParams) => cashReceiptList(params),
|
||||||
|
});
|
||||||
|
|
||||||
|
return {
|
||||||
|
...mutation,
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
import axios from 'axios';
|
|
||||||
import { API_URL } from '@/shared/api/urls';
|
|
||||||
import { resultify } from '@/shared/lib/resultify';
|
|
||||||
import { CBDCAxiosError } from '@/shared/@types/error';
|
|
||||||
import {
|
|
||||||
CashReceitListParams,
|
|
||||||
CashReceitListResponse
|
|
||||||
} from '../model/types';
|
|
||||||
import {
|
|
||||||
useMutation,
|
|
||||||
UseMutationOptions
|
|
||||||
} from '@tanstack/react-query';
|
|
||||||
|
|
||||||
export const cashReceitList = (params: CashReceitListParams) => {
|
|
||||||
return resultify(
|
|
||||||
axios.post<CashReceitListResponse>(API_URL.cashReceitList(), params),
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export const useCashReceitListMutation = (options?: UseMutationOptions<CashReceitListResponse, CBDCAxiosError, CashReceitListParams>) => {
|
|
||||||
const mutation = useMutation<CashReceitListResponse, CBDCAxiosError, CashReceitListParams>({
|
|
||||||
...options,
|
|
||||||
mutationFn: (params: CashReceitListParams) => cashReceitList(params),
|
|
||||||
});
|
|
||||||
|
|
||||||
return {
|
|
||||||
...mutation,
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
import axios from 'axios';
|
|
||||||
import { API_URL } from '@/shared/api/urls';
|
|
||||||
import { resultify } from '@/shared/lib/resultify';
|
|
||||||
import { CBDCAxiosError } from '@/shared/@types/error';
|
|
||||||
import {
|
|
||||||
CashReceitListSummaryParams,
|
|
||||||
CashReceitListSummaryResponse
|
|
||||||
} from '../model/types';
|
|
||||||
import {
|
|
||||||
useMutation,
|
|
||||||
UseMutationOptions
|
|
||||||
} from '@tanstack/react-query';
|
|
||||||
|
|
||||||
export const cashReceitListSummary = (params: CashReceitListSummaryParams) => {
|
|
||||||
return resultify(
|
|
||||||
axios.post<CashReceitListSummaryResponse>(API_URL.allTransactionListSummary(), params),
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export const useCashReceitListSummaryMutation = (options?: UseMutationOptions<CashReceitListSummaryResponse, CBDCAxiosError, CashReceitListSummaryParams>) => {
|
|
||||||
const mutation = useMutation<CashReceitListSummaryResponse, CBDCAxiosError, CashReceitListSummaryParams>({
|
|
||||||
...options,
|
|
||||||
mutationFn: (params: CashReceitListSummaryParams) => cashReceitListSummary(params),
|
|
||||||
});
|
|
||||||
|
|
||||||
return {
|
|
||||||
...mutation,
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
import axios from 'axios';
|
|
||||||
import { API_URL } from '@/shared/api/urls';
|
|
||||||
import { resultify } from '@/shared/lib/resultify';
|
|
||||||
import { CBDCAxiosError } from '@/shared/@types/error';
|
|
||||||
import {
|
|
||||||
EscroListParams,
|
|
||||||
EscroListResponse
|
|
||||||
} from '../model/types';
|
|
||||||
import {
|
|
||||||
useMutation,
|
|
||||||
UseMutationOptions
|
|
||||||
} from '@tanstack/react-query';
|
|
||||||
|
|
||||||
export const escroList = (params: EscroListParams) => {
|
|
||||||
return resultify(
|
|
||||||
axios.post<EscroListResponse>(API_URL.escroList(), params),
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export const useEscroListMutation = (options?: UseMutationOptions<EscroListResponse, CBDCAxiosError, EscroListParams>) => {
|
|
||||||
const mutation = useMutation<EscroListResponse, CBDCAxiosError, EscroListParams>({
|
|
||||||
...options,
|
|
||||||
mutationFn: (params: EscroListParams) => escroList(params),
|
|
||||||
});
|
|
||||||
|
|
||||||
return {
|
|
||||||
...mutation,
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -3,7 +3,7 @@ import { API_URL } from '@/shared/api/urls';
|
|||||||
import { resultify } from '@/shared/lib/resultify';
|
import { resultify } from '@/shared/lib/resultify';
|
||||||
import { CBDCAxiosError } from '@/shared/@types/error';
|
import { CBDCAxiosError } from '@/shared/@types/error';
|
||||||
import {
|
import {
|
||||||
EscroDetailParams,
|
EscrowDetailParams,
|
||||||
DetailResponse
|
DetailResponse
|
||||||
} from '../model/types';
|
} from '../model/types';
|
||||||
import {
|
import {
|
||||||
@@ -11,16 +11,16 @@ import {
|
|||||||
UseMutationOptions
|
UseMutationOptions
|
||||||
} from '@tanstack/react-query';
|
} from '@tanstack/react-query';
|
||||||
|
|
||||||
export const escroDetail = (params: EscroDetailParams) => {
|
export const escrowDetail = (params: EscrowDetailParams) => {
|
||||||
return resultify(
|
return resultify(
|
||||||
axios.post<DetailResponse>(API_URL.escroDetail(), params),
|
axios.post<DetailResponse>(API_URL.escrowDetail(), params),
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const useEscroDetailMutation = (options?: UseMutationOptions<DetailResponse, CBDCAxiosError, EscroDetailParams>) => {
|
export const useEscrowDetailMutation = (options?: UseMutationOptions<DetailResponse, CBDCAxiosError, EscrowDetailParams>) => {
|
||||||
const mutation = useMutation<DetailResponse, CBDCAxiosError, EscroDetailParams>({
|
const mutation = useMutation<DetailResponse, CBDCAxiosError, EscrowDetailParams>({
|
||||||
...options,
|
...options,
|
||||||
mutationFn: (params: EscroDetailParams) => escroDetail(params),
|
mutationFn: (params: EscrowDetailParams) => escrowDetail(params),
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
29
src/entities/transaction/api/use-escrow-list-mutation.ts
Normal file
29
src/entities/transaction/api/use-escrow-list-mutation.ts
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
import axios from 'axios';
|
||||||
|
import { API_URL } from '@/shared/api/urls';
|
||||||
|
import { resultify } from '@/shared/lib/resultify';
|
||||||
|
import { CBDCAxiosError } from '@/shared/@types/error';
|
||||||
|
import {
|
||||||
|
EscrowListParams,
|
||||||
|
EscrowListResponse
|
||||||
|
} from '../model/types';
|
||||||
|
import {
|
||||||
|
useMutation,
|
||||||
|
UseMutationOptions
|
||||||
|
} from '@tanstack/react-query';
|
||||||
|
|
||||||
|
export const escrowList = (params: EscrowListParams) => {
|
||||||
|
return resultify(
|
||||||
|
axios.post<EscrowListResponse>(API_URL.escrowList(), params),
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const useEscrowListMutation = (options?: UseMutationOptions<EscrowListResponse, CBDCAxiosError, EscrowListParams>) => {
|
||||||
|
const mutation = useMutation<EscrowListResponse, CBDCAxiosError, EscrowListParams>({
|
||||||
|
...options,
|
||||||
|
mutationFn: (params: EscrowListParams) => escrowList(params),
|
||||||
|
});
|
||||||
|
|
||||||
|
return {
|
||||||
|
...mutation,
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import { DefaulResponsePagination } from '@/entities/common/model/types';
|
import { DefaulResponsePagination, DefaultRequestPagination } from '@/entities/common/model/types';
|
||||||
|
|
||||||
export enum CancelTabKeys {
|
export enum CancelTabKeys {
|
||||||
All = 'All',
|
All = 'All',
|
||||||
@@ -12,18 +12,22 @@ export enum SortByKeys {
|
|||||||
New = 'New',
|
New = 'New',
|
||||||
Amount = 'Amount',
|
Amount = 'Amount',
|
||||||
};
|
};
|
||||||
export enum PageType {
|
export enum TransactionCategory {
|
||||||
AllTransaction = 'AllTransaction',
|
AllTransaction = 'AllTransaction',
|
||||||
CashReceit = 'CashReceit',
|
CashReceipt = 'CashReceipt',
|
||||||
Escro = 'Escro',
|
Escrow = 'Escrow',
|
||||||
Billing = 'Billing',
|
Billing = 'Billing',
|
||||||
};
|
};
|
||||||
export enum DetailInfoKeys {
|
export enum InfoWrapKeys {
|
||||||
Amount = 'Amount',
|
Amount = 'Amount',
|
||||||
|
Important = 'Important',
|
||||||
Payment = 'Payment',
|
Payment = 'Payment',
|
||||||
Transaction = 'Transaction',
|
Transaction = 'Transaction',
|
||||||
Settlement = 'Settlement',
|
Settlement = 'Settlement',
|
||||||
PartCancel = 'PartCancel',
|
PartCancel = 'PartCancel',
|
||||||
|
Issue = 'Issue',
|
||||||
|
Detail = 'Detail',
|
||||||
|
Escrow = 'Escrow',
|
||||||
};
|
};
|
||||||
export enum ProcessStep {
|
export enum ProcessStep {
|
||||||
One = 'One',
|
One = 'One',
|
||||||
@@ -34,31 +38,33 @@ export interface SortOptionsBoxProps {
|
|||||||
onCliCkToSort: (sortBy: SortByKeys) => void;
|
onCliCkToSort: (sortBy: SortByKeys) => void;
|
||||||
};
|
};
|
||||||
export interface ListItemProps extends ListItem{
|
export interface ListItemProps extends ListItem{
|
||||||
pageType?: PageType;
|
transactionCategory?: TransactionCategory;
|
||||||
};
|
};
|
||||||
export interface ListDateGroupProps {
|
export interface ListDateGroupProps {
|
||||||
pageType?: PageType;
|
transactionCategory?: TransactionCategory;
|
||||||
date?: string;
|
date?: string;
|
||||||
items?: Array<ListItemProps>;
|
items?: Array<ListItemProps>;
|
||||||
};
|
};
|
||||||
export interface AllTransactionListProps {
|
export interface AllTransactionListProps {
|
||||||
pageType: PageType;
|
transactionCategory: TransactionCategory;
|
||||||
listItems: Record<string, Array<ListItemProps>>
|
listItems: Record<string, Array<ListItemProps>>
|
||||||
};
|
};
|
||||||
export interface CashReceitListProps {
|
export interface CashReceiptListProps {
|
||||||
pageType: PageType;
|
transactionCategory: TransactionCategory;
|
||||||
listItems: Record<string, Array<ListItemProps>>
|
listItems: Record<string, Array<ListItemProps>>
|
||||||
};
|
};
|
||||||
export interface EscroListProps {
|
export interface EscrowListProps {
|
||||||
pageType: PageType;
|
transactionCategory: TransactionCategory;
|
||||||
listItems: Record<string, Array<ListItemProps>>
|
listItems: Record<string, Array<ListItemProps>>
|
||||||
};
|
};
|
||||||
export interface BillingListProps {
|
export interface BillingListProps {
|
||||||
pageType: PageType;
|
transactionCategory: TransactionCategory;
|
||||||
listItems: Record<string, Array<ListItemProps>>
|
listItems: Record<string, Array<ListItemProps>>
|
||||||
};
|
};
|
||||||
export interface ListItem {
|
export interface ListItem {
|
||||||
tid?: string;
|
tid?: string;
|
||||||
|
issueNumber?: number;
|
||||||
|
billKey?: string;
|
||||||
mid?: string;
|
mid?: string;
|
||||||
stateDate?: string;
|
stateDate?: string;
|
||||||
stateCode?: string;
|
stateCode?: string;
|
||||||
@@ -69,242 +75,290 @@ export interface ListItem {
|
|||||||
serviceDetailName?: string;
|
serviceDetailName?: string;
|
||||||
goodsAmount?: number;
|
goodsAmount?: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export interface BillingItem {
|
||||||
|
billKey: string;
|
||||||
|
tid: string;
|
||||||
|
orderNumber: string;
|
||||||
|
approvalNumber?: string;
|
||||||
|
approvalDate?: string;
|
||||||
|
transactionDateTime?: string;
|
||||||
|
transactionAmount?: number;
|
||||||
|
requestStatus?: string;
|
||||||
|
processResult?: string;
|
||||||
|
paymentMethod?: string;
|
||||||
|
installmentMonth?: string;
|
||||||
|
productName?: string;
|
||||||
|
buyerName?: string;
|
||||||
|
};
|
||||||
export interface AllTransactionListResponse extends DefaulResponsePagination {
|
export interface AllTransactionListResponse extends DefaulResponsePagination {
|
||||||
content: Array<ListItemProps>;
|
content: Array<ListItemProps>;
|
||||||
};
|
};
|
||||||
export interface CashReceitListResponse extends DefaulResponsePagination {
|
export interface CashReceiptListResponse extends DefaulResponsePagination {
|
||||||
content: Array<ListItemProps>;
|
content: Array<ListItemProps>;
|
||||||
};
|
};
|
||||||
export interface EscroListResponse extends DefaulResponsePagination {
|
export interface EscrowListResponse extends DefaulResponsePagination {
|
||||||
content: Array<ListItemProps>;
|
content: Array<ListItemProps>;
|
||||||
};
|
};
|
||||||
export interface BillingListResponse extends DefaulResponsePagination {
|
export interface BillingListResponse extends DefaulResponsePagination {
|
||||||
content: Array<ListItemProps>;
|
content: Array<ListItemProps>;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export interface AllTransactionListSummaryParams extends AllTransactionListParams {
|
export interface AllTransactionListSummaryParams extends AllTransactionListParams {
|
||||||
|
|
||||||
}
|
}
|
||||||
export interface CashReceitListSummaryParams extends CashReceitListParams {
|
|
||||||
|
|
||||||
}
|
|
||||||
export interface AllTransactionListSummaryResponse {
|
export interface AllTransactionListSummaryResponse {
|
||||||
totalTransactionCount: number;
|
totalTransactionCount: number;
|
||||||
totalTransactionAmount: number;
|
totalTransactionAmount: number;
|
||||||
};
|
};
|
||||||
export interface CashReceitListSummaryResponse {
|
export interface AllTransactionListParams {
|
||||||
totalTransactionCount: number;
|
|
||||||
totalTransactionAmount: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
export interface TransactionRequestParams {
|
|
||||||
tid?: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface AllTransactionListParams extends TransactionRequestParams {
|
|
||||||
moid: string;
|
moid: string;
|
||||||
fromDate: string;
|
|
||||||
toDate: string;
|
|
||||||
stateCode: string;
|
|
||||||
serviceCode: string;
|
|
||||||
minAmount: number;
|
|
||||||
maxAmount: number;
|
|
||||||
dateCl: string;
|
|
||||||
goodsName: string;
|
|
||||||
cardCode: string;
|
|
||||||
bankCode: string;
|
|
||||||
searchCl: string;
|
|
||||||
searchValue: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export interface CashReceitListParams extends TransactionRequestParams {
|
|
||||||
moid: string;
|
|
||||||
fromDate: string;
|
|
||||||
toDate: string;
|
|
||||||
stateCode: string;
|
|
||||||
serviceCode: string;
|
|
||||||
minAmount: number;
|
|
||||||
maxAmount: number;
|
|
||||||
dateCl: string;
|
|
||||||
goodsName: string;
|
|
||||||
cardCode: string;
|
|
||||||
bankCode: string;
|
|
||||||
searchCl: string;
|
|
||||||
searchValue: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export interface EscroListParams extends TransactionRequestParams {
|
|
||||||
moid: string;
|
|
||||||
fromDate: string;
|
|
||||||
toDate: string;
|
|
||||||
stateCode: string;
|
|
||||||
serviceCode: string;
|
|
||||||
minAmount: number;
|
|
||||||
maxAmount: number;
|
|
||||||
dateCl: string;
|
|
||||||
goodsName: string;
|
|
||||||
cardCode: string;
|
|
||||||
bankCode: string;
|
|
||||||
searchCl: string;
|
|
||||||
searchValue: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export interface BillingListParams extends TransactionRequestParams {
|
|
||||||
moid: string;
|
|
||||||
fromDate: string;
|
|
||||||
toDate: string;
|
|
||||||
stateCode: string;
|
|
||||||
serviceCode: string;
|
|
||||||
minAmount: number;
|
|
||||||
maxAmount: number;
|
|
||||||
dateCl: string;
|
|
||||||
goodsName: string;
|
|
||||||
cardCode: string;
|
|
||||||
bankCode: string;
|
|
||||||
searchCl: string;
|
|
||||||
searchValue: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export interface ListPaging {
|
|
||||||
cursor: string | null;
|
|
||||||
size: number;
|
|
||||||
sortBy: string;
|
|
||||||
sortOrder: string;
|
|
||||||
orderBy: string;
|
|
||||||
limit: number;
|
|
||||||
};
|
|
||||||
export interface AllTransactionDetailParams extends TransactionRequestParams {
|
|
||||||
svcCd: string;
|
|
||||||
};
|
|
||||||
export interface CashReceitDetailParams extends TransactionRequestParams {
|
|
||||||
svcCd: string;
|
|
||||||
};
|
|
||||||
export interface EscroDetailParams extends TransactionRequestParams {
|
|
||||||
svcCd: string;
|
|
||||||
};
|
|
||||||
export interface BillingDetailParams extends TransactionRequestParams {
|
|
||||||
svcCd: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export interface DetailAmountInfoProps {
|
|
||||||
mid: string;
|
|
||||||
amount: number;
|
|
||||||
cardAmount: number;
|
|
||||||
pointAmount: number;
|
|
||||||
couponAmount: number;
|
|
||||||
kakaoMoney: number;
|
|
||||||
kakaoPoint: number;
|
|
||||||
kakaoInstantDiscount: number;
|
|
||||||
naverPoint: number;
|
|
||||||
tossMoney: number;
|
|
||||||
tossDiscount: number;
|
|
||||||
paycoPoint: number;
|
|
||||||
paycoCoupon: number;
|
|
||||||
escrowFee: number;
|
|
||||||
};
|
|
||||||
export interface DetailImportantInfoProps {
|
|
||||||
ordNo: string;
|
|
||||||
tid: string;
|
tid: string;
|
||||||
tradeStatus: string;
|
fromDate: string;
|
||||||
tradeMethod: string;
|
toDate: string;
|
||||||
productName: string;
|
stateCode: string;
|
||||||
approvalDate: string;
|
serviceCode: string;
|
||||||
tradeDate: string;
|
minAmount: number;
|
||||||
requestDate: string;
|
maxAmount: number;
|
||||||
cancelDate: string;
|
dateCl: string;
|
||||||
|
goodsName: string;
|
||||||
|
cardCode: string;
|
||||||
|
bankCode: string;
|
||||||
|
searchCl: string;
|
||||||
|
searchValue: string;
|
||||||
|
page?: DefaultRequestPagination;
|
||||||
};
|
};
|
||||||
export interface DetailPaymentInfoProps {
|
|
||||||
approvalAcquire: string;
|
export interface CashReceiptListParams {
|
||||||
approvalReturn: number;
|
mid: string;
|
||||||
approvalReAcquire: number;
|
startDate: string;
|
||||||
approvalVAN: string;
|
endDate: string;
|
||||||
cancelAcquire: string;
|
purposeType: string;
|
||||||
cancelReturn: string;
|
issueStatus: string;
|
||||||
cancelReAcquire: string;
|
processResult: string;
|
||||||
acquireVAN: string;
|
pagination: DefaultRequestPagination
|
||||||
acquireCompany: string;
|
|
||||||
cardNumber: string;
|
|
||||||
approvalNumber: string;
|
|
||||||
installmentPeriod: number;
|
|
||||||
authentication: string;
|
|
||||||
accountType: string;
|
|
||||||
bankName: string;
|
|
||||||
accountNumber: string;
|
|
||||||
depositBankName: string;
|
|
||||||
depositorName: string;
|
|
||||||
depositDeadline: string;
|
|
||||||
depositDate: string;
|
|
||||||
refundScheduleDate: string;
|
|
||||||
refundBankName: string;
|
|
||||||
refundAccountNumber: string;
|
|
||||||
accountHolder: string;
|
|
||||||
refundCompleteDate: string;
|
|
||||||
partner: string;
|
|
||||||
cpid: string;
|
|
||||||
productCategory: string;
|
|
||||||
phoneNumber: string;
|
|
||||||
customerId: string;
|
|
||||||
giftCardNumber: string;
|
|
||||||
culturelandId: string;
|
|
||||||
};
|
};
|
||||||
export interface DetailTransactionInfoProps {
|
|
||||||
buyerName: string;
|
export interface EscrowListParams {
|
||||||
email: string;
|
mid: string;
|
||||||
phoneNumber: string;
|
searchType: string;
|
||||||
cancelReason: string;
|
searchKeyword: string;
|
||||||
cancelRequestor: string;
|
startDate: string;
|
||||||
partialCancel: string;
|
endDate: string;
|
||||||
cashReceiptIssue: string;
|
deliveryStatus: string;
|
||||||
|
settlementStatus: string;
|
||||||
|
minAmount: number;
|
||||||
|
maxAmount: number;
|
||||||
|
pagination: DefaultRequestPagination;
|
||||||
};
|
};
|
||||||
export interface DetailSettlementInfoProps {
|
|
||||||
approvalSettleDate: string;
|
export interface BillingListParams {
|
||||||
approvalSettleAmount: number;
|
mid: string;
|
||||||
cancelSettleDate: string;
|
searchType: string;
|
||||||
cancelSettleAmount: number;
|
searchKeyword: string;
|
||||||
|
startDate: string;
|
||||||
|
endDate: string;
|
||||||
|
requestStatus: string;
|
||||||
|
processResult: string;
|
||||||
|
paymentMethod: string;
|
||||||
|
pagination: DefaultRequestPagination
|
||||||
};
|
};
|
||||||
export interface DetailPartCancelInfoProps {
|
|
||||||
originalTid: string;
|
export interface AllTransactionDetailParams {
|
||||||
originalAmount: number;
|
svcCd?: string;
|
||||||
partCancelTid: string;
|
tid?: string;
|
||||||
partCancelAmount: number;
|
};
|
||||||
remainingAmount: number;
|
export interface CashReceiptDetailParams {
|
||||||
|
issueNumber?: number;
|
||||||
|
};
|
||||||
|
export interface EscrowDetailParams {
|
||||||
|
issueNumber?: number;
|
||||||
|
};
|
||||||
|
export interface BillingDetailParams {
|
||||||
|
billKey?: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export interface AmountInfo {
|
||||||
|
mid?: string;
|
||||||
|
amount?: number;
|
||||||
|
cardAmount?: number;
|
||||||
|
pointAmount?: number;
|
||||||
|
couponAmount?: number;
|
||||||
|
kakaoMoney?: number;
|
||||||
|
kakaoPoint?: number;
|
||||||
|
kakaoInstantDiscount?: number;
|
||||||
|
naverPoint?: number;
|
||||||
|
tossMoney?: number;
|
||||||
|
tossDiscount?: number;
|
||||||
|
paycoPoint?: number;
|
||||||
|
paycoCoupon?: number;
|
||||||
|
escrowFee?: number;
|
||||||
|
};
|
||||||
|
export interface ImportantInfo {
|
||||||
|
ordNo?: string;
|
||||||
|
tid?: string;
|
||||||
|
tradeStatus?: string;
|
||||||
|
tradeMethod?: string;
|
||||||
|
productName?: string;
|
||||||
|
approvalDate?: string;
|
||||||
|
tradeDate?: string;
|
||||||
|
requestDate?: string;
|
||||||
|
cancelDate?: string;
|
||||||
|
mid?: string;
|
||||||
|
orderNumber?: string;
|
||||||
|
transactionStatus?: string;
|
||||||
|
paymentMethod?: string;
|
||||||
|
approvalDateTime?: string;
|
||||||
|
};
|
||||||
|
export interface PaymentInfo {
|
||||||
|
approvalAcquire?: string;
|
||||||
|
approvalReturn?: number;
|
||||||
|
approvalReAcquire?: number;
|
||||||
|
approvalVAN?: string;
|
||||||
|
cancelAcquire?: string;
|
||||||
|
cancelReturn?: string;
|
||||||
|
cancelReAcquire?: string;
|
||||||
|
acquireVAN?: string;
|
||||||
|
acquireCompany?: string;
|
||||||
|
cardNumber?: string;
|
||||||
|
approvalNumber?: string;
|
||||||
|
installmentPeriod?: number;
|
||||||
|
authentication?: string;
|
||||||
|
accountType?: string;
|
||||||
|
bankName?: string;
|
||||||
|
accountNumber?: string;
|
||||||
|
depositBankName?: string;
|
||||||
|
depositorName?: string;
|
||||||
|
depositDeadline?: string;
|
||||||
|
depositDate?: string;
|
||||||
|
refundScheduleDate?: string;
|
||||||
|
refundBankName?: string;
|
||||||
|
refundAccountNumber?: string;
|
||||||
|
accountHolder?: string;
|
||||||
|
refundCompleteDate?: string;
|
||||||
|
partner?: string;
|
||||||
|
cpid?: string;
|
||||||
|
productCategory?: string;
|
||||||
|
phoneNumber?: string;
|
||||||
|
customerId?: string;
|
||||||
|
giftCardNumber?: string;
|
||||||
|
culturelandId?: string;
|
||||||
|
paymentAmount?: number;
|
||||||
|
|
||||||
|
};
|
||||||
|
export interface TransactionInfo {
|
||||||
|
buyerName?: string;
|
||||||
|
email?: string;
|
||||||
|
phoneNumber?: string;
|
||||||
|
cancelReason?: string;
|
||||||
|
cancelRequestor?: string;
|
||||||
|
partialCancel?: string;
|
||||||
|
cashReceiptIssue?: string;
|
||||||
|
transactionDateTime?: string;
|
||||||
|
transactionAmount?: number;
|
||||||
|
};
|
||||||
|
export interface SettlementInfo {
|
||||||
|
approvalSettleDate?: string;
|
||||||
|
approvalSettleAmount?: number;
|
||||||
|
cancelSettleDate?: string;
|
||||||
|
cancelSettleAmount?: number;
|
||||||
|
scheduledSettlementDate?: string;
|
||||||
|
completedSettlementDate?: string;
|
||||||
|
};
|
||||||
|
export interface PartCancelInfo {
|
||||||
|
originalTid?: string;
|
||||||
|
originalAmount?: number;
|
||||||
|
partCancelTid?: string;
|
||||||
|
partCancelAmount?: number;
|
||||||
|
remainingAmount?: number;
|
||||||
|
};
|
||||||
|
|
||||||
|
export interface IssueInfo {
|
||||||
|
approvalNumber?: number;
|
||||||
|
issueNumber?: number;
|
||||||
|
issueDateTime?: string;
|
||||||
|
purpose?: string;
|
||||||
|
paymentMethod?: string;
|
||||||
|
productName?: string;
|
||||||
|
transmissionStatus?: string;
|
||||||
|
transactionType?: string;
|
||||||
|
};
|
||||||
|
export interface DetailInfo {
|
||||||
|
cancelDate?: string;
|
||||||
|
cancelApprovalNumber?: number;
|
||||||
|
receiptInfo?: string;
|
||||||
|
tid?: string;
|
||||||
|
merchantTid?: string;
|
||||||
|
subMallName?: string;
|
||||||
|
subMallBusinessNumber?: number;
|
||||||
|
issueChannel?: string;
|
||||||
|
failureReason?: string;
|
||||||
|
};
|
||||||
|
export interface EscrowInfo {
|
||||||
|
deliveryStatus: string;
|
||||||
|
deliveryRegistrationDate: string;
|
||||||
|
deliveryCompleteDate: string;
|
||||||
|
purchaseConfirmDate: string;
|
||||||
|
purchaseRejectReason: string;
|
||||||
|
rejectReason: string;
|
||||||
|
escrowCertNumber: string;
|
||||||
|
deliveryCompany: string;
|
||||||
|
trackingNumber: number;
|
||||||
|
deliveryAddress: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export interface DetailResponse {
|
export interface DetailResponse {
|
||||||
amountInfo?: DetailAmountInfoProps;
|
amountInfo?: AmountInfo;
|
||||||
importantInfo?: DetailImportantInfoProps;
|
importantInfo?: ImportantInfo;
|
||||||
paymentInfo?: DetailPaymentInfoProps;
|
paymentInfo?: PaymentInfo;
|
||||||
transactionInfo?: DetailTransactionInfoProps;
|
transactionInfo?: TransactionInfo;
|
||||||
settlementInfo?: DetailSettlementInfoProps;
|
settlementInfo?: SettlementInfo;
|
||||||
partCancelInfo?: DetailPartCancelInfoProps;
|
partCancelInfo?: PartCancelInfo;
|
||||||
|
issueInfo?: IssueInfo;
|
||||||
|
detailInfo?: DetailInfo;
|
||||||
|
escrowInfo?: EscrowInfo;
|
||||||
};
|
};
|
||||||
|
export interface BillingDetailResponse {
|
||||||
|
billKey: string;
|
||||||
|
tid: string;
|
||||||
|
orderNumber: string;
|
||||||
|
approvalNumber: string;
|
||||||
|
approvalDate: string;
|
||||||
|
requestStatus: string;
|
||||||
|
processResult: string;
|
||||||
|
installmentMonth: string;
|
||||||
|
productName: string;
|
||||||
|
buyerName: string;
|
||||||
|
}
|
||||||
|
|
||||||
export interface DetailInfoProps extends DetailResponse{
|
export interface DetailInfoProps extends DetailResponse{
|
||||||
pageType: PageType;
|
transactionCategory: TransactionCategory;
|
||||||
show?: boolean;
|
show?: boolean;
|
||||||
tid?: string;
|
tid?: string;
|
||||||
onClickToShowInfo?: (info: DetailInfoKeys) => void;
|
issueNumber?: number;
|
||||||
|
onClickToShowInfo?: (info: InfoWrapKeys) => void;
|
||||||
}
|
}
|
||||||
export interface DetailArrowProps {
|
export interface DetailArrowProps {
|
||||||
show?: boolean;
|
show?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export interface DownloadConfirmationParams extends TransactionRequestParams {
|
export interface DownloadConfirmationParams {
|
||||||
|
tid?: string;
|
||||||
};
|
};
|
||||||
export interface DownloadConfirmationResponse {
|
export interface DownloadConfirmationResponse {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export interface DownloadExcelParams extends TransactionRequestParams {
|
export interface DownloadExcelParams {
|
||||||
|
tid?: string
|
||||||
};
|
};
|
||||||
export interface DownloadExcelResponse {
|
export interface DownloadExcelResponse {
|
||||||
|
|
||||||
};
|
};
|
||||||
export interface AllTransactionCancelParams extends TransactionRequestParams {
|
export interface AllTransactionCancelParams{
|
||||||
|
tid: string;
|
||||||
cancelAmount: number;
|
cancelAmount: number;
|
||||||
cancelPassword: string;
|
cancelPassword: string;
|
||||||
bankCode: string;
|
bankCode: string;
|
||||||
@@ -318,8 +372,8 @@ export interface AllTransactionCancelParams extends TransactionRequestParams {
|
|||||||
export interface AllTransactionCancelResponse {
|
export interface AllTransactionCancelResponse {
|
||||||
|
|
||||||
};
|
};
|
||||||
export interface AllTransactionCancelInfoParams extends TransactionRequestParams {
|
export interface AllTransactionCancelInfoParams {
|
||||||
|
tid: string;
|
||||||
};
|
};
|
||||||
export interface AllTransactionCancelInfoResponse {
|
export interface AllTransactionCancelInfoResponse {
|
||||||
remainAmount: number;
|
remainAmount: number;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { AllTransactionListProps } from '../model/types';
|
|||||||
import { ListDateGroup } from './list-date-group';
|
import { ListDateGroup } from './list-date-group';
|
||||||
|
|
||||||
export const AllTransactionList = ({
|
export const AllTransactionList = ({
|
||||||
pageType,
|
transactionCategory,
|
||||||
listItems
|
listItems
|
||||||
}: AllTransactionListProps) => {
|
}: AllTransactionListProps) => {
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@ export const AllTransactionList = ({
|
|||||||
for (const [key, value] of Object.entries(listItems)) {
|
for (const [key, value] of Object.entries(listItems)) {
|
||||||
rs.push(
|
rs.push(
|
||||||
<ListDateGroup
|
<ListDateGroup
|
||||||
pageType={ pageType }
|
transactionCategory={ transactionCategory }
|
||||||
key={ key }
|
key={ key }
|
||||||
date={ key }
|
date={ key }
|
||||||
items={ value }
|
items={ value }
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { BillingListProps } from '../model/types';
|
|||||||
import { ListDateGroup } from './list-date-group';
|
import { ListDateGroup } from './list-date-group';
|
||||||
|
|
||||||
export const BillingList = ({
|
export const BillingList = ({
|
||||||
pageType,
|
transactionCategory,
|
||||||
listItems
|
listItems
|
||||||
}: BillingListProps) => {
|
}: BillingListProps) => {
|
||||||
const { navigate } = useNavigate();
|
const { navigate } = useNavigate();
|
||||||
@@ -14,7 +14,7 @@ export const BillingList = ({
|
|||||||
for (const [key, value] of Object.entries(listItems)) {
|
for (const [key, value] of Object.entries(listItems)) {
|
||||||
rs.push(
|
rs.push(
|
||||||
<ListDateGroup
|
<ListDateGroup
|
||||||
pageType={ pageType }
|
transactionCategory={ transactionCategory }
|
||||||
key={ key }
|
key={ key }
|
||||||
date={ key }
|
date={ key }
|
||||||
items={ value }
|
items={ value }
|
||||||
|
|||||||
@@ -2,11 +2,11 @@ import { PATHS } from '@/shared/constants/paths';
|
|||||||
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
||||||
import { useSetOnBack } from '@/widgets/sub-layout/use-sub-layout';
|
import { useSetOnBack } from '@/widgets/sub-layout/use-sub-layout';
|
||||||
|
|
||||||
export const CashReceitHandWrittenIssuanceStep1 = () => {
|
export const CashReceiptHandWrittenIssuanceStep1 = () => {
|
||||||
const { navigate } = useNavigate();
|
const { navigate } = useNavigate();
|
||||||
|
|
||||||
useSetOnBack(() => {
|
useSetOnBack(() => {
|
||||||
navigate(PATHS.transaction.cashReceit.list);
|
navigate(PATHS.transaction.cashReceipt.list);
|
||||||
});
|
});
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
import { useSetOnBack } from '@/widgets/sub-layout/use-sub-layout';
|
import { useSetOnBack } from '@/widgets/sub-layout/use-sub-layout';
|
||||||
import { ProcessStep } from '../model/types';
|
import { ProcessStep } from '../model/types';
|
||||||
|
|
||||||
export interface CashReceitHandWrittenIssuanceStep2Props {
|
export interface CashReceiptHandWrittenIssuanceStep2Props {
|
||||||
setProcessStep: ((processStep: ProcessStep) => void);
|
setProcessStep: ((processStep: ProcessStep) => void);
|
||||||
};
|
};
|
||||||
export const CashReceitHandWrittenIssuanceStep2 = ({
|
export const CashReceiptHandWrittenIssuanceStep2 = ({
|
||||||
setProcessStep
|
setProcessStep
|
||||||
}: CashReceitHandWrittenIssuanceStep2Props) => {
|
}: CashReceiptHandWrittenIssuanceStep2Props) => {
|
||||||
useSetOnBack(() => {
|
useSetOnBack(() => {
|
||||||
setProcessStep(ProcessStep.One);
|
setProcessStep(ProcessStep.One);
|
||||||
});
|
});
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
import { PATHS } from '@/shared/constants/paths';
|
import { PATHS } from '@/shared/constants/paths';
|
||||||
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
||||||
import { CashReceitListProps } from '../model/types';
|
import { CashReceiptListProps } from '../model/types';
|
||||||
import { ListDateGroup } from './list-date-group';
|
import { ListDateGroup } from './list-date-group';
|
||||||
|
|
||||||
export const CashReceitList = ({
|
export const CashReceiptList = ({
|
||||||
pageType,
|
transactionCategory,
|
||||||
listItems
|
listItems
|
||||||
}: CashReceitListProps) => {
|
}: CashReceiptListProps) => {
|
||||||
const { navigate } = useNavigate();
|
const { navigate } = useNavigate();
|
||||||
|
|
||||||
const getListDateGroup = () => {
|
const getListDateGroup = () => {
|
||||||
@@ -14,7 +14,7 @@ export const CashReceitList = ({
|
|||||||
for (const [key, value] of Object.entries(listItems)) {
|
for (const [key, value] of Object.entries(listItems)) {
|
||||||
rs.push(
|
rs.push(
|
||||||
<ListDateGroup
|
<ListDateGroup
|
||||||
pageType={ pageType }
|
transactionCategory={ transactionCategory }
|
||||||
key={ key }
|
key={ key }
|
||||||
date={ key }
|
date={ key }
|
||||||
items={ value }
|
items={ value }
|
||||||
@@ -25,7 +25,7 @@ export const CashReceitList = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onClickToNavigate = () => {
|
const onClickToNavigate = () => {
|
||||||
navigate(PATHS.transaction.cashReceit.handWrittenIssuance);
|
navigate(PATHS.transaction.cashReceipt.handWrittenIssuance);
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
import { EscroListProps } from '../model/types';
|
import { EscrowListProps } from '../model/types';
|
||||||
import { ListDateGroup } from './list-date-group';
|
import { ListDateGroup } from './list-date-group';
|
||||||
|
|
||||||
export const EscroList = ({
|
export const EscrowList = ({
|
||||||
pageType,
|
transactionCategory,
|
||||||
listItems
|
listItems
|
||||||
}: EscroListProps) => {
|
}: EscrowListProps) => {
|
||||||
|
|
||||||
const getListDateGroup = () => {
|
const getListDateGroup = () => {
|
||||||
let rs = [];
|
let rs = [];
|
||||||
for (const [key, value] of Object.entries(listItems)) {
|
for (const [key, value] of Object.entries(listItems)) {
|
||||||
rs.push(
|
rs.push(
|
||||||
<ListDateGroup
|
<ListDateGroup
|
||||||
pageType={ pageType }
|
transactionCategory={ transactionCategory }
|
||||||
key={ key }
|
key={ key }
|
||||||
date={ key }
|
date={ key }
|
||||||
items={ value }
|
items={ value }
|
||||||
@@ -1,12 +1,11 @@
|
|||||||
import { useEffect, useState } from 'react';
|
|
||||||
import { motion } from 'framer-motion';
|
import { motion } from 'framer-motion';
|
||||||
import { NumericFormat } from 'react-number-format';
|
import { NumericFormat } from 'react-number-format';
|
||||||
import { DetailInfoKeys, DetailInfoProps } from '../model/types';
|
import { DetailArrow } from '../detail-arrow';
|
||||||
import { DetailArrow } from './detail-arrow';
|
import { useDownloadConfirmationMutation } from '../../api/use-download-confirmation-mutation';
|
||||||
import { useDownloadConfirmationMutation } from '../api/use-download-confirmation-mutation';
|
import { InfoWrapKeys, DetailInfoProps } from '../../model/types';
|
||||||
|
|
||||||
export const DetailAmountInfo = ({
|
export const AmountInfoWrap = ({
|
||||||
pageType,
|
transactionCategory,
|
||||||
amountInfo,
|
amountInfo,
|
||||||
show,
|
show,
|
||||||
tid,
|
tid,
|
||||||
@@ -20,7 +19,7 @@ export const DetailAmountInfo = ({
|
|||||||
|
|
||||||
const onClickToSetShowInfo = () => {
|
const onClickToSetShowInfo = () => {
|
||||||
if(!!onClickToShowInfo){
|
if(!!onClickToShowInfo){
|
||||||
onClickToShowInfo(DetailInfoKeys.Amount);
|
onClickToShowInfo(InfoWrapKeys.Amount);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
44
src/entities/transaction/ui/info-wrap/detail-info-wrap.tsx
Normal file
44
src/entities/transaction/ui/info-wrap/detail-info-wrap.tsx
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
import moment from 'moment';
|
||||||
|
import { motion } from 'framer-motion';
|
||||||
|
import { DetailArrow } from '../detail-arrow';
|
||||||
|
import { InfoWrapKeys, DetailInfoProps } from '../../model/types';
|
||||||
|
|
||||||
|
export const DetailInfoWrap = ({
|
||||||
|
transactionCategory,
|
||||||
|
detailInfo,
|
||||||
|
show,
|
||||||
|
onClickToShowInfo
|
||||||
|
}: DetailInfoProps) => {
|
||||||
|
const variants = {
|
||||||
|
hidden: { height: 0, padding: 0, display: 'none' },
|
||||||
|
visible: { height: 'auto', paddingTop: '12px', display: 'block' },
|
||||||
|
};
|
||||||
|
|
||||||
|
const onClickToSetShowInfo = () => {
|
||||||
|
if(!!onClickToShowInfo){
|
||||||
|
onClickToShowInfo(InfoWrapKeys.Issue);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<div className="txn-section">
|
||||||
|
<div
|
||||||
|
className="section-title with-toggle"
|
||||||
|
onClick={ () => onClickToSetShowInfo() }
|
||||||
|
>
|
||||||
|
정산 정보 <DetailArrow show={ show }></DetailArrow>
|
||||||
|
</div>
|
||||||
|
<motion.ul
|
||||||
|
className="kv-list"
|
||||||
|
initial="hidden"
|
||||||
|
animate={ (show)? 'visible': 'hidden' }
|
||||||
|
variants={ variants }
|
||||||
|
transition={{ duration: 0.3 }}
|
||||||
|
>
|
||||||
|
|
||||||
|
</motion.ul>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
};
|
||||||
44
src/entities/transaction/ui/info-wrap/escrow-info-wrap.tsx
Normal file
44
src/entities/transaction/ui/info-wrap/escrow-info-wrap.tsx
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
import moment from 'moment';
|
||||||
|
import { motion } from 'framer-motion';
|
||||||
|
import { DetailArrow } from '../detail-arrow';
|
||||||
|
import { InfoWrapKeys, DetailInfoProps } from '../../model/types';
|
||||||
|
|
||||||
|
export const EscrowInfoWrap = ({
|
||||||
|
transactionCategory,
|
||||||
|
escrowInfo,
|
||||||
|
show,
|
||||||
|
onClickToShowInfo
|
||||||
|
}: DetailInfoProps) => {
|
||||||
|
const variants = {
|
||||||
|
hidden: { height: 0, padding: 0, display: 'none' },
|
||||||
|
visible: { height: 'auto', paddingTop: '12px', display: 'block' },
|
||||||
|
};
|
||||||
|
|
||||||
|
const onClickToSetShowInfo = () => {
|
||||||
|
if(!!onClickToShowInfo){
|
||||||
|
onClickToShowInfo(InfoWrapKeys.Escrow);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<div className="txn-section">
|
||||||
|
<div
|
||||||
|
className="section-title with-toggle"
|
||||||
|
onClick={ () => onClickToSetShowInfo() }
|
||||||
|
>
|
||||||
|
정산 정보 <DetailArrow show={ show }></DetailArrow>
|
||||||
|
</div>
|
||||||
|
<motion.ul
|
||||||
|
className="kv-list"
|
||||||
|
initial="hidden"
|
||||||
|
animate={ (show)? 'visible': 'hidden' }
|
||||||
|
variants={ variants }
|
||||||
|
transition={{ duration: 0.3 }}
|
||||||
|
>
|
||||||
|
|
||||||
|
</motion.ul>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -1,13 +1,19 @@
|
|||||||
import { NumericFormat } from 'react-number-format';
|
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
import { DetailInfoProps } from '../model/types';
|
import { InfoWrapKeys, DetailInfoProps } from '../../model/types';
|
||||||
import { IMAGE_ROOT } from '@/shared/constants/common';
|
|
||||||
|
|
||||||
export const DetailImportantInfo = ({
|
export const ImportantInfoWrap = ({
|
||||||
pageType,
|
transactionCategory,
|
||||||
importantInfo
|
importantInfo,
|
||||||
|
show,
|
||||||
|
onClickToShowInfo
|
||||||
}: DetailInfoProps) => {
|
}: DetailInfoProps) => {
|
||||||
|
|
||||||
|
const onClickToSetShowInfo = () => {
|
||||||
|
if(!!onClickToShowInfo){
|
||||||
|
onClickToShowInfo(InfoWrapKeys.Important);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="txn-section">
|
<div className="txn-section">
|
||||||
44
src/entities/transaction/ui/info-wrap/issue-info-wrap.tsx
Normal file
44
src/entities/transaction/ui/info-wrap/issue-info-wrap.tsx
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
import moment from 'moment';
|
||||||
|
import { motion } from 'framer-motion';
|
||||||
|
import { DetailArrow } from '../detail-arrow';
|
||||||
|
import { InfoWrapKeys, DetailInfoProps } from '../../model/types';
|
||||||
|
|
||||||
|
export const IssueInfoWrap = ({
|
||||||
|
transactionCategory,
|
||||||
|
issueInfo,
|
||||||
|
show,
|
||||||
|
onClickToShowInfo
|
||||||
|
}: DetailInfoProps) => {
|
||||||
|
const variants = {
|
||||||
|
hidden: { height: 0, padding: 0, display: 'none' },
|
||||||
|
visible: { height: 'auto', paddingTop: '12px', display: 'block' },
|
||||||
|
};
|
||||||
|
|
||||||
|
const onClickToSetShowInfo = () => {
|
||||||
|
if(!!onClickToShowInfo){
|
||||||
|
onClickToShowInfo(InfoWrapKeys.Issue);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<div className="txn-section">
|
||||||
|
<div
|
||||||
|
className="section-title with-toggle"
|
||||||
|
onClick={ () => onClickToSetShowInfo() }
|
||||||
|
>
|
||||||
|
정산 정보 <DetailArrow show={ show }></DetailArrow>
|
||||||
|
</div>
|
||||||
|
<motion.ul
|
||||||
|
className="kv-list"
|
||||||
|
initial="hidden"
|
||||||
|
animate={ (show)? 'visible': 'hidden' }
|
||||||
|
variants={ variants }
|
||||||
|
transition={{ duration: 0.3 }}
|
||||||
|
>
|
||||||
|
|
||||||
|
</motion.ul>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -1,11 +1,10 @@
|
|||||||
import { useState } from 'react';
|
|
||||||
import { motion } from 'framer-motion';
|
import { motion } from 'framer-motion';
|
||||||
import { NumericFormat } from 'react-number-format';
|
import { NumericFormat } from 'react-number-format';
|
||||||
import { DetailInfoKeys, DetailInfoProps } from '../model/types';
|
import { DetailArrow } from '../detail-arrow';
|
||||||
import { DetailArrow } from './detail-arrow';
|
import { InfoWrapKeys, DetailInfoProps } from '../../model/types';
|
||||||
|
|
||||||
export const DetailPartCancelInfo = ({
|
export const PartCancelInfoWrap = ({
|
||||||
pageType,
|
transactionCategory,
|
||||||
partCancelInfo,
|
partCancelInfo,
|
||||||
show,
|
show,
|
||||||
onClickToShowInfo
|
onClickToShowInfo
|
||||||
@@ -18,7 +17,7 @@ export const DetailPartCancelInfo = ({
|
|||||||
|
|
||||||
const onClickToSetShowInfo = () => {
|
const onClickToSetShowInfo = () => {
|
||||||
if(!!onClickToShowInfo){
|
if(!!onClickToShowInfo){
|
||||||
onClickToShowInfo(DetailInfoKeys.PartCancel);
|
onClickToShowInfo(InfoWrapKeys.PartCancel);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
import { motion } from 'framer-motion';
|
import { motion } from 'framer-motion';
|
||||||
import { DetailInfoKeys, DetailInfoProps } from '../model/types';
|
import { DetailArrow } from '../detail-arrow';
|
||||||
import { DetailArrow } from './detail-arrow';
|
import { InfoWrapKeys, DetailInfoProps } from '../../model/types';
|
||||||
|
|
||||||
export const DetailPaymentInfo = ({
|
export const PaymentInfoWrap = ({
|
||||||
pageType,
|
transactionCategory,
|
||||||
paymentInfo,
|
paymentInfo,
|
||||||
show,
|
show,
|
||||||
onClickToShowInfo
|
onClickToShowInfo
|
||||||
@@ -15,7 +15,7 @@ export const DetailPaymentInfo = ({
|
|||||||
|
|
||||||
const onClickToSetShowInfo = () => {
|
const onClickToSetShowInfo = () => {
|
||||||
if(!!onClickToShowInfo){
|
if(!!onClickToShowInfo){
|
||||||
onClickToShowInfo(DetailInfoKeys.Payment);
|
onClickToShowInfo(InfoWrapKeys.Payment);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
import { motion } from 'framer-motion';
|
import { motion } from 'framer-motion';
|
||||||
import { DetailInfoKeys, DetailInfoProps } from '../model/types';
|
import { DetailArrow } from '../detail-arrow';
|
||||||
import { DetailArrow } from './detail-arrow';
|
import { InfoWrapKeys, DetailInfoProps } from '../../model/types';
|
||||||
|
|
||||||
export const DetailSettlementInfo = ({
|
export const SettlementInfoWrap = ({
|
||||||
pageType,
|
transactionCategory,
|
||||||
settlementInfo,
|
settlementInfo,
|
||||||
show,
|
show,
|
||||||
onClickToShowInfo
|
onClickToShowInfo
|
||||||
@@ -16,7 +16,7 @@ export const DetailSettlementInfo = ({
|
|||||||
|
|
||||||
const onClickToSetShowInfo = () => {
|
const onClickToSetShowInfo = () => {
|
||||||
if(!!onClickToShowInfo){
|
if(!!onClickToShowInfo){
|
||||||
onClickToShowInfo(DetailInfoKeys.Settlement);
|
onClickToShowInfo(InfoWrapKeys.Settlement);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
import { motion } from 'framer-motion';
|
import { motion } from 'framer-motion';
|
||||||
import { DetailInfoKeys, DetailInfoProps } from '../model/types';
|
import { DetailArrow } from '../detail-arrow';
|
||||||
import { DetailArrow } from './detail-arrow';
|
import { InfoWrapKeys, DetailInfoProps } from '../../model/types';
|
||||||
|
|
||||||
export const DetailTransactionInfo = ({
|
export const TransactionInfoWrap = ({
|
||||||
pageType,
|
transactionCategory,
|
||||||
transactionInfo,
|
transactionInfo,
|
||||||
show,
|
show,
|
||||||
onClickToShowInfo
|
onClickToShowInfo
|
||||||
@@ -15,7 +15,7 @@ export const DetailTransactionInfo = ({
|
|||||||
|
|
||||||
const onClickToSetShowInfo = () => {
|
const onClickToSetShowInfo = () => {
|
||||||
if(!!onClickToShowInfo){
|
if(!!onClickToShowInfo){
|
||||||
onClickToShowInfo(DetailInfoKeys.Transaction);
|
onClickToShowInfo(InfoWrapKeys.Transaction);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -4,7 +4,7 @@ import { ListDateGroupProps } from '../model/types';
|
|||||||
import { ListItem } from './list-item';
|
import { ListItem } from './list-item';
|
||||||
|
|
||||||
export const ListDateGroup = ({
|
export const ListDateGroup = ({
|
||||||
pageType,
|
transactionCategory,
|
||||||
date,
|
date,
|
||||||
items
|
items
|
||||||
}: ListDateGroupProps) => {
|
}: ListDateGroupProps) => {
|
||||||
@@ -21,9 +21,11 @@ export const ListDateGroup = ({
|
|||||||
let key = 'ListItem-'+i;
|
let key = 'ListItem-'+i;
|
||||||
rs.push(
|
rs.push(
|
||||||
<ListItem
|
<ListItem
|
||||||
pageType={ pageType }
|
transactionCategory={ transactionCategory }
|
||||||
key={ key }
|
key={ key }
|
||||||
tid={ items[i]?.tid }
|
tid={ items[i]?.tid }
|
||||||
|
issueNumber={ items[i]?.issueNumber }
|
||||||
|
billKey={ items[i]?.billKey }
|
||||||
mid={ items[i]?.mid }
|
mid={ items[i]?.mid }
|
||||||
stateDate={ items[i]?.stateDate }
|
stateDate={ items[i]?.stateDate }
|
||||||
stateCode={ items[i]?.stateCode }
|
stateCode={ items[i]?.stateCode }
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
import { NumericFormat } from 'react-number-format';
|
import { NumericFormat } from 'react-number-format';
|
||||||
import { PATHS } from '@/shared/constants/paths';
|
import { PATHS } from '@/shared/constants/paths';
|
||||||
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
||||||
import { ListItemProps, PageType } from '../model/types';
|
import { ListItemProps, TransactionCategory } from '../model/types';
|
||||||
|
|
||||||
export const ListItem = ({
|
export const ListItem = ({
|
||||||
pageType,
|
transactionCategory,
|
||||||
tid,
|
tid,
|
||||||
|
issueNumber,
|
||||||
|
billKey,
|
||||||
mid,
|
mid,
|
||||||
stateDate,
|
stateDate,
|
||||||
stateCode,
|
stateCode,
|
||||||
@@ -46,31 +48,31 @@ export const ListItem = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onClickToNavigate = () => {
|
const onClickToNavigate = () => {
|
||||||
if(pageType === PageType.AllTransaction){
|
if(transactionCategory === TransactionCategory.AllTransaction){
|
||||||
navigate(PATHS.transaction.allTransaction.detail + tid, {
|
navigate(PATHS.transaction.allTransaction.detail, {
|
||||||
state: {
|
state: {
|
||||||
tid: tid
|
tid: tid
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else if(pageType === PageType.CashReceit){
|
else if(transactionCategory === TransactionCategory.CashReceipt){
|
||||||
navigate(PATHS.transaction.cashReceit.detail + tid, {
|
navigate(PATHS.transaction.cashReceipt.detail, {
|
||||||
state: {
|
state: {
|
||||||
tid: tid
|
issueNumber: issueNumber
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else if(pageType === PageType.Escro){
|
else if(transactionCategory === TransactionCategory.Escrow){
|
||||||
navigate(PATHS.transaction.escro.detail + tid, {
|
navigate(PATHS.transaction.escrow.detail, {
|
||||||
state: {
|
state: {
|
||||||
tid: tid
|
issueNumber: issueNumber
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else if(pageType === PageType.Billing){
|
else if(transactionCategory === TransactionCategory.Billing){
|
||||||
navigate(PATHS.transaction.billing.detail + tid, {
|
navigate(PATHS.transaction.billing.detail, {
|
||||||
state: {
|
state: {
|
||||||
tid: tid
|
billKey: billKey
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,36 +1,21 @@
|
|||||||
import { LoginParams } from '@/entities/user/model/types';
|
import { LoginParams } from '@/entities/user/model/types';
|
||||||
import { StorageKeys } from '@/shared/constants/local-storage';
|
import { StorageKeys } from '@/shared/constants/local-storage';
|
||||||
import { setLocalStorage, getLocalStorage } from '@/shared/lib/web-view-bridge';
|
import { setLocalStorage } from '@/shared/lib/web-view-bridge';
|
||||||
import { useLoginMutation } from '@/entities/user/api/use-login-mutation';
|
import { useLoginMutation } from '@/entities/user/api/use-login-mutation';
|
||||||
import { useStore } from '~/shared/model/store';
|
import { useStore } from '~/shared/model/store';
|
||||||
|
|
||||||
export const useUserInfo = () => {
|
export const useUserInfo = () => {
|
||||||
const { mutateAsync: login } = useLoginMutation();
|
const { mutateAsync: login } = useLoginMutation();
|
||||||
const callLogin = async (params: LoginParams) => {
|
const callLogin = async (params: LoginParams) => {
|
||||||
useStore.getState().UserStore.resetUserInfo();
|
try{
|
||||||
let appStart = getLocalStorage(StorageKeys.AppStart);
|
useStore.getState().UserStore.resetUserInfo();
|
||||||
|
|
||||||
if(!!appStart){
|
|
||||||
let tokenType = getLocalStorage(StorageKeys.TokenType);
|
|
||||||
let accessToken = getLocalStorage(StorageKeys.AccessToken);
|
|
||||||
let refreshToken = getLocalStorage(StorageKeys.RefreshToken);
|
|
||||||
let accessTokenExpiresIn = getLocalStorage(StorageKeys.AccessTokenExpiresIn);
|
|
||||||
let refreshTokenExpiresIn = getLocalStorage(StorageKeys.RefreshTokenExpiresIn);
|
|
||||||
let menuGrants = getLocalStorage(StorageKeys.TokenType);
|
|
||||||
let usrid = getLocalStorage(StorageKeys.Usrid);
|
|
||||||
|
|
||||||
useStore.getState().UserStore.setUserInfo({
|
const result = await login(params);
|
||||||
tokenType: tokenType,
|
if(result.requires2FA){
|
||||||
accessToken: accessToken,
|
// 2차인증 필요
|
||||||
refreshToken: refreshToken,
|
|
||||||
accessTokenExpiresIn: accessTokenExpiresIn,
|
}
|
||||||
refreshTokenExpiresIn: refreshTokenExpiresIn,
|
else{
|
||||||
menuGrants: menuGrants,
|
|
||||||
usrid: usrid
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
login(params).then((result) => {
|
|
||||||
const {
|
const {
|
||||||
tokenType,
|
tokenType,
|
||||||
accessToken,
|
accessToken,
|
||||||
@@ -38,9 +23,10 @@ export const useUserInfo = () => {
|
|||||||
accessTokenExpiresIn,
|
accessTokenExpiresIn,
|
||||||
refreshTokenExpiresIn,
|
refreshTokenExpiresIn,
|
||||||
menuGrants,
|
menuGrants,
|
||||||
usrid
|
usrid,
|
||||||
|
// clientAddressIP,
|
||||||
|
// requires2FA
|
||||||
} = result;
|
} = result;
|
||||||
|
|
||||||
setLocalStorage(StorageKeys.TokenType, tokenType);
|
setLocalStorage(StorageKeys.TokenType, tokenType);
|
||||||
setLocalStorage(StorageKeys.AccessToken, accessToken);
|
setLocalStorage(StorageKeys.AccessToken, accessToken);
|
||||||
setLocalStorage(StorageKeys.RefreshToken, refreshToken);
|
setLocalStorage(StorageKeys.RefreshToken, refreshToken);
|
||||||
@@ -48,12 +34,15 @@ export const useUserInfo = () => {
|
|||||||
setLocalStorage(StorageKeys.RefreshTokenExpiresIn, refreshTokenExpiresIn);
|
setLocalStorage(StorageKeys.RefreshTokenExpiresIn, refreshTokenExpiresIn);
|
||||||
setLocalStorage(StorageKeys.MenuGrants, menuGrants);
|
setLocalStorage(StorageKeys.MenuGrants, menuGrants);
|
||||||
setLocalStorage(StorageKeys.Usrid, usrid);
|
setLocalStorage(StorageKeys.Usrid, usrid);
|
||||||
|
// setLocalStorage(StorageKeys.ClientAddressIP, clientAddressIP);
|
||||||
|
// setLocalStorage(StorageKeys.Requires2FA, requires2FA);
|
||||||
|
|
||||||
useStore.getState().UserStore.setUserInfo(result);
|
useStore.getState().UserStore.setUserInfo(result);
|
||||||
});
|
}
|
||||||
|
}
|
||||||
|
catch(e: any){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
return {
|
return {
|
||||||
callLogin,
|
callLogin,
|
||||||
|
|||||||
@@ -1,13 +1,15 @@
|
|||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
import { useCallback, useEffect, useState } from 'react';
|
import { useCallback, useEffect, useState } from 'react';
|
||||||
import { getLocalStorage } from '@/shared/lib';
|
|
||||||
import { StorageKeys } from '@/shared/constants/local-storage';
|
|
||||||
import { useUserInfo } from '@/entities/user/lib/use-user-info';
|
import { useUserInfo } from '@/entities/user/lib/use-user-info';
|
||||||
import { FavoriteWrapper } from '@/entities/home/ui/favorite-wrapper';
|
import { FavoriteWrapper } from '@/entities/home/ui/favorite-wrapper';
|
||||||
import { DayStatusBox } from '@/entities/home/ui/day-status-box';
|
import { DayStatusBox } from '@/entities/home/ui/day-status-box';
|
||||||
import { HomeBottomBanner } from '@/entities/home/ui/home-bottom-banner';
|
import { HomeBottomBanner } from '@/entities/home/ui/home-bottom-banner';
|
||||||
import { AuthRegister } from '@/entities/home/ui/auth-reguster';
|
import { AuthRegister } from '@/entities/home/ui/auth-reguster';
|
||||||
import { FooterItemActiveKey } from '@/entities/common/model/types';
|
import { FooterItemActiveKey } from '@/entities/common/model/types';
|
||||||
|
import { useStore } from '@/shared/model/store';
|
||||||
|
import { StorageKeys } from '@/shared/constants/local-storage';
|
||||||
|
import { setLocalStorage, getLocalStorage } from '@/shared/lib/web-view-bridge';
|
||||||
|
|
||||||
import { HeaderType } from '@/entities/common/model/types';
|
import { HeaderType } from '@/entities/common/model/types';
|
||||||
import {
|
import {
|
||||||
useSetHeaderTitle,
|
useSetHeaderTitle,
|
||||||
@@ -44,9 +46,35 @@ export const HomePage = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleLogin = useCallback(async () =>{
|
const handleLogin = useCallback(async () =>{
|
||||||
callLogin(userParmas).then(() => {
|
let appStart = getLocalStorage(StorageKeys.AppStart);
|
||||||
|
|
||||||
|
if(!!appStart){
|
||||||
|
useStore.getState().UserStore.resetUserInfo();
|
||||||
|
let tokenType = getLocalStorage(StorageKeys.TokenType);
|
||||||
|
let accessToken = getLocalStorage(StorageKeys.AccessToken);
|
||||||
|
let refreshToken = getLocalStorage(StorageKeys.RefreshToken);
|
||||||
|
let accessTokenExpiresIn = getLocalStorage(StorageKeys.AccessTokenExpiresIn);
|
||||||
|
let refreshTokenExpiresIn = getLocalStorage(StorageKeys.RefreshTokenExpiresIn);
|
||||||
|
let menuGrants = getLocalStorage(StorageKeys.TokenType);
|
||||||
|
let usrid = getLocalStorage(StorageKeys.Usrid);
|
||||||
|
|
||||||
|
useStore.getState().UserStore.setUserInfo({
|
||||||
|
tokenType: tokenType,
|
||||||
|
accessToken: accessToken,
|
||||||
|
refreshToken: refreshToken,
|
||||||
|
accessTokenExpiresIn: accessTokenExpiresIn,
|
||||||
|
refreshTokenExpiresIn: refreshTokenExpiresIn,
|
||||||
|
menuGrants: menuGrants,
|
||||||
|
usrid: usrid
|
||||||
|
});
|
||||||
setLoginSuccess(true);
|
setLoginSuccess(true);
|
||||||
});
|
}
|
||||||
|
else{
|
||||||
|
callLogin(userParmas).then(() => {
|
||||||
|
setLoginSuccess(true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const checkBottomBannerOpen = () => {
|
const checkBottomBannerOpen = () => {
|
||||||
|
|||||||
@@ -1,28 +1,28 @@
|
|||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
import { useParams } from 'react-router-dom';
|
import { useLocation } from 'react-router';
|
||||||
import { PATHS } from '@/shared/constants/paths';
|
import { PATHS } from '@/shared/constants/paths';
|
||||||
import { Dialog } from '@/shared/ui/dialogs/dialog';
|
import { Dialog } from '@/shared/ui/dialogs/dialog';
|
||||||
import { overlay } from 'overlay-kit';
|
import { overlay } from 'overlay-kit';
|
||||||
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
||||||
import { useAllTransactionDetailMutation } from '@/entities/transaction/api/use-all-transaction-detail-mutation';
|
import { useAllTransactionDetailMutation } from '@/entities/transaction/api/use-all-transaction-detail-mutation';
|
||||||
import { DetailAmountInfo } from '@/entities/transaction/ui/detail-amount-info';
|
import { AmountInfoWrap } from '@/entities/transaction/ui/info-wrap/amount-info-wrap';
|
||||||
import { DetailImportantInfo } from '@/entities/transaction/ui/detail-important-info';
|
import { ImportantInfoWrap } from '@/entities/transaction/ui/info-wrap/important-info-wrap';
|
||||||
import { DetailPaymentInfo } from '@/entities/transaction/ui/detail-payment-info';
|
import { PaymentInfoWrap } from '@/entities/transaction/ui/info-wrap/payment-info-wrap';
|
||||||
import { DetailTransactionInfo } from '@/entities/transaction/ui/detail-transaction-info';
|
import { TransactionInfoWrap } from '@/entities/transaction/ui/info-wrap/transaction-info-wrap';
|
||||||
import { DetailSettlementInfo } from '@/entities/transaction/ui/detail-settlement-info';
|
import { SettlementInfoWrap } from '@/entities/transaction/ui/info-wrap/settlement-info-wrap';
|
||||||
import { DetailPartCancelInfo } from '@/entities/transaction/ui/detail-part-cancel-info';
|
import { PartCancelInfoWrap } from '@/entities/transaction/ui/info-wrap/part-cancel-info-wrap';
|
||||||
import { HeaderType } from '@/entities/common/model/types';
|
import { HeaderType } from '@/entities/common/model/types';
|
||||||
import {
|
import {
|
||||||
PageType,
|
TransactionCategory,
|
||||||
AllTransactionDetailParams,
|
AllTransactionDetailParams,
|
||||||
DetailResponse,
|
DetailResponse,
|
||||||
DetailAmountInfoProps,
|
AmountInfo,
|
||||||
DetailImportantInfoProps,
|
ImportantInfo,
|
||||||
DetailPaymentInfoProps,
|
PaymentInfo,
|
||||||
DetailTransactionInfoProps,
|
TransactionInfo,
|
||||||
DetailSettlementInfoProps,
|
SettlementInfo,
|
||||||
DetailPartCancelInfoProps,
|
PartCancelInfo,
|
||||||
DetailInfoKeys
|
InfoWrapKeys
|
||||||
} from '@/entities/transaction/model/types';
|
} from '@/entities/transaction/model/types';
|
||||||
import {
|
import {
|
||||||
useSetOnBack,
|
useSetOnBack,
|
||||||
@@ -33,19 +33,20 @@ import {
|
|||||||
|
|
||||||
export const AllTransactionDetailPage = () => {
|
export const AllTransactionDetailPage = () => {
|
||||||
const { navigate } = useNavigate();
|
const { navigate } = useNavigate();
|
||||||
const { tid } = useParams();
|
const location = useLocation();
|
||||||
|
const tid = location.state.tid;
|
||||||
|
|
||||||
const [amountInfo, setAmountInfo] = useState<DetailAmountInfoProps>();
|
const [amountInfo, setAmountInfo] = useState<AmountInfo>();
|
||||||
const [importantInfo, setImportantInfo] = useState<DetailImportantInfoProps>();
|
const [importantInfo, setImportantInfo] = useState<ImportantInfo>();
|
||||||
const [paymentInfo, setPaymentInfo] = useState<DetailPaymentInfoProps>();
|
const [paymentInfo, setPaymentInfo] = useState<PaymentInfo>();
|
||||||
const [transactionInfo, setTransactionInfo] = useState<DetailTransactionInfoProps>();
|
const [transactionInfo, setTransactionInfo] = useState<TransactionInfo>();
|
||||||
const [settlementInfo, setSettlementInfo] = useState<DetailSettlementInfoProps>();
|
const [settlementInfo, setSettlementInfo] = useState<SettlementInfo>();
|
||||||
const [partCancelInfo, setPartCancelInfo] = useState<DetailPartCancelInfoProps>();
|
const [partCancelInfo, setPartCancelInfo] = useState<PartCancelInfo>();
|
||||||
const [showAmount, setShowAmount] = useState<boolean>(false);
|
const [showAmountInfo, setShowAmountInfo] = useState<boolean>(false);
|
||||||
const [showPayment, setShowPayment] = useState<boolean>(false);
|
const [showPaymentInfo, setShowPaymentInfo] = useState<boolean>(false);
|
||||||
const [showTransaction, setShowTransaction] = useState<boolean>(false);
|
const [showTransactionInfo, setShowTransactionInfo] = useState<boolean>(false);
|
||||||
const [showSettlement, setShowSettlement] = useState<boolean>(false);
|
const [showSettlementInfo, setShowSettlementInfo] = useState<boolean>(false);
|
||||||
const [showPartCancel, setShowPartCancel] = useState<boolean>(false);
|
const [showPartCancelInfo, setShowPartCancelInfo] = useState<boolean>(false);
|
||||||
|
|
||||||
useSetHeaderTitle('거래내역 상세');
|
useSetHeaderTitle('거래내역 상세');
|
||||||
useSetHeaderType(HeaderType.RightClose);
|
useSetHeaderType(HeaderType.RightClose);
|
||||||
@@ -106,21 +107,21 @@ export const AllTransactionDetailPage = () => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const onClickToShowInfo = (info: DetailInfoKeys) => {
|
const onClickToShowInfo = (infoWrapKey: InfoWrapKeys) => {
|
||||||
if(info === DetailInfoKeys.Amount){
|
if(infoWrapKey === InfoWrapKeys.Amount){
|
||||||
setShowAmount(!showAmount);
|
setShowAmountInfo(!showAmountInfo);
|
||||||
}
|
}
|
||||||
else if(info === DetailInfoKeys.Payment){
|
else if(infoWrapKey === InfoWrapKeys.Payment){
|
||||||
setShowPayment(!showPayment);
|
setShowPaymentInfo(!showPaymentInfo);
|
||||||
}
|
}
|
||||||
else if(info === DetailInfoKeys.Transaction){
|
else if(infoWrapKey === InfoWrapKeys.Transaction){
|
||||||
setShowTransaction(!showTransaction);
|
setShowTransactionInfo(!showTransactionInfo);
|
||||||
}
|
}
|
||||||
else if(info === DetailInfoKeys.Settlement){
|
else if(infoWrapKey === InfoWrapKeys.Settlement){
|
||||||
setShowSettlement(!showSettlement);
|
setShowSettlementInfo(!showSettlementInfo);
|
||||||
}
|
}
|
||||||
else if(info === DetailInfoKeys.PartCancel){
|
else if(infoWrapKey === InfoWrapKeys.PartCancel){
|
||||||
setShowPartCancel(!showPartCancel);
|
setShowPartCancelInfo(!showPartCancelInfo);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -131,46 +132,46 @@ export const AllTransactionDetailPage = () => {
|
|||||||
<div className="tab-pane sub active">
|
<div className="tab-pane sub active">
|
||||||
<div className="option-list">
|
<div className="option-list">
|
||||||
<div className="txn-detail">
|
<div className="txn-detail">
|
||||||
<DetailAmountInfo
|
<AmountInfoWrap
|
||||||
pageType={ PageType.AllTransaction }
|
transactionCategory={ TransactionCategory.AllTransaction }
|
||||||
amountInfo={ amountInfo }
|
amountInfo={ amountInfo }
|
||||||
show={ showAmount }
|
show={ showAmountInfo }
|
||||||
tid={ tid }
|
tid={ tid }
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
onClickToShowInfo={ (infoWrapKey) => onClickToShowInfo(infoWrapKey) }
|
||||||
></DetailAmountInfo>
|
></AmountInfoWrap>
|
||||||
<div className="txn-divider minus"></div>
|
<div className="txn-divider minus"></div>
|
||||||
<DetailImportantInfo
|
<ImportantInfoWrap
|
||||||
pageType={ PageType.AllTransaction }
|
transactionCategory={ TransactionCategory.AllTransaction }
|
||||||
importantInfo={ importantInfo }
|
importantInfo={ importantInfo }
|
||||||
></DetailImportantInfo>
|
></ImportantInfoWrap>
|
||||||
<div className="txn-divider minus"></div>
|
<div className="txn-divider minus"></div>
|
||||||
<DetailPaymentInfo
|
<PaymentInfoWrap
|
||||||
pageType={ PageType.AllTransaction }
|
transactionCategory={ TransactionCategory.AllTransaction }
|
||||||
paymentInfo={ paymentInfo }
|
paymentInfo={ paymentInfo }
|
||||||
show={ showPayment }
|
show={ showPaymentInfo }
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
onClickToShowInfo={ (infoWrapKey) => onClickToShowInfo(infoWrapKey) }
|
||||||
></DetailPaymentInfo>
|
></PaymentInfoWrap>
|
||||||
<div className="txn-divider"></div>
|
<div className="txn-divider"></div>
|
||||||
<DetailTransactionInfo
|
<TransactionInfoWrap
|
||||||
pageType={ PageType.AllTransaction }
|
transactionCategory={ TransactionCategory.AllTransaction }
|
||||||
transactionInfo={ transactionInfo }
|
transactionInfo={ transactionInfo }
|
||||||
show={ showTransaction }
|
show={ showTransactionInfo }
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
onClickToShowInfo={ (infoWrapKey) => onClickToShowInfo(infoWrapKey) }
|
||||||
></DetailTransactionInfo>
|
></TransactionInfoWrap>
|
||||||
<div className="txn-divider"></div>
|
<div className="txn-divider"></div>
|
||||||
<DetailSettlementInfo
|
<SettlementInfoWrap
|
||||||
pageType={ PageType.AllTransaction }
|
transactionCategory={ TransactionCategory.AllTransaction }
|
||||||
settlementInfo={ settlementInfo }
|
settlementInfo={ settlementInfo }
|
||||||
show={ showSettlement }
|
show={ showSettlementInfo }
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
onClickToShowInfo={ (infoWrapKey) => onClickToShowInfo(infoWrapKey) }
|
||||||
></DetailSettlementInfo>
|
></SettlementInfoWrap>
|
||||||
<div className="txn-divider"></div>
|
<div className="txn-divider"></div>
|
||||||
<DetailPartCancelInfo
|
<PartCancelInfoWrap
|
||||||
pageType={ PageType.AllTransaction }
|
transactionCategory={ TransactionCategory.AllTransaction }
|
||||||
partCancelInfo={ partCancelInfo }
|
partCancelInfo={ partCancelInfo }
|
||||||
show={ showPartCancel }
|
show={ showPartCancelInfo }
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
onClickToShowInfo={ (infoWrapKey) => onClickToShowInfo(infoWrapKey) }
|
||||||
></DetailPartCancelInfo>
|
></PartCancelInfoWrap>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="apply-row">
|
<div className="apply-row">
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { IMAGE_ROOT } from '@/shared/constants/common';
|
|||||||
import { PATHS } from '@/shared/constants/paths';
|
import { PATHS } from '@/shared/constants/paths';
|
||||||
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
||||||
import { AllTransactionList } from '@/entities/transaction/ui/all-transaction-list';
|
import { AllTransactionList } from '@/entities/transaction/ui/all-transaction-list';
|
||||||
import { ListItem, PageType, SortByKeys } from '@/entities/transaction/model/types';
|
import { ListItem, TransactionCategory, SortByKeys } from '@/entities/transaction/model/types';
|
||||||
import { useAllTransactionListMutation } from '@/entities/transaction/api/use-all-transaction-list-mutation';
|
import { useAllTransactionListMutation } from '@/entities/transaction/api/use-all-transaction-list-mutation';
|
||||||
import { useAllTransactionListSummaryMutation } from '@/entities/transaction/api/use-all-transaction-list-summary-mutation';
|
import { useAllTransactionListSummaryMutation } from '@/entities/transaction/api/use-all-transaction-list-summary-mutation';
|
||||||
import { useDownloadExcelMutation } from '@/entities/transaction/api/use-download-excel-mutation';
|
import { useDownloadExcelMutation } from '@/entities/transaction/api/use-download-excel-mutation';
|
||||||
@@ -218,7 +218,7 @@ export const AllTransactionListPage = () => {
|
|||||||
</div>
|
</div>
|
||||||
<AllTransactionList
|
<AllTransactionList
|
||||||
listItems={ listItems }
|
listItems={ listItems }
|
||||||
pageType={ PageType.AllTransaction }
|
transactionCategory={ TransactionCategory.AllTransaction }
|
||||||
></AllTransactionList>
|
></AllTransactionList>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,28 +1,28 @@
|
|||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
import { useParams } from 'react-router-dom';
|
import { useLocation } from 'react-router';
|
||||||
import { PATHS } from '@/shared/constants/paths';
|
import { PATHS } from '@/shared/constants/paths';
|
||||||
import { Dialog } from '@/shared/ui/dialogs/dialog';
|
import { Dialog } from '@/shared/ui/dialogs/dialog';
|
||||||
import { overlay } from 'overlay-kit';
|
import { overlay } from 'overlay-kit';
|
||||||
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
||||||
import { useBillingDetailMutation } from '@/entities/transaction/api/use-billing-detail-mutation';
|
import { useBillingDetailMutation } from '@/entities/transaction/api/use-billing-detail-mutation';
|
||||||
import { DetailAmountInfo } from '@/entities/transaction/ui/detail-amount-info';
|
import { AmountInfoWrap } from '@/entities/transaction/ui/info-wrap/amount-info-wrap';
|
||||||
import { DetailImportantInfo } from '@/entities/transaction/ui/detail-important-info';
|
import { ImportantInfoWrap } from '@/entities/transaction/ui/info-wrap/important-info-wrap';
|
||||||
import { DetailPaymentInfo } from '@/entities/transaction/ui/detail-payment-info';
|
import { PaymentInfoWrap } from '@/entities/transaction/ui/info-wrap/payment-info-wrap';
|
||||||
import { DetailTransactionInfo } from '@/entities/transaction/ui/detail-transaction-info';
|
import { TransactionInfoWrap } from '@/entities/transaction/ui/info-wrap/transaction-info-wrap';
|
||||||
import { DetailSettlementInfo } from '@/entities/transaction/ui/detail-settlement-info';
|
import { SettlementInfoWrap } from '@/entities/transaction/ui/info-wrap/settlement-info-wrap';
|
||||||
import { DetailPartCancelInfo } from '@/entities/transaction/ui/detail-part-cancel-info';
|
import { PartCancelInfoWrap } from '@/entities/transaction/ui/info-wrap/part-cancel-info-wrap';
|
||||||
import { HeaderType } from '@/entities/common/model/types';
|
import { HeaderType } from '@/entities/common/model/types';
|
||||||
import {
|
import {
|
||||||
PageType,
|
TransactionCategory,
|
||||||
BillingDetailParams,
|
BillingDetailParams,
|
||||||
DetailResponse,
|
DetailResponse,
|
||||||
DetailAmountInfoProps,
|
AmountInfo,
|
||||||
DetailImportantInfoProps,
|
ImportantInfo,
|
||||||
DetailPaymentInfoProps,
|
PaymentInfo,
|
||||||
DetailTransactionInfoProps,
|
TransactionInfo,
|
||||||
DetailSettlementInfoProps,
|
SettlementInfo,
|
||||||
DetailPartCancelInfoProps,
|
PartCancelInfo,
|
||||||
DetailInfoKeys
|
InfoWrapKeys
|
||||||
} from '@/entities/transaction/model/types';
|
} from '@/entities/transaction/model/types';
|
||||||
import {
|
import {
|
||||||
useSetOnBack,
|
useSetOnBack,
|
||||||
@@ -33,14 +33,14 @@ import {
|
|||||||
|
|
||||||
export const BillingDetailPage = () => {
|
export const BillingDetailPage = () => {
|
||||||
const { navigate } = useNavigate();
|
const { navigate } = useNavigate();
|
||||||
const { tid } = useParams();
|
const location = useLocation();
|
||||||
|
|
||||||
const [amountInfo, setAmountInfo] = useState<DetailAmountInfoProps>();
|
const [amountInfo, setAmountInfo] = useState<AmountInfo>();
|
||||||
const [importantInfo, setImportantInfo] = useState<DetailImportantInfoProps>();
|
const [importantInfo, setImportantInfo] = useState<ImportantInfo>();
|
||||||
const [paymentInfo, setPaymentInfo] = useState<DetailPaymentInfoProps>();
|
const [paymentInfo, setPaymentInfo] = useState<PaymentInfo>();
|
||||||
const [transactionInfo, setTransactionInfo] = useState<DetailTransactionInfoProps>();
|
const [transactionInfo, setTransactionInfo] = useState<TransactionInfo>();
|
||||||
const [settlementInfo, setSettlementInfo] = useState<DetailSettlementInfoProps>();
|
const [settlementInfo, setSettlementInfo] = useState<SettlementInfo>();
|
||||||
const [partCancelInfo, setPartCancelInfo] = useState<DetailPartCancelInfoProps>();
|
const [partCancelInfo, setPartCancelInfo] = useState<PartCancelInfo>();
|
||||||
const [showAmount, setShowAmount] = useState<boolean>(false);
|
const [showAmount, setShowAmount] = useState<boolean>(false);
|
||||||
const [showPayment, setShowPayment] = useState<boolean>(false);
|
const [showPayment, setShowPayment] = useState<boolean>(false);
|
||||||
const [showTransaction, setShowTransaction] = useState<boolean>(false);
|
const [showTransaction, setShowTransaction] = useState<boolean>(false);
|
||||||
@@ -58,8 +58,7 @@ export const BillingDetailPage = () => {
|
|||||||
|
|
||||||
const callDetail = () => {
|
const callDetail = () => {
|
||||||
let billingDetailParams: BillingDetailParams = {
|
let billingDetailParams: BillingDetailParams = {
|
||||||
svcCd: 'st',
|
billKey: location?.state.billKey
|
||||||
tid: tid
|
|
||||||
};
|
};
|
||||||
billingDetail(billingDetailParams).then((rs: DetailResponse) => {
|
billingDetail(billingDetailParams).then((rs: DetailResponse) => {
|
||||||
setAmountInfo(rs.amountInfo);
|
setAmountInfo(rs.amountInfo);
|
||||||
@@ -74,53 +73,20 @@ export const BillingDetailPage = () => {
|
|||||||
callDetail();
|
callDetail();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const onClickToNavigate = (path: string) => {
|
const onClickToShowInfo = (infoWrapKey: InfoWrapKeys) => {
|
||||||
let timeout = setTimeout(() => {
|
if(infoWrapKey === InfoWrapKeys.Amount){
|
||||||
clearTimeout(timeout);
|
|
||||||
navigate(PATHS.transaction.allTransaction.cancel, {
|
|
||||||
state: {
|
|
||||||
tid: tid
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}, 10)
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
const onClickToCancel = () => {
|
|
||||||
let msg = '거래를 취소하시겠습니까?';
|
|
||||||
|
|
||||||
overlay.open(({
|
|
||||||
isOpen,
|
|
||||||
close,
|
|
||||||
unmount
|
|
||||||
}) => {
|
|
||||||
return (
|
|
||||||
<Dialog
|
|
||||||
afterLeave={ unmount }
|
|
||||||
open={ isOpen }
|
|
||||||
onClose={ close }
|
|
||||||
onConfirmClick={ () => onClickToNavigate(PATHS.transaction.allTransaction.cancel) }
|
|
||||||
message={ msg }
|
|
||||||
buttonLabel={['취소', '확인']}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
const onClickToShowInfo = (info: DetailInfoKeys) => {
|
|
||||||
if(info === DetailInfoKeys.Amount){
|
|
||||||
setShowAmount(!showAmount);
|
setShowAmount(!showAmount);
|
||||||
}
|
}
|
||||||
else if(info === DetailInfoKeys.Payment){
|
else if(infoWrapKey === InfoWrapKeys.Payment){
|
||||||
setShowPayment(!showPayment);
|
setShowPayment(!showPayment);
|
||||||
}
|
}
|
||||||
else if(info === DetailInfoKeys.Transaction){
|
else if(infoWrapKey === InfoWrapKeys.Transaction){
|
||||||
setShowTransaction(!showTransaction);
|
setShowTransaction(!showTransaction);
|
||||||
}
|
}
|
||||||
else if(info === DetailInfoKeys.Settlement){
|
else if(infoWrapKey === InfoWrapKeys.Settlement){
|
||||||
setShowSettlement(!showSettlement);
|
setShowSettlement(!showSettlement);
|
||||||
}
|
}
|
||||||
else if(info === DetailInfoKeys.PartCancel){
|
else if(infoWrapKey === InfoWrapKeys.PartCancel){
|
||||||
setShowPartCancel(!showPartCancel);
|
setShowPartCancel(!showPartCancel);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -132,54 +98,48 @@ export const BillingDetailPage = () => {
|
|||||||
<div className="tab-pane sub active">
|
<div className="tab-pane sub active">
|
||||||
<div className="option-list">
|
<div className="option-list">
|
||||||
<div className="txn-detail">
|
<div className="txn-detail">
|
||||||
<DetailAmountInfo
|
<AmountInfoWrap
|
||||||
pageType={ PageType.Billing }
|
transactionCategory={ TransactionCategory.Billing }
|
||||||
amountInfo={ amountInfo }
|
amountInfo={ amountInfo }
|
||||||
show={ showAmount }
|
show={ showAmount }
|
||||||
tid={ tid }
|
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
||||||
></DetailAmountInfo>
|
></AmountInfoWrap>
|
||||||
<div className="txn-divider minus"></div>
|
<div className="txn-divider minus"></div>
|
||||||
<DetailImportantInfo
|
<ImportantInfoWrap
|
||||||
pageType={ PageType.Billing }
|
transactionCategory={ TransactionCategory.Billing }
|
||||||
importantInfo={ importantInfo }
|
importantInfo={ importantInfo }
|
||||||
></DetailImportantInfo>
|
></ImportantInfoWrap>
|
||||||
<div className="txn-divider minus"></div>
|
<div className="txn-divider minus"></div>
|
||||||
<DetailPaymentInfo
|
<PaymentInfoWrap
|
||||||
pageType={ PageType.Billing }
|
transactionCategory={ TransactionCategory.Billing }
|
||||||
paymentInfo={ paymentInfo }
|
paymentInfo={ paymentInfo }
|
||||||
show={ showPayment }
|
show={ showPayment }
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
||||||
></DetailPaymentInfo>
|
></PaymentInfoWrap>
|
||||||
<div className="txn-divider"></div>
|
<div className="txn-divider"></div>
|
||||||
<DetailTransactionInfo
|
<TransactionInfoWrap
|
||||||
pageType={ PageType.Billing }
|
transactionCategory={ TransactionCategory.Billing }
|
||||||
transactionInfo={ transactionInfo }
|
transactionInfo={ transactionInfo }
|
||||||
show={ showTransaction }
|
show={ showTransaction }
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
||||||
></DetailTransactionInfo>
|
></TransactionInfoWrap>
|
||||||
<div className="txn-divider"></div>
|
<div className="txn-divider"></div>
|
||||||
<DetailSettlementInfo
|
<SettlementInfoWrap
|
||||||
pageType={ PageType.Billing }
|
transactionCategory={ TransactionCategory.Billing }
|
||||||
settlementInfo={ settlementInfo }
|
settlementInfo={ settlementInfo }
|
||||||
show={ showSettlement }
|
show={ showSettlement }
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
||||||
></DetailSettlementInfo>
|
></SettlementInfoWrap>
|
||||||
<div className="txn-divider"></div>
|
<div className="txn-divider"></div>
|
||||||
<DetailPartCancelInfo
|
<PartCancelInfoWrap
|
||||||
pageType={ PageType.Billing }
|
transactionCategory={ TransactionCategory.Billing }
|
||||||
partCancelInfo={ partCancelInfo }
|
partCancelInfo={ partCancelInfo }
|
||||||
show={ showPartCancel }
|
show={ showPartCancel }
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
||||||
></DetailPartCancelInfo>
|
></PartCancelInfoWrap>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="apply-row">
|
|
||||||
<button
|
|
||||||
className="btn-50 btn-blue flex-1"
|
|
||||||
onClick={ () => onClickToCancel() }
|
|
||||||
>거래 취소</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { IMAGE_ROOT } from '@/shared/constants/common';
|
|||||||
import { PATHS } from '@/shared/constants/paths';
|
import { PATHS } from '@/shared/constants/paths';
|
||||||
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
||||||
import { BillingList } from '@/entities/transaction/ui/billing-list';
|
import { BillingList } from '@/entities/transaction/ui/billing-list';
|
||||||
import { ListItem, PageType, SortByKeys } from '@/entities/transaction/model/types';
|
import { ListItem, TransactionCategory, SortByKeys } from '@/entities/transaction/model/types';
|
||||||
import { useBillingListMutation } from '@/entities/transaction/api/use-billing-list-mutation';
|
import { useBillingListMutation } from '@/entities/transaction/api/use-billing-list-mutation';
|
||||||
import { useDownloadExcelMutation } from '@/entities/transaction/api/use-download-excel-mutation';
|
import { useDownloadExcelMutation } from '@/entities/transaction/api/use-download-excel-mutation';
|
||||||
import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constants';
|
import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constants';
|
||||||
@@ -33,8 +33,8 @@ export const BillingListPage = () => {
|
|||||||
const [listItems, setListItems] = useState({});
|
const [listItems, setListItems] = useState({});
|
||||||
const [filterOn, setFilterOn] = useState<boolean>(false);
|
const [filterOn, setFilterOn] = useState<boolean>(false);
|
||||||
const [pageParam, setPageParam] = useState(DEFAULT_PAGE_PARAM);
|
const [pageParam, setPageParam] = useState(DEFAULT_PAGE_PARAM);
|
||||||
const [fromDate, setFromDate] = useState(moment().subtract(1, 'month').format('YYYYMMDD'));
|
const [startDate, setStartDate] = useState(moment().subtract(1, 'month').format('YYYYMMDD'));
|
||||||
const [toDate, setToDate] = useState(moment().format('YYYYMMDD'));
|
const [endDate, setEndDate] = useState(moment().format('YYYYMMDD'));
|
||||||
|
|
||||||
useSetHeaderTitle('빌링');
|
useSetHeaderTitle('빌링');
|
||||||
useSetHeaderType(HeaderType.LeftArrow);
|
useSetHeaderType(HeaderType.LeftArrow);
|
||||||
@@ -50,30 +50,21 @@ export const BillingListPage = () => {
|
|||||||
sortBy?: string,
|
sortBy?: string,
|
||||||
val?: string
|
val?: string
|
||||||
}) => {
|
}) => {
|
||||||
let listSummaryParams = {
|
pageParam.sortBy = (option?.sortBy)? option.sortBy: sortBy;
|
||||||
moid: 'string',
|
|
||||||
tid: 'string',
|
|
||||||
fromDate: fromDate,
|
|
||||||
toDate: toDate,
|
|
||||||
stateCode: '0',
|
|
||||||
serviceCode: (option?.val)? option.val: selectedServiceCode,
|
|
||||||
minAmount: 0,
|
|
||||||
maxAmount: 0,
|
|
||||||
dateCl: 'TRANS',
|
|
||||||
goodsName: 'string',
|
|
||||||
cardCode: 'st',
|
|
||||||
bankCode: 'str',
|
|
||||||
searchCl: 'CARD_NO',
|
|
||||||
searchValue: 'string',
|
|
||||||
};
|
|
||||||
pageParam.sortBy = (option?.sortBy)? option.sortBy: sortBy;
|
|
||||||
setPageParam(pageParam);
|
setPageParam(pageParam);
|
||||||
|
let listParams = {
|
||||||
|
mid: 'nictest001m',
|
||||||
|
searchType: 'ALL',
|
||||||
|
searchKeyword: 'P14633723',
|
||||||
|
startDate: startDate,
|
||||||
|
endDate: endDate,
|
||||||
|
requestStatus: 'ALL',
|
||||||
|
processResult: 'ALL',
|
||||||
|
paymentMethod: 'ALL',
|
||||||
|
pagination: pageParam
|
||||||
|
};
|
||||||
|
|
||||||
let listParam = {
|
billingList(listParams).then((rs) => {
|
||||||
...listSummaryParams,
|
|
||||||
...{page: pageParam}
|
|
||||||
};
|
|
||||||
billingList(listParam).then((rs) => {
|
|
||||||
setListItems(assembleData(rs.content));
|
setListItems(assembleData(rs.content));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -131,7 +122,7 @@ export const BillingListPage = () => {
|
|||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
className="credit-period"
|
className="credit-period"
|
||||||
value={ moment(fromDate).format('YYYY.MM.DD') + '-' + moment(toDate).format('YYYY.MM.DD') }
|
value={ moment(startDate).format('YYYY.MM.DD') + '-' + moment(endDate).format('YYYY.MM.DD') }
|
||||||
readOnly={ true }
|
readOnly={ true }
|
||||||
/>
|
/>
|
||||||
<button className="filter-btn">
|
<button className="filter-btn">
|
||||||
@@ -173,7 +164,7 @@ export const BillingListPage = () => {
|
|||||||
</div>
|
</div>
|
||||||
<BillingList
|
<BillingList
|
||||||
listItems={ listItems }
|
listItems={ listItems }
|
||||||
pageType={ PageType.Billing }
|
transactionCategory={ TransactionCategory.Billing }
|
||||||
></BillingList>
|
></BillingList>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
93
src/pages/transaction/cash-receipt/detail-page.tsx
Normal file
93
src/pages/transaction/cash-receipt/detail-page.tsx
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
import { useEffect, useState } from 'react';
|
||||||
|
import { useLocation } from 'react-router';
|
||||||
|
import { PATHS } from '@/shared/constants/paths';
|
||||||
|
import { Dialog } from '@/shared/ui/dialogs/dialog';
|
||||||
|
import { overlay } from 'overlay-kit';
|
||||||
|
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
||||||
|
import { useCashReceiptDetailMutation } from '@/entities/transaction/api/use-cash-receipt-detail-mutation';
|
||||||
|
import { IssueInfoWrap } from '@/entities/transaction/ui/info-wrap/issue-info-wrap';
|
||||||
|
import { DetailInfoWrap } from '@/entities/transaction/ui/info-wrap/detail-info-wrap';
|
||||||
|
import { HeaderType } from '@/entities/common/model/types';
|
||||||
|
import {
|
||||||
|
TransactionCategory,
|
||||||
|
CashReceiptDetailParams,
|
||||||
|
DetailResponse,
|
||||||
|
IssueInfo,
|
||||||
|
DetailInfo,
|
||||||
|
InfoWrapKeys
|
||||||
|
} from '@/entities/transaction/model/types';
|
||||||
|
import {
|
||||||
|
useSetOnBack,
|
||||||
|
useSetHeaderTitle,
|
||||||
|
useSetHeaderType,
|
||||||
|
useSetFooterMode
|
||||||
|
} from '@/widgets/sub-layout/use-sub-layout';
|
||||||
|
|
||||||
|
export const CashReceiptDetailPage = () => {
|
||||||
|
const { navigate } = useNavigate();
|
||||||
|
const location = useLocation();
|
||||||
|
|
||||||
|
const [issueInfo, setIssueInfo] = useState<IssueInfo>();
|
||||||
|
const [detailInfo, setDetailInfo] = useState<DetailInfo>();
|
||||||
|
const [showIssueInfo, setShowIssueInfo] = useState<boolean>(false);
|
||||||
|
const [showDetailInfo, setShowDetailInfo] = useState<boolean>(false);
|
||||||
|
|
||||||
|
useSetHeaderTitle('현금영수증 상세');
|
||||||
|
useSetHeaderType(HeaderType.RightClose);
|
||||||
|
useSetOnBack(() => {
|
||||||
|
navigate(PATHS.transaction.cashReceipt.list);
|
||||||
|
});
|
||||||
|
useSetFooterMode(false);
|
||||||
|
|
||||||
|
const { mutateAsync: escroDetail } = useCashReceiptDetailMutation();
|
||||||
|
|
||||||
|
const callDetail = () => {
|
||||||
|
let cashReceitDetailParams: CashReceiptDetailParams = {
|
||||||
|
issueNumber: location?.state.issueNumber
|
||||||
|
};
|
||||||
|
escroDetail(cashReceitDetailParams).then((rs: DetailResponse) => {
|
||||||
|
setIssueInfo(rs.issueInfo);
|
||||||
|
setDetailInfo(rs.detailInfo);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
useEffect(() => {
|
||||||
|
callDetail();
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const onClickToShowInfo = (infoWrapKey: InfoWrapKeys) => {
|
||||||
|
if(infoWrapKey === InfoWrapKeys.Issue){
|
||||||
|
setShowIssueInfo(!showIssueInfo);
|
||||||
|
}
|
||||||
|
else if(infoWrapKey === InfoWrapKeys.Detail){
|
||||||
|
setShowDetailInfo(!showDetailInfo);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<main>
|
||||||
|
<div className="tab-content">
|
||||||
|
<div className="tab-pane sub active">
|
||||||
|
<div className="option-list">
|
||||||
|
<div className="txn-detail">
|
||||||
|
<IssueInfoWrap
|
||||||
|
transactionCategory={ TransactionCategory.CashReceipt }
|
||||||
|
issueInfo={ issueInfo }
|
||||||
|
show={ showIssueInfo }
|
||||||
|
onClickToShowInfo={ (infoWrapKey) => onClickToShowInfo(infoWrapKey) }
|
||||||
|
></IssueInfoWrap>
|
||||||
|
<div className="txn-divider minus"></div>
|
||||||
|
<DetailInfoWrap
|
||||||
|
transactionCategory={ TransactionCategory.CashReceipt }
|
||||||
|
detailInfo={ detailInfo }
|
||||||
|
show={ showDetailInfo }
|
||||||
|
onClickToShowInfo={ (infoWrapKey) => onClickToShowInfo(infoWrapKey) }
|
||||||
|
></DetailInfoWrap>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
import {useState} from 'react';
|
import {useState} from 'react';
|
||||||
import {PATHS} from '@/shared/constants/paths';
|
import {PATHS} from '@/shared/constants/paths';
|
||||||
import {useNavigate} from '@/shared/lib/hooks/use-navigate';
|
import {useNavigate} from '@/shared/lib/hooks/use-navigate';
|
||||||
import {CashReceitHandWrittenIssuanceStep1} from '@/entities/transaction/ui/cash-receit-hand-written-issuance-step1';
|
import {CashReceiptHandWrittenIssuanceStep1} from '@/entities/transaction/ui/cash-receipt-hand-written-issuance-step1';
|
||||||
import {CashReceitHandWrittenIssuanceStep2} from '@/entities/transaction/ui/cash-receit-hand-written-issuance-step2';
|
import {CashReceiptHandWrittenIssuanceStep2} from '@/entities/transaction/ui/cash-receipt-hand-written-issuance-step2';
|
||||||
import {ProcessStep} from '@/entities/transaction/model/types';
|
import {ProcessStep} from '@/entities/transaction/model/types';
|
||||||
import {HeaderType} from '@/entities/common/model/types';
|
import {HeaderType} from '@/entities/common/model/types';
|
||||||
import {useSetFooterMode, useSetHeaderTitle, useSetHeaderType} from '@/widgets/sub-layout/use-sub-layout';
|
import {useSetFooterMode, useSetHeaderTitle, useSetHeaderType} from '@/widgets/sub-layout/use-sub-layout';
|
||||||
@@ -24,7 +24,7 @@ export const CashReceitHandWrittenIssuancePage = () => {
|
|||||||
else if(processStep === ProcessStep.Two){
|
else if(processStep === ProcessStep.Two){
|
||||||
// 완료시?
|
// 완료시?
|
||||||
alert('완료');
|
alert('완료');
|
||||||
navigate(PATHS.transaction.cashReceit.list);
|
navigate(PATHS.transaction.cashReceipt.list);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -50,12 +50,12 @@ export const CashReceitHandWrittenIssuancePage = () => {
|
|||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
{ (processStep === ProcessStep.One) &&
|
{ (processStep === ProcessStep.One) &&
|
||||||
<CashReceitHandWrittenIssuanceStep1></CashReceitHandWrittenIssuanceStep1>
|
<CashReceiptHandWrittenIssuanceStep1></CashReceiptHandWrittenIssuanceStep1>
|
||||||
}
|
}
|
||||||
{ (processStep === ProcessStep.Two) &&
|
{ (processStep === ProcessStep.Two) &&
|
||||||
<CashReceitHandWrittenIssuanceStep2
|
<CashReceiptHandWrittenIssuanceStep2
|
||||||
setProcessStep={ setProcessStep }
|
setProcessStep={ setProcessStep }
|
||||||
></CashReceitHandWrittenIssuanceStep2>
|
></CashReceiptHandWrittenIssuanceStep2>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -4,10 +4,9 @@ import { NumericFormat } from 'react-number-format';
|
|||||||
import { IMAGE_ROOT } from '@/shared/constants/common';
|
import { IMAGE_ROOT } from '@/shared/constants/common';
|
||||||
import { PATHS } from '@/shared/constants/paths';
|
import { PATHS } from '@/shared/constants/paths';
|
||||||
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
||||||
import { CashReceitList } from '@/entities/transaction/ui/cash-receit-list';
|
import { CashReceiptList } from '@/entities/transaction/ui/cash-receipt-list';
|
||||||
import { ListItem, PageType, SortByKeys } from '@/entities/transaction/model/types';
|
import { ListItem, TransactionCategory, SortByKeys } from '@/entities/transaction/model/types';
|
||||||
import { useCashReceitListMutation } from '@/entities/transaction/api/use-cash-receit-list-mutation';
|
import { useCashReceiptListMutation } from '@/entities/transaction/api/use-cash-receipt-list-mutation';
|
||||||
import { useCashReceitListSummaryMutation } from '@/entities/transaction/api/use-cash-receit-list-summary-mutation';
|
|
||||||
import { useDownloadExcelMutation } from '@/entities/transaction/api/use-download-excel-mutation';
|
import { useDownloadExcelMutation } from '@/entities/transaction/api/use-download-excel-mutation';
|
||||||
import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constants';
|
import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constants';
|
||||||
import { Filter } from '@/entities/transaction/ui/filter';
|
import { Filter } from '@/entities/transaction/ui/filter';
|
||||||
@@ -26,18 +25,16 @@ const serviceCodes = [
|
|||||||
{name: '취소', key: 'cancel'}
|
{name: '취소', key: 'cancel'}
|
||||||
];
|
];
|
||||||
|
|
||||||
export const CashReceitListPage = () => {
|
export const CashReceiptListPage = () => {
|
||||||
const { navigate } = useNavigate();
|
const { navigate } = useNavigate();
|
||||||
|
|
||||||
const [selectedServiceCode, setSelectedServiceCode] = useState<string>('all');
|
const [selectedServiceCode, setSelectedServiceCode] = useState<string>('all');
|
||||||
const [sortBy, setSortBy] = useState<SortByKeys>(SortByKeys.New);
|
const [sortBy, setSortBy] = useState<SortByKeys>(SortByKeys.New);
|
||||||
const [listItems, setListItems] = useState({});
|
const [listItems, setListItems] = useState({});
|
||||||
const [totalTransactionCount, setTotalTransactionCount] = useState<number>(0);
|
|
||||||
const [totalTransactionAmount, setTotalTransactionAmount] = useState<number>(0);
|
|
||||||
const [filterOn, setFilterOn] = useState<boolean>(false);
|
const [filterOn, setFilterOn] = useState<boolean>(false);
|
||||||
const [pageParam, setPageParam] = useState(DEFAULT_PAGE_PARAM);
|
const [pageParam, setPageParam] = useState(DEFAULT_PAGE_PARAM);
|
||||||
const [fromDate, setFromDate] = useState(moment().subtract(1, 'month').format('YYYYMMDD'));
|
const [startDate, setStartDate] = useState(moment().subtract(1, 'month').format('YYYYMMDD'));
|
||||||
const [toDate, setToDate] = useState(moment().format('YYYYMMDD'));
|
const [endDate, setEndDate] = useState(moment().format('YYYYMMDD'));
|
||||||
|
|
||||||
useSetHeaderTitle('현금영수증');
|
useSetHeaderTitle('현금영수증');
|
||||||
useSetHeaderType(HeaderType.LeftArrow);
|
useSetHeaderType(HeaderType.LeftArrow);
|
||||||
@@ -46,44 +43,29 @@ export const CashReceitListPage = () => {
|
|||||||
});
|
});
|
||||||
useSetFooterMode(true);
|
useSetFooterMode(true);
|
||||||
|
|
||||||
const { mutateAsync: cashReceitList } = useCashReceitListMutation();
|
const { mutateAsync: cashReceiptList } = useCashReceiptListMutation();
|
||||||
const { mutateAsync: cashReceitListSummary } = useCashReceitListSummaryMutation();
|
|
||||||
const { mutateAsync: downloadExcel } = useDownloadExcelMutation();
|
const { mutateAsync: downloadExcel } = useDownloadExcelMutation();
|
||||||
|
|
||||||
const callList = (option?: {
|
const callList = (option?: {
|
||||||
sortBy?: string,
|
sortBy?: string,
|
||||||
val?: string
|
val?: string
|
||||||
}) => {
|
}) => {
|
||||||
let listSummaryParams = {
|
pageParam.sortBy = (option?.sortBy)? option.sortBy: sortBy;
|
||||||
moid: 'string',
|
|
||||||
tid: 'string',
|
|
||||||
fromDate: fromDate,
|
|
||||||
toDate: toDate,
|
|
||||||
stateCode: '0',
|
|
||||||
serviceCode: (option?.val)? option.val: selectedServiceCode,
|
|
||||||
minAmount: 0,
|
|
||||||
maxAmount: 0,
|
|
||||||
dateCl: 'TRANS',
|
|
||||||
goodsName: 'string',
|
|
||||||
cardCode: 'st',
|
|
||||||
bankCode: 'str',
|
|
||||||
searchCl: 'CARD_NO',
|
|
||||||
searchValue: 'string',
|
|
||||||
};
|
|
||||||
pageParam.sortBy = (option?.sortBy)? option.sortBy: sortBy;
|
|
||||||
setPageParam(pageParam);
|
setPageParam(pageParam);
|
||||||
|
let listParams = {
|
||||||
let listParams = {
|
mid: 'string',
|
||||||
...listSummaryParams,
|
startDate: '2025-06-08',
|
||||||
...{page: pageParam}
|
endDate: '2025-06-08',
|
||||||
|
purposeType: 'ALL',
|
||||||
|
issueStatus: 'ALL',
|
||||||
|
processResult: 'ALL',
|
||||||
|
pagination: pageParam
|
||||||
};
|
};
|
||||||
cashReceitList(listParams).then((rs) => {
|
|
||||||
|
cashReceiptList(listParams).then((rs) => {
|
||||||
setListItems(assembleData(rs.content));
|
setListItems(assembleData(rs.content));
|
||||||
});
|
});
|
||||||
cashReceitListSummary(listSummaryParams).then((rs) => {
|
|
||||||
setTotalTransactionAmount(rs.totalTransactionAmount);
|
|
||||||
setTotalTransactionCount(rs.totalTransactionCount);
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const assembleData = (content: Array<ListItem>) => {
|
const assembleData = (content: Array<ListItem>) => {
|
||||||
@@ -139,7 +121,7 @@ export const CashReceitListPage = () => {
|
|||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
className="credit-period"
|
className="credit-period"
|
||||||
value={ moment(fromDate).format('YYYY.MM.DD') + '-' + moment(toDate).format('YYYY.MM.DD') }
|
value={ moment(startDate).format('YYYY.MM.DD') + '-' + moment(endDate).format('YYYY.MM.DD') }
|
||||||
readOnly={ true }
|
readOnly={ true }
|
||||||
/>
|
/>
|
||||||
<button className="filter-btn">
|
<button className="filter-btn">
|
||||||
@@ -221,10 +203,10 @@ export const CashReceitListPage = () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<CashReceitList
|
<CashReceiptList
|
||||||
listItems={ listItems }
|
listItems={ listItems }
|
||||||
pageType={ PageType.CashReceit }
|
transactionCategory={ TransactionCategory.CashReceipt }
|
||||||
></CashReceitList>
|
></CashReceiptList>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
@@ -1,188 +0,0 @@
|
|||||||
import { useEffect, useState } from 'react';
|
|
||||||
import { useParams } from 'react-router-dom';
|
|
||||||
import { PATHS } from '@/shared/constants/paths';
|
|
||||||
import { Dialog } from '@/shared/ui/dialogs/dialog';
|
|
||||||
import { overlay } from 'overlay-kit';
|
|
||||||
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
|
||||||
import { useCashReceitDetailMutation } from '@/entities/transaction/api/use-cash-receit-detail-mutation';
|
|
||||||
import { DetailAmountInfo } from '@/entities/transaction/ui/detail-amount-info';
|
|
||||||
import { DetailImportantInfo } from '@/entities/transaction/ui/detail-important-info';
|
|
||||||
import { DetailPaymentInfo } from '@/entities/transaction/ui/detail-payment-info';
|
|
||||||
import { DetailTransactionInfo } from '@/entities/transaction/ui/detail-transaction-info';
|
|
||||||
import { DetailSettlementInfo } from '@/entities/transaction/ui/detail-settlement-info';
|
|
||||||
import { DetailPartCancelInfo } from '@/entities/transaction/ui/detail-part-cancel-info';
|
|
||||||
import { HeaderType } from '@/entities/common/model/types';
|
|
||||||
import {
|
|
||||||
PageType,
|
|
||||||
CashReceitDetailParams,
|
|
||||||
DetailResponse,
|
|
||||||
DetailAmountInfoProps,
|
|
||||||
DetailImportantInfoProps,
|
|
||||||
DetailPaymentInfoProps,
|
|
||||||
DetailTransactionInfoProps,
|
|
||||||
DetailSettlementInfoProps,
|
|
||||||
DetailPartCancelInfoProps,
|
|
||||||
DetailInfoKeys
|
|
||||||
} from '@/entities/transaction/model/types';
|
|
||||||
import {
|
|
||||||
useSetOnBack,
|
|
||||||
useSetHeaderTitle,
|
|
||||||
useSetHeaderType,
|
|
||||||
useSetFooterMode
|
|
||||||
} from '@/widgets/sub-layout/use-sub-layout';
|
|
||||||
|
|
||||||
export const CashReceitDetailPage = () => {
|
|
||||||
const { navigate } = useNavigate();
|
|
||||||
const { tid } = useParams();
|
|
||||||
|
|
||||||
const [amountInfo, setAmountInfo] = useState<DetailAmountInfoProps>();
|
|
||||||
const [importantInfo, setImportantInfo] = useState<DetailImportantInfoProps>();
|
|
||||||
const [paymentInfo, setPaymentInfo] = useState<DetailPaymentInfoProps>();
|
|
||||||
const [transactionInfo, setTransactionInfo] = useState<DetailTransactionInfoProps>();
|
|
||||||
const [settlementInfo, setSettlementInfo] = useState<DetailSettlementInfoProps>();
|
|
||||||
const [partCancelInfo, setPartCancelInfo] = useState<DetailPartCancelInfoProps>();
|
|
||||||
const [showAmount, setShowAmount] = useState<boolean>(false);
|
|
||||||
const [showPayment, setShowPayment] = useState<boolean>(false);
|
|
||||||
const [showTransaction, setShowTransaction] = useState<boolean>(false);
|
|
||||||
const [showSettlement, setShowSettlement] = useState<boolean>(false);
|
|
||||||
const [showPartCancel, setShowPartCancel] = useState<boolean>(false);
|
|
||||||
|
|
||||||
useSetHeaderTitle('현금영수증 상세');
|
|
||||||
useSetHeaderType(HeaderType.RightClose);
|
|
||||||
useSetOnBack(() => {
|
|
||||||
navigate(PATHS.transaction.cashReceit.list);
|
|
||||||
});
|
|
||||||
useSetFooterMode(false);
|
|
||||||
|
|
||||||
const { mutateAsync: escroDetail } = useCashReceitDetailMutation();
|
|
||||||
|
|
||||||
const callDetail = () => {
|
|
||||||
let cashReceitDetailParams: CashReceitDetailParams = {
|
|
||||||
svcCd: 'st',
|
|
||||||
tid: tid
|
|
||||||
};
|
|
||||||
escroDetail(cashReceitDetailParams).then((rs: DetailResponse) => {
|
|
||||||
setAmountInfo(rs.amountInfo);
|
|
||||||
setImportantInfo(rs.importantInfo);
|
|
||||||
setPaymentInfo(rs.paymentInfo);
|
|
||||||
setTransactionInfo(rs.transactionInfo);
|
|
||||||
setSettlementInfo(rs.settlementInfo);
|
|
||||||
setPartCancelInfo(rs.partCancelInfo);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
useEffect(() => {
|
|
||||||
callDetail();
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
const onClickToNavigate = (path: string) => {
|
|
||||||
let timeout = setTimeout(() => {
|
|
||||||
clearTimeout(timeout);
|
|
||||||
navigate(PATHS.transaction.allTransaction.cancel, {
|
|
||||||
state: {
|
|
||||||
tid: tid
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}, 10)
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
const onClickToCancel = () => {
|
|
||||||
let msg = '거래를 취소하시겠습니까?';
|
|
||||||
|
|
||||||
overlay.open(({
|
|
||||||
isOpen,
|
|
||||||
close,
|
|
||||||
unmount
|
|
||||||
}) => {
|
|
||||||
return (
|
|
||||||
<Dialog
|
|
||||||
afterLeave={ unmount }
|
|
||||||
open={ isOpen }
|
|
||||||
onClose={ close }
|
|
||||||
onConfirmClick={ () => onClickToNavigate(PATHS.transaction.allTransaction.cancel) }
|
|
||||||
message={ msg }
|
|
||||||
buttonLabel={['취소', '확인']}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
const onClickToShowInfo = (info: DetailInfoKeys) => {
|
|
||||||
if(info === DetailInfoKeys.Amount){
|
|
||||||
setShowAmount(!showAmount);
|
|
||||||
}
|
|
||||||
else if(info === DetailInfoKeys.Payment){
|
|
||||||
setShowPayment(!showPayment);
|
|
||||||
}
|
|
||||||
else if(info === DetailInfoKeys.Transaction){
|
|
||||||
setShowTransaction(!showTransaction);
|
|
||||||
}
|
|
||||||
else if(info === DetailInfoKeys.Settlement){
|
|
||||||
setShowSettlement(!showSettlement);
|
|
||||||
}
|
|
||||||
else if(info === DetailInfoKeys.PartCancel){
|
|
||||||
setShowPartCancel(!showPartCancel);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
<main>
|
|
||||||
<div className="tab-content">
|
|
||||||
<div className="tab-pane sub active">
|
|
||||||
<div className="option-list">
|
|
||||||
<div className="txn-detail">
|
|
||||||
<DetailAmountInfo
|
|
||||||
pageType={ PageType.CashReceit }
|
|
||||||
amountInfo={ amountInfo }
|
|
||||||
show={ showAmount }
|
|
||||||
tid={ tid }
|
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
|
||||||
></DetailAmountInfo>
|
|
||||||
<div className="txn-divider minus"></div>
|
|
||||||
<DetailImportantInfo
|
|
||||||
pageType={ PageType.CashReceit }
|
|
||||||
importantInfo={ importantInfo }
|
|
||||||
></DetailImportantInfo>
|
|
||||||
<div className="txn-divider minus"></div>
|
|
||||||
<DetailPaymentInfo
|
|
||||||
pageType={ PageType.CashReceit }
|
|
||||||
paymentInfo={ paymentInfo }
|
|
||||||
show={ showPayment }
|
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
|
||||||
></DetailPaymentInfo>
|
|
||||||
<div className="txn-divider"></div>
|
|
||||||
<DetailTransactionInfo
|
|
||||||
pageType={ PageType.CashReceit }
|
|
||||||
transactionInfo={ transactionInfo }
|
|
||||||
show={ showTransaction }
|
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
|
||||||
></DetailTransactionInfo>
|
|
||||||
<div className="txn-divider"></div>
|
|
||||||
<DetailSettlementInfo
|
|
||||||
pageType={ PageType.CashReceit }
|
|
||||||
settlementInfo={ settlementInfo }
|
|
||||||
show={ showSettlement }
|
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
|
||||||
></DetailSettlementInfo>
|
|
||||||
<div className="txn-divider"></div>
|
|
||||||
<DetailPartCancelInfo
|
|
||||||
pageType={ PageType.CashReceit }
|
|
||||||
partCancelInfo={ partCancelInfo }
|
|
||||||
show={ showPartCancel }
|
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
|
||||||
></DetailPartCancelInfo>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="apply-row">
|
|
||||||
<button
|
|
||||||
className="btn-50 btn-blue flex-1"
|
|
||||||
onClick={ () => onClickToCancel() }
|
|
||||||
>거래 취소</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
</>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
@@ -1,188 +0,0 @@
|
|||||||
import { useEffect, useState } from 'react';
|
|
||||||
import { useParams } from 'react-router-dom';
|
|
||||||
import { PATHS } from '@/shared/constants/paths';
|
|
||||||
import { Dialog } from '@/shared/ui/dialogs/dialog';
|
|
||||||
import { overlay } from 'overlay-kit';
|
|
||||||
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
|
||||||
import { useEscroDetailMutation } from '@/entities/transaction/api/use-escro-detail-mutation';
|
|
||||||
import { DetailAmountInfo } from '@/entities/transaction/ui/detail-amount-info';
|
|
||||||
import { DetailImportantInfo } from '@/entities/transaction/ui/detail-important-info';
|
|
||||||
import { DetailPaymentInfo } from '@/entities/transaction/ui/detail-payment-info';
|
|
||||||
import { DetailTransactionInfo } from '@/entities/transaction/ui/detail-transaction-info';
|
|
||||||
import { DetailSettlementInfo } from '@/entities/transaction/ui/detail-settlement-info';
|
|
||||||
import { DetailPartCancelInfo } from '@/entities/transaction/ui/detail-part-cancel-info';
|
|
||||||
import { HeaderType } from '@/entities/common/model/types';
|
|
||||||
import {
|
|
||||||
PageType,
|
|
||||||
EscroDetailParams,
|
|
||||||
DetailResponse,
|
|
||||||
DetailAmountInfoProps,
|
|
||||||
DetailImportantInfoProps,
|
|
||||||
DetailPaymentInfoProps,
|
|
||||||
DetailTransactionInfoProps,
|
|
||||||
DetailSettlementInfoProps,
|
|
||||||
DetailPartCancelInfoProps,
|
|
||||||
DetailInfoKeys
|
|
||||||
} from '@/entities/transaction/model/types';
|
|
||||||
import {
|
|
||||||
useSetOnBack,
|
|
||||||
useSetHeaderTitle,
|
|
||||||
useSetHeaderType,
|
|
||||||
useSetFooterMode
|
|
||||||
} from '@/widgets/sub-layout/use-sub-layout';
|
|
||||||
|
|
||||||
export const EscroDetailPage = () => {
|
|
||||||
const { navigate } = useNavigate();
|
|
||||||
const { tid } = useParams();
|
|
||||||
|
|
||||||
const [amountInfo, setAmountInfo] = useState<DetailAmountInfoProps>();
|
|
||||||
const [importantInfo, setImportantInfo] = useState<DetailImportantInfoProps>();
|
|
||||||
const [paymentInfo, setPaymentInfo] = useState<DetailPaymentInfoProps>();
|
|
||||||
const [transactionInfo, setTransactionInfo] = useState<DetailTransactionInfoProps>();
|
|
||||||
const [settlementInfo, setSettlementInfo] = useState<DetailSettlementInfoProps>();
|
|
||||||
const [partCancelInfo, setPartCancelInfo] = useState<DetailPartCancelInfoProps>();
|
|
||||||
const [showAmount, setShowAmount] = useState<boolean>(false);
|
|
||||||
const [showPayment, setShowPayment] = useState<boolean>(false);
|
|
||||||
const [showTransaction, setShowTransaction] = useState<boolean>(false);
|
|
||||||
const [showSettlement, setShowSettlement] = useState<boolean>(false);
|
|
||||||
const [showPartCancel, setShowPartCancel] = useState<boolean>(false);
|
|
||||||
|
|
||||||
useSetHeaderTitle('에스크로 상세');
|
|
||||||
useSetHeaderType(HeaderType.RightClose);
|
|
||||||
useSetOnBack(() => {
|
|
||||||
navigate(PATHS.transaction.escro.list);
|
|
||||||
});
|
|
||||||
useSetFooterMode(false);
|
|
||||||
|
|
||||||
const { mutateAsync: escroDetail } = useEscroDetailMutation();
|
|
||||||
|
|
||||||
const callDetail = () => {
|
|
||||||
let escroDetailParams: EscroDetailParams = {
|
|
||||||
svcCd: 'st',
|
|
||||||
tid: tid
|
|
||||||
};
|
|
||||||
escroDetail(escroDetailParams).then((rs: DetailResponse) => {
|
|
||||||
setAmountInfo(rs.amountInfo);
|
|
||||||
setImportantInfo(rs.importantInfo);
|
|
||||||
setPaymentInfo(rs.paymentInfo);
|
|
||||||
setTransactionInfo(rs.transactionInfo);
|
|
||||||
setSettlementInfo(rs.settlementInfo);
|
|
||||||
setPartCancelInfo(rs.partCancelInfo);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
useEffect(() => {
|
|
||||||
callDetail();
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
const onClickToNavigate = (path: string) => {
|
|
||||||
let timeout = setTimeout(() => {
|
|
||||||
clearTimeout(timeout);
|
|
||||||
navigate(PATHS.transaction.allTransaction.cancel, {
|
|
||||||
state: {
|
|
||||||
tid: tid
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}, 10)
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
const onClickToCancel = () => {
|
|
||||||
let msg = '거래를 취소하시겠습니까?';
|
|
||||||
|
|
||||||
overlay.open(({
|
|
||||||
isOpen,
|
|
||||||
close,
|
|
||||||
unmount
|
|
||||||
}) => {
|
|
||||||
return (
|
|
||||||
<Dialog
|
|
||||||
afterLeave={ unmount }
|
|
||||||
open={ isOpen }
|
|
||||||
onClose={ close }
|
|
||||||
onConfirmClick={ () => onClickToNavigate(PATHS.transaction.allTransaction.cancel) }
|
|
||||||
message={ msg }
|
|
||||||
buttonLabel={['취소', '확인']}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
const onClickToShowInfo = (info: DetailInfoKeys) => {
|
|
||||||
if(info === DetailInfoKeys.Amount){
|
|
||||||
setShowAmount(!showAmount);
|
|
||||||
}
|
|
||||||
else if(info === DetailInfoKeys.Payment){
|
|
||||||
setShowPayment(!showPayment);
|
|
||||||
}
|
|
||||||
else if(info === DetailInfoKeys.Transaction){
|
|
||||||
setShowTransaction(!showTransaction);
|
|
||||||
}
|
|
||||||
else if(info === DetailInfoKeys.Settlement){
|
|
||||||
setShowSettlement(!showSettlement);
|
|
||||||
}
|
|
||||||
else if(info === DetailInfoKeys.PartCancel){
|
|
||||||
setShowPartCancel(!showPartCancel);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
<main>
|
|
||||||
<div className="tab-content">
|
|
||||||
<div className="tab-pane sub active">
|
|
||||||
<div className="option-list">
|
|
||||||
<div className="txn-detail">
|
|
||||||
<DetailAmountInfo
|
|
||||||
pageType={ PageType.Escro }
|
|
||||||
amountInfo={ amountInfo }
|
|
||||||
show={ showAmount }
|
|
||||||
tid={ tid }
|
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
|
||||||
></DetailAmountInfo>
|
|
||||||
<div className="txn-divider minus"></div>
|
|
||||||
<DetailImportantInfo
|
|
||||||
pageType={ PageType.Escro }
|
|
||||||
importantInfo={ importantInfo }
|
|
||||||
></DetailImportantInfo>
|
|
||||||
<div className="txn-divider minus"></div>
|
|
||||||
<DetailPaymentInfo
|
|
||||||
pageType={ PageType.Escro }
|
|
||||||
paymentInfo={ paymentInfo }
|
|
||||||
show={ showPayment }
|
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
|
||||||
></DetailPaymentInfo>
|
|
||||||
<div className="txn-divider"></div>
|
|
||||||
<DetailTransactionInfo
|
|
||||||
pageType={ PageType.Escro }
|
|
||||||
transactionInfo={ transactionInfo }
|
|
||||||
show={ showTransaction }
|
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
|
||||||
></DetailTransactionInfo>
|
|
||||||
<div className="txn-divider"></div>
|
|
||||||
<DetailSettlementInfo
|
|
||||||
pageType={ PageType.Escro }
|
|
||||||
settlementInfo={ settlementInfo }
|
|
||||||
show={ showSettlement }
|
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
|
||||||
></DetailSettlementInfo>
|
|
||||||
<div className="txn-divider"></div>
|
|
||||||
<DetailPartCancelInfo
|
|
||||||
pageType={ PageType.Escro }
|
|
||||||
partCancelInfo={ partCancelInfo }
|
|
||||||
show={ showPartCancel }
|
|
||||||
onClickToShowInfo={ (info) => onClickToShowInfo(info) }
|
|
||||||
></DetailPartCancelInfo>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="apply-row">
|
|
||||||
<button
|
|
||||||
className="btn-50 btn-blue flex-1"
|
|
||||||
onClick={ () => onClickToCancel() }
|
|
||||||
>거래 취소</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
</>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
140
src/pages/transaction/escrow/detail-page.tsx
Normal file
140
src/pages/transaction/escrow/detail-page.tsx
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
import { useEffect, useState } from 'react';
|
||||||
|
import { useLocation } from 'react-router';
|
||||||
|
import { PATHS } from '@/shared/constants/paths';
|
||||||
|
import { Dialog } from '@/shared/ui/dialogs/dialog';
|
||||||
|
import { overlay } from 'overlay-kit';
|
||||||
|
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
||||||
|
import { useEscrowDetailMutation } from '@/entities/transaction/api/use-escrow-detail-mutation';
|
||||||
|
import { ImportantInfoWrap } from '@/entities/transaction/ui/info-wrap/important-info-wrap';
|
||||||
|
import { EscrowInfoWrap } from '@/entities/transaction/ui/info-wrap/escrow-info-wrap';
|
||||||
|
import { PaymentInfoWrap } from '@/entities/transaction/ui/info-wrap/payment-info-wrap';
|
||||||
|
import { TransactionInfoWrap } from '@/entities/transaction/ui/info-wrap/transaction-info-wrap';
|
||||||
|
import { SettlementInfoWrap } from '@/entities/transaction/ui/info-wrap/settlement-info-wrap';
|
||||||
|
import { HeaderType } from '@/entities/common/model/types';
|
||||||
|
import {
|
||||||
|
TransactionCategory,
|
||||||
|
EscrowDetailParams,
|
||||||
|
DetailResponse,
|
||||||
|
ImportantInfo,
|
||||||
|
EscrowInfo,
|
||||||
|
PaymentInfo,
|
||||||
|
TransactionInfo,
|
||||||
|
SettlementInfo,
|
||||||
|
InfoWrapKeys
|
||||||
|
} from '@/entities/transaction/model/types';
|
||||||
|
import {
|
||||||
|
useSetOnBack,
|
||||||
|
useSetHeaderTitle,
|
||||||
|
useSetHeaderType,
|
||||||
|
useSetFooterMode
|
||||||
|
} from '@/widgets/sub-layout/use-sub-layout';
|
||||||
|
|
||||||
|
export const EscrowDetailPage = () => {
|
||||||
|
const { navigate } = useNavigate();
|
||||||
|
const location = useLocation();
|
||||||
|
|
||||||
|
const [importantInfo, setImportantInfo] = useState<ImportantInfo>();
|
||||||
|
const [escrowInfo, setEscrowInfo] = useState<EscrowInfo>();
|
||||||
|
const [paymentInfo, setPaymentInfo] = useState<PaymentInfo>();
|
||||||
|
const [transactionInfo, setTransactionInfo] = useState<TransactionInfo>();
|
||||||
|
const [settlementInfo, setSettlementInfo] = useState<SettlementInfo>();
|
||||||
|
const [showImportantInfo, setShowImportantInfo] = useState<boolean>(false);
|
||||||
|
const [showEscroInfo, setShowEscroInfo] = useState<boolean>(false);
|
||||||
|
const [showPaymentInfo, setShowPaymentInfo] = useState<boolean>(false);
|
||||||
|
const [showTransactionInfo, setShowTransactionInfo] = useState<boolean>(false);
|
||||||
|
const [showSettlementInfo, setShowSettlementInfo] = useState<boolean>(false);
|
||||||
|
|
||||||
|
|
||||||
|
useSetHeaderTitle('에스크로 상세');
|
||||||
|
useSetHeaderType(HeaderType.RightClose);
|
||||||
|
useSetOnBack(() => {
|
||||||
|
navigate(PATHS.transaction.escrow.list);
|
||||||
|
});
|
||||||
|
useSetFooterMode(false);
|
||||||
|
|
||||||
|
const { mutateAsync: escroDetail } = useEscrowDetailMutation();
|
||||||
|
|
||||||
|
const callDetail = () => {
|
||||||
|
let escroDetailParams: EscrowDetailParams = {
|
||||||
|
issueNumber: location?.state.issueNumber,
|
||||||
|
};
|
||||||
|
escroDetail(escroDetailParams).then((rs: DetailResponse) => {
|
||||||
|
setImportantInfo(rs.importantInfo);
|
||||||
|
setEscrowInfo(rs.escrowInfo);
|
||||||
|
setPaymentInfo(rs.paymentInfo);
|
||||||
|
setTransactionInfo(rs.transactionInfo);
|
||||||
|
setSettlementInfo(rs.settlementInfo);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
useEffect(() => {
|
||||||
|
callDetail();
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const onClickToShowInfo = (infoWrapKey: InfoWrapKeys) => {
|
||||||
|
if(infoWrapKey === InfoWrapKeys.Important){
|
||||||
|
setShowImportantInfo(!showImportantInfo);
|
||||||
|
}
|
||||||
|
else if(infoWrapKey === InfoWrapKeys.Escrow){
|
||||||
|
setShowEscroInfo(!showEscroInfo);
|
||||||
|
}
|
||||||
|
else if(infoWrapKey === InfoWrapKeys.Payment){
|
||||||
|
setShowPaymentInfo(!showPaymentInfo);
|
||||||
|
}
|
||||||
|
else if(infoWrapKey === InfoWrapKeys.Transaction){
|
||||||
|
setShowTransactionInfo(!showTransactionInfo);
|
||||||
|
}
|
||||||
|
else if(infoWrapKey === InfoWrapKeys.Settlement){
|
||||||
|
setShowSettlementInfo(!showSettlementInfo);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<main>
|
||||||
|
<div className="tab-content">
|
||||||
|
<div className="tab-pane sub active">
|
||||||
|
<div className="option-list">
|
||||||
|
<div className="txn-detail">
|
||||||
|
<ImportantInfoWrap
|
||||||
|
transactionCategory={ TransactionCategory.Escrow }
|
||||||
|
importantInfo={ importantInfo }
|
||||||
|
show={ showImportantInfo }
|
||||||
|
onClickToShowInfo={ (infoWrapKey) => onClickToShowInfo(infoWrapKey) }
|
||||||
|
></ImportantInfoWrap>
|
||||||
|
<div className="txn-divider minus"></div>
|
||||||
|
<EscrowInfoWrap
|
||||||
|
transactionCategory={ TransactionCategory.Escrow }
|
||||||
|
importantInfo={ importantInfo }
|
||||||
|
show={ showEscroInfo }
|
||||||
|
onClickToShowInfo={ (infoWrapKey) => onClickToShowInfo(infoWrapKey) }
|
||||||
|
></EscrowInfoWrap>
|
||||||
|
<div className="txn-divider minus"></div>
|
||||||
|
<PaymentInfoWrap
|
||||||
|
transactionCategory={ TransactionCategory.Escrow }
|
||||||
|
paymentInfo={ paymentInfo }
|
||||||
|
show={ showPaymentInfo }
|
||||||
|
onClickToShowInfo={ (infoWrapKey) => onClickToShowInfo(infoWrapKey) }
|
||||||
|
></PaymentInfoWrap>
|
||||||
|
<div className="txn-divider"></div>
|
||||||
|
<TransactionInfoWrap
|
||||||
|
transactionCategory={ TransactionCategory.Escrow }
|
||||||
|
transactionInfo={ transactionInfo }
|
||||||
|
show={ showTransactionInfo }
|
||||||
|
onClickToShowInfo={ (infoWrapKey) => onClickToShowInfo(infoWrapKey) }
|
||||||
|
></TransactionInfoWrap>
|
||||||
|
<div className="txn-divider"></div>
|
||||||
|
<SettlementInfoWrap
|
||||||
|
transactionCategory={ TransactionCategory.Escrow }
|
||||||
|
settlementInfo={ settlementInfo }
|
||||||
|
show={ showSettlementInfo }
|
||||||
|
onClickToShowInfo={ (infoWrapKey) => onClickToShowInfo(infoWrapKey) }
|
||||||
|
></SettlementInfoWrap>
|
||||||
|
<div className="txn-divider"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
@@ -3,9 +3,9 @@ import { useEffect, useState } from 'react';
|
|||||||
import { IMAGE_ROOT } from '@/shared/constants/common';
|
import { IMAGE_ROOT } from '@/shared/constants/common';
|
||||||
import { PATHS } from '@/shared/constants/paths';
|
import { PATHS } from '@/shared/constants/paths';
|
||||||
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
||||||
import { EscroList } from '@/entities/transaction/ui/escro-list';
|
import { EscrowList } from '@/entities/transaction/ui/escrow-list';
|
||||||
import { ListItem, PageType, SortByKeys } from '@/entities/transaction/model/types';
|
import { ListItem, TransactionCategory, SortByKeys } from '@/entities/transaction/model/types';
|
||||||
import { useEscroListMutation } from '@/entities/transaction/api/use-escro-list-mutation';
|
import { useEscrowListMutation } from '@/entities/transaction/api/use-escrow-list-mutation';
|
||||||
import { useDownloadExcelMutation } from '@/entities/transaction/api/use-download-excel-mutation';
|
import { useDownloadExcelMutation } from '@/entities/transaction/api/use-download-excel-mutation';
|
||||||
import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constants';
|
import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constants';
|
||||||
import { Filter } from '@/entities/transaction/ui/filter';
|
import { Filter } from '@/entities/transaction/ui/filter';
|
||||||
@@ -24,7 +24,7 @@ const serviceCodes = [
|
|||||||
{name: '배송등록', key: 'register'},
|
{name: '배송등록', key: 'register'},
|
||||||
];
|
];
|
||||||
|
|
||||||
export const EscroListPage = () => {
|
export const EscrowListPage = () => {
|
||||||
const { navigate } = useNavigate();
|
const { navigate } = useNavigate();
|
||||||
|
|
||||||
const [selectedServiceCode, setSelectedServiceCode] = useState<string>('all');
|
const [selectedServiceCode, setSelectedServiceCode] = useState<string>('all');
|
||||||
@@ -32,8 +32,8 @@ export const EscroListPage = () => {
|
|||||||
const [listItems, setListItems] = useState({});
|
const [listItems, setListItems] = useState({});
|
||||||
const [filterOn, setFilterOn] = useState<boolean>(false);
|
const [filterOn, setFilterOn] = useState<boolean>(false);
|
||||||
const [pageParam, setPageParam] = useState(DEFAULT_PAGE_PARAM);
|
const [pageParam, setPageParam] = useState(DEFAULT_PAGE_PARAM);
|
||||||
const [fromDate, setFromDate] = useState(moment().subtract(1, 'month').format('YYYYMMDD'));
|
const [startDate, setStartDate] = useState(moment().subtract(1, 'month').format('YYYYMMDD'));
|
||||||
const [toDate, setToDate] = useState(moment().format('YYYYMMDD'));
|
const [endDate, setEndDate] = useState(moment().format('YYYYMMDD'));
|
||||||
|
|
||||||
useSetHeaderTitle('에스크로');
|
useSetHeaderTitle('에스크로');
|
||||||
useSetHeaderType(HeaderType.LeftArrow);
|
useSetHeaderType(HeaderType.LeftArrow);
|
||||||
@@ -42,37 +42,29 @@ export const EscroListPage = () => {
|
|||||||
});
|
});
|
||||||
useSetFooterMode(true);
|
useSetFooterMode(true);
|
||||||
|
|
||||||
const { mutateAsync: escroList } = useEscroListMutation();
|
const { mutateAsync: escrowList } = useEscrowListMutation();
|
||||||
const { mutateAsync: downloadExcel } = useDownloadExcelMutation();
|
const { mutateAsync: downloadExcel } = useDownloadExcelMutation();
|
||||||
|
|
||||||
const callList = (option?: {
|
const callList = (option?: {
|
||||||
sortBy?: string,
|
sortBy?: string,
|
||||||
val?: string
|
val?: string
|
||||||
}) => {
|
}) => {
|
||||||
let listSummaryParams = {
|
pageParam.sortBy = (option?.sortBy)? option.sortBy: sortBy;
|
||||||
moid: 'string',
|
|
||||||
tid: 'string',
|
|
||||||
fromDate: fromDate,
|
|
||||||
toDate: toDate,
|
|
||||||
stateCode: '0',
|
|
||||||
serviceCode: (option?.val)? option.val: selectedServiceCode,
|
|
||||||
minAmount: 0,
|
|
||||||
maxAmount: 0,
|
|
||||||
dateCl: 'TRANS',
|
|
||||||
goodsName: 'string',
|
|
||||||
cardCode: 'st',
|
|
||||||
bankCode: 'str',
|
|
||||||
searchCl: 'CARD_NO',
|
|
||||||
searchValue: 'string',
|
|
||||||
};
|
|
||||||
pageParam.sortBy = (option?.sortBy)? option.sortBy: sortBy;
|
|
||||||
setPageParam(pageParam);
|
setPageParam(pageParam);
|
||||||
|
let listParams = {
|
||||||
let listParam = {
|
mid: "nictest001m",
|
||||||
...listSummaryParams,
|
searchType: "ORDER_NUMBER",
|
||||||
...{page: pageParam}
|
searchKeyword: "01384234",
|
||||||
|
startDate: startDate,
|
||||||
|
endDate: endDate,
|
||||||
|
deliveryStatus: "ALL",
|
||||||
|
settlementStatus: "ALL",
|
||||||
|
minAmount: 0,
|
||||||
|
maxAmount: 999999999,
|
||||||
|
pagination: pageParam
|
||||||
};
|
};
|
||||||
escroList(listParam).then((rs) => {
|
|
||||||
|
escrowList(listParams).then((rs) => {
|
||||||
setListItems(assembleData(rs.content));
|
setListItems(assembleData(rs.content));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -130,7 +122,7 @@ export const EscroListPage = () => {
|
|||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
className="credit-period"
|
className="credit-period"
|
||||||
value={ moment(fromDate).format('YYYY.MM.DD') + '-' + moment(toDate).format('YYYY.MM.DD') }
|
value={ moment(startDate).format('YYYY.MM.DD') + '-' + moment(endDate).format('YYYY.MM.DD') }
|
||||||
readOnly={ true }
|
readOnly={ true }
|
||||||
/>
|
/>
|
||||||
<button className="filter-btn">
|
<button className="filter-btn">
|
||||||
@@ -170,10 +162,10 @@ export const EscroListPage = () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<EscroList
|
<EscrowList
|
||||||
listItems={ listItems }
|
listItems={ listItems }
|
||||||
pageType={ PageType.Escro }
|
transactionCategory={ TransactionCategory.Escrow }
|
||||||
></EscroList>
|
></EscrowList>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
@@ -4,11 +4,11 @@ import { ROUTE_NAMES } from '@/shared/constants/route-names';
|
|||||||
import { AllTransactionListPage } from './all-transaction/list-page';
|
import { AllTransactionListPage } from './all-transaction/list-page';
|
||||||
import { AllTransactionDetailPage } from './all-transaction/detail-page';
|
import { AllTransactionDetailPage } from './all-transaction/detail-page';
|
||||||
import { AllTransactionCancelPage } from './all-transaction/cancel-page';
|
import { AllTransactionCancelPage } from './all-transaction/cancel-page';
|
||||||
import { CashReceitListPage } from './cash-receit/list-page';
|
import { CashReceiptListPage } from './cash-receipt/list-page';
|
||||||
import { CashReceitDetailPage } from './cash-receit/detail-page';
|
import { CashReceiptDetailPage } from './cash-receipt/detail-page';
|
||||||
import { CashReceitHandWrittenIssuancePage } from './cash-receit/hand-written-issuance-page';
|
import { CashReceitHandWrittenIssuancePage } from './cash-receipt/hand-written-issuance-page';
|
||||||
import { EscroListPage } from './escro/list-page';
|
import { EscrowListPage } from './escrow/list-page';
|
||||||
import { EscroDetailPage } from './escro/detail-page';
|
import { EscrowDetailPage } from './escrow/detail-page';
|
||||||
import { BillingListPage } from './billing/list-page';
|
import { BillingListPage } from './billing/list-page';
|
||||||
import { BillingDetailPage } from './billing/detail-page';
|
import { BillingDetailPage } from './billing/detail-page';
|
||||||
import { BillingPaymentRequestPage } from './billing/payment-request-page';
|
import { BillingPaymentRequestPage } from './billing/payment-request-page';
|
||||||
@@ -23,14 +23,14 @@ export const TransactionPages = () => {
|
|||||||
<Route path={ROUTE_NAMES.transaction.allTransaction.detail} element={<AllTransactionDetailPage />} />
|
<Route path={ROUTE_NAMES.transaction.allTransaction.detail} element={<AllTransactionDetailPage />} />
|
||||||
<Route path={ROUTE_NAMES.transaction.allTransaction.cancel} element={<AllTransactionCancelPage />} />
|
<Route path={ROUTE_NAMES.transaction.allTransaction.cancel} element={<AllTransactionCancelPage />} />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path={ROUTE_NAMES.transaction.cashReceit.base}>
|
<Route path={ROUTE_NAMES.transaction.cashReceipt.base}>
|
||||||
<Route path={ROUTE_NAMES.transaction.cashReceit.list} element={<CashReceitListPage />} />
|
<Route path={ROUTE_NAMES.transaction.cashReceipt.list} element={<CashReceiptListPage />} />
|
||||||
<Route path={ROUTE_NAMES.transaction.cashReceit.detail} element={<CashReceitDetailPage />} />
|
<Route path={ROUTE_NAMES.transaction.cashReceipt.detail} element={<CashReceiptDetailPage />} />
|
||||||
<Route path={ROUTE_NAMES.transaction.cashReceit.handWrittenIssuance} element={<CashReceitHandWrittenIssuancePage />} />
|
<Route path={ROUTE_NAMES.transaction.cashReceipt.handWrittenIssuance} element={<CashReceitHandWrittenIssuancePage />} />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path={ROUTE_NAMES.transaction.escro.base}>
|
<Route path={ROUTE_NAMES.transaction.escrow.base}>
|
||||||
<Route path={ROUTE_NAMES.transaction.escro.list} element={<EscroListPage />} />
|
<Route path={ROUTE_NAMES.transaction.escrow.list} element={<EscrowListPage />} />
|
||||||
<Route path={ROUTE_NAMES.transaction.escro.detail} element={<EscroDetailPage />} />
|
<Route path={ROUTE_NAMES.transaction.escrow.detail} element={<EscrowDetailPage />} />
|
||||||
</Route>
|
</Route>
|
||||||
<Route path={ROUTE_NAMES.transaction.billing.base}>
|
<Route path={ROUTE_NAMES.transaction.billing.base}>
|
||||||
<Route path={ROUTE_NAMES.transaction.billing.list} element={<BillingListPage />} />
|
<Route path={ROUTE_NAMES.transaction.billing.list} element={<BillingListPage />} />
|
||||||
|
|||||||
@@ -99,18 +99,7 @@ export const API_URL = {
|
|||||||
// POST: 거래 내역 조회
|
// POST: 거래 내역 조회
|
||||||
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/list`;
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/list`;
|
||||||
},
|
},
|
||||||
cashReceitList: () => {
|
|
||||||
// POST: 거래 내역 조회
|
|
||||||
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/list`;
|
|
||||||
},
|
|
||||||
escroList: () => {
|
|
||||||
// POST: 거래 내역 조회
|
|
||||||
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/list`;
|
|
||||||
},
|
|
||||||
billingList: () => {
|
|
||||||
// POST: 거래 내역 조회
|
|
||||||
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/list`;
|
|
||||||
},
|
|
||||||
allTransactionListSummary: () => {
|
allTransactionListSummary: () => {
|
||||||
// POST: 거래 내역 합계 조회
|
// POST: 거래 내역 합계 조회
|
||||||
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/list/summary`;
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/list/summary`;
|
||||||
@@ -127,18 +116,6 @@ export const API_URL = {
|
|||||||
// POST: 거래내역 상세
|
// POST: 거래내역 상세
|
||||||
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/detail`;
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/detail`;
|
||||||
},
|
},
|
||||||
cashReceitDetail: () => {
|
|
||||||
// POST: 현금영수증 상세
|
|
||||||
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/detail`;
|
|
||||||
},
|
|
||||||
escroDetail: () => {
|
|
||||||
// POST: 에스크로 상세
|
|
||||||
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/detail`;
|
|
||||||
},
|
|
||||||
billingDetail: () => {
|
|
||||||
// POST: 빌링 상세
|
|
||||||
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/detail`;
|
|
||||||
},
|
|
||||||
allTransactionCancel: () => {
|
allTransactionCancel: () => {
|
||||||
// POST: 거래취소 요청
|
// POST: 거래취소 요청
|
||||||
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/cancel`;
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/cancel`;
|
||||||
@@ -148,6 +125,55 @@ export const API_URL = {
|
|||||||
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/cancel-info`;
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/cancel-info`;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
/* Cash Receipt Management - 현금영수증 API */
|
||||||
|
cashReceiptList: () => {
|
||||||
|
// POST: 현금영수증 목록 조회
|
||||||
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/cash-receipt/list`;
|
||||||
|
},
|
||||||
|
cashReceiptDetail: () => {
|
||||||
|
// POST: 현금영수증 상세 조회
|
||||||
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/cash-receipt/detail`;
|
||||||
|
},
|
||||||
|
cashReceiptPurposeUpdate: () => {
|
||||||
|
// POST: 현금영수증 용도 변경
|
||||||
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/cash-receipt/purpose/update`;
|
||||||
|
},
|
||||||
|
cashReceiptManualIssue: () => {
|
||||||
|
// POST: 현금영수증 용도 변경
|
||||||
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/cash-receipt/manual/issue`;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
/* Escro Management - 에스크로 API */
|
||||||
|
escrowList: () => {
|
||||||
|
// POST: 에스크로 목록 조회
|
||||||
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/escrows/list`;
|
||||||
|
},
|
||||||
|
escrowDetail: () => {
|
||||||
|
// POST: 에스크로 목록 상세 조회
|
||||||
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/escrows/detail`;
|
||||||
|
},
|
||||||
|
escroMailResend: () => {
|
||||||
|
// POST: 에스크로 메일 재발송
|
||||||
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/escrows/mail/resend`;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
/* Billing Management - 빌링 API */
|
||||||
|
billingList: () => {
|
||||||
|
// POST: 빌링 목록 조회
|
||||||
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/billing/list`;
|
||||||
|
},
|
||||||
|
billingDetail: () => {
|
||||||
|
// POST: 빌링 상세 조회
|
||||||
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/billing/detail`;
|
||||||
|
},
|
||||||
|
billingCharge: () => {
|
||||||
|
// POST: 빌링 결제 신청
|
||||||
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/billing/charge`;
|
||||||
|
},
|
||||||
|
|
||||||
settlementList: () => {
|
settlementList: () => {
|
||||||
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/list`;
|
return `${API_BASE_URL}/api/v1/${API_URL_KEY}/transaction/list`;
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -29,30 +29,30 @@ export const PATHS: RouteNamesType = {
|
|||||||
ROUTE_NAMES.transaction.allTransaction.cancel,
|
ROUTE_NAMES.transaction.allTransaction.cancel,
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
cashReceit: {
|
cashReceipt: {
|
||||||
base: generatePath(`${ROUTE_NAMES.transaction.base}${ROUTE_NAMES.transaction.cashReceit.base}`),
|
base: generatePath(`${ROUTE_NAMES.transaction.base}${ROUTE_NAMES.transaction.cashReceipt.base}`),
|
||||||
list: generatePath(
|
list: generatePath(
|
||||||
`${ROUTE_NAMES.transaction.base}${ROUTE_NAMES.transaction.cashReceit.base}`,
|
`${ROUTE_NAMES.transaction.base}${ROUTE_NAMES.transaction.cashReceipt.base}`,
|
||||||
ROUTE_NAMES.transaction.cashReceit.list,
|
ROUTE_NAMES.transaction.cashReceipt.list,
|
||||||
),
|
),
|
||||||
detail: generatePath(
|
detail: generatePath(
|
||||||
`${ROUTE_NAMES.transaction.base}${ROUTE_NAMES.transaction.cashReceit.base}`,
|
`${ROUTE_NAMES.transaction.base}${ROUTE_NAMES.transaction.cashReceipt.base}`,
|
||||||
ROUTE_NAMES.transaction.cashReceit.detail,
|
ROUTE_NAMES.transaction.cashReceipt.detail,
|
||||||
),
|
),
|
||||||
handWrittenIssuance: generatePath(
|
handWrittenIssuance: generatePath(
|
||||||
`${ROUTE_NAMES.transaction.base}${ROUTE_NAMES.transaction.cashReceit.base}`,
|
`${ROUTE_NAMES.transaction.base}${ROUTE_NAMES.transaction.cashReceipt.base}`,
|
||||||
ROUTE_NAMES.transaction.cashReceit.handWrittenIssuance,
|
ROUTE_NAMES.transaction.cashReceipt.handWrittenIssuance,
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
escro: {
|
escrow: {
|
||||||
base: generatePath(`${ROUTE_NAMES.transaction.base}${ROUTE_NAMES.transaction.escro.base}`),
|
base: generatePath(`${ROUTE_NAMES.transaction.base}${ROUTE_NAMES.transaction.escrow.base}`),
|
||||||
list: generatePath(
|
list: generatePath(
|
||||||
`${ROUTE_NAMES.transaction.base}${ROUTE_NAMES.transaction.escro.base}`,
|
`${ROUTE_NAMES.transaction.base}${ROUTE_NAMES.transaction.escrow.base}`,
|
||||||
ROUTE_NAMES.transaction.escro.list,
|
ROUTE_NAMES.transaction.escrow.list,
|
||||||
),
|
),
|
||||||
detail: generatePath(
|
detail: generatePath(
|
||||||
`${ROUTE_NAMES.transaction.base}${ROUTE_NAMES.transaction.escro.base}`,
|
`${ROUTE_NAMES.transaction.base}${ROUTE_NAMES.transaction.escrow.base}`,
|
||||||
ROUTE_NAMES.transaction.escro.detail,
|
ROUTE_NAMES.transaction.escrow.detail,
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
billing: {
|
billing: {
|
||||||
|
|||||||
@@ -5,24 +5,24 @@ export const ROUTE_NAMES = {
|
|||||||
allTransaction: {
|
allTransaction: {
|
||||||
base: '/all-transaction/*',
|
base: '/all-transaction/*',
|
||||||
list: 'list',
|
list: 'list',
|
||||||
detail: 'detail/:tid',
|
detail: 'detail',
|
||||||
cancel: 'cancel',
|
cancel: 'cancel',
|
||||||
},
|
},
|
||||||
cashReceit: {
|
cashReceipt: {
|
||||||
base: '/cash-receit/*',
|
base: '/cash-receipt/*',
|
||||||
list: 'list',
|
list: 'list',
|
||||||
detail: 'detail/:tid',
|
detail: 'detail',
|
||||||
handWrittenIssuance: 'hand-written-issuance',
|
handWrittenIssuance: 'hand-written-issuance',
|
||||||
},
|
},
|
||||||
escro: {
|
escrow: {
|
||||||
base: '/escro/*',
|
base: '/escrow/*',
|
||||||
list: 'list',
|
list: 'list',
|
||||||
detail: 'detail/:tid',
|
detail: 'detail',
|
||||||
},
|
},
|
||||||
billing: {
|
billing: {
|
||||||
base: '/billing/*',
|
base: '/billing/*',
|
||||||
list: 'list',
|
list: 'list',
|
||||||
detail: 'detail/:tid',
|
detail: 'detail',
|
||||||
paymentRequest: 'payment-request',
|
paymentRequest: 'payment-request',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -120,7 +120,7 @@ export const ROUTE_NAMES = {
|
|||||||
notice: {
|
notice: {
|
||||||
base: '/notice/*',
|
base: '/notice/*',
|
||||||
list: 'list',
|
list: 'list',
|
||||||
detail: 'detail/:noticeId',
|
detail: 'detail',
|
||||||
},
|
},
|
||||||
faq: {
|
faq: {
|
||||||
base: '/faq/*',
|
base: '/faq/*',
|
||||||
|
|||||||
@@ -32,8 +32,8 @@ export const Menu = ({
|
|||||||
categoryIcon: 'transaction-icon',
|
categoryIcon: 'transaction-icon',
|
||||||
items: [
|
items: [
|
||||||
{title: '거래내역 조회', path: PATHS.transaction.allTransaction.list},
|
{title: '거래내역 조회', path: PATHS.transaction.allTransaction.list},
|
||||||
{title: '현금영수증 발행', path: PATHS.transaction.cashReceit.list},
|
{title: '현금영수증 발행', path: PATHS.transaction.cashReceipt.list},
|
||||||
{title: '에스크로', path: PATHS.transaction.escro.list},
|
{title: '에스크로', path: PATHS.transaction.escrow.list},
|
||||||
{title: '빌링', path: PATHS.transaction.billing.list}
|
{title: '빌링', path: PATHS.transaction.billing.list}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user