From 38c38e67d41077b18f7b7fabc0c8b36385140672 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=B0=BD=EC=88=98?= Date: Thu, 17 Oct 2024 15:28:05 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B6=94=EA=B0=80=20=ED=8C=9D=EC=97=85=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/canvas/page.jsx | 18 +- src/app/reactselect/page.jsx | 2 +- .../modal/font_lineoption/FontOption.jsx | 57 ++++++ .../modal/font_lineoption/LineOption.jsx | 46 +++++ .../modal/font_lineoption/ShapeSizeOption.jsx | 35 ++++ .../canvas/modal/roofselect/RoofSelect.jsx | 29 +++ .../canvas/modal/sizechange/SizeChang.jsx | 56 ++++++ src/styles/_modal.scss | 186 ++++++++++++++++++ 8 files changed, 427 insertions(+), 2 deletions(-) create mode 100644 src/components/canvas/modal/font_lineoption/FontOption.jsx create mode 100644 src/components/canvas/modal/font_lineoption/LineOption.jsx create mode 100644 src/components/canvas/modal/font_lineoption/ShapeSizeOption.jsx create mode 100644 src/components/canvas/modal/roofselect/RoofSelect.jsx create mode 100644 src/components/canvas/modal/sizechange/SizeChang.jsx diff --git a/src/app/canvas/page.jsx b/src/app/canvas/page.jsx index d7fdd28..de5cefa 100644 --- a/src/app/canvas/page.jsx +++ b/src/app/canvas/page.jsx @@ -57,6 +57,11 @@ import AdditionalBundleDelete from '@/components/canvas/modal/additionalfunction import AdditionalBundleEdit from '@/components/canvas/modal/additionalfunction/moduleadditional/AdditionalBundleEdit' import CanvasContextMenu from '@/components/canvas/CanvasContextMenu' import ColorSelect from '@/components/canvas/modal/colorselect/ColorSelect' +import FontOption from '@/components/canvas/modal/font_lineoption/FontOption' +import LineOption from '@/components/canvas/modal/font_lineoption/LineOption' +import ShapeSizeOption from '@/components/canvas/modal/font_lineoption/ShapeSizeOption' +import RoofSelect from '@/components/canvas/modal/roofselect/RoofSelect' +import SizeChange from '@/components/canvas/modal/sizechange/SizeChang' export default function CanvasPage() { const modalOption = useRecoilValue(modalState); @@ -177,7 +182,18 @@ export default function CanvasPage() { {/* */} {/* 색상 팝업 */} - + {/* */} + + {/* 글꼴 설정, 치수선 설정 */} + + + + + {/* 지붕재 선택 */} + + + {/* 사이즈 변경 */} + diff --git a/src/app/reactselect/page.jsx b/src/app/reactselect/page.jsx index ba1898e..eaf37c5 100644 --- a/src/app/reactselect/page.jsx +++ b/src/app/reactselect/page.jsx @@ -30,7 +30,7 @@ export default function ReactSelect() {

REACT-SELECT

