색상 지정 팝업 추가

This commit is contained in:
김창수 2024-10-17 10:37:54 +09:00
parent 19df156c7a
commit db4549a956
4 changed files with 132 additions and 6 deletions

View File

@ -56,6 +56,7 @@ import AdditionalColumnEdit from '@/components/canvas/modal/additionalfunction/m
import AdditionalBundleDelete from '@/components/canvas/modal/additionalfunction/moduleadditional/AdditionalBundleDelete' import AdditionalBundleDelete from '@/components/canvas/modal/additionalfunction/moduleadditional/AdditionalBundleDelete'
import AdditionalBundleEdit from '@/components/canvas/modal/additionalfunction/moduleadditional/AdditionalBundleEdit' import AdditionalBundleEdit from '@/components/canvas/modal/additionalfunction/moduleadditional/AdditionalBundleEdit'
import CanvasContextMenu from '@/components/canvas/CanvasContextMenu' import CanvasContextMenu from '@/components/canvas/CanvasContextMenu'
import ColorSelect from '@/components/canvas/modal/colorselect/ColorSelect'
export default function CanvasPage() { export default function CanvasPage() {
const modalOption = useRecoilValue(modalState); const modalOption = useRecoilValue(modalState);
@ -131,7 +132,7 @@ export default function CanvasPage() {
{/* <PlaneShapeOption/> */} {/* <PlaneShapeOption/> */}
{/* 오브젝트 배치*/} {/* 오브젝트 배치*/}
<ObjectOption/> {/* <ObjectOption/> */}
{/* 표시변겅 */} {/* 표시변겅 */}
{/* <DisplayChange/> */} {/* <DisplayChange/> */}
@ -151,10 +152,10 @@ export default function CanvasPage() {
{/* <RoofModuleOption/> */} {/* <RoofModuleOption/> */}
{/* 육지붕모듈 선택 */} {/* 육지붕모듈 선택 */}
<HexagonalRoofOption/> {/* <HexagonalRoofOption/> */}
{/* 회로 및 가대설정 */} {/* 회로 및 가대설정 */}
<CircuitStandSetting/> {/* <CircuitStandSetting/> */}
{/* 모듈 부가기능 */} {/* 모듈 부가기능 */}
@ -174,6 +175,9 @@ export default function CanvasPage() {
{/* <AdditionalColumnEdit/> */} {/* <AdditionalColumnEdit/> */}
{/* <AdditionalBundleDelete/> */} {/* <AdditionalBundleDelete/> */}
{/* <AdditionalBundleEdit/> */} {/* <AdditionalBundleEdit/> */}
{/* 색상 팝업 */}
<ColorSelect/>
</div> </div>
</div> </div>
</div> </div>

View File

@ -0,0 +1,26 @@
import ColorPicker from "@/components/common/colorpicker/ColorPicker";
import WithDraggable from "@/components/common/draggable/withDraggable";
export default function ColorSelect (){
return(
<WithDraggable isShow={true}>
<div className={`modal-pop-wrap lr`}>
<div className="modal-head">
<h1 className="title">カラー設定</h1>
<button className="modal-close">닫기</button>
</div>
<div className="modal-body">
<div className="color-setting-wrap">
<div className="color-tit">COLOR PICKER</div>
<div className="color-picker">
<ColorPicker/>
</div>
</div>
<div className="grid-btn-wrap">
<button className="btn-frame modal act">保存</button>
</div>
</div>
</div>
</WithDraggable>
)
}

View File

@ -7,10 +7,29 @@ export default function ColorPicker() {
return ( return (
<> <>
<div style={{ width: '300px', padding: '20px' }}> <div>
<HexColorPicker color={color} onChange={setColor} /> <HexColorPicker color={color} onChange={setColor} />
</div> </div>
<p>{color}</p> <div className='hex-color-box'>
<div className="color-box-tit">HEX</div>
<div className='color-hex-input'>
<input type="text" className='input-origin' value={color} onChange={(e) => setColor(e.target.value)}/>
</div>
<div className="color-box" style={{backgroundColor : color}}></div>
</div>
<div className="default-color-wrap">
<div className='default-tit'>基本色</div>
<div className="color-button-wrap">
<button className='default-color' style={{backgroundColor: '#EA575D'}} onClick={() => setColor('#EA575D')}></button>
<button className='default-color' style={{backgroundColor: '#F29955'}} onClick={() => setColor('#F29955')}></button>
<button className='default-color' style={{backgroundColor: '#F2C957'}} onClick={() => setColor('#F2C957')}></button>
<button className='default-color' style={{backgroundColor: '#32975D'}} onClick={() => setColor('#32975D')}></button>
<button className='default-color' style={{backgroundColor: '#3D7FED'}} onClick={() => setColor('#3D7FED')}></button>
<button className='default-color' style={{backgroundColor: '#828282'}} onClick={() => setColor('#828282')}></button>
<button className='default-color' style={{backgroundColor: '#ffffff'}} onClick={() => setColor('#ffffff')}></button>
<button className='default-color' style={{backgroundColor: '#000000'}} onClick={() => setColor('#000000')}></button>
</div>
</div>
</> </>
) )
} }

View File

@ -1505,7 +1505,7 @@ $alert-color: #101010;
width: 16px; width: 16px;
height: 16px; height: 16px;
&.pink{ &.pink{
border: 2px solid #EA10AC; border: 2px solid #ce1c9c;
background-color: #16417D; background-color: #16417D;
} }
&.white{ &.white{
@ -1514,4 +1514,81 @@ $alert-color: #101010;
} }
} }
} }
}
// color setting
.color-setting-wrap{
padding-bottom: 15px;
border-bottom: 1px solid #424242;
.color-tit{
font-size: 13px;
font-weight: 500;
color: #ffffff;
margin-bottom: 10px;
}
.color-picker{
.react-colorful{
width: 100%;
height: auto;
gap: 20px;
.react-colorful__pointer{
width: 15px;
height: 15px;
border: 4px solid #Fff;
}
.react-colorful__saturation{
border-radius: 2px;
height: 200px;
border-bottom: 5px solid #000;
}
.react-colorful__last-control{
border-radius: 2px;
height: 10px;
}
}
.hex-color-box{
display: flex;
align-items: center;
margin-top: 15px;
.color-box-tit{
font-size: 12px;
color: #fff;
font-weight: 500;
margin-right: 10px;
}
.color-hex-input{
width: 150px;
margin-right: 5px;
input{
width: 100%;
}
}
.color-box{
display: block;
width: 30px;
height: 30px;
border-radius: 4px;
}
}
.default-color-wrap{
margin-top: 25px;
.default-tit{
font-size: 12px;
font-weight: 500;
color: #fff;
margin-bottom: 10px;
}
.color-button-wrap{
display: grid;
grid-template-columns: repeat(8, 1fr);
gap: 21px;
.default-color{
display: block;
width: 100%;
height: 30px;
border-radius: 4px;
}
}
}
}
} }