Files
frontend/apps/wr/components/ui/modal/coMat/drgtDetailModal.tsx
T

83 lines
3.2 KiB
TypeScript

"use client"
import { btnClass } from "@/app/store/common/code"
import type { customDrgt } from "@/app/store/matDmd/drgtSttn"
import { drgtDetailHeadListExport } from "@/app/store/matDmd/drgtSttn/headList"
import { downloadExcel, Title, UiTable } from "@common/business_components/ui"
import ListDiv from "@common/business_components/ui/list_div"
import { Button, ScrollArea } from "@common/components/ui"
import { useEffect, useState } from "react"
export default function DrgtDetailModal({
data,
}: {
data: customDrgt[];
}) {
// const [isSggNm, setIsSggNm] = useState('')
const [excelData, setExcelData] = useState<any[]>();
const excelClick = () => {
downloadExcel({
data: excelData ?? [],
fileName: `우리동네가뭄 상세현황 - ${data[0]?.sggNm}`,
sheetNameArray: ["Sheet1"],
headerRange: "A1:C1"
})
}
useEffect(() => {
const resData = Array.isArray(data) ? data : [data];
const exData = Array.isArray(resData)
? resData.map((item: customDrgt) => {
return {
"년": item.year,
"월": item.month,
"가뭄상태": item.drgtState, // Access drgtState directly from the item
}
}) : [];
setExcelData(exData)
// if(data&&data[0].sggNm){
////TODO: data.sggNm [0[인지 data.sggNm 인지 사용하는지 확인필요
// setIsSggNm(data[0].sggNm)
// }
}, [data])
return (
<>
<div className="grid grid-cols-4 gap-4 h-full">
<div className="col-span-4">
<div className="flex items-center justify-between">
<Title title={`우리동네가뭄 상세내용 - ${data[0] && data[0].sggNm ? data[0].sggNm : ''}`} />
<div className="flex flex-row space-x-2">
<Button
size={"sm"}
className={`${btnClass} green mt-12`}
onClick={excelClick}
>
다운로드
</Button>
</div>
</div>
<hr className="mt-2 mb-2" />
<div className="grid grid-cols-6 gap-4 ">
<div className="col-span-6">
<ListDiv>
<ScrollArea className="h-[63vh]">
<UiTable
headName={undefined}
tableData={data}
headlist={drgtDetailHeadListExport}
pageSize={0}
total={0}
cellClick={undefined}
onPageChange={() => { }}
></UiTable>
</ScrollArea>
</ListDiv>
</div>
</div>
</div>
</div>
</>
)
}