회로. 가대 설정 개발중
This commit is contained in:
parent
b6dbda507d
commit
1d89b1f355
@ -95,7 +95,8 @@ export default function CircuitTrestleSetting({ id }) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
setAllocationType(ALLOCATION_TYPE.AUTO)
|
// setAllocationType(ALLOCATION_TYPE.AUTO)
|
||||||
|
setTabNum(2)
|
||||||
}
|
}
|
||||||
|
|
||||||
const onPassivityAllocation = () => {
|
const onPassivityAllocation = () => {
|
||||||
|
|||||||
@ -4,16 +4,11 @@ import { useMessage } from '@/hooks/useMessage'
|
|||||||
import { canvasState } from '@/store/canvasAtom'
|
import { canvasState } from '@/store/canvasAtom'
|
||||||
import { modelState, pcsCheckState } from '@/store/circuitTrestleAtom'
|
import { modelState, pcsCheckState } from '@/store/circuitTrestleAtom'
|
||||||
import { selectedModuleState } from '@/store/selectedModuleOptions'
|
import { selectedModuleState } from '@/store/selectedModuleOptions'
|
||||||
import { useContext, useState } from 'react'
|
import { useContext, useEffect, useState } from 'react'
|
||||||
import { useRecoilState } from 'recoil'
|
import { useRecoilState, useRecoilValue } from 'recoil'
|
||||||
import { useState } from 'react'
|
|
||||||
import { useRecoilValue } from 'recoil'
|
|
||||||
import { useCanvasPopupStatusController } from '@/hooks/common/useCanvasPopupStatusController'
|
import { useCanvasPopupStatusController } from '@/hooks/common/useCanvasPopupStatusController'
|
||||||
import { canvasPopupStatusStore } from '@/store/canvasPopupStatusAtom'
|
import { canvasPopupStatusStore } from '@/store/canvasPopupStatusAtom'
|
||||||
import { useMessage } from '@/hooks/useMessage'
|
import { useMasterController } from '@/hooks/common/useMasterController'
|
||||||
import QSelectBox from '@/components/common/select/QSelectBox'
|
|
||||||
|
|
||||||
const SelectOption01 = [{ name: '0' }, { name: '0' }, { name: '0' }, { name: '0' }]
|
|
||||||
|
|
||||||
export default function StepUp({}) {
|
export default function StepUp({}) {
|
||||||
const { getMessage } = useMessage()
|
const { getMessage } = useMessage()
|
||||||
@ -25,6 +20,7 @@ export default function StepUp({}) {
|
|||||||
const { managementState, setManagementState, managementStateLoaded } = useContext(GlobalDataContext)
|
const { managementState, setManagementState, managementStateLoaded } = useContext(GlobalDataContext)
|
||||||
const canvas = useRecoilValue(canvasState)
|
const canvas = useRecoilValue(canvasState)
|
||||||
const selectedModules = useRecoilValue(selectedModuleState)
|
const selectedModules = useRecoilValue(selectedModuleState)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!managementState) {
|
if (!managementState) {
|
||||||
console.log('🚀 ~ useEffect ~ managementState:', managementState)
|
console.log('🚀 ~ useEffect ~ managementState:', managementState)
|
||||||
@ -71,7 +67,6 @@ export default function StepUp({}) {
|
|||||||
getPcsAutoRecommendList(params)
|
getPcsAutoRecommendList(params)
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
|
|
||||||
useCanvasPopupStatusController(6)
|
useCanvasPopupStatusController(6)
|
||||||
const canvasPopupStatusState = useRecoilValue(canvasPopupStatusStore)
|
const canvasPopupStatusState = useRecoilValue(canvasPopupStatusStore)
|
||||||
if (Object.keys(canvasPopupStatusState[6]).length !== 0) {
|
if (Object.keys(canvasPopupStatusState[6]).length !== 0) {
|
||||||
@ -186,7 +181,7 @@ export default function StepUp({}) {
|
|||||||
{getMessage('modal.circuit.trestle.setting.step.up.allocation.select.monitor')}
|
{getMessage('modal.circuit.trestle.setting.step.up.allocation.select.monitor')}
|
||||||
</span>
|
</span>
|
||||||
<div className="grid-select mr10">
|
<div className="grid-select mr10">
|
||||||
<QSelectBox title={'電力検出ユニット (モニター付き)'} options={SelectOption01} />
|
<QSelectBox title={'電力検出ユニット (モニター付き)'} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,16 +1,27 @@
|
|||||||
|
import { GlobalDataContext } from '@/app/GlobalDataProvider'
|
||||||
import { useMessage } from '@/hooks/useMessage'
|
import { useMessage } from '@/hooks/useMessage'
|
||||||
|
import { canvasState } from '@/store/canvasAtom'
|
||||||
import { modelState } from '@/store/circuitTrestleAtom'
|
import { modelState } from '@/store/circuitTrestleAtom'
|
||||||
import { selectedModuleState } from '@/store/selectedModuleOptions'
|
import { selectedModuleState } from '@/store/selectedModuleOptions'
|
||||||
import { useEffect, useState } from 'react'
|
import { useContext, useEffect, useState } from 'react'
|
||||||
import { useRecoilValue } from 'recoil'
|
import { useRecoilValue } from 'recoil'
|
||||||
|
|
||||||
|
const DIRECTION = {
|
||||||
|
north: '北',
|
||||||
|
south: '南',
|
||||||
|
west: '西',
|
||||||
|
east: '東',
|
||||||
|
}
|
||||||
|
|
||||||
export default function PassivityCircuitAllocation() {
|
export default function PassivityCircuitAllocation() {
|
||||||
const { getMessage } = useMessage()
|
const { getMessage } = useMessage()
|
||||||
|
const canvas = useRecoilValue(canvasState)
|
||||||
const selectedModules = useRecoilValue(selectedModuleState)
|
const selectedModules = useRecoilValue(selectedModuleState)
|
||||||
|
const { managementState, setManagementState, managementStateLoaded } = useContext(GlobalDataContext)
|
||||||
const moduleData = {
|
const moduleData = {
|
||||||
header: [
|
header: [
|
||||||
{ name: getMessage('modal.panel.batch.statistic.roof.shape'), prop: 'roofShape' },
|
{ name: getMessage('modal.panel.batch.statistic.roof.shape'), prop: 'roofShape' },
|
||||||
{ name: getMessage('modal.circuit.trestle.setting.circuilt'), prop: 'circuit' },
|
{ name: getMessage('modal.circuit.trestle.setting.circuit.allocation.passivity.circuit'), prop: 'circuit' },
|
||||||
...selectedModules.itemList.map((module) => {
|
...selectedModules.itemList.map((module) => {
|
||||||
return {
|
return {
|
||||||
name: module.itemNm,
|
name: module.itemNm,
|
||||||
@ -40,9 +51,25 @@ export default function PassivityCircuitAllocation() {
|
|||||||
const model = useRecoilValue(modelState)
|
const model = useRecoilValue(modelState)
|
||||||
const [selectedModels, setSelectedModels] = useState(model.selectedModels)
|
const [selectedModels, setSelectedModels] = useState(model.selectedModels)
|
||||||
const [selectedPcs, setSelectedPcs] = useState(selectedModels[0])
|
const [selectedPcs, setSelectedPcs] = useState(selectedModels[0])
|
||||||
|
const [totalWpout, setTotalWpout] = useState(0)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
console.log('🚀 ~ useEffect ~ selectedPcs:', selectedPcs)
|
setSurfaceInfo()
|
||||||
}, [selectedPcs])
|
if (!managementState) {
|
||||||
|
setManagementState(managementStateLoaded)
|
||||||
|
}
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
const setSurfaceInfo = () => {
|
||||||
|
const surfaces = canvas.getObjects().filter((obj) => ['roofSurface', 'moduleSetupSurface'].includes(obj.name))
|
||||||
|
const modules = canvas.getObjects().filter((obj) => obj.name === 'module')
|
||||||
|
surfaces.forEach((surface) => {
|
||||||
|
surface.moduleList = modules.filter((obj) => obj.surfaceId === surface.id)
|
||||||
|
})
|
||||||
|
// 지붕면 리스트 -> 지붕면에 있는 모듈 리스트 -> 발전량 총합 계산
|
||||||
|
// wpOut
|
||||||
|
console.log('🚀 ~ setSurfaceInfo ~ modules:', surfaces)
|
||||||
|
}
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="properties-setting-wrap outer">
|
<div className="properties-setting-wrap outer">
|
||||||
@ -62,7 +89,7 @@ export default function PassivityCircuitAllocation() {
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{moduleData.rows.map((row, index) => (
|
{moduleData.rows.map((row, index) => (
|
||||||
<tr key={index}>
|
<tr key={index} className="wrong">
|
||||||
{moduleData.header.map((header) => (
|
{moduleData.header.map((header) => (
|
||||||
<td className="al-c" key={header.prop}>
|
<td className="al-c" key={header.prop}>
|
||||||
{row[header.prop].name}
|
{row[header.prop].name}
|
||||||
@ -70,6 +97,13 @@ export default function PassivityCircuitAllocation() {
|
|||||||
))}
|
))}
|
||||||
</tr>
|
</tr>
|
||||||
))}
|
))}
|
||||||
|
<tr className="wrong">
|
||||||
|
<td className="al-c">총합</td>
|
||||||
|
{Array.from({ length: moduleData.header.length - 2 }).map((_, index) => {
|
||||||
|
return <td key={index} className="al-c"></td>
|
||||||
|
})}
|
||||||
|
<td className="al-c">{totalWpout.toLocaleString('ko-KR', { maximumFractionDigits: 4 })}</td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@ -91,7 +125,14 @@ export default function PassivityCircuitAllocation() {
|
|||||||
checked={selectedPcs === model}
|
checked={selectedPcs === model}
|
||||||
onChange={() => setSelectedPcs(model)}
|
onChange={() => setSelectedPcs(model)}
|
||||||
/>
|
/>
|
||||||
<label htmlFor="ra01">{model.itemNm} (標準回路2枚~10枚)</label>
|
<label htmlFor="ra01">
|
||||||
|
{model.itemNm} (
|
||||||
|
{getMessage(
|
||||||
|
'modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.info',
|
||||||
|
managementState?.coldRegionFlg === '1' ? [model.serMinQty, model.serColdZoneMaxQty] : [model.serMinQty, model.serMaxQty],
|
||||||
|
)}
|
||||||
|
)
|
||||||
|
</label>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
{/* <div className="d-check-radio pop mb10">
|
{/* <div className="d-check-radio pop mb10">
|
||||||
|
|||||||
@ -141,9 +141,11 @@
|
|||||||
"modal.circuit.trestle.setting.circuit.allocation": "回路割り当て",
|
"modal.circuit.trestle.setting.circuit.allocation": "回路割り当て",
|
||||||
"modal.circuit.trestle.setting.circuit.allocation.auto": "自動回路割り当て",
|
"modal.circuit.trestle.setting.circuit.allocation.auto": "自動回路割り当て",
|
||||||
"modal.circuit.trestle.setting.circuit.allocation.passivity": "手動回路割当",
|
"modal.circuit.trestle.setting.circuit.allocation.passivity": "手動回路割当",
|
||||||
|
"modal.circuit.trestle.setting.circuit.allocation.passivity.circuit": "回路",
|
||||||
"modal.circuit.trestle.setting.circuit.allocation.passivity.info": "同じ回路のモジュールを選択状態にした後、 [番号確認]ボタンを押すと番号が割り当てられます。",
|
"modal.circuit.trestle.setting.circuit.allocation.passivity.info": "同じ回路のモジュールを選択状態にした後、 [番号確認]ボタンを押すと番号が割り当てられます。",
|
||||||
"modal.circuit.trestle.setting.circuit.allocation.passivity.selected.power.conditional": "選択したパワーコンディショナー",
|
"modal.circuit.trestle.setting.circuit.allocation.passivity.selected.power.conditional": "選択したパワーコンディショナー",
|
||||||
"modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.num": "設定する回路番号 (1~)",
|
"modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.num": "設定する回路番号 (1~)",
|
||||||
|
"modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.info": "標準回路{0}枚~{1}枚",
|
||||||
"modal.circuit.trestle.setting.circuit.allocation.passivity.selected.power.conditional.reset": "選択されたパワーコンディショナーの回路番号の初期化",
|
"modal.circuit.trestle.setting.circuit.allocation.passivity.selected.power.conditional.reset": "選択されたパワーコンディショナーの回路番号の初期化",
|
||||||
"modal.circuit.trestle.setting.circuit.allocation.passivity.all.power.conditional.reset": "すべての回路番号の初期化",
|
"modal.circuit.trestle.setting.circuit.allocation.passivity.all.power.conditional.reset": "すべての回路番号の初期化",
|
||||||
"modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.num.fix": "番号確定",
|
"modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.num.fix": "番号確定",
|
||||||
|
|||||||
@ -145,9 +145,11 @@
|
|||||||
"modal.circuit.trestle.setting.circuit.allocation": "회로 할당",
|
"modal.circuit.trestle.setting.circuit.allocation": "회로 할당",
|
||||||
"modal.circuit.trestle.setting.circuit.allocation.auto": "자동 회로 할당",
|
"modal.circuit.trestle.setting.circuit.allocation.auto": "자동 회로 할당",
|
||||||
"modal.circuit.trestle.setting.circuit.allocation.passivity": "수동 회로 할당",
|
"modal.circuit.trestle.setting.circuit.allocation.passivity": "수동 회로 할당",
|
||||||
|
"modal.circuit.trestle.setting.circuit.allocation.passivity.circuit": "회로",
|
||||||
"modal.circuit.trestle.setting.circuit.allocation.passivity.info": "동일한 회로의 모듈을 선택 상태로 만든 후 [번호 확정] 버튼을 누르면 번호가 할당됩니다.",
|
"modal.circuit.trestle.setting.circuit.allocation.passivity.info": "동일한 회로의 모듈을 선택 상태로 만든 후 [번호 확정] 버튼을 누르면 번호가 할당됩니다.",
|
||||||
"modal.circuit.trestle.setting.circuit.allocation.passivity.selected.power.conditional": "선택된 파워컨디셔너",
|
"modal.circuit.trestle.setting.circuit.allocation.passivity.selected.power.conditional": "선택된 파워컨디셔너",
|
||||||
"modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.num": "설정할 회로번호(1~)",
|
"modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.num": "설정할 회로번호(1~)",
|
||||||
|
"modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.info": "표준회로{0}장~{1}장",
|
||||||
"modal.circuit.trestle.setting.circuit.allocation.passivity.selected.power.conditional.reset": "선택된 파워컨디셔너의 회로번호 초기화",
|
"modal.circuit.trestle.setting.circuit.allocation.passivity.selected.power.conditional.reset": "선택된 파워컨디셔너의 회로번호 초기화",
|
||||||
"modal.circuit.trestle.setting.circuit.allocation.passivity.all.power.conditional.reset": "모든 회로번호 초기화",
|
"modal.circuit.trestle.setting.circuit.allocation.passivity.all.power.conditional.reset": "모든 회로번호 초기화",
|
||||||
"modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.num.fix": "번호 확정",
|
"modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.num.fix": "번호 확정",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user