From 74e65ec5c66fb5b94b1a923d65f9c2f5de23c4e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=8B=9D?= <43837214+Minsiki@users.noreply.github.com> Date: Wed, 28 May 2025 10:50:47 +0900 Subject: [PATCH 1/4] =?UTF-8?q?[995]=20:=20[=E3=80=90HANASYS=20DESIGN?= =?UTF-8?q?=E3=80=91=E5=9B=9E=E8=B7=AF=E7=B5=84=E3=81=AB=E3=81=A4=E3=81=84?= =?UTF-8?q?=E3=81=A6]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [작업내용] : 다국어 추가 --- src/locales/ja.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/locales/ja.json b/src/locales/ja.json index d90cab69..8de4a0d9 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -1078,6 +1078,7 @@ "module.not.found": "インストールモジュールを選択してください。", "module.circuit.minimun.error": "回路番号は1以上の数値を入力してください。", "module.already.exist.error": "回路番号が同じで異なるパワーコンディショナのモジュールがあります。 別の回路番号を設定してください。", + "module.circuit.fix.not.same.roof.error": "異なる屋根面のモジュールが選択されています。 モジュールの選択をや直してください。", "construction.length.difference": "屋根面工法をすべて選択してください。", "menu.validation.canvas.roof": "パネルを配置するには、屋根面を入力する必要があります。", "batch.object.outside.roof": "オブジェクトは屋根に設置する必要があります。", From f8a46c30fa5293277839a308e5bb9a684805b067 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=8B=9D?= <43837214+Minsiki@users.noreply.github.com> Date: Wed, 28 May 2025 11:17:23 +0900 Subject: [PATCH 2/4] =?UTF-8?q?[1070]=20:=20[[=EB=8F=84=EB=A9=B4]=20?= =?UTF-8?q?=EC=8B=A0=EA=B7=9C=EB=AC=BC=EA=B1=B4=20=EC=9E=91=EC=84=B1?= =?UTF-8?q?=ED=95=A0=20=EB=95=8C=20=EC=9D=B4=EC=A0=84=20=EB=8F=84=EB=A9=B4?= =?UTF-8?q?=EA=B0=92=EC=9D=84=20=EC=9C=A0=EC=A7=80=ED=95=98=EA=B3=A0=20?= =?UTF-8?q?=EC=9E=88=EC=9D=8C]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [작업내용] : 도면 이동시 canvas 데이터 초기화 --- src/components/floor-plan/CanvasFrame.jsx | 4 ++++ src/hooks/usePlan.js | 18 ++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/components/floor-plan/CanvasFrame.jsx b/src/components/floor-plan/CanvasFrame.jsx index 0b806d0c..09fdd89c 100644 --- a/src/components/floor-plan/CanvasFrame.jsx +++ b/src/components/floor-plan/CanvasFrame.jsx @@ -76,8 +76,12 @@ export default function CanvasFrame() { } initEvent() }) + } else { + setSelectedMenu(null) } Object.keys(currentCanvasPlan).length > 0 && canvas && handleModuleSelectionTotal() + } else { + setSelectedMenu(null) } gridInit() } diff --git a/src/hooks/usePlan.js b/src/hooks/usePlan.js index 15783727..d8e1c9d6 100644 --- a/src/hooks/usePlan.js +++ b/src/hooks/usePlan.js @@ -3,9 +3,17 @@ import { useContext, useEffect, useState } from 'react' import { usePathname, useRouter } from 'next/navigation' -import { useRecoilState, useResetRecoilState } from 'recoil' +import { useRecoilState, useResetRecoilState, useSetRecoilState } from 'recoil' -import { canvasState, currentCanvasPlanState, plansState, canvasSettingState, currentObjectState, moduleSetupSurfaceState } from '@/store/canvasAtom' +import { + canvasState, + currentCanvasPlanState, + plansState, + canvasSettingState, + currentObjectState, + moduleSetupSurfaceState, + currentMenuState, +} from '@/store/canvasAtom' import { useAxios } from '@/hooks/useAxios' import { useMessage } from '@/hooks/useMessage' import { useSwal } from '@/hooks/useSwal' @@ -33,7 +41,7 @@ export function usePlan(params = {}) { const { floorPlanState } = useContext(FloorPlanContext) const [selectedPlan, setSelectedPlan] = useState(null) - + const setCurrentMenu = useSetRecoilState(currentMenuState) const [canvas, setCanvas] = useRecoilState(canvasState) const [currentCanvasPlan, setCurrentCanvasPlan] = useRecoilState(currentCanvasPlanState) @@ -577,8 +585,10 @@ export function usePlan(params = {}) { * plan canvasStatus 초기화 */ const resetCanvasStatus = () => { - setCurrentCanvasPlan((prev) => ({ ...prev, canvasStatus: null })) + setCurrentCanvasPlan((prev) => ({ ...prev, canvasStatus: null, objectNo: null, planNo: null, id: null })) setPlans((plans) => plans.map((plan) => ({ ...plan, canvasStatus: null }))) + setCurrentMenu(null) + setSelectedMenu(null) } /** From 96eb4f25aef3d6ad866f3090b28e85bbc1e0437d Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Wed, 28 May 2025 11:30:40 +0900 Subject: [PATCH 3/4] =?UTF-8?q?[1046]=20:=20=E3=80=90HANASYS=20DESIGN?= =?UTF-8?q?=E3=80=91=E3=82=B0=E3=83=AA=E3=83=83=E3=83=89=E7=B7=9A=E3=81=AE?= =?UTF-8?q?=E6=A9=9F=E8=83=BD=E8=BF=BD=E5=8A=A0=E3=81=AB=E3=81=A4=E3=81=84?= =?UTF-8?q?=E3=81=A6=E3=81=AE=E8=A6=81=E6=9C=9B=20=EC=9E=84=EC=9D=98=20?= =?UTF-8?q?=EA=B7=B8=EB=A6=AC=EB=93=9C=20=EC=9E=91=EB=8F=99=20=EC=9D=B4?= =?UTF-8?q?=EC=83=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/useEvent.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/hooks/useEvent.js b/src/hooks/useEvent.js index d701bcd9..9f9e4ea0 100644 --- a/src/hooks/useEvent.js +++ b/src/hooks/useEvent.js @@ -160,6 +160,7 @@ export function useEvent() { const verticalLines = canvas.getObjects().filter((obj) => ['lineGrid', 'tempGrid'].includes(obj.name) && obj.direction === 'vertical') if (!horizonLines || !verticalLines) { + drawMouseLine(pointer) return } @@ -183,6 +184,7 @@ export function useEvent() { } if (!closestVerticalLine || !closestHorizontalLine) { + drawMouseLine(pointer) return } @@ -271,7 +273,14 @@ export function useEvent() { console.error(e) } - const horizontalLine = new fabric.Line([-4 * canvas.width, arrivalPoint.y, 4 * canvas.width, arrivalPoint.y], { + drawMouseLine(arrivalPoint) + + // 캔버스를 다시 그립니다. + canvas?.renderAll() + } + + const drawMouseLine = (pointer) => { + const horizontalLine = new fabric.Line([-4 * canvas.width, pointer.y, 4 * canvas.width, pointer.y], { stroke: 'red', strokeWidth: 1, selectable: false, @@ -279,7 +288,7 @@ export function useEvent() { }) // 세로선 - const verticalLine = new fabric.Line([arrivalPoint.x, -4 * canvas.height, arrivalPoint.x, 4 * canvas.height], { + const verticalLine = new fabric.Line([pointer.x, -4 * canvas.height, pointer.x, 4 * canvas.height], { stroke: 'red', strokeWidth: 1, selectable: false, @@ -288,9 +297,6 @@ export function useEvent() { // 선들을 캔버스에 추가합니다. canvas?.add(horizontalLine, verticalLine) - - // 캔버스를 다시 그립니다. - canvas?.renderAll() } const removeMouseLine = () => { From cd65d80cce7e5e0926dc7f242c013b76f72af4a4 Mon Sep 17 00:00:00 2001 From: ysCha Date: Wed, 28 May 2025 11:38:46 +0900 Subject: [PATCH 4/4] =?UTF-8?q?1.=20=EC=B2=A8=EB=B6=80=ED=8C=8C=EC=9D=BC?= =?UTF-8?q?=20=EC=B2=B4=ED=81=AC=20=EB=AC=B8=EA=B5=AC=20=EB=B3=80=EA=B2=BD?= =?UTF-8?q?,=202.=20[995]=20module.circuit.fix.not.same.roof.error=20?= =?UTF-8?q?=EC=9D=BC=EC=96=B4=EC=B6=94=EA=B0=80,=20zipYn:=20N=20=3D>=20NO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/community/modal/QnaDetailModal.jsx | 2 +- src/locales/ja.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/community/modal/QnaDetailModal.jsx b/src/components/community/modal/QnaDetailModal.jsx index 5db51cc3..0e25d3a8 100644 --- a/src/components/community/modal/QnaDetailModal.jsx +++ b/src/components/community/modal/QnaDetailModal.jsx @@ -73,7 +73,7 @@ export default function QnaDetailModal({ qnaNo, setOpen, qnaType }) {
{getMessage('qna.detail.sub.fileList')}
{boardDetail.listFile.map((boardFile) => (
-
diff --git a/src/locales/ja.json b/src/locales/ja.json index d90cab69..8ce666f8 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -956,7 +956,7 @@ "estimate.detail.dragFileGuide": "(※北面設置の場合、ファイル添付が必須です。)", "estimate.detail.header.fileList1": "ファイル添付", "estimate.detail.fileList.btn": "ファイル選択", - "estimate.detail.fileList.extCheck": "画像ファイルのみ添付可能です。", + "estimate.detail.fileList.extCheck": "画像、PDF、Excel ファイルのみ添付できます。", "estimate.detail.header.fileList2": "添付ファイル一覧", "estimate.detail.fileList2.btn.return": "復元", "estimate.detail.header.specialEstimate": "見積特記事項", @@ -1078,6 +1078,7 @@ "module.not.found": "インストールモジュールを選択してください。", "module.circuit.minimun.error": "回路番号は1以上の数値を入力してください。", "module.already.exist.error": "回路番号が同じで異なるパワーコンディショナのモジュールがあります。 別の回路番号を設定してください。", + "module.circuit.fix.not.same.roof.error": "異なる屋根面のモジュールが選択されています。 モジュールの選択をや直してください。", "construction.length.difference": "屋根面工法をすべて選択してください。", "menu.validation.canvas.roof": "パネルを配置するには、屋根面を入力する必要があります。", "batch.object.outside.roof": "オブジェクトは屋根に設置する必要があります。",