Merge branch 'dev' into feature/dev-yj
# Conflicts: # src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx # src/components/floor-plan/modal/circuitTrestle/step/type/PassivityCircuitAllocation.jsx
This commit is contained in:
commit
abe0ddb731
13
dev.ecosystem.config.js
Normal file
13
dev.ecosystem.config.js
Normal file
@ -0,0 +1,13 @@
|
||||
module.exports = {
|
||||
apps: [
|
||||
{
|
||||
name: 'qcast-front-development',
|
||||
script: 'node_modules/next/dist/bin/next',
|
||||
instances: 1,
|
||||
exec_mode: 'fork',
|
||||
env: {
|
||||
NODE_ENV: 'development',
|
||||
},
|
||||
},
|
||||
],
|
||||
}
|
||||
@ -2,9 +2,12 @@ module.exports = {
|
||||
apps: [
|
||||
{
|
||||
name: 'qcast-front-production',
|
||||
script: 'npm run start:dev',
|
||||
instance: 2,
|
||||
script: 'node_modules/next/dist/bin/next',
|
||||
instances: 2,
|
||||
exec_mode: 'cluster',
|
||||
env: {
|
||||
NODE_ENV: 'production',
|
||||
},
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
@ -452,7 +452,7 @@ const Trestle = forwardRef((props, ref) => {
|
||||
}),
|
||||
|
||||
new Promise((resolve) => {
|
||||
const roofConstruction = newAddedRoofs.map((roof, index) => ({
|
||||
const roofConstructions = newAddedRoofs.map((roof, index) => ({
|
||||
roofIndex: newRoofs[index].index,
|
||||
addRoof: newRoofs[index],
|
||||
trestle: {
|
||||
@ -468,9 +468,9 @@ const Trestle = forwardRef((props, ref) => {
|
||||
trestleDetail: roof.trestleDetail,
|
||||
}))
|
||||
trestleTrigger({
|
||||
roofConstruction,
|
||||
roofConstructions,
|
||||
})
|
||||
setRoofsStore(roofConstruction)
|
||||
setRoofsStore(roofConstructions)
|
||||
resolve()
|
||||
}),
|
||||
]
|
||||
|
||||
@ -41,7 +41,7 @@ export default function CircuitTrestleSetting({ id }) {
|
||||
const [tabNum, setTabNum] = useState(1)
|
||||
const [allocationType, setAllocationType] = useState(ALLOCATION_TYPE.AUTO)
|
||||
const [circuitAllocationType, setCircuitAllocationType] = useState(1)
|
||||
const { managementState, setManagementState, managementStateLoaded } = useContext(GlobalDataContext)
|
||||
const { managementState, setManagementState } = useContext(GlobalDataContext)
|
||||
const selectedModules = useRecoilValue(selectedModuleState)
|
||||
const { getPcsAutoRecommendList, getPcsVoltageChk, getPcsVoltageStepUpList, getPcsManualConfChk } = useMasterController()
|
||||
|
||||
@ -83,6 +83,8 @@ export default function CircuitTrestleSetting({ id }) {
|
||||
} = useCircuitTrestle()
|
||||
// const { trigger: moduleSelectedDataTrigger } = useCanvasPopupStatusController(2)
|
||||
useEffect(() => {
|
||||
if (!managementState) {
|
||||
}
|
||||
// setCircuitData({
|
||||
// makers,
|
||||
// selectedMaker,
|
||||
|
||||
@ -44,7 +44,7 @@ export default function PowerConditionalSelect(props) {
|
||||
const { getPcsMakerList, getPcsModelList } = useMasterController()
|
||||
const selectedModules = useRecoilValue(selectedModuleState)
|
||||
const { swalFire } = useSwal()
|
||||
const { trigger: moduleSelectedDataTrigger } = useCanvasPopupStatusController(2)
|
||||
// const { trigger: moduleSelectedDataTrigger } = useCanvasPopupStatusController(2)
|
||||
const [moduleSelectionData, setModuleSelectionData] = useRecoilState(moduleSelectionDataState)
|
||||
const modelHeader = [
|
||||
{ name: getMessage('modal.circuit.trestle.setting.circuit.allocation.passivity.series'), width: '15%', prop: 'pcsSerNm', type: 'color-box' },
|
||||
|
||||
@ -42,7 +42,6 @@ export default function StepUp(props) {
|
||||
const [arrayLength, setArrayLength] = useState(3) //module-table-inner의 반복 개수
|
||||
const [pcsCheck, setPcsCheck] = useRecoilState(pcsCheckState)
|
||||
const { getPcsVoltageStepUpList, getPcsAutoRecommendList, getPcsVoltageChk, getPcsConnOptionItemList } = useMasterController()
|
||||
const { managementState, setManagementState, managementStateLoaded } = useContext(GlobalDataContext)
|
||||
const canvas = useRecoilValue(canvasState)
|
||||
const selectedModules = useRecoilValue(selectedModuleState)
|
||||
const [optCodes, setOptCodes] = useState([])
|
||||
|
||||
@ -25,7 +25,7 @@ export default function PassivityCircuitAllocation(props) {
|
||||
const { swalFire } = useSwal()
|
||||
const { getMessage } = useMessage()
|
||||
const canvas = useRecoilValue(canvasState)
|
||||
const { managementState, setManagementState, managementStateLoaded } = useContext(GlobalDataContext)
|
||||
const { managementState } = useContext(GlobalDataContext)
|
||||
const selectedModules = useRecoilValue(selectedModuleState)
|
||||
const [selectedPcs, setSelectedPcs] = useState(selectedModels[0])
|
||||
const { header, rows, footer } = useRecoilValue(moduleStatisticsState)
|
||||
@ -37,7 +37,8 @@ export default function PassivityCircuitAllocation(props) {
|
||||
const circuitNumberText = useRecoilValue(fontSelector('circuitNumberText'))
|
||||
useEffect(() => {
|
||||
setModuleStatisticsData()
|
||||
|
||||
if (!managementState) {
|
||||
}
|
||||
canvas
|
||||
.getObjects()
|
||||
.filter((obj) => obj.name === POLYGON_TYPE.MODULE)
|
||||
|
||||
@ -9,9 +9,10 @@ import { compasDegAtom } from '@/store/orientationAtom'
|
||||
import { canvasState, currentCanvasPlanState } from '@/store/canvasAtom'
|
||||
import { POLYGON_TYPE } from '@/common/common'
|
||||
import { useCircuitTrestle } from '../useCirCuitTrestle'
|
||||
import { useEffect } from 'react'
|
||||
import { useContext } from 'react'
|
||||
import { addedRoofsState } from '@/store/settingAtom'
|
||||
import { roofsState } from '@/store/roofAtom'
|
||||
import { GlobalDataContext } from '@/app/GlobalDataProvider'
|
||||
|
||||
/**
|
||||
* 캔버스 팝업 상태 관리
|
||||
@ -22,13 +23,14 @@ export function useCanvasPopupStatusController(param = 1) {
|
||||
const popupType = parseInt(param)
|
||||
|
||||
const setCompasDeg = useSetRecoilState(compasDegAtom)
|
||||
const setModuleSelectionDataStore = useSetRecoilState(moduleSelectionDataState)
|
||||
const [moduleSelectionDataStore, setModuleSelectionDataStore] = useRecoilState(moduleSelectionDataState)
|
||||
const setSelectedModules = useSetRecoilState(selectedModuleState)
|
||||
const { get, promiseGet, getFetcher, postFetcher } = useAxios()
|
||||
const canvas = useRecoilValue(canvasState)
|
||||
const currentCanvasPlan = useRecoilValue(currentCanvasPlanState)
|
||||
const [addedRoofs, setAddedRoofs] = useRecoilState(addedRoofsState)
|
||||
const [roofs, setRoofs] = useRecoilState(roofsState)
|
||||
const { managementState, setManagementState } = useContext(GlobalDataContext)
|
||||
/**
|
||||
* 팝업 상태 조회
|
||||
* @param {number} popupTypeParam
|
||||
@ -54,6 +56,7 @@ export function useCanvasPopupStatusController(param = 1) {
|
||||
* 조회 후 전체 데이터 recoil에 저장
|
||||
*/
|
||||
const handleModuleSelectionTotal = async () => {
|
||||
let resultData = {}
|
||||
for (let i = 1; i < 3; i++) {
|
||||
const result = await getModuleSelection(i)
|
||||
if (!result.objectNo) return
|
||||
@ -63,7 +66,8 @@ export function useCanvasPopupStatusController(param = 1) {
|
||||
|
||||
if (data?.compasDeg) setCompasDeg(data.compasDeg)
|
||||
if (data?.module) setSelectedModules(data.module)
|
||||
setModuleSelectionDataStore(data)
|
||||
// setModuleSelectionDataStore(data)
|
||||
resultData = { ...data }
|
||||
}
|
||||
} else if (i === 2) {
|
||||
const data = JSON.parse(unescapeString(result.popupStatus))
|
||||
@ -72,13 +76,16 @@ export function useCanvasPopupStatusController(param = 1) {
|
||||
roofSurfaceList.forEach((surface) => {
|
||||
surface.modules = modules.filter((module) => module.surfaceId === surface.id)
|
||||
})
|
||||
if (data.roofConstruction) {
|
||||
setRoofs(data.roofConstruction)
|
||||
// setManagementState({ ...managementState, roofs: data.roofConstruction.map((roof) => roof.construction.managementState) })
|
||||
if (data.roofConstructions) {
|
||||
setRoofs(data.roofConstructions)
|
||||
setManagementState({ ...managementState, roofs: data.roofConstructions.map((roof) => roof.construction.managementState) })
|
||||
// setModuleSelectionDataStore({ ...moduleSelectionDataStore, roofConstructions: data.roofConstruction })
|
||||
resultData = { ...resultData, roofConstructions: data.roofConstructions }
|
||||
}
|
||||
// if (data?.module) setManagementState(data.common.managementState)
|
||||
}
|
||||
}
|
||||
setModuleSelectionDataStore(resultData)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -84,7 +84,7 @@ export function useModuleSelection(props) {
|
||||
|
||||
//새로고침시 데이터 날아가는거 방지
|
||||
if (managementState === null) {
|
||||
setManagementState(managementStateLoaded)
|
||||
setManagementState(managementState)
|
||||
} else {
|
||||
bindInitData()
|
||||
}
|
||||
|
||||
@ -5,16 +5,6 @@ import { useEvent } from '@/hooks/useEvent'
|
||||
import { useMouse } from '@/hooks/useMouse'
|
||||
import { useLine } from '@/hooks/useLine'
|
||||
import { useTempGrid } from '@/hooks/useTempGrid'
|
||||
import {
|
||||
outerLineAngle1State,
|
||||
outerLineAngle2State,
|
||||
outerLineArrow1State,
|
||||
outerLineArrow2State,
|
||||
outerLineDiagonalState,
|
||||
outerLineLength1State,
|
||||
outerLineLength2State,
|
||||
outerLineTypeState,
|
||||
} from '@/store/outerLineAtom'
|
||||
import { calculateIntersection, distanceBetweenPoints, findClosestPoint, isPointOnLine } from '@/util/canvas-util'
|
||||
import { fabric } from 'fabric'
|
||||
import { useAdsorptionPoint } from '@/hooks/useAdsorptionPoint'
|
||||
@ -23,6 +13,16 @@ import { usePopup } from '@/hooks/usePopup'
|
||||
import { calculateAngle, isSamePoint } from '@/util/qpolygon-utils'
|
||||
import { POLYGON_TYPE } from '@/common/common'
|
||||
import { useMessage } from '../useMessage'
|
||||
import {
|
||||
auxiliaryLineAngle1State,
|
||||
auxiliaryLineAngle2State,
|
||||
auxiliaryLineArrow1State,
|
||||
auxiliaryLineArrow2State,
|
||||
auxiliaryLineDiagonalState,
|
||||
auxiliaryLineLength1State,
|
||||
auxiliaryLineLength2State,
|
||||
auxiliaryLineTypeState,
|
||||
} from '@/store/auxiliaryLineAtom'
|
||||
|
||||
// 보조선 작성
|
||||
export function useAuxiliaryDrawing(id, isUseEffect = true) {
|
||||
@ -49,20 +49,20 @@ export function useAuxiliaryDrawing(id, isUseEffect = true) {
|
||||
const length2Ref = useRef(0)
|
||||
const angle1Ref = useRef('')
|
||||
const angle2Ref = useRef('')
|
||||
const [length1, setLength1] = useRecoilState(outerLineLength1State)
|
||||
const [length2, setLength2] = useRecoilState(outerLineLength2State)
|
||||
const [arrow1, setArrow1] = useRecoilState(outerLineArrow1State)
|
||||
const [arrow2, setArrow2] = useRecoilState(outerLineArrow2State)
|
||||
const [type, setType] = useRecoilState(outerLineTypeState)
|
||||
const [angle1, setAngle1] = useRecoilState(outerLineAngle1State)
|
||||
const [angle2, setAngle2] = useRecoilState(outerLineAngle2State)
|
||||
const [outerLineDiagonalLength, setOuterLineDiagonalLength] = useRecoilState(outerLineDiagonalState)
|
||||
const [length1, setLength1] = useRecoilState(auxiliaryLineLength1State)
|
||||
const [length2, setLength2] = useRecoilState(auxiliaryLineLength2State)
|
||||
const [arrow1, setArrow1] = useRecoilState(auxiliaryLineArrow1State)
|
||||
const [arrow2, setArrow2] = useRecoilState(auxiliaryLineArrow2State)
|
||||
const [type, setType] = useRecoilState(auxiliaryLineTypeState)
|
||||
const [angle1, setAngle1] = useRecoilState(auxiliaryLineAngle1State)
|
||||
const [angle2, setAngle2] = useRecoilState(auxiliaryLineAngle2State)
|
||||
const [auxiliaryLineDiagonalLength, setAuxiliaryLineDiagonalLength] = useRecoilState(auxiliaryLineDiagonalState)
|
||||
const arrow1Ref = useRef(arrow1)
|
||||
const arrow2Ref = useRef(arrow2)
|
||||
|
||||
const typeRef = useRef(type)
|
||||
|
||||
const outerLineDiagonalLengthRef = useRef(0)
|
||||
const auxiliaryLineDiagonalLengthRef = useRef(0)
|
||||
const intersectionPoints = useRef([])
|
||||
const verticalHorizontalMode = useRecoilValue(verticalHorizontalModeState)
|
||||
|
||||
@ -124,7 +124,7 @@ export function useAuxiliaryDrawing(id, isUseEffect = true) {
|
||||
setAngle1(0)
|
||||
setAngle2(0)
|
||||
|
||||
setOuterLineDiagonalLength(0)
|
||||
setAuxiliaryLineDiagonalLength(0)
|
||||
}
|
||||
|
||||
const move = (object, x, y) => {
|
||||
@ -408,7 +408,7 @@ export function useAuxiliaryDrawing(id, isUseEffect = true) {
|
||||
//대각선 완료될 경우 확인
|
||||
const checkDiagonal = (direction) => {
|
||||
const activeElem = document.activeElement
|
||||
const diagonalLength = outerLineDiagonalLengthRef.current.value // 대각선 길이
|
||||
const diagonalLength = auxiliaryLineDiagonalLengthRef.current.value // 대각선 길이
|
||||
|
||||
const length1Value = length1Ref.current.value
|
||||
|
||||
@ -913,9 +913,9 @@ export function useAuxiliaryDrawing(id, isUseEffect = true) {
|
||||
angle2,
|
||||
setAngle2,
|
||||
angle2Ref,
|
||||
outerLineDiagonalLength,
|
||||
setOuterLineDiagonalLength,
|
||||
outerLineDiagonalLengthRef,
|
||||
auxiliaryLineDiagonalLength,
|
||||
setAuxiliaryLineDiagonalLength,
|
||||
auxiliaryLineDiagonalLengthRef,
|
||||
type,
|
||||
setType,
|
||||
handleFix,
|
||||
|
||||
@ -24,7 +24,7 @@ export function useCircuitTrestle(executeEffect = false) {
|
||||
const [selectedModels, setSelectedModels] = useRecoilState(selectedModelsState)
|
||||
const [pcsCheck, setPcsCheck] = useRecoilState(pcsCheckState)
|
||||
const selectedModules = useRecoilValue(selectedModuleState)
|
||||
const { managementState, setManagementState, managementStateLoaded } = useContext(GlobalDataContext)
|
||||
const { managementState } = useContext(GlobalDataContext)
|
||||
const canvas = useRecoilValue(canvasState)
|
||||
const setModuleStatistics = useSetRecoilState(moduleStatisticsState)
|
||||
const resetModuleStatistics = useResetRecoilState(moduleStatisticsState)
|
||||
|
||||
71
src/store/auxiliaryLineAtom.js
Normal file
71
src/store/auxiliaryLineAtom.js
Normal file
@ -0,0 +1,71 @@
|
||||
import { atom } from 'recoil'
|
||||
|
||||
// 보조선 타입
|
||||
export const AUXILIARY_LINE_TYPE = {
|
||||
OUTER_LINE: 'outerLine', // 외벽선
|
||||
RIGHT_ANGLE: 'rightAngle', // 직각
|
||||
DOUBLE_PITCH: 'doublePitch',
|
||||
ANGLE: 'angle', // 각도
|
||||
DIAGONAL_LINE: 'diagonalLine', // 대각선
|
||||
}
|
||||
|
||||
/**
|
||||
* 보조선 작성에서 사용하는 recoilState
|
||||
*/
|
||||
|
||||
export const auxiliaryLineLength1State = atom({
|
||||
//길이1
|
||||
key: 'auxiliaryLineLength1State',
|
||||
default: 0,
|
||||
})
|
||||
|
||||
export const auxiliaryLineLength2State = atom({
|
||||
// 길이2
|
||||
key: 'auxiliaryLineLength2State',
|
||||
default: 0,
|
||||
})
|
||||
|
||||
export const auxiliaryLineArrow1State = atom({
|
||||
// 방향1
|
||||
key: 'auxiliaryLineArrow1State',
|
||||
default: '',
|
||||
})
|
||||
|
||||
export const auxiliaryLineArrow2State = atom({
|
||||
// 방향2
|
||||
key: 'auxiliaryLineArrow2State',
|
||||
default: '',
|
||||
})
|
||||
|
||||
export const auxiliaryLineAngle1State = atom({
|
||||
// 각도1
|
||||
key: 'auxiliaryLineAngle1State',
|
||||
default: 0,
|
||||
})
|
||||
|
||||
export const auxiliaryLineAngle2State = atom({
|
||||
// 각도2
|
||||
key: 'auxiliaryLineAngle2State',
|
||||
default: 0,
|
||||
})
|
||||
|
||||
export const auxiliaryLineDiagonalState = atom({
|
||||
// 대각선
|
||||
key: 'auxiliaryLineDiagonalState',
|
||||
default: 0,
|
||||
})
|
||||
|
||||
export const auxiliaryLineTypeState = atom({
|
||||
key: 'auxiliaryLineTypeState',
|
||||
default: AUXILIARY_LINE_TYPE.OUTER_LINE,
|
||||
})
|
||||
|
||||
export const auxiliaryLinePointsState = atom({
|
||||
key: 'auxiliaryLinePointsState',
|
||||
default: [],
|
||||
})
|
||||
|
||||
export const auxiliaryLineFixState = atom({
|
||||
key: 'auxiliaryLineFixState',
|
||||
default: false,
|
||||
})
|
||||
Loading…
x
Reference in New Issue
Block a user