From e9255d1bd50861612d7d34286dd281d7af0cbdfe Mon Sep 17 00:00:00 2001 From: yjnoh Date: Thu, 13 Feb 2025 09:36:51 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=EB=8F=84=EB=A8=B8=20=EA=B8=80=EC=94=A8=20?= =?UTF-8?q?=EC=95=9E=EC=9C=BC=EB=A1=9C=20=EB=82=98=EC=98=A4=EA=B2=8C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/2025-02-12_Qcell_회의.txt | 32 +++++++++++++++++++++++ src/hooks/module/useModuleBasicSetting.js | 4 ++- src/hooks/object/useObjectBatch.js | 16 ++++++++++++ 3 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 docs/2025-02-12_Qcell_회의.txt diff --git a/docs/2025-02-12_Qcell_회의.txt b/docs/2025-02-12_Qcell_회의.txt new file mode 100644 index 00000000..b779036f --- /dev/null +++ b/docs/2025-02-12_Qcell_회의.txt @@ -0,0 +1,32 @@ +모듈 설치 기준 -> + 1. 중앙이냐, 처마면이냐, 용마루냐 기준은 좌측 기준 우측 기준 상관없다 + 2. 최대한 많이 들어가는 기준으로 보여주면 됨 + 3. 흐름방향따라 처마면 좌하, 용마루 우상 둘다 그려서 최대로 많이 들어가는거 선택 + + +가대 처마 커버 설치 기준 -> + 1. 모듈과 모듈 사이의 거리가 100미리 간격을 기준으로 한다다 + +복시도, 실측치 -> + 1. 실제 모듈 높이에 따른 계산 기준 -> + 복시도로 지붕라인을 그렸을때 -> 지붕면 할당시 배치면으로 재적용해야함. + 최종적으론 배치면 기준으로 모듈을 올리는 것이라 모듈의 각도 적용 제거 + +리두-언두 X -> + 1. 지붕면, 배치면 그리기에서만 가능 + 2. 모듈설치 이전에 일변전 까지만 사용 + +모듈 설치 배치면 + 1. 처마, 용마루, 케라바 별로 offset 라인 구현 필수 + 2. 멀티 모듈 일시 모듈 순서에 따라 모듈 배치 수정 + 3. 멀티 모듈 모듈별 최대 단수 존재??? + 4. 멀티 모듈일 시 지붕면에 각각 따로 설치 할 수 있는지 여부 확인 + +배치면, 지붕면 그릴시 index 추가하기 + 1. 모듈의 개수가 동일하면 남 기준으로 남1,동1,서1,북1 api 호출만 하면됨(남쪽 배치면이 없으면 동쪽, 동쪽 배치면이 없으면 서쪽, 서쪽 배치면이 없으면 북1) + + +지붕 패턴 중요하지 않음 + 1. 지붕재 패턴 width, height에 따라서 패턴이 그려질 필요가 없다함 + + diff --git a/src/hooks/module/useModuleBasicSetting.js b/src/hooks/module/useModuleBasicSetting.js index 0e419762..f2e7e1a3 100644 --- a/src/hooks/module/useModuleBasicSetting.js +++ b/src/hooks/module/useModuleBasicSetting.js @@ -678,7 +678,9 @@ export function useModuleBasicSetting(tabNum) { tempModule.setCoords() //좌표 재정렬 - if (turf.booleanWithin(tempTurfModule, turfPolygon)) { + console.log('turf.booleanContains(turfPolygon, tempTurfModule)', turf.booleanContains(turfPolygon, tempTurfModule)) + console.log('turf.booleanWithin(tempTurfModule, turfPolygon)', turf.booleanWithin(tempTurfModule, turfPolygon)) + if (turf.booleanContains(turfPolygon, tempTurfModule) || turf.booleanWithin(tempTurfModule, turfPolygon)) { //마우스 클릭시 set으로 해당 위치에 셀을 넣음 const isOverlap = manualDrawModules.some((module) => turf.booleanOverlap(tempTurfModule, polygonToTurfPolygon(module))) //겹치는지 확인 if (!isOverlap) { diff --git a/src/hooks/object/useObjectBatch.js b/src/hooks/object/useObjectBatch.js index b63cdb97..ff446673 100644 --- a/src/hooks/object/useObjectBatch.js +++ b/src/hooks/object/useObjectBatch.js @@ -506,6 +506,14 @@ export function useObjectBatch({ isHidden, setIsHidden }) { console.log(`최초 pathOffset ${index}`, obj.get('pathOffset')) }) + objectGroup._objects.forEach((obj) => { + if (obj.hasOwnProperty('texts')) { + obj.texts.forEach((text) => { + text.bringToFront() + }) + } + }) + isDown = false initEvent() dbClickEvent() @@ -722,6 +730,14 @@ export function useObjectBatch({ isHidden, setIsHidden }) { }) canvas?.add(objectGroup) + objectGroup._objects.forEach((obj) => { + if (obj.hasOwnProperty('texts')) { + obj.texts.forEach((text) => { + text.bringToFront() + }) + } + }) + isDown = false initEvent() From 907b9cbbc398ff6a5650421c70b23da794e8ae40 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: Thu, 13 Feb 2025 09:40:07 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=EB=AA=A8=EB=8B=AC=20=EB=8B=AB=EC=95=98?= =?UTF-8?q?=EC=9D=84=20=EB=95=8C=20=ED=9A=8C=EB=A1=9C=20=EC=82=AD=EC=A0=9C?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../circuitTrestle/CircuitTrestleSetting.jsx | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx index 66f1646a..67f7c058 100644 --- a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx @@ -477,19 +477,19 @@ export default function CircuitTrestleSetting({ id }) { // 닫기 버튼 클릭 시 처리하는 함수 추가 const handleClose = () => { // // 회로 번호 텍스트 제거 - const circuitTexts = canvas.getObjects().filter((obj) => obj.name === 'circuitNumber') - canvas.remove(...circuitTexts) - // 모듈의 회로 정보 초기화 - canvas - .getObjects() - .filter((obj) => obj.name === POLYGON_TYPE.MODULE) - .forEach((obj) => { - obj.circuit = null - obj.pcsItemId = null - obj.circuitNumber = null - }) + // const circuitTexts = canvas.getObjects().filter((obj) => obj.name === 'circuitNumber') + // canvas.remove(...circuitTexts) + // // 모듈의 회로 정보 초기화 + // canvas + // .getObjects() + // .filter((obj) => obj.name === POLYGON_TYPE.MODULE) + // .forEach((obj) => { + // obj.circuit = null + // obj.pcsItemId = null + // obj.circuitNumber = null + // }) - canvas.renderAll() + // canvas.renderAll() closePopup(id) }