diff --git a/src/components/estimate/popup/DocDownOptionPop.jsx b/src/components/estimate/popup/DocDownOptionPop.jsx index 0c859c59..3424b699 100644 --- a/src/components/estimate/popup/DocDownOptionPop.jsx +++ b/src/components/estimate/popup/DocDownOptionPop.jsx @@ -6,9 +6,8 @@ import { useRecoilValue } from 'recoil' import { floorPlanObjectState } from '@/store/floorPlanObjectAtom' export default function DocDownOptionPop({ planNo, setEstimatePopupOpen }) { - // console.log('플랜번호::::::::::::', planNo) const { getMessage } = useMessage() - const { promiseGet } = useAxios() + const { promisePost } = useAxios() //다운로드 파일 EXCEL const [schUnitPriceFlg, setSchUnitPriceFlg] = useState('0') @@ -33,9 +32,40 @@ export default function DocDownOptionPop({ planNo, setEstimatePopupOpen }) { // console.log(schDisplayFlg) // console.log(schWeightFlg) // console.log(schDrawingFlg) + //post방식 const url = '/api/estimate/excel-download' - const params = {} + const params = { + objectNo: objectRecoil.floorPlanObjectNo, + planNo: planNo, + schUnitPriceFlg: schUnitPriceFlg, + schDisplayFlg: schDisplayFlg, + schWeightFlg: schWeightFlg, + schDrawingFlg: schDrawingFlg, + } const options = { responseType: 'blob' } + + console.log('다운로드 PARAM:::', params) + return + await promisePost({ url: url, data: params, option: options }) + .then((resultData) => { + console.log('결과::::::', resultData) + if (resultData) { + const blob = new Blob([resultData.data], { type: resultData.headers['content-type'] || 'application/octet-stream' }) + const fileUrl = window.URL.createObjectURL(blob) + const link = document.createElement('a') + + link.href = fileUrl + // link.download = originFile.faileName //resultData에내려주는 파일명으로 변경?? + document.body.appendChild(link) + link.click() + link.remove() + window.URL.revokeObjectURL(fileUrl) + } + }) + .catch((error) => { + console.log('::FileDownLoad Error::', error) + alert('File does not exist.') + }) } return ( diff --git a/src/components/management/StuffDetail.jsx b/src/components/management/StuffDetail.jsx index ccb943c3..9f3cd1ec 100644 --- a/src/components/management/StuffDetail.jsx +++ b/src/components/management/StuffDetail.jsx @@ -19,10 +19,15 @@ import { useCommonCode } from '@/hooks/common/useCommonCode' import StuffPlanQGrid from './StuffPlanQGrid' import { floorPlanObjectState } from '@/store/floorPlanObjectAtom' import { ManagementContext } from '@/app/management/ManagementProvider' +import DocDownOptionPop from '../estimate/popup/DocDownOptionPop' export default function StuffDetail() { const setFloorPlanObjectNo = useSetRecoilState(floorPlanObjectState) //견적서 화면용 물건번호리코일 + const [estimatePopupOpen, setEstimatePopupOpen] = useState(false) + + const [popPlanNo, setPopPlanNo] = useState('1') //default 1 + //공통코드 const { commonCode, findCommonCode } = useCommonCode() const [selOptions, setSelOptions] = useState('') //선택한 1차점 @@ -266,11 +271,12 @@ export default function StuffDetail() { type="button" className="grid-btn" onClick={() => { - console.log('엑셀버튼클릭') + setFloorPlanObjectNo({ floorPlanObjectNo: params.data.objectNo }) + handleEstimatePopup(params.data.planNo) }} > - {getMessage('stuff.detail.planGrid.btn2')} + {getMessage('stuff.detail.planGrid.docDownload')} @@ -280,6 +286,12 @@ export default function StuffDetail() { ], }) + // 문서다운로드 팝업 오픈 셋팅 + const handleEstimatePopup = (planNo) => { + setPopPlanNo(planNo) + setEstimatePopupOpen(true) + } + useEffect(() => { if (objectNo) { setEditMode('EDIT') @@ -2433,6 +2445,8 @@ export default function StuffDetail() { {showWindSpeedButtonValid && ( )} + + {estimatePopupOpen && } ) } diff --git a/src/locales/ja.json b/src/locales/ja.json index 64902f47..f5b59ce6 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -733,7 +733,7 @@ "stuff.detail.planGridHeader.pcTypeNo": "パワーコンディショナー", "stuff.detail.planGridHeader.management": "管理", "stuff.detail.planGrid.btn1": "見積書の照会", - "stuff.detail.planGrid.btn2": "Excel", + "stuff.detail.planGrid.docDownload": "文書のダウンロード", "stuff.grid.noData": "照会されたデータがありません", "length": "長さ", "height": "高さ", diff --git a/src/locales/ko.json b/src/locales/ko.json index 5b47e7fd..01d06042 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -743,7 +743,7 @@ "stuff.detail.planGridHeader.pcTypeNo": "파워컨디셔너", "stuff.detail.planGridHeader.management": "관리", "stuff.detail.planGrid.btn1": "견적서 조회", - "stuff.detail.planGrid.btn2": "Excel", + "stuff.detail.planGrid.docDownload": "문서 다운로드", "stuff.grid.noData": "조회된 데이터가 없습니다", "length": "길이", "height": "높이",