From 0582dcc8663eb79bcfb833644f054eb7d223bc23 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, 5 Mar 2025 15:11:23 +0900 Subject: [PATCH 1/6] =?UTF-8?q?plan=20=EC=98=AE=EA=B2=BC=EC=9D=84=20?= =?UTF-8?q?=EB=95=8C=20module=20=EC=A1=B4=EC=9E=AC=ED=95=98=EB=A9=B4=20mod?= =?UTF-8?q?ule=20=EB=A9=94=EB=89=B4=EB=A1=9C=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/floor-plan/CanvasFrame.jsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/components/floor-plan/CanvasFrame.jsx b/src/components/floor-plan/CanvasFrame.jsx index 6e302fa1..7144a920 100644 --- a/src/components/floor-plan/CanvasFrame.jsx +++ b/src/components/floor-plan/CanvasFrame.jsx @@ -13,7 +13,7 @@ import { useContextMenu } from '@/hooks/useContextMenu' import { useCanvasConfigInitialize } from '@/hooks/common/useCanvasConfigInitialize' import { currentMenuState } from '@/store/canvasAtom' import { totalDisplaySelector } from '@/store/settingAtom' -import { MENU } from '@/common/common' +import { MENU, POLYGON_TYPE } from '@/common/common' import { FloorPlanContext } from '@/app/floor-plan/FloorPlanProvider' import { QcastContext } from '@/app/QcastProvider' import { @@ -27,6 +27,7 @@ import { } from '@/store/circuitTrestleAtom' import { useCanvasPopupStatusController } from '@/hooks/common/useCanvasPopupStatusController' import { useCanvasSetting } from '@/hooks/option/useCanvasSetting' +import { useCanvasMenu } from '@/hooks/common/useCanvasMenu' export default function CanvasFrame() { const canvasRef = useRef(null) @@ -47,6 +48,7 @@ export default function CanvasFrame() { const resetPcsCheckState = useResetRecoilState(pcsCheckState) const { handleModuleSelectionTotal } = useCanvasPopupStatusController() const { fetchBasicSettings } = useCanvasSetting() + const { setSelectedMenu } = useCanvasMenu() const loadCanvas = () => { if (!canvas) return @@ -58,6 +60,10 @@ export default function CanvasFrame() { canvas?.loadFromJSON(JSON.parse(plan.canvasStatus), function () { canvasLoadInit() //config된 상태로 캔버스 객체를 그린다 canvas?.renderAll() // 캔버스를 다시 그립니다. + + if (canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE).length > 0) { + setSelectedMenu('module') + } }) } } From e9a4b04c7339fd4a1d3404d6ae1fe7b896ba665e 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, 5 Mar 2025 15:11:49 +0900 Subject: [PATCH 2/6] =?UTF-8?q?'=EC=A7=80=EB=B6=95=EC=9E=AC=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80'=20=EB=AC=B8=EA=B5=AC=20=EB=B3=80=EA=B2=BD=20?= =?UTF-8?q?=EB=B0=8F=20=EB=8B=A4=EA=B5=AD=EC=96=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modal/roofAllocation/ContextRoofAllocationSetting.jsx | 2 +- .../floor-plan/modal/roofAllocation/RoofAllocationSetting.jsx | 2 +- src/locales/ja.json | 1 + src/locales/ko.json | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/floor-plan/modal/roofAllocation/ContextRoofAllocationSetting.jsx b/src/components/floor-plan/modal/roofAllocation/ContextRoofAllocationSetting.jsx index 37fc53bc..30e56c0e 100644 --- a/src/components/floor-plan/modal/roofAllocation/ContextRoofAllocationSetting.jsx +++ b/src/components/floor-plan/modal/roofAllocation/ContextRoofAllocationSetting.jsx @@ -85,7 +85,7 @@ export default function ContextRoofAllocationSetting(props) { }} > - {getMessage('modal.common.add')} + {getMessage('modal.roof.alloc.add.roof.material')}
diff --git a/src/components/floor-plan/modal/roofAllocation/RoofAllocationSetting.jsx b/src/components/floor-plan/modal/roofAllocation/RoofAllocationSetting.jsx index 7723b9de..3dd03385 100644 --- a/src/components/floor-plan/modal/roofAllocation/RoofAllocationSetting.jsx +++ b/src/components/floor-plan/modal/roofAllocation/RoofAllocationSetting.jsx @@ -85,7 +85,7 @@ export default function RoofAllocationSetting(props) { }} > - {getMessage('modal.common.add')} + {getMessage('modal.roof.alloc.add.roof.material')}
diff --git a/src/locales/ja.json b/src/locales/ja.json index 76f16b36..64b2f0f4 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -174,6 +174,7 @@ "modal.roof.alloc.info": "※配置面初期設定で保存した[基本屋根材]を変更したり、屋根材を追加して割り当てることができます。", "modal.roof.alloc.default.roof.material": "基本屋根材", "modal.roof.alloc.select.roof.material": "屋根材の選択", + "modal.roof.alloc.add.roof.material": "지붕재 추가(JA)", "modal.roof.alloc.select.parallel": "筋配置", "modal.roof.alloc.select.stairs": "千鳥配置", "modal.roof.alloc.apply": "選択した屋根材として割り当て", diff --git a/src/locales/ko.json b/src/locales/ko.json index 0a1119d0..9252ac19 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -174,6 +174,7 @@ "modal.roof.alloc.info": "※ 배치면 초기설정에서 저장한 [기본 지붕재]를 변경하거나 지붕재를 추가하여 할당할 수 있습니다.", "modal.roof.alloc.default.roof.material": "기본 지붕재", "modal.roof.alloc.select.roof.material": "지붕재 선택", + "modal.roof.alloc.add.roof.material": "지붕재 추가", "modal.roof.alloc.select.parallel": "병렬식", "modal.roof.alloc.select.stairs": "계단식", "modal.roof.alloc.apply": "선택한 지붕재로 할당", From f061f88c233c10e7b3586d2416e01908cb2cfe42 Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Wed, 5 Mar 2025 15:18:53 +0900 Subject: [PATCH 3/6] =?UTF-8?q?initRoofs=20=EB=88=84=EB=9D=BD=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/floor-plan/CanvasMenu.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/floor-plan/CanvasMenu.jsx b/src/components/floor-plan/CanvasMenu.jsx index 66d13c88..ebb31fa6 100644 --- a/src/components/floor-plan/CanvasMenu.jsx +++ b/src/components/floor-plan/CanvasMenu.jsx @@ -186,6 +186,7 @@ export default function CanvasMenu(props) { const modules = canvas .getObjects() .filter((obj) => [POLYGON_TYPE.MODULE_SETUP_SURFACE, POLYGON_TYPE.MODULE, POLYGON_TYPE.OBJECT_SURFACE].includes(obj.name)) + initRoofs() if (modules.length > 0) { swalFire({ From 316dc2c4ff300bf709eabb131eba1ba2726b0403 Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Wed, 5 Mar 2025 15:33:28 +0900 Subject: [PATCH 4/6] =?UTF-8?q?group=20=EB=82=B4=EB=B6=80=20lengthText?= =?UTF-8?q?=EB=8F=84=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/option/useCanvasSetting.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/hooks/option/useCanvasSetting.js b/src/hooks/option/useCanvasSetting.js index 6567838f..5219a6a5 100644 --- a/src/hooks/option/useCanvasSetting.js +++ b/src/hooks/option/useCanvasSetting.js @@ -221,6 +221,14 @@ export function useCanvasSetting(executeEffect = true) { } const { column } = corridorDimension const lengthTexts = canvas.getObjects().filter((obj) => obj.name === 'lengthText') + const group = canvas.getObjects().filter((obj) => obj.type === 'group') + group.forEach((obj) => { + obj._objects + .filter((obj2) => obj2.name === 'lengthText') + .forEach((obj3) => { + lengthTexts.push(obj3) + }) + }) switch (column) { case 'corridorDimension': From c8e18bee17630f692655148f8a7863ba4ca2d428 Mon Sep 17 00:00:00 2001 From: basssy Date: Wed, 5 Mar 2025 16:27:41 +0900 Subject: [PATCH 5/6] alert => swalFire --- src/components/estimate/Estimate.jsx | 8 ++------ src/components/main/ChangePasswordPop.jsx | 6 +++++- src/components/management/Stuff.jsx | 5 ++++- src/components/management/StuffDetail.jsx | 5 ----- src/components/management/StuffHeader.jsx | 11 ++++++++--- src/components/management/StuffSearchCondition.jsx | 12 ++++++++++-- 6 files changed, 29 insertions(+), 18 deletions(-) diff --git a/src/components/estimate/Estimate.jsx b/src/components/estimate/Estimate.jsx index da241db1..b6bdbfef 100644 --- a/src/components/estimate/Estimate.jsx +++ b/src/components/estimate/Estimate.jsx @@ -46,7 +46,6 @@ export default function Estimate({}) { const [selection, setSelection] = useState(new Set()) //견적특이사항 접고 펼치기 - // const [hidden, setHidden] = useState(false) const [hidden, setHidden] = useState(true) //아이템 자동완성 리스트 @@ -569,7 +568,7 @@ export default function Estimate({}) { return selection.size === getAbledItems(estimateContextState.itemList).length } - //row 체크박스 컨트롤 + //아이템row 체크박스 컨트롤 const onChangeSelect = (dispOrder) => { const newSelection = new Set(selection) if (newSelection.has(dispOrder)) { @@ -581,10 +580,6 @@ export default function Estimate({}) { setSelection(newSelection) } - function formatNumberWithComma(number) { - return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') - } - //주택PKG input 변경 const onChangePkgAsp = (value) => { if (estimateContextState.estimateType === 'YJSS') { @@ -1140,6 +1135,7 @@ export default function Estimate({}) { } } }, [estimateContextState]) + return (
diff --git a/src/components/main/ChangePasswordPop.jsx b/src/components/main/ChangePasswordPop.jsx index dbc9d6e4..54075153 100644 --- a/src/components/main/ChangePasswordPop.jsx +++ b/src/components/main/ChangePasswordPop.jsx @@ -119,7 +119,11 @@ export default function ChangePasswordPop(props) { }, }) } else { - alert(res?.result?.resultMsg) + swalFire({ + text: getMessage(res?.result?.resultMsg), + type: 'alert', + icon: 'error', + }) } } else { setIsGlobalLoading(false) diff --git a/src/components/management/Stuff.jsx b/src/components/management/Stuff.jsx index 0a3be3ee..43446209 100644 --- a/src/components/management/Stuff.jsx +++ b/src/components/management/Stuff.jsx @@ -75,7 +75,10 @@ export default function Stuff() { type: 'alert', }) } catch (err) { - alert(getMessage('stuff.detail.header.failCopy')) + swalFire({ + text: getMessage('stuff.detail.header.failCopy'), + type: 'alert', + }) } finally { textArea.remove() } diff --git a/src/components/management/StuffDetail.jsx b/src/components/management/StuffDetail.jsx index f4d7fbd4..266f1779 100644 --- a/src/components/management/StuffDetail.jsx +++ b/src/components/management/StuffDetail.jsx @@ -107,7 +107,6 @@ export default function StuffDetail() { const [areaIdList, setAreaIdList] = useState([]) //발전시뮬레이션 리스트 - const [isFormValid, setIsFormValid] = useState(false) //임시저장, 진짜저장 버튼 컨트롤 const [showAddressButtonValid, setShowAddressButtonValid] = useState(false) //주소검색팝업 활성화 컨트롤 const [showDesignRequestButtonValid, setShowDesignRequestButtonValid] = useState(false) //설계의뢰팝업 활성화 컨트롤 const [showWindSpeedButtonValid, setShowWindSpeedButtonValid] = useState(false) //풍속선택팝업 활성화 컨트롤 @@ -1094,8 +1093,6 @@ export default function StuffDetail() { if (!formData.installHeight) { errors.installHeight = true } - - setIsFormValid(Object.keys(errors).length === 0 ? true : false) } else { //상세일떄 폼체크 const formData = form.getValues() @@ -1140,8 +1137,6 @@ export default function StuffDetail() { if (!formData.installHeight) { errors.installHeight = true } - - setIsFormValid(Object.keys(errors).length === 0 ? true : false) } }, [ _receiveUser, diff --git a/src/components/management/StuffHeader.jsx b/src/components/management/StuffHeader.jsx index d669ad7a..1f68d68a 100644 --- a/src/components/management/StuffHeader.jsx +++ b/src/components/management/StuffHeader.jsx @@ -4,7 +4,6 @@ import { useContext, useEffect } from 'react' import { useMessage } from '@/hooks/useMessage' import dayjs from 'dayjs' import { GlobalDataContext } from '@/app/GlobalDataProvider' -// import { ManagementContext } from '@/app/management/ManagementProvider' import { useSwal } from '@/hooks/useSwal' export default function StuffHeader() { const { getMessage } = useMessage() @@ -23,7 +22,10 @@ export default function StuffHeader() { }) }) .catch(() => { - alert(getMessage('stuff.detail.header.failCopy')) + swalFire({ + text: getMessage('stuff.detail.header.failCopy'), + type: 'alert', + }) }) } else { // Use the 'out of viewport hidden text area' trick @@ -44,7 +46,10 @@ export default function StuffHeader() { type: 'alert', }) } catch (err) { - alert(getMessage('stuff.detail.header.failCopy')) + swalFire({ + text: getMessage('stuff.detail.header.failCopy'), + type: 'alert', + }) } finally { textArea.remove() } diff --git a/src/components/management/StuffSearchCondition.jsx b/src/components/management/StuffSearchCondition.jsx index 05c00a13..c00e8bd6 100644 --- a/src/components/management/StuffSearchCondition.jsx +++ b/src/components/management/StuffSearchCondition.jsx @@ -18,6 +18,7 @@ import { isObjectNotEmpty } from '@/util/common-utils' import { SessionContext } from '@/app/SessionProvider' import { QcastContext } from '@/app/QcastProvider' +import { useSwal } from '@/hooks/useSwal' export default function StuffSearchCondition() { const router = useRouter() @@ -73,17 +74,24 @@ export default function StuffSearchCondition() { const [otherSaleStoreId, setOtherSaleStoreId] = useState('') const { setIsGlobalLoading } = useContext(QcastContext) + const { swalFire } = useSwal() // 조회 const onSubmit = () => { let diff = dayjs(endDate).diff(startDate, 'day') if (diff > 366) { - return alert(getMessage('stuff.message.periodError')) + return swalFire({ + text: getMessage('stuff.message.periodError'), + type: 'alert', + }) } if (isNaN(diff)) { - return alert(getMessage('stuff.message.periodError')) + return swalFire({ + text: getMessage('stuff.message.periodError'), + type: 'alert', + }) } setIsGlobalLoading(true) From 11d9d16ff89cc158400fe62982ede84c4bd92768 Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Wed, 5 Mar 2025 16:29:34 +0900 Subject: [PATCH 6/6] =?UTF-8?q?texts=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/usePolygon.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/hooks/usePolygon.js b/src/hooks/usePolygon.js index 04507c17..c9528e72 100644 --- a/src/hooks/usePolygon.js +++ b/src/hooks/usePolygon.js @@ -48,6 +48,7 @@ export const usePolygon = () => { canvas.remove(text) }) const lines = polygon.lines + polygon.texts = [] lines.forEach((line, i) => { const length = line.getLength() @@ -102,7 +103,7 @@ export const usePolygon = () => { parent: polygon, name: 'lengthText', }) - + polygon.texts.push(text) canvas.add(text) })