📌fix: 견적서 이미지 업로드 및 이미지 크롭 추가

This commit is contained in:
yoosangwook 2025-02-09 19:05:51 +09:00
parent aef139533a
commit cfefd51147
2 changed files with 30 additions and 9 deletions

View File

@ -9,6 +9,7 @@ import { usePlan } from '@/hooks/usePlan'
import WithDraggable from '@/components/common/draggable/WithDraggable' import WithDraggable from '@/components/common/draggable/WithDraggable'
import { useCanvas } from '@/hooks/useCanvas' import { useCanvas } from '@/hooks/useCanvas'
import { useImgLoader } from '@/hooks/floorPlan/useImgLoader'
// import { initImageLoaderPopup } from '@/lib/planAction' // import { initImageLoaderPopup } from '@/lib/planAction'
export default function ImgLoad() { export default function ImgLoad() {
@ -30,6 +31,7 @@ export default function ImgLoad() {
handleMapImageDown, handleMapImageDown,
handleAddressDelete, handleAddressDelete,
} = useRefFiles() } = useRefFiles()
const { handleCanvasToPng } = useImgLoader()
const handleModal = () => { const handleModal = () => {
setFloorPlanState({ ...floorPlanState, refFileModalOpen: false, toggleRotate: false }) setFloorPlanState({ ...floorPlanState, refFileModalOpen: false, toggleRotate: false })
@ -149,6 +151,7 @@ export default function ImgLoad() {
<button className="btn-frame modal act" onClick={handleModal}> <button className="btn-frame modal act" onClick={handleModal}>
{getMessage('common.finish')} {getMessage('common.finish')}
</button> </button>
{/* <button className="btn-frame modal act" onClick={() => handleCanvasToPng(2)}></button> */}
</div> </div>
</div> </div>
</div> </div>

View File

@ -52,17 +52,35 @@ export function useImgLoader() {
canvas.renderAll() canvas.renderAll()
const res = await post({ const formData = new FormData()
const dataUrl = canvas.toDataURL('image/png')
const blobBin = atob(dataUrl.split(',')[1])
const array = []
for (let i = 0; i < blobBin.length; i++) {
array.push(blobBin.charCodeAt(i))
}
const file = new Blob([new Uint8Array(array)], { type: 'image/png' })
formData.append('file', file, 'canvas.png')
formData.append('objectNo', currentCanvasPlan.objectNo)
formData.append('planNo', currentCanvasPlan.planNo)
formData.append('type', type)
// formData.append('coordinates', getImageCoordinates())
const positionObj = getImageCoordinates()
console.log('🚀 ~ handleCanvasToPng ~ positionObj:', positionObj)
formData.append('width', Math.round(positionObj[1].x - positionObj[0].x - 350))
formData.append('height', Math.round(positionObj[1].y - positionObj[0].y - 100))
formData.append('left', Math.round(positionObj[0].x))
formData.append('top', Math.round(positionObj[0].y))
console.log('🚀 ~ handleCanvasToPng ~ formData:', formData)
// 이미지 크롭 요청
const result = await post({
url: `${process.env.NEXT_PUBLIC_HOST_URL}/image/canvas`, url: `${process.env.NEXT_PUBLIC_HOST_URL}/image/canvas`,
data: { data: formData,
objectNo: currentCanvasPlan.objectNo,
planNo: currentCanvasPlan.planNo,
type,
canvasToPng: canvas.toDataURL('image/png').replace('data:image/png;base64,', ''),
coordinates: getImageCoordinates(),
},
}) })
console.log('🚀 ~ handleCanvasToPng ~ res:', res) console.log('🚀 ~ handleCanvasToPng ~ result:', result)
return result
} }
/** /**