Merge branch 'dev' into dev-yj

This commit is contained in:
yjnoh 2025-02-24 13:33:35 +09:00
commit c1bd6a220b
10 changed files with 65 additions and 8 deletions

View File

@ -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') || ''

View File

@ -2,6 +2,11 @@
import '@/styles/spinner.scss'
/**
* 전역 스피너
* 전역 로딩 스피너
* @returns
*/
export default function GlobalSpinner() {
return (
<>

View File

@ -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)

View File

@ -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)

View File

@ -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()

View File

@ -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])

View File

@ -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)

View File

@ -11,6 +11,10 @@ import { settingModalFirstOptionsState } from '@/store/settingAtom'
/**
* 배경 이미지 관리
* 도면에 배경이미지를 로딩하는 기능을 제공
*
* 이미지 -> 캔버스 배경에 이미지 로드
* 주소 -> 구글 맵에서 주소 검색 이미지로 다운로드 받아서 캔버스 배경에 이미지 로드
* .dwg -> api를 통해서 .png로 변환 캔버스 배경에 이미지 로드
* @returns {object}
*/
export function useRefFiles() {

View File

@ -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)

View File

@ -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