import moment from 'moment'; import { SortByKeys } from '@/entities/common/model/types'; import { IMAGE_ROOT } from '@/shared/constants/common'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { useEffect, useState } from 'react'; import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant'; import { ListDateGroup } from '../list-date-group'; import { AdditionalServiceCategory } from '../../model/types'; import { ExtensionFundAccountResultExcelParams, ExtensionFundAccountResultExcelResponse, ExtensionFundAccountResultListParams, ExtensionFundAccountResultListResponse, ExtensionFundAccountResultSummaryParams, ExtensionFundAccountResultSummaryResponse, FundAccountResultContent, FundAccountResultContentItem, FundAccountResultType, FundAccountStatus } from '../../model/fund-account/types'; import { useExtensionFundAccountResultSummaryMutation } from '../../api/fund-account/use-extension-fund-account-result-summary-mutation'; import { useExtensionFundAccountResultExcelMutation } from '../../api/fund-account/use-extension-fund-account-result-excel-mutation'; import { useExtensionFundAccountResultListMutation } from '../../api/fund-account/use-extension-fund-account-result-list-mutation'; import { PATHS } from '@/shared/constants/paths'; import { NumericFormat } from 'react-number-format'; import { SortOptionsBox } from '@/entities/common/ui/sort-options-box'; import { FundAccountStatusBtnGroup } from '../../model/fund-account/constant'; import { FundAccountResultFilter } from '../filter/fund-account-result-filter'; export const FundAccountResultListWrap = () => { const { navigate } = useNavigate(); const [sortBy, setSortBy] = useState(SortByKeys.New); const [listItems, setListItems] = useState>>({}); const [filterOn, setFilterOn] = useState(false); const [pageParam, setPageParam] = useState(DEFAULT_PAGE_PARAM); const [mid, setMid] = useState('nictest00m'); const [receiveAccountName, setReceiveAccountName] = useState(''); const [receiveAccountNo, setReceiveAccountNo] = useState(''); const [resultType, setResultType] = useState(FundAccountResultType.RequestDate); const [fromDate, setFromDate] = useState(moment().format('YYYYMMDD')); const [toDate, setToDate] = useState(moment().format('YYYYMMDD')); const [status, setStatus] = useState(FundAccountStatus.ALL); const [receiveBankCode, setReceiveBankCode] = useState(''); const [totalCount, setTotalCount] = useState(0); const [totalAmount, setTotalAmount] = useState(0); const [successCount, setSuccessCount] = useState(0); const [successAmount, setSuccessAmount] = useState(0); const [failCount, setFailCount] = useState(0); const [failAmount, setFailAmount] = useState(0); const [pendingCount, setPendingCount] = useState(0); const [pendingAmount, setPendingAmount] = useState(0); const { mutateAsync: extensionFundAccountResultList } = useExtensionFundAccountResultListMutation(); const { mutateAsync: extensionFundAccountResultExcel } = useExtensionFundAccountResultExcelMutation(); const { mutateAsync: extensionFundAccountResultSummary } = useExtensionFundAccountResultSummaryMutation(); const callList = (option?: { sortBy?: string, val?: string }) => { pageParam.sortBy = (option?.sortBy)? option.sortBy: sortBy; setPageParam(pageParam); let params: ExtensionFundAccountResultListParams = { mid: mid, fromDate: fromDate, toDate: toDate, status: status, pagination: pageParam }; extensionFundAccountResultList(params).then((rs: ExtensionFundAccountResultListResponse) => { console.log(rs); setListItems(assembleData(rs.content)); }); }; const callDownloadExcel = () => { let params: ExtensionFundAccountResultExcelParams = { mid: mid, fromDate: fromDate, toDate: toDate, status: status, }; extensionFundAccountResultExcel(params).then((rs: ExtensionFundAccountResultExcelResponse) => { }); }; const callSummary = () => { let params: ExtensionFundAccountResultSummaryParams = { mid: mid, fromDate: fromDate, toDate: toDate }; extensionFundAccountResultSummary(params).then((rs: ExtensionFundAccountResultSummaryResponse) => { console.log(rs); setTotalCount(rs.totalCount); setTotalAmount(rs.totalAmount); setSuccessCount(rs.successCount); setSuccessAmount(rs.successAmount); setFailCount(rs.failCount); setFailAmount(rs.failAmount); setPendingCount(rs.pendingCount); setPendingAmount(rs.pendingAmount); }); }; const assembleData = (content: Array) => { let data: any = {}; if(content && !!content[0] && content.length > 0){ let items: Array = content[0].items; for(let i=0;i { callDownloadExcel(); }; const onClickToOpenFilter = () => { setFilterOn(!filterOn); }; const onClickToSort = (sort: SortByKeys) => { setSortBy(sort); callList({sortBy: sort}); }; const onClickToStatus = (val: FundAccountStatus) => { setStatus(val); callList({val: val}); }; const getListDateGroup = () => { let rs = []; if(Object.keys(listItems).length > 0){ for (const [key, value] of Object.entries(listItems)) { rs.push( ); } } return rs; }; useEffect(() => { callList(); callSummary(); }, []); const onClickToNavigate = () => { navigate(PATHS.additionalService.fundAccount.transferRequest); }; return ( <>
  • 요청 원 ( 건)
  • 성공 원 ( 건)
  • 실패 원 ( 건)
{ FundAccountStatusBtnGroup.map((value, index) => ( onClickToStatus(value.value) } >{ value.name } )) }
{ getListDateGroup() }
); };