import moment from 'moment'; import { useEffect, useState } from 'react'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { IMAGE_ROOT } from '@/shared/constants/common'; import { SmsPaymentDetailResend } from '@/entities/additional-service/ui/sms-payment/sms-payment-detail-resend'; import { HeaderType, SortByKeys } from '@/entities/common/model/types'; import { DEFAULT_PAGE_PARAM } from '@/entities/common/model/constant'; import { useSetHeaderTitle, useSetHeaderType, useSetFooterMode } from '@/widgets/sub-layout/use-sub-layout'; import { SmsPaymentListItem, SmsPaymentSearchType, SmsType } from '@/entities/additional-service/model/sms-payment/types'; import { useExtensionSmsListMutation } from '@/entities/additional-service/api/sms-payment/use-extension-sms-list-mutation'; import { useExtensionSmsDownloadExcelMutation } from '@/entities/additional-service/api/sms-payment/use-extension-sms-download-excel-mutation'; import { SmsPaymentList } from '@/entities/additional-service/ui/sms-payment/sms-payment-list'; export const SmsPaymentPage = () => { const { navigate } = useNavigate(); const [bottomSmsPaymentDetailResendOn, setBottomSmsPaymentDetailResendOn] = useState(false) const [sortBy, setSortBy] = useState(SortByKeys.New); const [listItems, setListItems] = useState({}); const [pageParam, setPageParam] = useState(DEFAULT_PAGE_PARAM); const [filterOn, setFilterOn] = useState(false); const [mid, setMid] = useState('nictest001m'); const [searchCl, setSearchCl] = useState(SmsPaymentSearchType.BUYER_NAME) const [searchValue, setSearchValue] = useState('') const [fromDate, setFromDate] = useState(moment().format('YYYY-MM-DD')); const [toDate, setToDate] = useState(moment().format('YYYY-MM-DD')); const [smsCl, setSmsCl] = useState(SmsType.ALL); const { mutateAsync: smsPaymentList } = useExtensionSmsListMutation(); const { mutateAsync: downloadExcel } = useExtensionSmsDownloadExcelMutation(); useSetHeaderTitle('SMS 결제 통보'); useSetHeaderType(HeaderType.LeftArrow); useSetFooterMode(true); const callList = (option?: { sortBy?: string, val?: string }) => { pageParam.sortBy = (option?.sortBy) ? option.sortBy : sortBy; setPageParam(pageParam); let listParams = { mid: mid, searchCl: searchCl, searchValue: searchValue, fromDate: fromDate, toDate: toDate, smsCl: smsCl === SmsType.ALL ? '' : smsCl, page: pageParam } smsPaymentList(listParams).then((rs) => { setListItems(assembleData(rs.content)); }) } const assembleData = (content: Array) => { let data: any = {}; if (content && content.length > 0) { for (let i = 0; i < content?.length; i++) { let paymentDate = content[i]?.paymentDate?.substring(0, 8); let groupDate = moment(paymentDate).format('YYYYMMDD'); if (!!groupDate && !data.hasOwnProperty(groupDate)) { data[groupDate] = []; } if (!!groupDate && data.hasOwnProperty(groupDate)) { data[groupDate].push(content[i]); } } } console.log('Data : ', data) return data; }; const onClickToDownloadExcel = () => { downloadExcel({ mid: mid, searchCl: searchCl, searchValue: searchValue, fromDate: fromDate, toDate: toDate, smsCl: smsCl === SmsType.ALL ? '' : smsCl, }) } const onClickToOpenFilter = () => { setFilterOn(!filterOn); }; const onClickToSort = (sort: SortByKeys) => { setSortBy(sort); callList({ sortBy: sort }) }; const onClickToShowDetail = () => { setBottomSmsPaymentDetailResendOn(true); }; useEffect(() => { callList(); }, []); return ( <>
); };