-
+
+
+ pixel +
+
+ 寸法線の線の色 + +
+
+
+
見る
+
+
+
+ 9,999 + +
+
+
+
+
+ +
+
+ + + ) +} \ No newline at end of file diff --git a/src/components/canvas/modal/font_lineoption/ShapeSizeOption.jsx b/src/components/canvas/modal/font_lineoption/ShapeSizeOption.jsx new file mode 100644 index 0000000..907c19a --- /dev/null +++ b/src/components/canvas/modal/font_lineoption/ShapeSizeOption.jsx @@ -0,0 +1,35 @@ +import WithDraggable from "@/components/common/draggable/withDraggable"; + +export default function ShapeSizeOption(){ + return( + +
+
+

寸法線 設定

+ +
+
+
+
+ ガロ +
+ +
+ mm +
+
+ 縦ロ +
+ +
+ mm +
+
+
+ +
+
+
+
+ ) +} \ No newline at end of file diff --git a/src/components/canvas/modal/roofselect/RoofSelect.jsx b/src/components/canvas/modal/roofselect/RoofSelect.jsx new file mode 100644 index 0000000..6845fb9 --- /dev/null +++ b/src/components/canvas/modal/roofselect/RoofSelect.jsx @@ -0,0 +1,29 @@ +import WithDraggable from "@/components/common/draggable/withDraggable"; +import Qselect from "@/components/common/select/Qselect"; + +const SelectOption = [ + {name: '53A',}, {name: '53A'}, {name: '53A'}, {name: '53A'} +] + +export default function RoofSelect(){ + return( + +
+
+

変更

+ +
+
+
+
+ +
+
+
+ +
+
+
+
+ ) +} \ No newline at end of file diff --git a/src/components/canvas/modal/sizechange/SizeChang.jsx b/src/components/canvas/modal/sizechange/SizeChang.jsx new file mode 100644 index 0000000..d3b27fa --- /dev/null +++ b/src/components/canvas/modal/sizechange/SizeChang.jsx @@ -0,0 +1,56 @@ +import WithDraggable from "@/components/common/draggable/withDraggable"; +import { useState } from "react"; + +export default function SizeChange(){ + const [sizeCheck, setSizeCheck] = useState(1) + return( + +
+
+

サイズ変更

+ +
+
+
+
+
+
+ + mm +
+
+ + mm +
+
+
+
+
+
+
+ + mm +
+
+ + mm +
+
+
+
+ + + + +
+
+
+
+
+ +
+
+
+
+ ) +} \ No newline at end of file diff --git a/src/styles/_modal.scss b/src/styles/_modal.scss index aaea5be..f0966b0 100644 --- a/src/styles/_modal.scss +++ b/src/styles/_modal.scss @@ -34,6 +34,9 @@ $alert-color: #101010; border-radius: 4px; background-color: #272727; z-index: 9999999; + &.xsm{ + width: 200px; + } &.xxxm{ width: 240px; } @@ -1591,4 +1594,187 @@ $alert-color: #101010; } } } +} + +// 글꼴 설정 팝업 +.font-option-warp{ + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 15px 5px; + margin-bottom: 15px; + .font-option-item{ + .option-item-tit{ + font-size: 12px; + font-weight: 500; + color: #fff; + margin-bottom: 10px; + } + } +} +.font-ex-wrap{ + margin-bottom: 15px; + .font-ex-tit{ + font-size: 12px; + font-weight: 500; + color: #fff; + margin-bottom: 10px; + } + .font-ex-box{ + display: flex; + align-items: center; + justify-content: center; + width: 100%; + height: 80px; + background-color: #fff; + } + +} + +// 치수선 설정 +.font-btn-wrap{ + margin-bottom: 15px; + button{ + width: 100%; + height: 30px; + line-height: 28px; + } +} + +.line-color-wrap{ + margin-bottom: 15px; + .color-btn{ + display: block; + width: 100%; + height: 30px; + border-radius: 2px; + } +} + +.form-box{ + width: 100%; + background-color: #fff; + padding: 10px 0 20px; + .line-form{ + position: relative; + width: 102px; + height: 40px; + margin: 0 auto; + border-left: 1px dashed #101010; + border-right: 1px dashed #101010; + .line-font-box{ + position: absolute; + bottom: -3px; + left: 0; + width: 100%; + text-align: center; + .font{ + display: block; + padding-bottom: 6px; + color: #101010; + } + .line{ + position: relative; + display: block; + width: 100%; + height: 1px; + border-radius: 30px; + &::before{ + content: ''; + position: absolute; + top: 50%; + transform: translateY(-50%) rotate(45deg); + left: 1px; + width: 9px; + height: 9px; + border: 1px solid; + border-color: inherit; + border-top: none; + border-right: none; + } + &::after{ + content: ''; + position: absolute; + top: 50%; + transform: translateY(-50%) rotate(45deg); + right: 1px; + width: 9px; + height: 9px; + border: 1px solid; + border-color: inherit; + border-bottom: none; + border-left: none; + } + } + } + } +} + +// 사이즈 변경 +.size-inner-warp{ + position: relative; +} +.size-check-wrap{ + position: relative; + display: block; + width: 132px; + height: 132px; + margin: 0 auto; + .size-btn{ + position: absolute; + width: 16px; + height: 16px; + border: 1px solid #fff; + border-radius: 50%; + &.act{ + &::after{ + content: ''; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 8px; + height: 8px; + background-color: #fff; + border-radius: 50%; + } + } + &:nth-child(1){ top: 0; left: 0; } + &:nth-child(2){ top: 0; right: 0; } + &:nth-child(3){ bottom: 0; left: 0; } + &:nth-child(4){ bottom: 0; right: 0; } + } + .size-box{ + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 100px; + height: 100px; + background-color: #fff; + } +} + +.size-option-top{ + margin-bottom: 15px; +} +.size-option-side{ + position: absolute; + top: 50%; + left: 0; + transform: translateY(-50%); +} +.size-option-wrap{ + width: 88px; + margin: 0 auto; + .size-option{ + display: flex; + align-items: center; + input{ + width: 100%; + flex: 1; + } + span{ + flex: none; + } + } } \ No newline at end of file