From 32e2eed73b22e550c44aa835cd198a5128bbf262 Mon Sep 17 00:00:00 2001 From: minsik Date: Tue, 8 Oct 2024 10:53:38 +0900 Subject: [PATCH] =?UTF-8?q?-=20=EC=98=A4=EB=B8=8C=EC=A0=9D=ED=8A=B8=20?= =?UTF-8?q?=EB=B0=B0=EC=B9=98=20=EB=AA=A8=EB=8B=AC=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 | 2 + src/components/floor-plan/FloorPlan.jsx | 4 + src/components/floor-plan/MenuDepth01.jsx | 2 + .../floor-plan/modal/object/ObjectSetting.jsx | 49 ++++++++++ .../modal/object/type/OpenSpace.jsx | 53 +++++++++++ .../modal/object/type/PentagonDormer.jsx | 92 +++++++++++++++++++ .../floor-plan/modal/object/type/Shadow.jsx | 49 ++++++++++ .../modal/object/type/TriangleDormer.jsx | 81 ++++++++++++++++ .../modal/wallLineOffset/type/Offset.jsx | 38 ++++---- src/locales/ja.json | 20 +++- src/locales/ko.json | 18 +++- 11 files changed, 385 insertions(+), 23 deletions(-) create mode 100644 src/components/floor-plan/modal/object/ObjectSetting.jsx create mode 100644 src/components/floor-plan/modal/object/type/OpenSpace.jsx create mode 100644 src/components/floor-plan/modal/object/type/PentagonDormer.jsx create mode 100644 src/components/floor-plan/modal/object/type/Shadow.jsx create mode 100644 src/components/floor-plan/modal/object/type/TriangleDormer.jsx diff --git a/src/components/floor-plan/CanvasMenu.jsx b/src/components/floor-plan/CanvasMenu.jsx index 350434f0..485b536e 100644 --- a/src/components/floor-plan/CanvasMenu.jsx +++ b/src/components/floor-plan/CanvasMenu.jsx @@ -39,6 +39,7 @@ export default function CanvasMenu(props) { setShowSlopeSettingModal, setShowPlaceShapeDrawingModal, setShowRoofShapeSettingModal, + setShowObjectSettingModal, setShowRoofShapePassivitySettingModal, setShowAuxiliaryModal, setShowEavesGableEditModal, @@ -94,6 +95,7 @@ export default function CanvasMenu(props) { setShowSlopeSettingModal, setShowPlaceShapeDrawingModal, setShowWallLineOffsetSettingModal, + setShowObjectSettingModal, type, } diff --git a/src/components/floor-plan/FloorPlan.jsx b/src/components/floor-plan/FloorPlan.jsx index 544def8c..2b18f861 100644 --- a/src/components/floor-plan/FloorPlan.jsx +++ b/src/components/floor-plan/FloorPlan.jsx @@ -21,6 +21,7 @@ import RoofShapePassivitySetting from '@/components/floor-plan/modal/roofShape/R import AuxiliaryDrawing from '@/components/floor-plan/modal/auxiliary/AuxiliaryDrawing' import EavesGableEdit from '@/components/floor-plan/modal/eavesGable/EavesGableEdit' import WallLineOffsetSetting from '@/components/floor-plan/modal/wallLineOffset/WallLineOffsetSetting' +import ObjectSetting from '@/components/floor-plan/modal/object/ObjectSetting' export default function FloorPlan() { const [showCanvasSettingModal, setShowCanvasSettingModal] = useState(false) @@ -32,6 +33,7 @@ export default function FloorPlan() { const [showAuxiliaryModal, setShowAuxiliaryModal] = useState(false) const [showSlopeSettingModal, setShowSlopeSettingModal] = useState(false) const [showPlaceShapeDrawingModal, setShowPlaceShapeDrawingModal] = useState(false) + const [showObjectSettingModal, setShowObjectSettingModal] = useState(false) const [showEavesGableEditModal, setShowEavesGableEditModal] = useState(false) const [showWallLineOffsetSettingModal, setShowWallLineOffsetSettingModal] = useState(false) const globalLocaleState = useRecoilValue(globalLocaleStore) @@ -64,6 +66,7 @@ export default function FloorPlan() { setShowSlopeSettingModal, setShowPlaceShapeDrawingModal, setShowRoofShapeSettingModal, + setShowObjectSettingModal, setShowRoofShapePassivitySettingModal, setShowAuxiliaryModal, setShowEavesGableEditModal, @@ -137,6 +140,7 @@ export default function FloorPlan() { {showEavesGableEditModal && } {/**/} {showWallLineOffsetSettingModal && } + {showObjectSettingModal && } diff --git a/src/components/floor-plan/MenuDepth01.jsx b/src/components/floor-plan/MenuDepth01.jsx index e5c88e9b..64ba320d 100644 --- a/src/components/floor-plan/MenuDepth01.jsx +++ b/src/components/floor-plan/MenuDepth01.jsx @@ -18,6 +18,7 @@ export default function MenuDepth01(props) { setShowSlopeSettingModal, setShowPlaceShapeDrawingModal, setShowWallLineOffsetSettingModal, + setShowObjectSettingModal, } = props const { getMessage } = useMessage() const [activeMenu, setActiveMenu] = useState() @@ -41,6 +42,7 @@ export default function MenuDepth01(props) { if (type === 'surface') { setShowSlopeSettingModal(id === 0) setShowPlaceShapeDrawingModal(id === 1) + setShowObjectSettingModal(id === 3) } } diff --git a/src/components/floor-plan/modal/object/ObjectSetting.jsx b/src/components/floor-plan/modal/object/ObjectSetting.jsx new file mode 100644 index 00000000..c1405e1d --- /dev/null +++ b/src/components/floor-plan/modal/object/ObjectSetting.jsx @@ -0,0 +1,49 @@ +import { useMessage } from '@/hooks/useMessage' +import WithDraggable from '@/components/common/draggable/WithDraggable' +import { useState } from 'react' +import OpenSpace from '@/components/floor-plan/modal/object/type/OpenSpace' +import Shadow from '@/components/floor-plan/modal/object/type/Shadow' +import TriangleDormer from '@/components/floor-plan/modal/object/type/TriangleDormer' +import PentagonDormer from '@/components/floor-plan/modal/object/type/PentagonDormer' + +export default function ObjectSetting({ setShowObjectSettingModal }) { + const { getMessage } = useMessage() + const [buttonAct, setButtonAct] = useState(1) + const buttonMenu = [ + { id: 1, name: getMessage('modal.object.setting.type.open.space.placement') }, + { id: 2, name: getMessage('modal.object.setting.type.shadow.placement') }, + { id: 3, name: getMessage('modal.object.setting.type.triangle.dormer') }, + { id: 4, name: getMessage('modal.object.setting.type.pentagon.dormer') }, + ] + return ( + +
+
+

{getMessage('plan.menu.placement.surface.object')}

+ +
+
+
+ {buttonMenu.map((item) => ( + + ))} +
+
+
{getMessage('setting')}
+ {buttonAct === 1 && } + {buttonAct === 2 && } + {buttonAct === 3 && } + {buttonAct === 4 && } +
+
+ +
+
+
+
+ ) +} diff --git a/src/components/floor-plan/modal/object/type/OpenSpace.jsx b/src/components/floor-plan/modal/object/type/OpenSpace.jsx new file mode 100644 index 00000000..1c79dc09 --- /dev/null +++ b/src/components/floor-plan/modal/object/type/OpenSpace.jsx @@ -0,0 +1,53 @@ +import { useMessage } from '@/hooks/useMessage' + +export default function OpenSpace() { + const { getMessage } = useMessage() + return ( +
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+
{getMessage('modal.object.setting.width')}
+
+
+
+ +
+ mm +
+
+
+
+
{getMessage('modal.object.setting.height')}
+
+
+
+ +
+ mm +
+
+
+
+
+
+
+ + +
+
+ ) +} diff --git a/src/components/floor-plan/modal/object/type/PentagonDormer.jsx b/src/components/floor-plan/modal/object/type/PentagonDormer.jsx new file mode 100644 index 00000000..e2aeea15 --- /dev/null +++ b/src/components/floor-plan/modal/object/type/PentagonDormer.jsx @@ -0,0 +1,92 @@ +import Image from 'next/image' +import { useMessage } from '@/hooks/useMessage' + +export default function PentagonDormer() { + const { getMessage } = useMessage() + return ( + <> +
+
{getMessage('modal.object.setting.size.setting')}
+
+
+ react +
+
+
+
+
{getMessage('modal.object.setting.agreement.depth')}
+
+
+
+ +
+ mm +
+
+
+
+
{getMessage('modal.object.setting.offset.depth')}
+
+
+
+ +
+ mm +
+
+
+
+
{getMessage('width')}
+
+
+
+ +
+ mm +
+
+
+
+
{getMessage('modal.object.setting.offset.depth')}
+
+
+
+ +
+ mm +
+
+
+
+
{getMessage('slope')}
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+
方向の選択
+
+
+ {getMessage('commons.north')} + {getMessage('commons.east')} + {getMessage('commons.south')} + {getMessage('commons.west')} + + + + +
+
+
+ + ) +} diff --git a/src/components/floor-plan/modal/object/type/Shadow.jsx b/src/components/floor-plan/modal/object/type/Shadow.jsx new file mode 100644 index 00000000..bef52631 --- /dev/null +++ b/src/components/floor-plan/modal/object/type/Shadow.jsx @@ -0,0 +1,49 @@ +import { useMessage } from '@/hooks/useMessage' + +export default function Shadow() { + const { getMessage } = useMessage() + return ( +
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+
{getMessage('modal.object.setting.width')}
+
+
+
+ +
+ mm +
+
+
+
+
{getMessage('modal.object.setting.height')}
+
+
+
+ +
+ mm +
+
+
+
+
+
+
+ ) +} diff --git a/src/components/floor-plan/modal/object/type/TriangleDormer.jsx b/src/components/floor-plan/modal/object/type/TriangleDormer.jsx new file mode 100644 index 00000000..8cfa55e4 --- /dev/null +++ b/src/components/floor-plan/modal/object/type/TriangleDormer.jsx @@ -0,0 +1,81 @@ +import Image from 'next/image' +import { useMessage } from '@/hooks/useMessage' + +export default function TriangleDormer() { + const { getMessage } = useMessage() + return ( + <> +
+
{getMessage('modal.object.setting.size.setting')}
+
+
+ react +
+
+
+
+
{getMessage('modal.object.setting.agreement.depth')}
+
+
+
+ +
+ mm +
+
+
+
+
{getMessage('modal.object.setting.offset.depth')}
+
+
+
+ +
+ mm +
+
+
+
+
{getMessage('width')}
+
+
+
+ +
+ mm +
+
+
+
+
{getMessage('slope')}
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+
方向の選択
+
+
+ {getMessage('commons.north')} + {getMessage('commons.east')} + {getMessage('commons.south')} + {getMessage('commons.west')} + + + + +
+
+
+ + ) +} diff --git a/src/components/floor-plan/modal/wallLineOffset/type/Offset.jsx b/src/components/floor-plan/modal/wallLineOffset/type/Offset.jsx index e700b794..cc77dfa8 100644 --- a/src/components/floor-plan/modal/wallLineOffset/type/Offset.jsx +++ b/src/components/floor-plan/modal/wallLineOffset/type/Offset.jsx @@ -7,29 +7,27 @@ export default function Offset({ setShowSlopeSettingModal }) {
{getMessage('modal.wallline.offset.setting.offset.info')}
-
-
-
-
{getMessage('length')}
-
-
-
- -
- mm +
+
+
{getMessage('length')}
+
+
+
+
+ mm
-
-
{getMessage('modal.cover.outline.arrow')}
-
-
-
- - - - -
+
+
+
{getMessage('modal.cover.outline.arrow')}
+
+
+
+ + + +
diff --git a/src/locales/ja.json b/src/locales/ja.json index 5250a0fa..479c52b2 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -154,6 +154,20 @@ "modal.wallline.offset.setting.wallline.edit.position": "支店", "modal.wallline.offset.setting.offset": "オフセット", "modal.wallline.offset.setting.offset.info": "オフセットしたい外壁を選択してください。", + "modal.object.setting.type.open.space.placement": "開口部の配置", + "modal.object.setting.type.shadow.placement": "影の配置", + "modal.object.setting.type.triangle.dormer": "三角形ドーマー", + "modal.object.setting.type.pentagon.dormer": "五角形ドーマー", + "modal.object.setting.free.input": "フリー入力", + "modal.object.setting.size.input": "寸法入力", + "modal.object.setting.width": "横長", + "modal.object.setting.height": "縦長", + "modal.object.setting.area.cross": "エリア交差", + "modal.object.setting.size.setting": "サイズ設定", + "modal.object.setting.agreement.depth": "同意の深さ", + "modal.object.setting.offset.depth": "出幅 (深さ)", + "modal.object.setting.offset.width": "出幅 (幅)", + "modal.object.setting.direction.select": "方向の選択", "setting": "設定", "common.message.no.data": "No data", "common.message.no.dataDown": "ダウンロードするデータがありません", @@ -245,7 +259,7 @@ "common.require": "필수", "commons.west": "立つ", "commons.east": "ドン", - "commons.south": "M", + "commons.south": "立つ", "commons.north": "北", "site.name": "Q.CAST III", "site.sub_name": "태양광 발전 시스템 도면관리 사이트", @@ -312,6 +326,7 @@ "eaves.offset": "軒の", "gable.offset": "ケラバ出幅", "offset": "出幅", + "width": "幅", "size": "寸", "size.angle": "寸(度)", "eaves": "軒", @@ -335,5 +350,6 @@ "jerkinhead.slope": "半折先傾斜", "shed.width": "片流幅", "windage": "漂流", - "windage.width": "漂流の出幅" + "windage.width": "漂流の出幅", + "write": "作成" } diff --git a/src/locales/ko.json b/src/locales/ko.json index d29df3d0..0599fb74 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -160,6 +160,20 @@ "modal.wallline.offset.setting.wallline.edit.position": "지점", "modal.wallline.offset.setting.offset": "오프셋", "modal.wallline.offset.setting.offset.info": "오프셋 하고 싶은 외벽선을 선택하세요.", + "modal.object.setting.type.open.space.placement": "개구 배치", + "modal.object.setting.type.shadow.placement": "그림자 배치", + "modal.object.setting.type.triangle.dormer": "삼각형 도머", + "modal.object.setting.type.pentagon.dormer": "오각형 도머", + "modal.object.setting.free.input": "프리입력", + "modal.object.setting.size.input": "치수입력", + "modal.object.setting.width": "가로길이", + "modal.object.setting.height": "세로길이", + "modal.object.setting.area.cross": "영역교차", + "modal.object.setting.size.setting": "사이즈설정", + "modal.object.setting.agreement.depth": "동의길이 깊이", + "modal.object.setting.offset.depth": "출폭(깊이)", + "modal.object.setting.offset.width": "출폭(폭)", + "modal.object.setting.direction.select": "방향 선택", "setting": "설정", "common.message.no.data": "No data", "common.message.no.dataDown": "No data to download", @@ -318,6 +332,7 @@ "eaves.offset": "처마 출폭", "gable.offset": "케라바 출폭", "offset": "출폭", + "width": "폭", "size": "치수", "size.angle": "寸(度)", "eaves": "처마", @@ -341,5 +356,6 @@ "jerkinhead.slope": "반절처 경사", "shed.width": "한쪽흐름 폭", "windage": "편류", - "windage.width": "편류의 출폭" + "windage.width": "편류의 출폭", + "write": "작성" }