Merge branch 'dev' into dev-yj

This commit is contained in:
yjnoh 2025-01-06 16:43:19 +09:00
commit dacad22e9b
12 changed files with 3720 additions and 3364 deletions

View File

@ -125,7 +125,10 @@ export default function MainContents() {
<>
<div className="notice-day pre">{dayjs(recentNoticeList[0]?.regDt).format('YYYY.MM.DD')}</div>
<div className="notice-title">{recentNoticeList[0]?.title}</div>
<div className="notice-contents">{recentNoticeList[0]?.contents}</div>
<div
className="notice-contents"
dangerouslySetInnerHTML={{ __html: recentNoticeList[0]?.contents ? recentNoticeList[0].contents.replaceAll('\n', '<br/>') : '' }}
></div>
</>
) : (
<MainSkeleton count={5} />

View File

@ -50,17 +50,15 @@ export default function Stuff() {
// }
// Navigator clipboard api needs a secure context (https)
if (navigator.clipboard && window.isSecureContext) {
console.log('확인11', value)
await navigator.clipboard
.writeText(value)
.then(() => {
alert(getMessage('stuff.detail.header.successCopy'))
})
.catch((err) => {
.catch(() => {
alert(getMessage('stuff.detail.header.failCopy'))
})
} else {
console.log('확인22', value)
// Use the 'out of viewport hidden text area' trick
const textArea = document.createElement('textArea')
textArea.value = value
@ -73,7 +71,6 @@ export default function Stuff() {
textArea.select()
try {
console.log('deprecated::document.execCommand(`copy`)', document.execCommand('copy'))
document.execCommand('copy')
alert(getMessage('stuff.detail.header.successCopy'))
} catch (err) {

View File

@ -1,7 +1,7 @@
'use client'
import { useState, useEffect, useRef, useContext } from 'react'
import { useRouter, useSearchParams, usePathname } from 'next/navigation'
import { useRouter, useSearchParams } from 'next/navigation'
import { Button } from '@nextui-org/react'
import Select, { components } from 'react-select'
import Link from 'next/link'
@ -147,7 +147,8 @@ export default function StuffDetail() {
let capacity
if (origin) {
capacity = origin / 1000
return capacity.toFixed(3)
//#400 2
return capacity.toFixed(2) + 'kW'
} else {
return null
}
@ -317,6 +318,7 @@ export default function StuffDetail() {
setIsFormValid(true)
}
promiseGet({ url: `/api/object/${objectNo}/detail` }).then((res) => {
// console.log('res::::', res.data)
if (res.status === 200) {
if (isObjectNotEmpty(res.data)) {
let surfaceTypeValue
@ -1450,15 +1452,44 @@ export default function StuffDetail() {
)
}
//
const getCellDoubleClicked = (params) => {
// if (params?.column?.colId !== 'estimateDate') {
// if (params?.data?.planNo && params?.data?.objectNo) {
// let objectNo = params?.data?.objectNo
// let planNo = params?.data?.planNo
// router.push(`/floor-plan?pid=${planNo}&objectNo=${objectNo}`)
// }
// }
}
return (
<>
{(editMode === 'NEW' && (
<form onSubmit={handleSubmit(onValid)}>
<div className="sub-table-box">
<div className="promise-title-wrap">
<div className="promise-gudie">
<span className="important">*</span>
{getMessage('stuff.detail.required')}
</div>
<div className="left-unit-box">
{!isFormValid ? (
<Button className="btn-origin grey mr5" onPress={onTempSave}>
{getMessage('stuff.detail.btn.tempSave')}
</Button>
) : (
<Button type="submit" className="btn-origin navy mr5">
{getMessage('stuff.detail.btn.save')}
</Button>
)}
<Link href="/management/stuff" scroll={false}>
<button type="button" className="btn-origin grey">
{getMessage('stuff.detail.btn.moveList')}
</button>
</Link>
</div>
</div>
<div className="infomation-table">
<table>
<colgroup>
@ -1692,7 +1723,7 @@ export default function StuffDetail() {
onChange={onSelectionChange2}
getOptionLabel={(x) => x.saleStoreName}
getOptionValue={(x) => x.saleStoreId}
isDisabled={otherSaleStoreList.length > 0 ? false : true}
isDisabled={otherSaleStoreList.length > 1 ? false : true}
isClearable={true}
value={otherSaleStoreList.filter(function (option) {
return option.saleStoreId === otherSelOptions
@ -1952,9 +1983,47 @@ export default function StuffDetail() {
<>
<form onSubmit={handleSubmit(onValid)}>
<div className="sub-table-box">
<div className="promise-title-wrap">
<div className="promise-gudie">
<span className="important">*</span> {getMessage('stuff.detail.required')}
</div>
{managementState?.tempFlg === '0' ? (
<>
<div className="left-unit-box">
<Link href="/management/stuff" scroll={false}>
<button type="button" className="btn-origin grey mr5">
{getMessage('stuff.detail.btn.moveList')}
</button>
</Link>
<Button type="submit" className="btn-origin navy mr5">
{getMessage('stuff.detail.btn.save')}
</Button>
<Button type="button" className="btn-origin grey" onPress={onDelete}>
{getMessage('stuff.detail.btn.delete')}
</Button>
</div>
</>
) : (
<>
<div className="left-unit-box">
{!isFormValid ? (
<Button className="btn-origin grey mr5" onPress={onTempSave}>
{getMessage('stuff.detail.btn.tempSave')}
</Button>
) : (
<Button type="submit" className="btn-origin navy mr5">
{getMessage('stuff.detail.btn.save')}
</Button>
)}
<Link href="/management/stuff" scroll={false}>
<button type="button" className="btn-origin grey">
{getMessage('stuff.detail.btn.moveList')}
</button>
</Link>
</div>
</>
)}
</div>
<div className="infomation-wrap">
<div className="infomation-table">
<table>
@ -2492,7 +2561,7 @@ export default function StuffDetail() {
</div>
<div className="information-grid">
<div className="q-grid no-cols">
<StuffPlanQGrid {...planGridProps} />
<StuffPlanQGrid {...planGridProps} getCellDoubleClicked={getCellDoubleClicked} />
</div>
</div>
{/* 진짜R 플랜끝 */}

View File

@ -22,17 +22,15 @@ export default function StuffHeader() {
const copyObjectNo = async (objectNo) => {
if (navigator.clipboard && window.isSecureContext) {
console.log('확인11', objectNo)
await navigator.clipboard
.writeText(objectNo)
.then(() => {
alert(getMessage('stuff.detail.header.successCopy'))
})
.catch((err) => {
.catch(() => {
alert(getMessage('stuff.detail.header.failCopy'))
})
} else {
console.log('확인22', objectNo)
// Use the 'out of viewport hidden text area' trick
const textArea = document.createElement('textArea')
textArea.value = objectNo
@ -45,7 +43,6 @@ export default function StuffHeader() {
textArea.select()
try {
console.log('deprecated::document.execCommand(`copy`)', document.execCommand('copy'))
document.execCommand('copy')
alert(getMessage('stuff.detail.header.successCopy'))
} catch (err) {

View File

@ -27,13 +27,10 @@ export default function StuffPlanQGrid(props) {
planGridData ? setRowData(planGridData) : ''
}, [planGridData])
// const onGridReady = useCallback(
// (params) => {
// setGridApi(params.api)
// planGridData ? setRowData(planGridData) : ''
// },
// [planGridData],
// )
//
const onCellDoubleClicked = useCallback((params) => {
props.getCellDoubleClicked(params)
}, [])
return (
<div className="ag-theme-quartz" style={{ height: '100%' }}>
@ -47,6 +44,7 @@ export default function StuffPlanQGrid(props) {
pagination={isPageable}
domLayout="autoHeight"
suppressCellFocus={true}
onCellDoubleClicked={onCellDoubleClicked}
overlayNoRowsTemplate={`<span className="ag-overlay-loading-center">${getMessage('stuff.grid.noData')}</span>`}
/>
</div>

View File

@ -86,14 +86,14 @@ export default function StuffSearchCondition() {
if (stuffSearch.code === 'S') {
if (stuffSearch.pageNo !== 1) {
setStuffSearch({
schObjectNo: objectNo ? objectNo : stuffSearch.schObjectNo,
schSaleStoreName: saleStoreName ? saleStoreName : '',
schAddress: address ? address : '',
schObjectName: objectName ? objectName : '',
schDispCompanyName: dispCompanyName ? dispCompanyName : '',
schObjectNo: objectNo ? objectNo.trim() : stuffSearch.schObjectNo.trim(),
schSaleStoreName: saleStoreName ? saleStoreName.trim() : '',
schAddress: address ? address.trim() : '',
schObjectName: objectName ? objectName.trim() : '',
schDispCompanyName: dispCompanyName ? dispCompanyName.trim() : '',
schSelSaleStoreId: stuffSearch?.schSelSaleStoreId ? stuffSearch.schSelSaleStoreId : '',
schOtherSelSaleStoreId: stuffSearch?.schOtherSelSaleStoreId ? stuffSearch.schOtherSelSaleStoreId : '',
schReceiveUser: receiveUser ? receiveUser : '',
schReceiveUser: receiveUser ? receiveUser.trim() : '',
schDateType: dateType,
schFromDt: startDate ? dayjs(startDate).format('YYYY-MM-DD') : '',
schToDt: endDate ? dayjs(endDate).format('YYYY-MM-DD') : '',
@ -106,14 +106,14 @@ export default function StuffSearchCondition() {
})
} else {
setStuffSearch({
schObjectNo: objectNo ? objectNo : stuffSearch.schObjectNo,
schSaleStoreName: saleStoreName ? saleStoreName : '',
schAddress: address ? address : '',
schObjectName: objectName ? objectName : '',
schDispCompanyName: dispCompanyName ? dispCompanyName : '',
schObjectNo: objectNo ? objectNo.trim() : stuffSearch.schObjectNo.trim(),
schSaleStoreName: saleStoreName ? saleStoreName.trim() : '',
schAddress: address ? address.trim() : '',
schObjectName: objectName ? objectName.trim() : '',
schDispCompanyName: dispCompanyName ? dispCompanyName.trim() : '',
schSelSaleStoreId: stuffSearch?.schSelSaleStoreId ? stuffSearch.schSelSaleStoreId : '',
schOtherSelSaleStoreId: stuffSearch?.schOtherSelSaleStoreId ? stuffSearch.schOtherSelSaleStoreId : '',
schReceiveUser: receiveUser ? receiveUser : '',
schReceiveUser: receiveUser ? receiveUser.trim() : '',
schDateType: dateType,
schFromDt: startDate ? dayjs(startDate).format('YYYY-MM-DD') : '',
schToDt: endDate ? dayjs(endDate).format('YYYY-MM-DD') : '',
@ -127,14 +127,14 @@ export default function StuffSearchCondition() {
}
} else if (stuffSearch.code === 'FINISH') {
setStuffSearch({
schObjectNo: objectNo,
schSaleStoreName: saleStoreName,
schAddress: address,
schObjectName: objectName,
schDispCompanyName: dispCompanyName,
schObjectNo: objectNo.trim(),
schSaleStoreName: saleStoreName.trim(),
schAddress: address.trim(),
schObjectName: objectName.trim(),
schDispCompanyName: dispCompanyName.trim(),
schSelSaleStoreId: schSelSaleStoreId,
schOtherSelSaleStoreId: otherSaleStoreId,
schReceiveUser: receiveUser,
schReceiveUser: receiveUser.trim(),
schDateType: dateType,
schFromDt: startDate ? dayjs(startDate).format('YYYY-MM-DD') : '',
schToDt: endDate ? dayjs(endDate).format('YYYY-MM-DD') : '',
@ -146,14 +146,14 @@ export default function StuffSearchCondition() {
} else if (stuffSearch.code === 'E') {
if (session.storeId !== 'T01' && session.storeLvl === '1') {
setStuffSearch({
schObjectNo: stuffSearch?.schObjectNo ? stuffSearch.schObjectNo : objectNo,
schSaleStoreName: stuffSearch?.schSaleStoreName ? stuffSearch.schSaleStoreName : saleStoreName,
schAddress: stuffSearch?.schAddress ? stuffSearch.schAddress : address,
schObjectName: stuffSearch?.schObjectName ? stuffSearch.schObjectName : objectName,
schDispCompanyName: stuffSearch?.schDispCompanyName ? stuffSearch.schDispCompanyName : dispCompanyName,
schObjectNo: stuffSearch?.schObjectNo ? stuffSearch.schObjectNo.trim() : objectNo.trim(),
schSaleStoreName: stuffSearch?.schSaleStoreName ? stuffSearch.schSaleStoreName.trim() : saleStoreName.trim(),
schAddress: stuffSearch?.schAddress ? stuffSearch.schAddress.trim() : address.trim(),
schObjectName: stuffSearch?.schObjectName ? stuffSearch.schObjectName.trim() : objectName.trim(),
schDispCompanyName: stuffSearch?.schDispCompanyName ? stuffSearch.schDispCompanyName.trim() : dispCompanyName.trim(),
schSelSaleStoreId: otherSaleStoreId ? schSelSaleStoreId : '',
schOtherSelSaleStoreId: otherSaleStoreId,
schReceiveUser: stuffSearch?.schReceiveUser ? stuffSearch.schReceiveUser : receiveUser,
schReceiveUser: stuffSearch?.schReceiveUser ? stuffSearch.schReceiveUser.trim() : receiveUser.trim(),
schDateType: dateType,
schFromDt: startDate ? dayjs(startDate).format('YYYY-MM-DD') : '',
schToDt: endDate ? dayjs(endDate).format('YYYY-MM-DD') : '',
@ -167,35 +167,34 @@ export default function StuffSearchCondition() {
} else if (session.storeId === 'T01') {
if (stuffSearch.pageNo !== 1) {
setStuffSearch({
schObjectNo: objectNo ? objectNo : stuffSearch.schObjectNo,
schSaleStoreName: saleStoreName ? saleStoreName : '',
schAddress: address ? address : '',
schObjectName: objectName ? objectName : '',
schDispCompanyName: dispCompanyName ? dispCompanyName : '',
schObjectNo: objectNo ? objectNo.trim() : stuffSearch.schObjectNo.trim(),
schSaleStoreName: saleStoreName ? saleStoreName.trim() : '',
schAddress: address ? address.trim() : '',
schObjectName: objectName ? objectName.trim() : '',
schDispCompanyName: dispCompanyName ? dispCompanyName.trim() : '',
schSelSaleStoreId: stuffSearch?.schSelSaleStoreId ? stuffSearch.schSelSaleStoreId : '',
schOtherSelSaleStoreId: stuffSearch?.schOtherSelSaleStoreId ? stuffSearch.schOtherSelSaleStoreId : '',
schReceiveUser: receiveUser ? receiveUser : '',
schReceiveUser: receiveUser ? receiveUser.trim() : '',
schDateType: dateType,
schFromDt: startDate ? dayjs(startDate).format('YYYY-MM-DD') : '',
schToDt: endDate ? dayjs(endDate).format('YYYY-MM-DD') : '',
code: 'E',
startRow: 1,
endRow: 1 * stuffSearch?.pageSize,
// schSortType: stuffSearch?.schSortType ? stuffSearch.schSortType : 'R',
schSortType: 'R',
pageNo: 1,
pageSize: stuffSearch?.pageSize,
})
} else {
setStuffSearch({
schObjectNo: stuffSearch?.schObjectNo ? stuffSearch.schObjectNo : objectNo,
schSaleStoreName: stuffSearch?.schSaleStoreName ? stuffSearch.schSaleStoreName : saleStoreName,
schAddress: stuffSearch?.schAddress ? stuffSearch.schAddress : address,
schObjectName: stuffSearch?.schObjectName ? stuffSearch.schObjectName : objectName,
schDispCompanyName: stuffSearch?.schDispCompanyName ? stuffSearch.schDispCompanyName : dispCompanyName,
schObjectNo: stuffSearch?.schObjectNo ? stuffSearch.schObjectNo.trim() : objectNo.trim(),
schSaleStoreName: stuffSearch?.schSaleStoreName ? stuffSearch.schSaleStoreName.trim() : saleStoreName.trim(),
schAddress: stuffSearch?.schAddress ? stuffSearch.schAddress.trim() : address.trim(),
schObjectName: stuffSearch?.schObjectName ? stuffSearch.schObjectName.trim() : objectName.trim(),
schDispCompanyName: stuffSearch?.schDispCompanyName ? stuffSearch.schDispCompanyName.trim() : dispCompanyName.trim(),
schSelSaleStoreId: schSelSaleStoreId,
schOtherSelSaleStoreId: otherSaleStoreId,
schReceiveUser: stuffSearch?.schReceiveUser ? stuffSearch.schReceiveUser : receiveUser,
schReceiveUser: stuffSearch?.schReceiveUser ? stuffSearch.schReceiveUser.trim() : receiveUser.trim(),
schDateType: dateType,
schFromDt: startDate ? dayjs(startDate).format('YYYY-MM-DD') : '',
schToDt: endDate ? dayjs(endDate).format('YYYY-MM-DD') : '',
@ -209,14 +208,14 @@ export default function StuffSearchCondition() {
}
} else {
setStuffSearch({
schObjectNo: stuffSearch?.schObjectNo ? stuffSearch.schObjectNo : objectNo,
schSaleStoreName: stuffSearch?.schSaleStoreName ? stuffSearch.schSaleStoreName : saleStoreName,
schAddress: stuffSearch?.schAddress ? stuffSearch.schAddress : address,
schObjectName: stuffSearch?.schObjectName ? stuffSearch.schObjectName : objectName,
schDispCompanyName: stuffSearch?.schDispCompanyName ? stuffSearch.schDispCompanyName : dispCompanyName,
schObjectNo: stuffSearch?.schObjectNo ? stuffSearch.schObjectNo.trim() : objectNo.trim(),
schSaleStoreName: stuffSearch?.schSaleStoreName ? stuffSearch.schSaleStoreName.trim() : saleStoreName.trim(),
schAddress: stuffSearch?.schAddress ? stuffSearch.schAddress.trim() : address.trim(),
schObjectName: stuffSearch?.schObjectName ? stuffSearch.schObjectName.trim() : objectName.trim(),
schDispCompanyName: stuffSearch?.schDispCompanyName ? stuffSearch.schDispCompanyName.trim() : dispCompanyName.trim(),
schSelSaleStoreId: schSelSaleStoreId,
schOtherSelSaleStoreId: otherSaleStoreId,
schReceiveUser: stuffSearch?.schReceiveUser ? stuffSearch.schReceiveUser : receiveUser,
schReceiveUser: stuffSearch?.schReceiveUser ? stuffSearch.schReceiveUser.trim() : receiveUser.trim(),
schDateType: dateType,
schFromDt: startDate ? dayjs(startDate).format('YYYY-MM-DD') : '',
schToDt: endDate ? dayjs(endDate).format('YYYY-MM-DD') : '',
@ -230,14 +229,14 @@ export default function StuffSearchCondition() {
}
} else {
setStuffSearch({
schObjectNo: objectNo,
schSaleStoreName: saleStoreName,
schAddress: address,
schObjectName: objectName,
schDispCompanyName: dispCompanyName,
schObjectNo: objectNo.trim(),
schSaleStoreName: saleStoreName.trim(),
schAddress: address.trim(),
schObjectName: objectName.trim(),
schDispCompanyName: dispCompanyName.trim(),
schSelSaleStoreId: schSelSaleStoreId,
schOtherSelSaleStoreId: otherSaleStoreId,
schReceiveUser: receiveUser,
schReceiveUser: receiveUser.trim(),
schDateType: dateType,
schFromDt: startDate ? dayjs(startDate).format('YYYY-MM-DD') : '',
schToDt: endDate ? dayjs(endDate).format('YYYY-MM-DD') : '',
@ -347,6 +346,8 @@ export default function StuffSearchCondition() {
get({ url: url }).then((res) => {
if (!isEmptyArray(res)) {
res.map((row) => {
//#399
row.saleStoreName = row.saleStoreName + ' - ' + row.saleStoreId
row.value = row.saleStoreId
row.label = row.saleStoreName
})
@ -367,6 +368,8 @@ export default function StuffSearchCondition() {
get({ url: url }).then((res) => {
if (!isEmptyArray(res)) {
res.map((row) => {
//#399
row.saleStoreName = row.saleStoreName + ' - ' + row.saleStoreId
row.value = row.saleStoreId
row.label = row.saleStoreName
})
@ -456,6 +459,8 @@ export default function StuffSearchCondition() {
get({ url: url }).then((res) => {
if (!isEmptyArray(res)) {
res.map((row) => {
//#399
row.saleStoreName = row.saleStoreName + ' - ' + row.saleStoreId
row.value = row.saleStoreId
row.label = row.saleStoreName
})
@ -474,6 +479,10 @@ export default function StuffSearchCondition() {
if (stuffSearch.code === 'S') {
stuffSearch.schSelSaleStoreId = ''
stuffSearch.schOtherSelSaleStoreId = ''
} else if (stuffSearch.code === 'E') {
//#401
stuffSearch.schSelSaleStoreId = ''
stuffSearch.schOtherSelSaleStoreId = ''
}
//2

View File

@ -42,7 +42,7 @@ export function useRoofFn() {
const cols = Math.floor(patternSourceCanvas.width / patternSize.width)
ctx.strokeStyle = mode === 'allPainted' ? 'black' : ROOF_COLOR[index]
ctx.lineWidth = mode === 'allPainted' ? 1 : 0.4
ctx.lineWidth = 2
ctx.fillStyle = mode === 'allPainted' ? 'rgba(0, 159, 64, 0.7)' : 'white'
if (trestleMode) {

View File

@ -43,6 +43,8 @@ const defaultDotLineGridSetting = {
LINE: false,
}
let previousRoofMaterialsYn = 'N'; // 지붕재 select 정보 비교 후 변경된 것이 없으면 1회만 실행
export function useCanvasSetting() {
const canvas = useRecoilValue(canvasState)
// canvas가 null이 아닐 때에만 getObjects 호출
@ -147,12 +149,13 @@ export function useCanvasSetting() {
const previousRoofMaterialsRef = useRef(null);
useEffect(() => { // 지붕재 select 정보 비교 후 변경된 것이 없으면 1회만 실행
if (JSON.stringify(previousRoofMaterialsRef.current) !== JSON.stringify(roofMaterials)) {
useEffect(() => {
// 지붕재 select 정보가 존재해야 배치면초기설정 DB 정보 비교 후 지붕재 정보를 가져올 수 있음
if (roofMaterials) {
if (roofMaterials.length !== 0 && JSON.stringify(previousRoofMaterialsRef.current) !== JSON.stringify(roofMaterials)) {
// 지붕재 select 정보 비교 후 변경된 것이 없으면 1회만 실행
if (roofMaterials && previousRoofMaterialsYn === 'N') {
fetchBasicSettings();
previousRoofMaterialsYn = 'Y';
}
// 이전 값을 업데이트

View File

@ -157,7 +157,7 @@ export function useRoofAllocationSetting(id) {
}
const apply = () => {
const roofBases = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF && !obj.isFixed)
const roofBases = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF)
const wallLines = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.WALL)
roofBases.forEach((roofBase) => {
try {

View File

@ -103,6 +103,7 @@ export function useRoofShapePassivitySetting(id) {
strokeWidth,
})
})
canvas.renderAll()
if (!currentObject) {
return
}
@ -116,7 +117,6 @@ export function useRoofShapePassivitySetting(id) {
})
currentLineRef.current = currentObject
canvas.renderAll()
}, [currentObject])

View File

@ -26,14 +26,14 @@
min-width: 1280px;
padding-bottom: 0;
background-color: #383838;
transition: padding .17s ease-in-out;
transition: padding 0.17s ease-in-out;
z-index: 999;
.canvas-menu-inner {
position: relative;
display: flex;
align-items: center;
padding: 0 40px 0 20px;
background-color: #2C2C2C;
background-color: #2c2c2c;
height: 46.8px;
z-index: 999;
.canvas-menu-list {
@ -53,7 +53,7 @@
font-weight: 600;
padding: 15px 20px;
opacity: 0.55;
transition: all .17s ease-in-out;
transition: all 0.17s ease-in-out;
.menu-icon {
display: block;
width: 14px;
@ -62,13 +62,27 @@
background-position: center;
background-size: contain;
margin-right: 10px;
&.con00{background-image: url(/static/images/canvas/menu_icon00.svg);}
&.con01{background-image: url(/static/images/canvas/menu_icon01.svg);}
&.con02{background-image: url(/static/images/canvas/menu_icon02.svg);}
&.con03{background-image: url(/static/images/canvas/menu_icon03.svg);}
&.con04{background-image: url(/static/images/canvas/menu_icon04.svg);}
&.con05{background-image: url(/static/images/canvas/menu_icon05.svg);}
&.con06{background-image: url(/static/images/canvas/menu_icon06.svg);}
&.con00 {
background-image: url(/static/images/canvas/menu_icon00.svg);
}
&.con01 {
background-image: url(/static/images/canvas/menu_icon01.svg);
}
&.con02 {
background-image: url(/static/images/canvas/menu_icon02.svg);
}
&.con03 {
background-image: url(/static/images/canvas/menu_icon03.svg);
}
&.con04 {
background-image: url(/static/images/canvas/menu_icon04.svg);
}
&.con05 {
background-image: url(/static/images/canvas/menu_icon05.svg);
}
&.con06 {
background-image: url(/static/images/canvas/menu_icon06.svg);
}
}
}
&.active {
@ -100,26 +114,47 @@
width: 30px;
height: 30px;
border-radius: 2px;
background-color: #3D3D3D;
background-color: #3d3d3d;
background-position: center;
background-repeat: no-repeat;
background-size: 15px 15px;
transition: all .17s ease-in-out;
&.btn01{background-image: url(../../public/static/images/canvas/side_icon03.svg);}
&.btn02{background-image: url(../../public/static/images/canvas/side_icon02.svg);}
&.btn03{background-image: url(../../public/static/images/canvas/side_icon01.svg);}
&.btn04{background-image: url(../../public/static/images/canvas/side_icon04.svg);}
&.btn05{background-image: url(../../public/static/images/canvas/side_icon05.svg);}
&.btn06{background-image: url(../../public/static/images/canvas/side_icon06.svg);}
&.btn07{background-image: url(../../public/static/images/canvas/side_icon07.svg);}
&.btn08{background-image: url(../../public/static/images/canvas/side_icon08.svg);}
&.btn09{background-image: url(../../public/static/images/canvas/side_icon09.svg);}
&.btn10{background-image: url(../../public/static/images/canvas/side_icon10.svg); background-size: 15px 14px;}
transition: all 0.17s ease-in-out;
&.btn01 {
background-image: url(../../public/static/images/canvas/side_icon03.svg);
}
&.btn02 {
background-image: url(../../public/static/images/canvas/side_icon02.svg);
}
&.btn03 {
background-image: url(../../public/static/images/canvas/side_icon01.svg);
}
&.btn04 {
background-image: url(../../public/static/images/canvas/side_icon04.svg);
}
&.btn05 {
background-image: url(../../public/static/images/canvas/side_icon05.svg);
}
&.btn06 {
background-image: url(../../public/static/images/canvas/side_icon06.svg);
}
&.btn07 {
background-image: url(../../public/static/images/canvas/side_icon07.svg);
}
&.btn08 {
background-image: url(../../public/static/images/canvas/side_icon08.svg);
}
&.btn09 {
background-image: url(../../public/static/images/canvas/side_icon09.svg);
}
&.btn10 {
background-image: url(../../public/static/images/canvas/side_icon10.svg);
background-size: 15px 14px;
}
&:hover {
background-color: #1083E3;
background-color: #1083e3;
}
&.active {
background-color: #1083E3;
background-color: #1083e3;
}
}
}
@ -135,11 +170,21 @@
background-repeat: no-repeat;
background-position: center;
background-size: contain;
&.ico01{background-image: url(../../public/static/images/canvas/ico-flx01.svg);}
&.ico02{background-image: url(../../public/static/images/canvas/ico-flx02.svg);}
&.ico03{background-image: url(../../public/static/images/canvas/ico-flx03.svg);}
&.ico04{background-image: url(../../public/static/images/canvas/ico-flx04.svg);}
&.ico05{background-image: url(../../public/static/images/canvas/ico-flx05.svg);}
&.ico01 {
background-image: url(../../public/static/images/canvas/ico-flx01.svg);
}
&.ico02 {
background-image: url(../../public/static/images/canvas/ico-flx02.svg);
}
&.ico03 {
background-image: url(../../public/static/images/canvas/ico-flx03.svg);
}
&.ico04 {
background-image: url(../../public/static/images/canvas/ico-flx04.svg);
}
&.ico05 {
background-image: url(../../public/static/images/canvas/ico-flx05.svg);
}
}
.name {
font-size: 12px;
@ -169,16 +214,16 @@
button {
margin-left: auto;
height: 100%;
background-color: #4B4B4B;
background-color: #4b4b4b;
font-size: 13px;
font-weight: 400;
color: #fff;
padding: 0 7.5px;
transition: all .17s ease-in-out;
transition: all 0.17s ease-in-out;
}
&.on {
button {
background-color: #1083E3;
background-color: #1083e3;
}
}
}
@ -187,7 +232,7 @@
align-items: center;
justify-content: center;
gap: 10px;
background-color: #3D3D3D;
background-color: #3d3d3d;
border-radius: 2px;
width: 100px;
height: 30px;
@ -221,7 +266,7 @@
background-color: #383838;
width: 100%;
height: 50px;
transition: all .17s ease-in-out;
transition: all 0.17s ease-in-out;
.canvas-depth2-inner {
display: flex;
align-items: center;
@ -273,7 +318,7 @@
align-items: center;
margin-right: 34px;
height: 100%;
transition: all .17s ease-in-out;
transition: all 0.17s ease-in-out;
button {
position: relative;
font-size: 12px;
@ -313,7 +358,7 @@
// canvas-layout
.canvas-content {
padding-top: 46.8px;
transition: all .17s ease-in-out;
transition: all 0.17s ease-in-out;
.canvas-frame {
height: calc(100vh - 129.3px);
}
@ -331,11 +376,11 @@
top: 92.8px;
left: 0;
display: flex;
background-color: #1C1C1C;
background-color: #1c1c1c;
border-top: 1px solid #000;
width: 100%;
min-width: 1280px;
transition: all .17s ease-in-out;
transition: all 0.17s ease-in-out;
z-index: 99;
&.active {
top: calc(92.8px + 50px);
@ -351,14 +396,14 @@
padding: 9.6px 20px;
border-right: 1px solid #000;
min-width: 0;
transition: all .17s ease-in-out;
transition: all 0.17s ease-in-out;
span {
display: flex;
align-items: center;
width: 100%;
font-size: 12px;
font-family: 'Pretendard', sans-serif;
color: #AAA;
color: #aaa;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
@ -396,9 +441,9 @@
justify-content: center;
width: 45px;
padding: 13.5px 0;
background-color: #1C1C1C;
background-color: #1c1c1c;
border-right: 1px solid #000;
transition: all .17s ease-in-out;
transition: all 0.17s ease-in-out;
span {
display: block;
width: 9px;
@ -416,9 +461,9 @@
.canvas-frame {
position: relative;
// height: calc(100% - 36.5px);
background-color: #F4F4F7;
background-color: #f4f4f7;
overflow: auto;
transition: all .17s ease-in-out;
transition: all 0.17s ease-in-out;
// &::-webkit-scrollbar {
// width: 10px;
// height: 10px;
@ -453,7 +498,7 @@
min-width: 1280px;
height: 46px;
border-bottom: 1px solid #000;
background: #2C2C2C;
background: #2c2c2c;
z-index: 999;
.sub-header-inner {
display: flex;
@ -476,7 +521,9 @@
background-repeat: no-repeat;
background-position: center;
background-size: cover;
&.drawing{background-image: url(../../public/static/images/main/drawing_icon.svg);}
&.drawing {
background-image: url(../../public/static/images/main/drawing_icon.svg);
}
}
}
&:after {
@ -487,7 +534,7 @@
transform: translateY(-50%);
width: 1px;
height: 16px;
background-color: #D9D9D9;
background-color: #d9d9d9;
}
&:first-child {
padding-left: 0;
@ -517,7 +564,7 @@
span {
display: flex;
font-size: 12px;
color: #AAA;
color: #aaa;
font-weight: normal;
cursor: default;
}
@ -575,8 +622,8 @@
.sub-table-box {
padding: 20px;
border-radius: 6px;
border: 1px solid #E9EAED;
background: #FFF;
border: 1px solid #e9eaed;
background: #fff;
box-shadow: 0px 3px 30px 0px rgba(0, 0, 0, 0.02);
.table-box-title-wrap {
display: flex;
@ -599,7 +646,7 @@
position: relative;
font-size: 15px;
font-weight: 600;
color: #1083E3;
color: #1083e3;
padding-left: 10px;
&::before {
content: '';
@ -609,7 +656,7 @@
transform: translateY(-50%);
width: 1px;
height: 11px;
background-color: #D9D9D9;
background-color: #d9d9d9;
}
}
.option {
@ -630,7 +677,7 @@
span {
font-weight: 600;
&.red {
color: #E23D70;
color: #e23d70;
}
}
&:after {
@ -641,10 +688,17 @@
transform: translateY(-50%);
width: 1px;
height: 11px;
background-color: #D9D9D9;
background-color: #d9d9d9;
}
&:first-child {
padding-left: 0;
}
&:last-child {
padding-right: 0;
&::after {
display: none;
}
}
&:first-child{padding-left: 0;}
&:last-child{padding-right: 0;&::after{display: none;}}
}
}
}
@ -654,6 +708,14 @@
display: flex;
align-items: center;
}
.promise-title-wrap {
display: flex;
align-items: center;
margin-bottom: 15px;
.promise-gudie {
margin-bottom: 0;
}
}
.promise-gudie {
display: block;
font-size: 13px;
@ -738,7 +800,7 @@
width: 105px;
height: 30px;
line-height: 30px;
background-color: #F4F4F7;
background-color: #f4f4f7;
border-radius: 100px;
text-align: center;
font-size: 13px;
@ -753,12 +815,12 @@
&.blue {
font-size: 16px;
font-weight: 700;
color: #1083E3;
color: #1083e3;
}
&.red {
font-size: 16px;
font-weight: 700;
color: #D72A2A;
color: #d72a2a;
}
}
}
@ -772,11 +834,11 @@
padding: 10px;
.btn-area {
padding-bottom: 15px;
border-bottom: 1px solid #ECF0F4;
border-bottom: 1px solid #ecf0f4;
.file-upload {
display: inline-block;
height: 30px;
background-color: #94A0AD;
background-color: #94a0ad;
padding: 0 10px;
border-radius: 2px;
font-size: 13px;
@ -784,9 +846,9 @@
color: #fff;
font-weight: 500;
cursor: pointer;
transition: background .15s ease-in-out;
transition: background 0.15s ease-in-out;
&:hover {
background-color: #607F9A;
background-color: #607f9a;
}
}
}
@ -811,7 +873,7 @@
span {
position: relative;
font-size: 13px;
color: #45576F;
color: #45576f;
font-weight: 400;
white-space: nowrap;
padding-right: 55px;
@ -841,7 +903,7 @@
.return {
padding: 0;
font-size: 13px;
color: #B0BCCD;
color: #b0bccd;
text-decoration: line-through;
}
.return-btn {
@ -856,10 +918,10 @@
padding: 0 9px;
margin-left: 10px;
background: none;
border: 1px solid #B0BCCD;
border: 1px solid #b0bccd;
border-radius: 2px;
font-size: 12px;
color: #B0BCCD;
color: #b0bccd;
font-weight: 500;
.return-ico {
display: block;
@ -879,8 +941,8 @@
display: block;
width: 20px;
height: 20px;
background-color: #94A0AD;
border: 1px solid #94A0AD;
background-color: #94a0ad;
border: 1px solid #94a0ad;
background-position: center;
background-repeat: no-repeat;
background-image: url(../../public/static/images/canvas/estiment_arr.svg);
@ -891,8 +953,8 @@
}
&.on {
background-color: #fff;
border-color: #C2D0DD;
background-image: url(../../public/static/images/canvas/estiment_arr_color.svg)
border-color: #c2d0dd;
background-image: url(../../public/static/images/canvas/estiment_arr_color.svg);
}
}
.estimate-check-wrap {
@ -900,7 +962,7 @@
display: block;
}
&.hide {
border-bottom: 1px solid #ECF0F4;
border-bottom: 1px solid #ecf0f4;
margin-bottom: 15px;
.estimate-check-inner {
display: none;
@ -915,18 +977,18 @@
margin-bottom: 30px;
.special-note-check-item {
padding: 14px 10px;
border: 1px solid #ECF0F4;
border: 1px solid #ecf0f4;
margin-top: -1px;
margin-right: -1px;
&.act {
background-color: #F7F9FA;
background-color: #f7f9fa;
}
.special-note-check-box {
display: flex;
align-items: center;
.check-name {
font-size: 13px;
color: #45576F;
color: #45576f;
cursor: pointer;
line-height: 1.3;
}
@ -935,7 +997,7 @@
}
.calculation-estimate {
border: 1px solid #ECF0F4;
border: 1px solid #ecf0f4;
border-radius: 3px;
padding: 24px;
height: 350px;
@ -949,13 +1011,13 @@
dt {
font-size: 13px;
font-weight: 600;
color: #1083E3;
color: #1083e3;
margin-bottom: 15px;
}
dd {
font-size: 12px;
font-weight: 400;
color: #45576F;
color: #45576f;
margin-bottom: 8px;
&:last-child {
margin-bottom: 0;
@ -987,7 +1049,7 @@
.product-price-tit {
font-size: 13px;
font-weight: 400;
color: #45576F;
color: #45576f;
margin-right: 10px;
}
.select-wrap {
@ -1025,7 +1087,7 @@
transform: translateY(-50%);
width: 1px;
height: 12px;
background-color: #D9D9D9;
background-color: #d9d9d9;
}
&:first-child {
padding-left: 0;
@ -1037,7 +1099,7 @@
padding-right: 0;
}
&.item01 {
color: #3BBB48;
color: #3bbb48;
span {
background-image: url(../../public/static/images/sub/open_ico.svg);
}
@ -1049,13 +1111,13 @@
}
}
&.item03 {
color: #0191C9;
color: #0191c9;
span {
background-image: url(../../public/static/images/sub/attachment_ico.svg);
}
}
&.item04 {
color: #F16A6A;
color: #f16a6a;
span {
background-image: url(../../public/static/images/sub/click_check_ico.svg);
}
@ -1117,23 +1179,23 @@
table {
table-layout: fixed;
border-collapse: collapse;
border: 1px solid #ECF0F4;
border: 1px solid #ecf0f4;
border-radius: 4px;
thead {
th {
padding: 4.5px 0;
border-bottom: 1px solid #ECF0F4;
border-bottom: 1px solid #ecf0f4;
text-align: center;
font-size: 13px;
color: #45576F;
color: #45576f;
font-weight: 500;
background-color: #F8F9FA;
background-color: #f8f9fa;
}
}
tbody {
td {
font-size: 13px;
color: #45576F;
color: #45576f;
text-align: center;
padding: 4.5px 0;
}
@ -1147,13 +1209,13 @@
.simulation-tit-wrap {
flex: none;
padding-right: 40px;
border-right: 1px solid #EEEEEE;
border-right: 1px solid #eeeeee;
span {
display: block;
position: relative;
padding-left: 60px;
font-size: 15px;
color: #14324F;
color: #14324f;
font-weight: 600;
&::before {
content: '';
@ -1181,7 +1243,7 @@
}
dd {
font-size: 12px;
color: #45576F;
color: #45576f;
font-weight: 400;
line-height: 24px;
}
@ -1189,7 +1251,8 @@
margin-bottom: 0;
}
}
ul, ol{
ul,
ol {
list-style: unset;
}
}
@ -1198,10 +1261,10 @@
.module-total {
display: flex;
align-items: center;
background-color: #F8F9FA;
background-color: #f8f9fa;
padding: 9px 0;
margin-right: 4px;
border: 1px solid #ECF0F4;
border: 1px solid #ecf0f4;
border-top: none;
.total-title {
flex: 1;
@ -1224,7 +1287,7 @@
.information-help-wrap {
display: flex;
padding: 24px;
background-color: #F4F4F4;
background-color: #f4f4f4;
border-radius: 4px;
margin-bottom: 15px;
.information-help-tit-wrap {
@ -1232,7 +1295,7 @@
display: flex;
align-items: center;
padding-right: 40px;
border-right: 1px solid #E0E0E3;
border-right: 1px solid #e0e0e3;
.help-tit-icon {
width: 40px;
height: 40px;
@ -1244,7 +1307,7 @@
.help-tit {
font-size: 13px;
font-weight: 600;
color: #45576F;
color: #45576f;
}
}
.information-help-guide {
@ -1253,7 +1316,7 @@
display: block;
font-size: 12px;
font-weight: 400;
color: #45576F;
color: #45576f;
margin-bottom: 7px;
&:last-child {
margin-bottom: 0;
@ -1267,7 +1330,7 @@
flex-direction: column;
align-items: center;
padding: 10px 0 30px 0;
border-bottom: 1px solid #E5E5E5;
border-bottom: 1px solid #e5e5e5;
margin-bottom: 24px;
.community-search-box {
position: relative;
@ -1286,7 +1349,7 @@
font-weight: 400;
color: #101010;
&::placeholder {
color: #C8C8C8;
color: #c8c8c8;
}
}
.community-search-ico {
@ -1305,10 +1368,10 @@
.community-search-keyword {
font-size: 13px;
font-weight: 400;
color: #45576F;
color: #45576f;
span {
font-weight: 600;
color: #F16A6A;
color: #f16a6a;
}
}
}
@ -1323,15 +1386,15 @@
align-items: center;
padding: 24px;
border-radius: 4px;
border: 1px solid #E5E5E5;
background: #FFF;
transition: all .15s ease-in-out;
border: 1px solid #e5e5e5;
background: #fff;
transition: all 0.15s ease-in-out;
.file-item-info {
.item-num {
display: inline-block;
padding: 6px 17.5px;
border-radius: 60px;
background-color: #F4F4F7;
background-color: #f4f4f7;
font-size: 13px;
font-weight: 600;
color: #101010;
@ -1363,7 +1426,7 @@
}
}
&:hover {
background-color: #F4F4F7;
background-color: #f4f4f7;
}
}
}
@ -1376,7 +1439,7 @@
height: 148px;
padding: 24px;
border-radius: 4px;
border: 1px solid #E5E5E5;
border: 1px solid #e5e5e5;
font-size: 16px;
font-weight: 500;
color: #344356;
@ -1388,8 +1451,8 @@
align-items: center;
width: 200px;
height: 30px;
background-color: #FAFAFA;
border: 1px solid #EEE;
background-color: #fafafa;
border: 1px solid #eee;
padding: 0 10px;
input {
font-size: 13px;
@ -1513,5 +1576,4 @@
}
}
}
}

View File

@ -5,12 +5,24 @@ $pop-normal-size: 12px;
$alert-color: #101010;
@keyframes mountpop {
from{opacity: 0; scale: 0.95;}
to{opacity: 1; scale: 1;}
from {
opacity: 0;
scale: 0.95;
}
to {
opacity: 1;
scale: 1;
}
}
@keyframes unmountpop {
from{opacity: 1; scale: 1;}
to{opacity: 0; scale: 0.95;}
from {
opacity: 1;
scale: 1;
}
to {
opacity: 0;
scale: 0.95;
}
}
.normal-font {
@ -85,10 +97,10 @@ $alert-color: #101010;
width: 900px;
}
&.mount {
animation: mountpop .17s ease-in-out forwards;
animation: mountpop 0.17s ease-in-out forwards;
}
&.unmount {
animation: unmountpop .17s ease-in-out forwards;
animation: unmountpop 0.17s ease-in-out forwards;
}
&.alert {
position: absolute;
@ -193,7 +205,7 @@ $alert-color: #101010;
}
}
.outer-line-wrap {
border-top: 1px solid #3C3C3C;
border-top: 1px solid #3c3c3c;
margin-top: 10px;
padding-top: 15px;
margin-bottom: 15px;
@ -215,7 +227,7 @@ $alert-color: #101010;
.adsorption-point {
display: flex;
align-items: center;
background-color: #3A3A3A;
background-color: #3a3a3a;
border-radius: 3px;
padding-left: 11px;
overflow: hidden;
@ -236,7 +248,7 @@ $alert-color: #101010;
&.act {
i {
color: $pop-color;
background-color: #1083E3;
background-color: #1083e3;
}
}
}
@ -251,12 +263,26 @@ $alert-color: #101010;
border-bottom: 1px solid #424242;
}
}
.grid-option-overflow {
max-height: 350px;
overflow-y: auto;
&::-webkit-scrollbar {
width: 4px;
background-color: transparent;
}
&::-webkit-scrollbar-thumb {
background-color: #d9d9d9;
}
&::-webkit-scrollbar-track {
background-color: transparent;
}
}
.grid-option-wrap {
.grid-option-box {
display: flex;
align-items: center;
background-color: transparent;
border: 1px solid #3D3D3D;
border: 1px solid #3d3d3d;
border-radius: 2px;
padding: 15px 10px;
gap: 20px;
@ -281,9 +307,14 @@ $alert-color: #101010;
margin-bottom: 0;
}
}
.grid-option-block-form {
flex: 1;
}
}
.select-form {
.sort-select{width: 100%;}
.sort-select {
width: 100%;
}
}
.grid-select {
flex: 1;
@ -328,7 +359,6 @@ $alert-color: #101010;
color: $pop-color;
font-weight: $pop-normal-weight;
padding-bottom: 15px;
}
.grid-direction {
display: flex;
@ -345,11 +375,17 @@ $alert-color: #101010;
background-position: center;
background-size: 16px 15px;
border-radius: 50%;
transition: all .15s ease-in-out;
transition: all 0.15s ease-in-out;
opacity: 0.6;
&.down{transform: rotate(180deg);}
&.left{transform: rotate(-90deg);}
&.right{transform: rotate(90deg);}
&.down {
transform: rotate(180deg);
}
&.left {
transform: rotate(-90deg);
}
&.right {
transform: rotate(90deg);
}
&:hover,
&.act {
opacity: 1;
@ -435,10 +471,11 @@ $alert-color: #101010;
}
&.light {
padding: 0;
th,td{
th,
td {
color: $alert-color;
border-bottom: none;
border-top: 1px solid #EFEFEF;
border-top: 1px solid #efefef;
}
th {
padding: 14px 0;
@ -492,7 +529,6 @@ $alert-color: #101010;
color: $pop-color;
font-weight: $pop-normal-weight;
}
}
.img-edit-wrap {
@ -508,7 +544,7 @@ $alert-color: #101010;
background-color: #fff;
border-radius: 2px;
cursor: pointer;
transition: all .15s ease-in-out;
transition: all 0.15s ease-in-out;
.img-edit {
width: 16px;
height: 16px;
@ -528,7 +564,6 @@ $alert-color: #101010;
margin-left: 10px;
input {
flex: 1;
}
.img-check {
flex: none;
@ -554,8 +589,12 @@ $alert-color: #101010;
background-repeat: no-repeat;
background-position: center;
background-size: cover;
&.fail{background-image: url(../../public/static/images/canvas/img_check_fail.svg);}
&.success{background-image: url(../../public/static/images/canvas/img_check_success.svg);}
&.fail {
background-image: url(../../public/static/images/canvas/img_check_fail.svg);
}
&.success {
background-image: url(../../public/static/images/canvas/img_check_success.svg);
}
}
}
@ -635,7 +674,7 @@ $alert-color: #101010;
align-items: center;
justify-content: center;
width: 50%;
background-color: #3D3D3D;
background-color: #3d3d3d;
border-radius: 2px;
}
}
@ -643,7 +682,7 @@ $alert-color: #101010;
// 외벽선 속성 설정
.properties-guide {
font-size: $pop-normal-size;
color: #AAA;
color: #aaa;
font-weight: $pop-normal-weight;
margin-bottom: 14px;
}
@ -672,17 +711,17 @@ $alert-color: #101010;
color: #fff;
font-weight: 700;
border-radius: 2px;
transition: all .15s ease-in-out;
transition: all 0.15s ease-in-out;
&.green {
background-color: #305941;
border: 1px solid #45CD7D;
border: 1px solid #45cd7d;
&:hover {
background-color: #3a6b4e;
}
}
&.blue {
background-color: #2E5360;
border: 1px solid #3FBAE6;
background-color: #2e5360;
border: 1px solid #3fbae6;
&:hover {
background-color: #365f6e;
}
@ -704,8 +743,8 @@ $alert-color: #101010;
justify-content: center;
width: 100%;
padding: 13px;
background-color: #3D3D3D;
transition: background .15s ease-in-out;
background-color: #3d3d3d;
transition: background 0.15s ease-in-out;
img {
max-width: 100%;
}
@ -716,13 +755,17 @@ $alert-color: #101010;
color: $pop-color;
margin-top: 10px;
text-align: center;
transition: color .15s ease-in-out;
transition: color 0.15s ease-in-out;
}
.shape-menu-box {
&.act,
&:hover {
.shape-box{background-color: #008BFF;}
.shape-title{color: #008BFF;}
.shape-box {
background-color: #008bff;
}
.shape-title {
color: #008bff;
}
}
}
}
@ -737,7 +780,7 @@ $alert-color: #101010;
}
.discrimination-box {
padding: 16px 12px;
border: 1px solid #3D3D3D;
border: 1px solid #3d3d3d;
border-radius: 2px;
}
@ -770,12 +813,12 @@ $alert-color: #101010;
align-items: center;
justify-content: center;
padding: 5px;
background-color: #3D3D3D;
border: 1px solid #3D3D3D;
background-color: #3d3d3d;
border: 1px solid #3d3d3d;
border-radius: 2px;
cursor: pointer;
&.act {
border: 1px solid #ED0004;
border: 1px solid #ed0004;
}
}
&:last-child {
@ -874,7 +917,7 @@ $alert-color: #101010;
border: 1px solid #646464;
border-radius: 2px;
padding: 0 10px;
transition: all .15s ease-in-out;
transition: all 0.15s ease-in-out;
i {
height: 15px;
display: block;
@ -882,7 +925,7 @@ $alert-color: #101010;
background-repeat: no-repeat;
background-position: center;
background-size: cover;
transition: all .15s ease-in-out;
transition: all 0.15s ease-in-out;
&.allocation01 {
background-image: url(../../public/static/images/canvas/allocation_icon01_white.svg);
width: 15px;
@ -935,7 +978,9 @@ $alert-color: #101010;
height: 34px;
background-color: #373737;
border: 1px solid #676767;
transition: background .15s ease-in-out, border .15s ease-in-out;
transition:
background 0.15s ease-in-out,
border 0.15s ease-in-out;
.shape-box {
display: flex;
justify-content: center;
@ -947,8 +992,8 @@ $alert-color: #101010;
}
&.act,
&:hover {
border-color: #008BFF;
background-color: #008BFF;
border-color: #008bff;
background-color: #008bff;
}
}
}
@ -963,18 +1008,27 @@ $alert-color: #101010;
.library-btn {
width: 100%;
height: 34px;
border: 1px solid #6C6C6C;
border: 1px solid #6c6c6c;
border-radius: 2px;
background-color: #373737;
background-repeat: no-repeat;
background-position: center;
transition: all .15s ease-in-out;
&.ico01{background-image: url(../../public/static/images/canvas/shape_labrary01.svg); background-size: 19px 18px;}
&.ico02{background-image: url(../../public/static/images/canvas/shape_labrary02.svg); background-size: 15px 20px;}
&.ico03{background-image: url(../../public/static/images/canvas/shape_labrary03.svg); background-size: 19px 16px;}
transition: all 0.15s ease-in-out;
&.ico01 {
background-image: url(../../public/static/images/canvas/shape_labrary01.svg);
background-size: 19px 18px;
}
&.ico02 {
background-image: url(../../public/static/images/canvas/shape_labrary02.svg);
background-size: 15px 20px;
}
&.ico03 {
background-image: url(../../public/static/images/canvas/shape_labrary03.svg);
background-size: 19px 16px;
}
&:hover {
border-color: #1083E3;
background-color: #1083E3;
border-color: #1083e3;
background-color: #1083e3;
}
}
}
@ -1060,11 +1114,27 @@ $alert-color: #101010;
position: absolute;
font-size: 12px;
font-weight: 500;
color: #B1B1B1;
&.top{top: 0; left: 50%; transform: translateX(-50%);}
&.right{top: 50%; right: 0; transform: translateY(-50%);}
&.bottom{bottom: 0; left: 50%; transform: translateX(-50%);}
&.left{top: 50%; left: 0; transform: translateY(-50%);}
color: #b1b1b1;
&.top {
top: 0;
left: 50%;
transform: translateX(-50%);
}
&.right {
top: 50%;
right: 0;
transform: translateY(-50%);
}
&.bottom {
bottom: 0;
left: 50%;
transform: translateX(-50%);
}
&.left {
top: 50%;
left: 0;
transform: translateY(-50%);
}
}
.plane-btn {
position: absolute;
@ -1076,11 +1146,27 @@ $alert-color: #101010;
background-repeat: no-repeat;
background-position: center;
border-radius: 50%;
transition: all .15s ease-in-out;
&.up{top: 22px; left: 50%; transform: translateX(-50%);}
&.right{top: 50%; right: 32px; transform: translateY(-50%) rotate(90deg);}
&.down{bottom: 22px; left: 50%; transform: translateX(-50%) rotate(180deg);}
&.left{top: 50%; left: 32px; transform: translateY(-50%) rotate(270deg);}
transition: all 0.15s ease-in-out;
&.up {
top: 22px;
left: 50%;
transform: translateX(-50%);
}
&.right {
top: 50%;
right: 32px;
transform: translateY(-50%) rotate(90deg);
}
&.down {
bottom: 22px;
left: 50%;
transform: translateX(-50%) rotate(180deg);
}
&.left {
top: 50%;
left: 32px;
transform: translateY(-50%) rotate(270deg);
}
&:hover,
&.act {
background-color: #fff;
@ -1146,7 +1232,7 @@ $alert-color: #101010;
.warning {
font-size: $pop-normal-size;
font-weight: $pop-normal-weight;
color: #FFAFAF;
color: #ffafaf;
}
// 속성 변경
@ -1202,37 +1288,157 @@ $alert-color: #101010;
top: 12.5px;
left: 50%;
font-size: 11px;
color: #8B8B8B;
color: #8b8b8b;
font-weight: 500;
-webkit-user-select: none;
-moz-user-select: none;
-ms-use-select: none;
user-select: none;
}
&:nth-child(1) { transform: rotate(180deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(180deg);}}
&:nth-child(2) { transform: rotate(195deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(165deg);}}
&:nth-child(3) { transform: rotate(210deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(150deg);}}
&:nth-child(4) { transform: rotate(225deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(135deg);}}
&:nth-child(5) { transform: rotate(240deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(120deg);}}
&:nth-child(6) { transform: rotate(255deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(105deg);}}
&:nth-child(7) { transform: rotate(270deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(90deg);}}
&:nth-child(8) { transform: rotate(285deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(75deg);}}
&:nth-child(9) { transform: rotate(300deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(60deg);}}
&:nth-child(10) { transform: rotate(315deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(45deg);}}
&:nth-child(11) { transform: rotate(330deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(30deg);}}
&:nth-child(12) { transform: rotate(345deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(15deg);}}
&:nth-child(13) { transform: rotate(0deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(0deg);}}
&:nth-child(14) { transform: rotate(15deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(-15deg);}}
&:nth-child(15) { transform: rotate(30deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(-30deg);}}
&:nth-child(16) { transform: rotate(45deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(-45deg);}}
&:nth-child(17) { transform: rotate(60deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(-60deg);}}
&:nth-child(18) { transform: rotate(75deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(-75deg);}}
&:nth-child(19) { transform: rotate(90deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(-90deg);}}
&:nth-child(20) { transform: rotate(105deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(-105deg);}}
&:nth-child(21) { transform: rotate(120deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(-120deg);}}
&:nth-child(22) { transform: rotate(135deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(-135deg);}}
&:nth-child(23) { transform: rotate(150deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(-150deg);}}
&:nth-child(24) { transform: rotate(165deg) translate(-50%, -50%); i{transform: translateX(-50%) rotate(-165deg);}}
&:nth-child(1) {
transform: rotate(180deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(180deg);
}
}
&:nth-child(2) {
transform: rotate(195deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(165deg);
}
}
&:nth-child(3) {
transform: rotate(210deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(150deg);
}
}
&:nth-child(4) {
transform: rotate(225deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(135deg);
}
}
&:nth-child(5) {
transform: rotate(240deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(120deg);
}
}
&:nth-child(6) {
transform: rotate(255deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(105deg);
}
}
&:nth-child(7) {
transform: rotate(270deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(90deg);
}
}
&:nth-child(8) {
transform: rotate(285deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(75deg);
}
}
&:nth-child(9) {
transform: rotate(300deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(60deg);
}
}
&:nth-child(10) {
transform: rotate(315deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(45deg);
}
}
&:nth-child(11) {
transform: rotate(330deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(30deg);
}
}
&:nth-child(12) {
transform: rotate(345deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(15deg);
}
}
&:nth-child(13) {
transform: rotate(0deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(0deg);
}
}
&:nth-child(14) {
transform: rotate(15deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(-15deg);
}
}
&:nth-child(15) {
transform: rotate(30deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(-30deg);
}
}
&:nth-child(16) {
transform: rotate(45deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(-45deg);
}
}
&:nth-child(17) {
transform: rotate(60deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(-60deg);
}
}
&:nth-child(18) {
transform: rotate(75deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(-75deg);
}
}
&:nth-child(19) {
transform: rotate(90deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(-90deg);
}
}
&:nth-child(20) {
transform: rotate(105deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(-105deg);
}
}
&:nth-child(21) {
transform: rotate(120deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(-120deg);
}
}
&:nth-child(22) {
transform: rotate(135deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(-135deg);
}
}
&:nth-child(23) {
transform: rotate(150deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(-150deg);
}
}
&:nth-child(24) {
transform: rotate(165deg) translate(-50%, -50%);
i {
transform: translateX(-50%) rotate(-165deg);
}
}
&.act {
&::after {
content: '';
@ -1286,13 +1492,13 @@ $alert-color: #101010;
border-radius: 2px;
background-color: transparent;
font-size: 12px;
color: #AAA;
color: #aaa;
text-align: center;
cursor: default;
transition: all .15s ease-in-out;
transition: all 0.15s ease-in-out;
&.act {
background-color: #1083E3;
border: 1px solid #1083E3;
background-color: #1083e3;
border: 1px solid #1083e3;
color: #fff;
font-weight: 500;
}
@ -1305,7 +1511,7 @@ $alert-color: #101010;
background-position: center;
background-size: cover;
background-image: url(../../public/static/images/canvas/module_tab_arr.svg);
transition: all .15s ease-in-out;
transition: all 0.15s ease-in-out;
&.act {
background-image: url(../../public/static/images/canvas/module_tab_arr_white.svg);
}
@ -1338,7 +1544,9 @@ $alert-color: #101010;
top: 22px;
}
&.act {
i{color: #8B8B8B;}
i {
color: #8b8b8b;
}
}
}
}
@ -1370,7 +1578,7 @@ $alert-color: #101010;
height: 30px;
font-size: 12px;
font-weight: 400;
transition: all .15s ease-in-out;
transition: all 0.15s ease-in-out;
&:first-child {
border-left: 1px solid #505050;
}
@ -1384,7 +1592,7 @@ $alert-color: #101010;
.module-table-box {
flex: 1;
background-color: #3D3D3D;
background-color: #3d3d3d;
border-radius: 2px;
.module-table-inner {
padding: 10px;
@ -1397,7 +1605,7 @@ $alert-color: #101010;
padding: 10px 0;
font-size: 12px;
color: #fff;
border-bottom: 1px solid #4D4D4D;
border-bottom: 1px solid #4d4d4d;
}
.eaves-keraba-table {
width: 100%;
@ -1420,7 +1628,7 @@ $alert-color: #101010;
.warning-guide {
padding: 20px;
.warning {
color: #FFCACA;
color: #ffcaca;
max-height: 55px;
overflow-y: auto;
padding-right: 30px;
@ -1429,7 +1637,7 @@ $alert-color: #101010;
background-color: transparent;
}
&::-webkit-scrollbar-thumb {
background-color: #D9D9D9;
background-color: #d9d9d9;
}
&::-webkit-scrollbar-track {
background-color: transparent;
@ -1440,7 +1648,7 @@ $alert-color: #101010;
.module-self-table {
display: table;
border-top: 1px solid #4D4D4D;
border-top: 1px solid #4d4d4d;
border-collapse: collapse;
width: 100%;
.self-table-item {
@ -1449,7 +1657,7 @@ $alert-color: #101010;
.self-item-th {
display: table-cell;
vertical-align: middle;
border-bottom: 1px solid #4D4D4D;
border-bottom: 1px solid #4d4d4d;
}
.self-item-th {
width: 60px;
@ -1477,7 +1685,7 @@ $alert-color: #101010;
.hexagonal-wrap {
.hexagonal-item {
padding: 15px 0;
border-bottom: 1px solid #4D4D4D;
border-bottom: 1px solid #4d4d4d;
&:first-child {
padding-top: 0;
}
@ -1515,7 +1723,7 @@ $alert-color: #101010;
background-color: transparent;
}
&::-webkit-scrollbar-thumb {
background-color: #D9D9D9;
background-color: #d9d9d9;
}
&::-webkit-scrollbar-track {
background-color: transparent;
@ -1533,7 +1741,7 @@ $alert-color: #101010;
gap: 5px;
min-height: 60px;
padding: 12px;
border: 1px solid rgba(255, 255, 255, 0.20);
border: 1px solid rgba(255, 255, 255, 0.2);
span {
display: inline-flex;
align-items: center;
@ -1566,7 +1774,7 @@ $alert-color: #101010;
background-color: transparent;
}
&::-webkit-scrollbar-thumb {
background-color: #D9D9D9;
background-color: #d9d9d9;
}
&::-webkit-scrollbar-track {
background-color: transparent;
@ -1625,10 +1833,10 @@ $alert-color: #101010;
height: 16px;
&.pink {
border: 2px solid #ce1c9c;
background-color: #16417D;
background-color: #16417d;
}
&.white {
border: 2px solid #FFF;
border: 2px solid #fff;
background-color: #001027;
}
}
@ -1653,7 +1861,7 @@ $alert-color: #101010;
.react-colorful__pointer {
width: 15px;
height: 15px;
border: 4px solid #Fff;
border: 4px solid #fff;
}
.react-colorful__saturation {
border-radius: 2px;
@ -1743,7 +1951,6 @@ $alert-color: #101010;
min-height: 80px;
background-color: #fff;
}
}
// 치수선 설정
@ -1863,10 +2070,22 @@ $alert-color: #101010;
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; }
&: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;
@ -1950,7 +2169,6 @@ $alert-color: #101010;
&.tab2 {
margin-top: 10px;
gap: 15px;
}
.module-flex-item {
flex: 1;
@ -1959,7 +2177,7 @@ $alert-color: #101010;
font-weight: 500;
color: #fff;
padding-bottom: 10px;
border-bottom: 1px solid #4D4D4D;
border-bottom: 1px solid #4d4d4d;
}
.flex-item-btn-wrap {
display: grid;
@ -2007,12 +2225,12 @@ $alert-color: #101010;
}
.module-bottom {
padding-bottom: 15px;
border-bottom: 1px solid #4D4D4D;
border-bottom: 1px solid #4d4d4d;
}
.reset-word {
font-size: 12px;
color: #FFCACA;
color: #ffcaca;
font-weight: 400;
margin-top: 10px;
}