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