diff --git a/public/static/images/canvas/alert_close.svg b/public/static/images/canvas/alert_close.svg new file mode 100644 index 0000000..54356b5 --- /dev/null +++ b/public/static/images/canvas/alert_close.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/public/static/images/canvas/outline_cul.png b/public/static/images/canvas/outline_cul.png new file mode 100644 index 0000000..f9e9b7f Binary files /dev/null and b/public/static/images/canvas/outline_cul.png differ diff --git a/public/static/images/canvas/reset_ico.svg b/public/static/images/canvas/reset_ico.svg new file mode 100644 index 0000000..14fac20 --- /dev/null +++ b/public/static/images/canvas/reset_ico.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/app/canvas/page.jsx b/src/app/canvas/page.jsx index 8aa4467..e0c41e1 100644 --- a/src/app/canvas/page.jsx +++ b/src/app/canvas/page.jsx @@ -6,9 +6,7 @@ import GridCopy from '@/components/canvas/modal/gridoption/GridCopy' import GridMove from '@/components/canvas/modal/gridoption/GridMove' import GridOption from '@/components/canvas/modal/gridoption/GridOption' import OuterLineWall from '@/components/canvas/modal/outerlinesetting/OuterLineWall' -import PlacementGuidePop from '@/components/canvas/modal/placementsetting/PlacementGuidePop' import PlacementSettingPop from '@/components/canvas/modal/placementsetting/PlacementSettingPop' -import RoofingMaterialGudiePop from '@/components/canvas/modal/placementsetting/RoofingMaterialGuidePop' import SettingModal01 from '@/components/canvas/modal/settoing01/SettingModal01' import Header from '@/components/layout/Header' import { modalState } from '@/store/modalAtom' @@ -29,9 +27,7 @@ export default function CanvasPage() { {/* 배치면 초기 설정 */} - - - + {/* */} {/* 캔버스 기본 셋팅 */} {/* {modalOption.option && } */} @@ -42,7 +38,7 @@ export default function CanvasPage() { {/* {modalOption.gridmove && } */} {/* 외벽선 그리기 */} - {/* {modalOption.outerwall && } */} + {modalOption.outerwall && } diff --git a/src/components/canvas/modal/outerlinesetting/OuterLineWall.jsx b/src/components/canvas/modal/outerlinesetting/OuterLineWall.jsx index f2174c3..6b4a43e 100644 --- a/src/components/canvas/modal/outerlinesetting/OuterLineWall.jsx +++ b/src/components/canvas/modal/outerlinesetting/OuterLineWall.jsx @@ -4,6 +4,11 @@ import { useState } from "react"; import WithDraggable from "@/components/common/draggable/withDraggable"; import { modalState } from "@/store/modalAtom"; import { useRecoilState } from "recoil"; +import Tab01 from "./Tab01"; +import Tab02 from "./Tab02"; +import Tab03 from "./Tab03"; +import Tab04 from "./Tab04"; +import Tab05 from "./Tab05"; export default function OuterLineWall (){ @@ -19,7 +24,7 @@ export default function OuterLineWall (){ } return( -
+

外壁線を描

@@ -58,32 +63,15 @@ export default function OuterLineWall (){ 対角線
-
-

設定

-
-
- - -
-
- - -
-
-
- - - - -
+ {buttonAct === 1 && } + {buttonAct === 2 && } + {buttonAct === 3 && } + {buttonAct === 4 && } + {buttonAct === 5 && } + +
+ +
diff --git a/src/components/canvas/modal/outerlinesetting/Tab01.jsx b/src/components/canvas/modal/outerlinesetting/Tab01.jsx new file mode 100644 index 0000000..52ec334 --- /dev/null +++ b/src/components/canvas/modal/outerlinesetting/Tab01.jsx @@ -0,0 +1,24 @@ +export default function Tab01(){ + return( +
+
+
+ 長さ(mm) +
+ +
+ +
+
+ 方向 (矢印) +
+ + + + +
+
+
+
+ ) +} \ No newline at end of file diff --git a/src/components/canvas/modal/outerlinesetting/Tab02.jsx b/src/components/canvas/modal/outerlinesetting/Tab02.jsx new file mode 100644 index 0000000..8886d6e --- /dev/null +++ b/src/components/canvas/modal/outerlinesetting/Tab02.jsx @@ -0,0 +1,42 @@ +export default function Tab02(){ + return( +
+
+
+ 長さ(mm) +
+ +
+ +
+
+ 方向 (矢印) +
+ + + + +
+
+
+
+
+ 長さ(mm) +
+ +
+ +
+
+ 方向 (矢印) +
+ + + + +
+
+
+
+ ) +} \ No newline at end of file diff --git a/src/components/canvas/modal/outerlinesetting/Tab03.jsx b/src/components/canvas/modal/outerlinesetting/Tab03.jsx new file mode 100644 index 0000000..0cef635 --- /dev/null +++ b/src/components/canvas/modal/outerlinesetting/Tab03.jsx @@ -0,0 +1,64 @@ +export default function Tab03(){ + return( + <> +
+
+
+ 角度 +
+ +
+ +
+
+
+
+ 長さ(mm) +
+ +
+ +
+
+ 方向 (矢印) +
+ + + + +
+
+
+
+
+
+
+ 角度 +
+ +
+ +
+
+
+
+ 長さ(mm) +
+ +
+ +
+
+ 方向 (矢印) +
+ + + + +
+
+
+
+ + ) +} \ No newline at end of file diff --git a/src/components/canvas/modal/outerlinesetting/Tab04.jsx b/src/components/canvas/modal/outerlinesetting/Tab04.jsx new file mode 100644 index 0000000..1c0c237 --- /dev/null +++ b/src/components/canvas/modal/outerlinesetting/Tab04.jsx @@ -0,0 +1,31 @@ +import Image from "next/image"; + +export default function Tab04(){ + return( + <> +
+
+
+
+ 角度 +
+ +
+ +
+
+ 長さ(mm) +
+ +
+ +
+
+
+ react +
+
+
+ + ) +} \ No newline at end of file diff --git a/src/components/canvas/modal/outerlinesetting/Tab05.jsx b/src/components/canvas/modal/outerlinesetting/Tab05.jsx new file mode 100644 index 0000000..f5d16dc --- /dev/null +++ b/src/components/canvas/modal/outerlinesetting/Tab05.jsx @@ -0,0 +1,52 @@ +export default function Tab05(){ + return( + <> +
+
+
+ 対角線の
長さ(mm)
+
+ +
+ +
+
+
+
+ 長さ(mm) +
+ +
+ +
+
+ 方向 (矢印) +
+ + + + +
+
+
+
+
+ 長さ(mm) +
+ +
+
+
+ 方向 (矢印) +
+ + + + +
+
+
+
+ + ) +} \ No newline at end of file diff --git a/src/components/canvas/modal/placementsetting/PlacementGuidePop.jsx b/src/components/canvas/modal/placementsetting/PlacementGuidePop.jsx index ad989e9..8e305dc 100644 --- a/src/components/canvas/modal/placementsetting/PlacementGuidePop.jsx +++ b/src/components/canvas/modal/placementsetting/PlacementGuidePop.jsx @@ -1,19 +1,16 @@ -import WithDraggable from "@/components/common/draggable/withDraggable"; export default function PlacementGuidePop(){ - return( - -
+
-

寸法入力方法案内

-
+
寸法入力方法案内
+
- + @@ -34,6 +31,5 @@ export default function PlacementGuidePop(){ - ) } \ No newline at end of file diff --git a/src/components/canvas/modal/placementsetting/PlacementSettingPop.jsx b/src/components/canvas/modal/placementsetting/PlacementSettingPop.jsx index 541dfb7..1f50128 100644 --- a/src/components/canvas/modal/placementsetting/PlacementSettingPop.jsx +++ b/src/components/canvas/modal/placementsetting/PlacementSettingPop.jsx @@ -1,4 +1,6 @@ import WithDraggable from "@/components/common/draggable/withDraggable"; +import PlacementGuidePop from "./PlacementGuidePop"; +import RoofingMaterialGudiePop from "./RoofingMaterialGuidePop"; export default function PlacementSettingPop(){ @@ -102,6 +104,8 @@ export default function PlacementSettingPop(){ + + ) diff --git a/src/components/canvas/modal/placementsetting/RoofingMaterialGuidePop.jsx b/src/components/canvas/modal/placementsetting/RoofingMaterialGuidePop.jsx index 963a24f..e0df9ae 100644 --- a/src/components/canvas/modal/placementsetting/RoofingMaterialGuidePop.jsx +++ b/src/components/canvas/modal/placementsetting/RoofingMaterialGuidePop.jsx @@ -1,18 +1,14 @@ -import WithDraggable from "@/components/common/draggable/withDraggable"; export default function RoofingMaterialGudiePop(){ return( - -
+
-

屋根材選択案内

対応可能な屋根材や足場は限定されますので、必ず事前マニュアルをご確認ください。
- ) } \ No newline at end of file diff --git a/src/styles/_modal.scss b/src/styles/_modal.scss index 392fb3f..4711960 100644 --- a/src/styles/_modal.scss +++ b/src/styles/_modal.scss @@ -2,6 +2,7 @@ $pop-color: #fff; $pop-normal-weight: 400; $pop-bold-weight: 500; $pop-normal-size: 12px; +$alert-color: #101010; @keyframes mountpop{ from{opacity: 0; scale: 0.95;} @@ -26,6 +27,9 @@ $pop-normal-size: 12px; background-color: #272727; z-index: 9999999; overflow: hidden; + &.r{ + width: 400px; + } &.sm{ width: 580px; } @@ -44,13 +48,42 @@ $pop-normal-size: 12px; &.unmount{ animation: unmountpop .17s ease-in-out forwards; } + &.alert{ + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + background-color: transparent; + border: none; + .modal-head{ + background-color: transparent; + padding: 0 0 8px; + .modal-close{ + width: 20px; + height: 20px; + background: url(../../public/static/images/canvas/alert_close.svg)no-repeat center; + } + } + .modal-body{ + background-color: #fff; + padding: 22px; + border-radius: 4px; + border: 1px solid #101010; + color: $alert-color; + .alert-title{ + font-size: 13px; + font-weight: 700; + color: $alert-color; + margin-bottom: 15px; + } + } + } } .modal-head{ display: flex; align-items: center; padding: 10px 24px; background-color: #000; - cursor: pointer; h1.title{ font-size: 13px; color: $pop-color; @@ -66,7 +99,7 @@ $pop-normal-size: 12px; } } .modal-body{ - padding: 15px; + padding: 24px; .modal-btn-wrap{ display: flex; align-items: center; @@ -123,9 +156,8 @@ $pop-normal-size: 12px; .modal-guide{ display: block; font-size: $pop-normal-size; - color: $pop-color; + color: $alert-color; font-weight: $pop-normal-weight; - line-height: 24px; } } @@ -181,12 +213,13 @@ $pop-normal-size: 12px; display: flex; align-items: center; span{ + flex: none; font-size: $pop-normal-size; color: $pop-color; font-weight: $pop-bold-weight; } .input-grid{ - width: 63px; + width: 54px; input{ width: 100%; } @@ -224,6 +257,7 @@ $pop-normal-size: 12px; display: flex; align-items: center; gap: 5px; + flex: 1; } .direction{ width: 22px; @@ -235,12 +269,13 @@ $pop-normal-size: 12px; background-size: 16px 15px; border-radius: 50%; transition: all .15s ease-in-out; + opacity: 0.6; &.down{transform: rotate(180deg);} &.left{transform: rotate(-90deg);} &.right{transform: rotate(90deg);} &:hover, &.act{ - background-color: #1083E3; + opacity: 1; } } @@ -261,7 +296,7 @@ $pop-normal-size: 12px; font-size: $pop-normal-size; } .input-move{ - width: 148px; + width: 130px; input{ width: 100%; } @@ -276,7 +311,6 @@ $pop-normal-size: 12px; // 배치면 초기 설정 .placement-table{ - padding: 9px; table{ table-layout: fixed; tr{ @@ -312,6 +346,31 @@ $pop-normal-size: 12px; background: url(../../public/static/images/canvas/pop_tip.svg)no-repeat center; background-size: cover; } + &.light{ + padding: 0; + th,td{ + color: $alert-color; + border-bottom: none; + border-top: 1px solid #EFEFEF; + } + th{ + padding: 14px 0; + } + tr{ + &:first-child{ + td, + th{ + padding-top: 14px; + } + } + &:last-child{ + td, + th{ + padding-bottom: 0px; + } + } + } + } } .pop-form-radio{ @@ -338,4 +397,72 @@ $pop-normal-size: 12px; color: $pop-color; font-weight: $pop-normal-weight; } +} + +// 외벽선 그리기 +.outline-wrap{ + padding: 24px 0; + border-bottom: 1px solid #424242; + .outline-inner{ + display: flex; + align-items: center; + margin-bottom: 14px; + &:last-child{ + margin-bottom: 0; + } + } +} +.outline-form{ + width: 50%; + display: flex; + align-items: center; + margin-right: 15px; + span{ + width: 60px; + flex: none; + font-size: $pop-normal-size; + font-weight: $pop-bold-weight; + color: $pop-color; + margin-right: 10px; + } + .reset-btn{ + flex: none; + width: 30px; + height: 30px; + background: transparent; + border: 1px solid #484848; + border-radius: 2px; + margin-left: 5px; + background-image: url(../../public/static/images/canvas/reset_ico.svg); + background-repeat: no-repeat; + background-size: 12px 12px; + background-position: center; + } + &:last-child{ + margin-right: 0; + } +} + +.cul-wrap{ + display: flex; + .outline-box{ + width: 50%; + margin-right: 15px; + .outline-form{ + width: 100%; + margin-bottom: 14px; + margin-right: 0; + &:last-child{ + margin-bottom: 0; + } + } + } + .cul-box{ + display: flex; + align-items: center; + justify-content: center; + width: 50%; + background-color: #3D3D3D; + border-radius: 2px ; + } } \ No newline at end of file diff --git a/src/styles/_reset.scss b/src/styles/_reset.scss index da3574d..2c5b1e2 100644 --- a/src/styles/_reset.scss +++ b/src/styles/_reset.scss @@ -143,7 +143,7 @@ button{ // button .btn-frame{ display: inline-block; - padding: 0 9px; + padding: 0 7px; height: 34px; line-height: 34px; border-radius: 2px; @@ -178,6 +178,7 @@ button{ border: 1px solid #484848; } &.modal{ + font-family: 'Noto Sans JP', sans-serif; background-color: #272727; border: 1px solid #484848; color: #aaa; @@ -355,13 +356,14 @@ input[type=text]{ height: 30px; line-height: 30px; border-radius: 2px; - background-color: #313131; + background-color: #323234; color: #fff; font-size: 12px; font-weight: 500; font-family: 'Pretendard', sans-serif; padding: 0 10px; letter-spacing: 0px; + text-align: right; &::placeholder{ opacity: 1; font-size: 12px; @@ -384,6 +386,7 @@ input[type=text]{ color: #45576F; font-weight: normal; transition: border-color .17s ease-in-out; + text-align: left; &:read-only{ background-color: #FAFAFA; color: #999999;