Merge branch 'dev' into dev-yj
This commit is contained in:
commit
c1bd6a220b
@ -16,11 +16,20 @@ import '../styles/contents.scss'
|
||||
import Footer from '@/components/footer/Footer'
|
||||
import GlobalLoadingProvider from './GlobalLoadingProvider'
|
||||
|
||||
/**
|
||||
* 어플리케이션 메타데이터
|
||||
* 서버 컴포넌트에 한해서 개별로 설정할 수 있음
|
||||
*/
|
||||
export const metadata = {
|
||||
title: 'HANASYS設計',
|
||||
description: 'HANASYS設計',
|
||||
}
|
||||
|
||||
/**
|
||||
* 어플리케이션 전체 레이아웃 컴포넌트
|
||||
* @param {*} param0
|
||||
* @returns
|
||||
*/
|
||||
export default async function RootLayout({ children }) {
|
||||
const headersList = headers()
|
||||
const headerPathname = headersList.get('x-pathname') || ''
|
||||
|
||||
@ -2,6 +2,11 @@
|
||||
|
||||
import '@/styles/spinner.scss'
|
||||
|
||||
/**
|
||||
* 전역 스피너
|
||||
* 전역 로딩 스피너
|
||||
* @returns
|
||||
*/
|
||||
export default function GlobalSpinner() {
|
||||
return (
|
||||
<>
|
||||
|
||||
@ -276,6 +276,10 @@ export const QPolygon = fabric.util.createClass(fabric.Polygon, {
|
||||
if ([POLYGON_TYPE.MODULE, 'arrow', POLYGON_TYPE.MODULE_SETUP_SURFACE, POLYGON_TYPE.OBJECT_SURFACE].includes(this.name)) {
|
||||
return
|
||||
}
|
||||
|
||||
if (!this.fontSize) {
|
||||
return
|
||||
}
|
||||
this.canvas
|
||||
?.getObjects()
|
||||
.filter((obj) => obj.name === 'lengthText' && obj.parentId === this.id)
|
||||
|
||||
@ -153,6 +153,17 @@ export default function CanvasMenu(props) {
|
||||
setIsGlobalLoading(false)
|
||||
}
|
||||
|
||||
// roof 초기화
|
||||
const initRoofs = () => {
|
||||
const roofs = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF)
|
||||
roofs.forEach((roof) => {
|
||||
roof.set({ selectable: true })
|
||||
setSurfaceShapePattern(roof, null, false, roof.roofMaterial)
|
||||
delete roof.moduleCompass
|
||||
drawDirectionArrow(roof)
|
||||
})
|
||||
}
|
||||
|
||||
const onClickNav = async (menu) => {
|
||||
switch (menu.index) {
|
||||
case 0:
|
||||
@ -177,7 +188,6 @@ export default function CanvasMenu(props) {
|
||||
case 3:
|
||||
if (menuNumber > menu.index) {
|
||||
const modules = canvas.getObjects().filter((module) => module.name === POLYGON_TYPE.MODULE)
|
||||
const roofs = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF)
|
||||
|
||||
if (modules.length > 0) {
|
||||
swalFire({
|
||||
@ -185,13 +195,7 @@ export default function CanvasMenu(props) {
|
||||
type: 'confirm',
|
||||
confirmFn: () => {
|
||||
//해당 메뉴 이동시 배치면 삭제
|
||||
|
||||
roofs.forEach((roof) => {
|
||||
roof.set({ selectable: true })
|
||||
setSurfaceShapePattern(roof, null, false, roof.roofMaterial)
|
||||
delete roof.moduleCompass
|
||||
drawDirectionArrow(roof)
|
||||
})
|
||||
initRoofs()
|
||||
|
||||
const moduleSurfacesArray = canvas
|
||||
.getObjects()
|
||||
@ -315,6 +319,7 @@ export default function CanvasMenu(props) {
|
||||
if (menuNumber === 3) {
|
||||
const moduleSurfacesArray = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE)
|
||||
if (moduleSurfacesArray.length > 0) {
|
||||
initRoofs()
|
||||
moduleSurfacesArray.forEach((moduleSurface) => {
|
||||
moduleSurface.modules = []
|
||||
canvas.remove(moduleSurface)
|
||||
|
||||
@ -12,6 +12,10 @@ import { useCanvas } from '@/hooks/useCanvas'
|
||||
import { useImgLoader } from '@/hooks/floorPlan/useImgLoader'
|
||||
// import { initImageLoaderPopup } from '@/lib/planAction'
|
||||
|
||||
/**
|
||||
* 이미지 로드 모달
|
||||
* @returns
|
||||
*/
|
||||
export default function ImgLoad() {
|
||||
const { currentCanvasPlan, setCurrentCanvasPlan } = usePlan()
|
||||
const { getMessage } = useMessage()
|
||||
|
||||
@ -284,6 +284,9 @@ export default function PassivityCircuitAllocation(props) {
|
||||
icon: 'warning',
|
||||
confirmFn: () => {
|
||||
const circuitModules = canvas.getObjects().filter((obj) => obj.name === 'module' && obj.circuit?.circuitInfo?.id === selectedPcs.id)
|
||||
if (circuitModules.length === 0) {
|
||||
return
|
||||
}
|
||||
const circuitNumbers = circuitModules.map((obj) => {
|
||||
const circuitNumber = obj.circuitNumber.replace(/[()]/g, '').split('-')
|
||||
return parseInt(circuitNumber[0])
|
||||
|
||||
@ -23,6 +23,10 @@ import { useTrestle } from '@/hooks/module/useTrestle'
|
||||
import { usePolygon } from '@/hooks/usePolygon'
|
||||
import { useOrientation } from '@/hooks/module/useOrientation'
|
||||
|
||||
/**
|
||||
* 메뉴 처리 훅
|
||||
* @returns
|
||||
*/
|
||||
export default function useMenu() {
|
||||
const menus = []
|
||||
const currentMenu = useRecoilValue(currentMenuState)
|
||||
|
||||
@ -11,6 +11,10 @@ import { settingModalFirstOptionsState } from '@/store/settingAtom'
|
||||
/**
|
||||
* 배경 이미지 관리
|
||||
* 도면에 배경이미지를 로딩하는 기능을 제공
|
||||
*
|
||||
* 이미지 -> 캔버스 배경에 이미지 로드
|
||||
* 주소 -> 구글 맵에서 주소 검색 후 이미지로 다운로드 받아서 캔버스 배경에 이미지 로드
|
||||
* .dwg -> api를 통해서 .png로 변환 후 캔버스 배경에 이미지 로드
|
||||
* @returns {object}
|
||||
*/
|
||||
export function useRefFiles() {
|
||||
|
||||
@ -17,6 +17,12 @@ import { outerLinePointsState } from '@/store/outerLineAtom'
|
||||
import { placementShapeDrawingPointsState } from '@/store/placementShapeDrawingAtom'
|
||||
import { useCanvasSetting } from '@/hooks/option/useCanvasSetting'
|
||||
|
||||
/**
|
||||
* 플랜 처리 훅
|
||||
* 플랜을 표시하는 탭 UI 전반적인 처리 로직 관리
|
||||
* @param {*} params
|
||||
* @returns
|
||||
*/
|
||||
export function usePlan(params = {}) {
|
||||
const { floorPlanState } = useContext(FloorPlanContext)
|
||||
|
||||
|
||||
@ -3,6 +3,10 @@
|
||||
import sqlite3 from 'sqlite3'
|
||||
import { open } from 'sqlite'
|
||||
|
||||
/**
|
||||
* 캔바스 배경 이미지가 설정되면 데이터를 저장한다.
|
||||
* @param {*} param0
|
||||
*/
|
||||
export const setBackGroundImage = async ({ objectId, planNo, imagePath }) => {
|
||||
let db = null
|
||||
|
||||
@ -24,6 +28,11 @@ export const setBackGroundImage = async ({ objectId, planNo, imagePath }) => {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 캔바스 배경 이미지 데이터를 조회한다.
|
||||
* @param {*} param0
|
||||
* @returns
|
||||
*/
|
||||
export const getBackGroundImage = async ({ objectId, planNo }) => {
|
||||
let db = null
|
||||
|
||||
@ -39,6 +48,10 @@ export const getBackGroundImage = async ({ objectId, planNo }) => {
|
||||
return result
|
||||
}
|
||||
|
||||
/**
|
||||
* 캔바스 배경 이미지 데이터를 삭제한다.
|
||||
* @param {*} param0
|
||||
*/
|
||||
export const deleteBackGroundImage = async ({ objectId, planNo }) => {
|
||||
let db = null
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user