From bd07a4aff28d7bbc8912b462996f939960c7586b Mon Sep 17 00:00:00 2001 From: yoosangwook Date: Sat, 8 Feb 2025 21:33:25 +0900 Subject: [PATCH 1/4] =?UTF-8?q?=F0=9F=93=8Cfix:=20=EB=B0=B0=EC=B9=98?= =?UTF-8?q?=EB=A9=B4=20=EB=A9=94=EB=89=B4=20=EC=9D=B4=EB=8F=99=EC=8B=9C=20?= =?UTF-8?q?=EC=BB=A8=ED=8E=8C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/floor-plan/CanvasMenu.jsx | 32 +++++++++++++++++++++--- src/locales/ja.json | 4 ++- src/locales/ko.json | 3 ++- 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/components/floor-plan/CanvasMenu.jsx b/src/components/floor-plan/CanvasMenu.jsx index ed2249b0..db248f94 100644 --- a/src/components/floor-plan/CanvasMenu.jsx +++ b/src/components/floor-plan/CanvasMenu.jsx @@ -170,11 +170,37 @@ export default function CanvasMenu(props) { setType('outline') break case 3: - setType('surface') - break - case 4: console.log('๐Ÿš€ ~ onClickNav ~ menu:', menu) console.log('๐Ÿš€ ~ onClickNav ~ menuNumber:', menuNumber) + if (menuNumber > menu.index) { + const modules = canvas.getObjects().filter((module) => module.name === POLYGON_TYPE.MODULE) + if (modules.length > 0) { + swalFire({ + text: getMessage('module.delete.confirm'), + type: 'confirm', + confirmFn: () => { + //ํ•ด๋‹น ๋ฉ”๋‰ด ์ด๋™์‹œ ๋ฐฐ์น˜๋ฉด ์‚ญ์ œ + const moduleSurfacesArray = canvas + .getObjects() + .filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE || obj.name === POLYGON_TYPE.MODULE) + if (moduleSurfacesArray.length > 0) { + moduleSurfacesArray.forEach((moduleSurface) => { + canvas.remove(moduleSurface) + }) + canvas.renderAll() + } + setType('surface') + }, + denyFn: () => { + setType('surface') + }, + }) + } + } else { + setType('surface') + } + break + case 4: if (menuNumber < menu.index) { if (!checkMenuAndCanvasState()) { swalFire({ text: getMessage('menu.validation.canvas.roof') }) diff --git a/src/locales/ja.json b/src/locales/ja.json index f459b5ee..adc8708b 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -1010,5 +1010,7 @@ "batch.object.outside.roof": "ใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใฏๅฑ‹ๆ นใซ่จญ็ฝฎใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใ€‚", "batch.object.notinstall.cross": "ใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใฏ้‡่ค‡ใ—ใฆใ‚คใƒณใ‚นใƒˆใƒผใƒซใงใใพใ›ใ‚“ใ€‚", "module.not.batch.north": "๋ถ์ชฝ์—๋Š” ๋ชจ๋“ˆ์„ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.", - "max.select": "์ตœ๋Œ€ {0}๊ฐœ๊นŒ์ง€ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(JA)" + "module.trestleDetail.not.exist": "๊ฐ€๋Œ€ ์ƒ์„ธ ์ •๋ณด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.", + "max.select": "์ตœ๋Œ€ {0}๊ฐœ๊นŒ์ง€ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(JA)", + "module.delete.confirm": "ใƒ‘ใƒใƒซใ‚’ๅ‰Š้™คใ—ใฆ้ขๅ…ฅๅŠ›ใซๆˆปใ‚Šใพใ™ใ€‚ๆญฃใ—ใ„ใงใ™ใ‹๏ผŸ\nใฏใ„๏ผฝใ‚’้ธๆŠžใ™ใ‚‹ใจๅ‰Š้™คใ—ใ€้ขๅ…ฅๅŠ›ใซๆˆปใ‚Šใพใ™ใ€‚\nใ„ใ„ใˆใ€ใ‚’้ธๆŠžใ™ใ‚‹ใจใ€ๅ‰Š้™คใ›ใšใซ็พๅœจใฎ็Šถๆ…‹ใ‚’็ถญๆŒใ—ใพใ™ใ€‚" } diff --git a/src/locales/ko.json b/src/locales/ko.json index 021b75e9..15e6e363 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -1012,5 +1012,6 @@ "batch.object.notinstall.cross": "์˜ค๋ธŒ์ ํŠธ๋Š” ๊ฒน์ณ์„œ ์„ค์น˜ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.", "module.not.batch.north": "๋ถ์ชฝ์—๋Š” ๋ชจ๋“ˆ์„ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.", "module.trestleDetail.not.exist": "๊ฐ€๋Œ€ ์ƒ์„ธ ์ •๋ณด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.", - "max.select": "์ตœ๋Œ€ {0}๊ฐœ๊นŒ์ง€ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค." + "max.select": "์ตœ๋Œ€ {0}๊ฐœ๊นŒ์ง€ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.", + "module.delete.confirm": "ํŒจ๋„์„ ์‚ญ์ œํ•˜๊ณ  ๋ฉด์ž…๋ ฅ์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. ๋งž์Šต๋‹ˆ๊นŒ?\n[์˜ˆ]๋ฅผ ์„ ํƒํ•˜๋ฉด ์‚ญ์ œํ•˜๊ณ , ๋ฉด ์ž…๋ ฅ์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.\n[์•„๋‹ˆ์˜ค]๋ฅผ ์„ ํƒํ•˜๋ฉด ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค." } From 520c96eabf0bb82782a489bf47cc9e2c33809249 Mon Sep 17 00:00:00 2001 From: Daseul Kim Date: Sat, 8 Feb 2025 21:44:22 +0900 Subject: [PATCH 2/4] =?UTF-8?q?fix:=20=EA=B2=AC=EC=A0=81=EC=84=9C=20?= =?UTF-8?q?=EC=A0=80=EC=9E=A5=20=EC=9D=B4=ED=9B=84=20=EC=BA=94=EB=B2=84?= =?UTF-8?q?=EC=8A=A4=EB=A1=9C=20=EB=8F=8C=EC=95=84=EC=99=94=EC=9D=84=20?= =?UTF-8?q?=EB=95=8C=20=EC=BA=94=EB=B2=84=EC=8A=A4=20=EC=82=AC=EB=9D=BC?= =?UTF-8?q?=EC=A7=80=EB=8A=94=20=ED=98=84=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 resolves: #656, #677 --- src/components/floor-plan/CanvasMenu.jsx | 14 ++++++++------ src/hooks/usePlan.js | 21 +++++++++++++++++++-- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/src/components/floor-plan/CanvasMenu.jsx b/src/components/floor-plan/CanvasMenu.jsx index db248f94..398797f8 100644 --- a/src/components/floor-plan/CanvasMenu.jsx +++ b/src/components/floor-plan/CanvasMenu.jsx @@ -74,7 +74,7 @@ export default function CanvasMenu(props) { const [estimateCopyPopupOpen, setEstimateCopyPopupOpen] = useState(false) const { getMessage } = useMessage() - const { saveCanvas } = usePlan() + const { saveCanvas, reloadCanvasStatus } = usePlan() const { swalFire } = useSwal() const { initEvent, addCanvasMouseEventListener, addDocumentEventListener } = useEvent() // const { initEvent, addCanvasMouseEventListener, addDocumentEventListener } = useContext(EventContext) @@ -149,7 +149,7 @@ export default function CanvasMenu(props) { setIsGlobalLoading(false) } - const onClickNav = (menu) => { + const onClickNav = async (menu) => { switch (menu.index) { case 0: swalFire({ @@ -164,10 +164,11 @@ export default function CanvasMenu(props) { case 1: setType('placementShape') onClickPlacementInitialMenu() - + await reloadCanvasStatus(objectNo, pid) break case 2: setType('outline') + await reloadCanvasStatus(objectNo, pid) break case 3: console.log('๐Ÿš€ ~ onClickNav ~ menu:', menu) @@ -199,6 +200,7 @@ export default function CanvasMenu(props) { } else { setType('surface') } + await reloadCanvasStatus(objectNo, pid) break case 4: if (menuNumber < menu.index) { @@ -211,7 +213,7 @@ export default function CanvasMenu(props) { } else { router.push(`/floor-plan?pid=${pid}&objectNo=${objectNo}`) } - + await reloadCanvasStatus(objectNo, pid) break case 5: setIsGlobalLoading(true) @@ -617,10 +619,10 @@ export default function CanvasMenu(props) {
  • { + onClick={async () => { if (['2', '3'].includes(canvasSetting?.roofSizeSet) && menu.index === 2) return if (menuNumber === 4 && [1, 2].includes(menu.index)) return - onClickNav(menu) + await onClickNav(menu) }} > - diff --git a/src/components/floor-plan/modal/module/PanelEdit.jsx b/src/components/floor-plan/modal/module/PanelEdit.jsx index b53bc98e..bfff66a2 100644 --- a/src/components/floor-plan/modal/module/PanelEdit.jsx +++ b/src/components/floor-plan/modal/module/PanelEdit.jsx @@ -36,7 +36,7 @@ export default function PanelEdit(props) { const { moduleMove, moduleCopy, moduleMultiMove, moduleMultiCopy, moduleMoveAll, moduleCopyAll } = useModule() useEffect(() => { - if (canvas) { + if (!canvas) { const isSetupModules = canvas.getObjects().filter((obj) => obj.name === 'module') // selectedObj์— ์—†๋Š” ๊ฐ์ฒด๋งŒ ํ•„ํ„ฐ๋ง isSetupModules.forEach((obj) => obj.set({ lockMovementX: false, lockMovementY: false })) } @@ -52,8 +52,8 @@ export default function PanelEdit(props) { }) return } - - const completeSurfaces = canvas.getObject().filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.isComplete) + debugger + const completeSurfaces = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.isComplete) if (completeSurfaces.length > 0) { swalFire({ diff --git a/src/hooks/module/useModule.js b/src/hooks/module/useModule.js index c7f13dc0..bd462b5e 100644 --- a/src/hooks/module/useModule.js +++ b/src/hooks/module/useModule.js @@ -47,6 +47,7 @@ export function useModule() { canvas.discardActiveObject() //์„ ํƒํ•ด์ œ + debugger const isSetupModules = getOtherModules(selectedObj) const selectedModules = canvas.getObjects().filter((obj) => selectedIds.includes(obj.id) && obj.name === 'module') //์„ ํƒํ–ˆ๋˜ ๊ฐ์ฒด๋“ค๋งŒ ๊ฐ€์ ธ์˜ด const setupSurface = canvas diff --git a/src/locales/ja.json b/src/locales/ja.json index f459b5ee..ab6d722b 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -1010,5 +1010,6 @@ "batch.object.outside.roof": "ใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใฏๅฑ‹ๆ นใซ่จญ็ฝฎใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใ€‚", "batch.object.notinstall.cross": "ใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใฏ้‡่ค‡ใ—ใฆใ‚คใƒณใ‚นใƒˆใƒผใƒซใงใใพใ›ใ‚“ใ€‚", "module.not.batch.north": "๋ถ์ชฝ์—๋Š” ๋ชจ๋“ˆ์„ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.", - "max.select": "์ตœ๋Œ€ {0}๊ฐœ๊นŒ์ง€ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(JA)" + "max.select": "์ตœ๋Œ€ {0}๊ฐœ๊นŒ์ง€ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(JA)", + "not.allocation.exist.module": "ํ• ๋‹นํ•˜์ง€ ์•Š์€ ๋ชจ๋“ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค.(JA)" } diff --git a/src/locales/ko.json b/src/locales/ko.json index 021b75e9..887e9cae 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -1012,5 +1012,6 @@ "batch.object.notinstall.cross": "์˜ค๋ธŒ์ ํŠธ๋Š” ๊ฒน์ณ์„œ ์„ค์น˜ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.", "module.not.batch.north": "๋ถ์ชฝ์—๋Š” ๋ชจ๋“ˆ์„ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.", "module.trestleDetail.not.exist": "๊ฐ€๋Œ€ ์ƒ์„ธ ์ •๋ณด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.", - "max.select": "์ตœ๋Œ€ {0}๊ฐœ๊นŒ์ง€ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค." + "max.select": "์ตœ๋Œ€ {0}๊ฐœ๊นŒ์ง€ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.", + "not.allocation.exist.module": "ํ• ๋‹นํ•˜์ง€ ์•Š์€ ๋ชจ๋“ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค." } From 88fc1f09d3a580abf2db29e3c7aa8d729c2a7653 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: Sat, 8 Feb 2025 21:53:59 +0900 Subject: [PATCH 4/4] =?UTF-8?q?-=20=EB=A8=B8=EC=A7=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locales/ja.json | 2 +- src/locales/ko.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/locales/ja.json b/src/locales/ja.json index 05a90d54..7646c783 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -1012,6 +1012,6 @@ "module.not.batch.north": "๋ถ์ชฝ์—๋Š” ๋ชจ๋“ˆ์„ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.", "module.trestleDetail.not.exist": "๊ฐ€๋Œ€ ์ƒ์„ธ ์ •๋ณด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.", "max.select": "์ตœ๋Œ€ {0}๊ฐœ๊นŒ์ง€ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(JA)", - "module.delete.confirm": "ใƒ‘ใƒใƒซใ‚’ๅ‰Š้™คใ—ใฆ้ขๅ…ฅๅŠ›ใซๆˆปใ‚Šใพใ™ใ€‚ๆญฃใ—ใ„ใงใ™ใ‹๏ผŸ\nใฏใ„๏ผฝใ‚’้ธๆŠžใ™ใ‚‹ใจๅ‰Š้™คใ—ใ€้ขๅ…ฅๅŠ›ใซๆˆปใ‚Šใพใ™ใ€‚\nใ„ใ„ใˆใ€ใ‚’้ธๆŠžใ™ใ‚‹ใจใ€ๅ‰Š้™คใ›ใšใซ็พๅœจใฎ็Šถๆ…‹ใ‚’็ถญๆŒใ—ใพใ™ใ€‚" + "module.delete.confirm": "ใƒ‘ใƒใƒซใ‚’ๅ‰Š้™คใ—ใฆ้ขๅ…ฅๅŠ›ใซๆˆปใ‚Šใพใ™ใ€‚ๆญฃใ—ใ„ใงใ™ใ‹๏ผŸ\nใฏใ„๏ผฝใ‚’้ธๆŠžใ™ใ‚‹ใจๅ‰Š้™คใ—ใ€้ขๅ…ฅๅŠ›ใซๆˆปใ‚Šใพใ™ใ€‚\nใ„ใ„ใˆใ€ใ‚’้ธๆŠžใ™ใ‚‹ใจใ€ๅ‰Š้™คใ›ใšใซ็พๅœจใฎ็Šถๆ…‹ใ‚’็ถญๆŒใ—ใพใ™ใ€‚", "not.allocation.exist.module": "ํ• ๋‹นํ•˜์ง€ ์•Š์€ ๋ชจ๋“ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค.(JA)" } diff --git a/src/locales/ko.json b/src/locales/ko.json index e1b698c5..ad5dac68 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -1013,6 +1013,6 @@ "module.not.batch.north": "๋ถ์ชฝ์—๋Š” ๋ชจ๋“ˆ์„ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.", "module.trestleDetail.not.exist": "๊ฐ€๋Œ€ ์ƒ์„ธ ์ •๋ณด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.", "max.select": "์ตœ๋Œ€ {0}๊ฐœ๊นŒ์ง€ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.", - "module.delete.confirm": "ํŒจ๋„์„ ์‚ญ์ œํ•˜๊ณ  ๋ฉด์ž…๋ ฅ์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. ๋งž์Šต๋‹ˆ๊นŒ?\n[์˜ˆ]๋ฅผ ์„ ํƒํ•˜๋ฉด ์‚ญ์ œํ•˜๊ณ , ๋ฉด ์ž…๋ ฅ์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.\n[์•„๋‹ˆ์˜ค]๋ฅผ ์„ ํƒํ•˜๋ฉด ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค." + "module.delete.confirm": "ํŒจ๋„์„ ์‚ญ์ œํ•˜๊ณ  ๋ฉด์ž…๋ ฅ์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. ๋งž์Šต๋‹ˆ๊นŒ?\n[์˜ˆ]๋ฅผ ์„ ํƒํ•˜๋ฉด ์‚ญ์ œํ•˜๊ณ , ๋ฉด ์ž…๋ ฅ์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.\n[์•„๋‹ˆ์˜ค]๋ฅผ ์„ ํƒํ•˜๋ฉด ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.", "not.allocation.exist.module": "ํ• ๋‹นํ•˜์ง€ ์•Š์€ ๋ชจ๋“ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค." }