From a7c980dff80e9e40b28911225654b0531ac20cb6 Mon Sep 17 00:00:00 2001 From: "focp212@naver.com" Date: Tue, 11 Nov 2025 09:14:34 +0900 Subject: [PATCH] =?UTF-8?q?api=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/use-escrow-download-excel-mutation.ts | 39 +++++++++++++++++++ src/entities/transaction/model/types.ts | 10 +++++ src/entities/vat-return/ui/list-wrap.tsx | 4 +- src/shared/api/api-url-transaction.ts | 4 ++ 4 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 src/entities/transaction/api/use-escrow-download-excel-mutation.ts diff --git a/src/entities/transaction/api/use-escrow-download-excel-mutation.ts b/src/entities/transaction/api/use-escrow-download-excel-mutation.ts new file mode 100644 index 0000000..0846c0a --- /dev/null +++ b/src/entities/transaction/api/use-escrow-download-excel-mutation.ts @@ -0,0 +1,39 @@ +import axios from 'axios'; +import { API_URL_TRANSACTION } from '@/shared/api/api-url-transaction'; +import { resultify } from '@/shared/lib/resultify'; +import { NiceAxiosError } from '@/shared/@types/error'; +import { + EscrowDownloadExcelParams, + EscrowDownloadExcelResponse +} from '../model/types'; +import { + useMutation, + UseMutationOptions +} from '@tanstack/react-query'; +import { getHeaderUserAgent } from '@/shared/constants/url'; + +export const escrowDownloadExcelList = (params: EscrowDownloadExcelParams) => { + let headerOptions = { + menuId: 33, + apiType: 'DOWNLOAD' + }; + let options = { + headers: { + 'X-User-Agent': getHeaderUserAgent(headerOptions) + } + }; + return resultify( + axios.post(API_URL_TRANSACTION.escrowList(), params, options), + ); +}; + +export const useEscrowListMutation = (options?: UseMutationOptions) => { + const mutation = useMutation({ + ...options, + mutationFn: (params: EscrowDownloadExcelParams) => escrowDownloadExcelList(params), + }); + + return { + ...mutation, + }; +}; diff --git a/src/entities/transaction/model/types.ts b/src/entities/transaction/model/types.ts index ac3768d..a9b896b 100644 --- a/src/entities/transaction/model/types.ts +++ b/src/entities/transaction/model/types.ts @@ -321,6 +321,16 @@ export interface EscrowListParams { page?: DefaultRequestPagination; }; +export interface EscrowDownloadExcelParams { + email: string; + mid: string; + startDate: string; + endDate: string; + deliveryStatus: EscrowDeliveryStatus; + settlementStatus: EscrowSettlementStatus; +}; +export interface EscrowDownloadExcelResponse {}; + export interface BillingListParams { mid?: string; searchType?: string; diff --git a/src/entities/vat-return/ui/list-wrap.tsx b/src/entities/vat-return/ui/list-wrap.tsx index e5499ac..67c3fdf 100644 --- a/src/entities/vat-return/ui/list-wrap.tsx +++ b/src/entities/vat-return/ui/list-wrap.tsx @@ -132,7 +132,9 @@ export const ListWrap = () => { selectedMode: DownloadSelectedMode, userEmail?: string ) => { - + if(selectedMode === DownloadSelectedMode.IMAGE){ + setTaxInvoiceSampleOn(true); + } }; useEffect(() => { diff --git a/src/shared/api/api-url-transaction.ts b/src/shared/api/api-url-transaction.ts index 8fb17a0..7ea4863 100644 --- a/src/shared/api/api-url-transaction.ts +++ b/src/shared/api/api-url-transaction.ts @@ -75,6 +75,10 @@ export const API_URL_TRANSACTION = { // POST: 에스크로 메일 재발송 return `${API_BASE_URL}/api/v1/${API_URL_KEY}/escrows/mail/resend`; }, + escrowDownloadExcel: () => { + // POST: 에스크로 거래내역 엑셀 다운로드 + return `${API_BASE_URL}/api/v1/${API_URL_KEY}/escrows/download/excel`; + }, /* Billing Management - 빌링 API */ billingList: () => {