Merge branch 'qcast-pub' into dev

# Conflicts:
#	src/components/floor-plan/modal/basic/BasicSetting.jsx
This commit is contained in:
김민식 2025-02-06 17:56:06 +09:00
commit a5a5355dc5
8 changed files with 44 additions and 111 deletions

View File

@ -6,7 +6,7 @@ import PitchModule from '@/components/floor-plan/modal/basic/step/pitch/PitchMod
import PitchPlacement from '@/components/floor-plan/modal/basic/step/pitch/PitchPlacement'
import Placement from '@/components/floor-plan/modal/basic/step/Placement'
import { useRecoilValue, useRecoilState } from 'recoil'
import { canvasSettingState, isManualModuleSetupState } from '@/store/canvasAtom'
import { canvasSettingState, canvasState, isManualModuleSetupState } from '@/store/canvasAtom'
import { usePopup } from '@/hooks/usePopup'
import { Orientation } from '@/components/floor-plan/modal/basic/step/Orientation'
import { useModuleBasicSetting } from '@/hooks/module/useModuleBasicSetting'
@ -19,6 +19,7 @@ import { useCanvasPopupStatusController } from '@/hooks/common/useCanvasPopupSta
import { useMasterController } from '@/hooks/common/useMasterController'
import { loginUserStore } from '@/store/commonAtom'
import { currentCanvasPlanState } from '@/store/canvasAtom'
import { POLYGON_TYPE } from '@/common/common'
export default function BasicSetting({ id, pos = { x: 50, y: 230 } }) {
const { getMessage } = useMessage()
@ -32,6 +33,7 @@ export default function BasicSetting({ id, pos = { x: 50, y: 230 } }) {
const addedRoofs = useRecoilValue(addedRoofsState)
const loginUserState = useRecoilValue(loginUserStore)
const currentCanvasPlan = useRecoilValue(currentCanvasPlanState)
const canvas = useRecoilValue(canvasState)
// const { initEvent } = useContext(EventContext)
const { manualModuleSetup, autoModuleSetup, manualFlatroofModuleSetup, autoFlatroofModuleSetup } = useModuleBasicSetting(1)
@ -97,6 +99,17 @@ export default function BasicSetting({ id, pos = { x: 50, y: 230 } }) {
const res = await updateObjectDate(params)
}
useEffect(() => {
let hasModules = canvas
.getObjects()
.filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE)
.some((obj) => obj.modules?.length > 0)
if (hasModules) {
setTabNum(3)
}
}, [])
useEffect(() => {
if (canvasSetting.roofSizeSet !== '3') {
manualModuleSetup(placementRef)
@ -158,8 +171,7 @@ export default function BasicSetting({ id, pos = { x: 50, y: 230 } }) {
</button>
</>
)}
{console.log('canvasSetting.roofSizeSet', canvasSetting.roofSizeSet)}
{canvasSetting.roofSizeSet && canvasSetting.roofSizeSet == 3 && (
{canvasSetting.roofSizeSet && canvasSetting.roofSizeSet === 3 && (
<>
<button className={`btn-frame modal mr5 ${isManualModuleSetup ? 'act' : ''}`} onClick={handleManualModuleSetup}>
{getMessage('modal.module.basic.setting.passivity.placement')}

View File

@ -507,6 +507,7 @@ export default function CircuitTrestleSetting({ id }) {
selectedModels,
setSelectedModels,
managementState,
getUseModuleItemList,
}
//

View File

@ -27,6 +27,7 @@ export default function PowerConditionalSelect(props) {
selectedModels,
setSelectedModels,
managementState,
getUseModuleItemList,
} = props
const [pcsCheck, setPcsCheck] = useRecoilState(pcsCheckState)
@ -159,8 +160,14 @@ export default function PowerConditionalSelect(props) {
setModels([])
setSelectedModels([])
setSelectedMaker(option)
console.log('option', option)
getUseModuleItemList
const param = {
pcsMkrCd: option.pcsMkrCd,
mixMatlNo: getUseModuleItemList()[0].mixMatlNo,
}
getPcsMakerList(option).then((res) => {
getPcsMakerList(param).then((res) => {
setSeries(
res.data.map((series) => {
return { ...series, selected: false }

View File

@ -350,6 +350,12 @@ export default function StepUp(props) {
return module.id
})
targetSurface.modules.map((module) => {
module.circuit = null
module.circuitNumber = null
module.pcsItemId = null
})
//
canvas
.getObjects()
@ -363,6 +369,7 @@ export default function StepUp(props) {
roofSurface.moduleList.forEach((module) => {
const targetModule = canvas.getObjects().filter((obj) => obj.id === module.uniqueId)[0]
if (module.circuit === '') return
const moduleCircuitText = new fabric.Text(module.circuit, {
left: targetModule.left + targetModule.width / 2,
top: targetModule.top + targetModule.height / 2,

View File

@ -33,9 +33,6 @@ export default function PassivityCircuitAllocation(props) {
const isDisplayCircuitNumber = useRecoilValue(circuitNumDisplaySelector)
useEffect(() => {
console.log('header, rows', header, rows)
console.log('selectedModels', selectedModels)
// setSurfaceInfo()
setModuleStatisticsData()
if (!managementState) {
setManagementState(managementStateLoaded)
@ -78,80 +75,6 @@ export default function PassivityCircuitAllocation(props) {
canvas.renderAll()
}
const setSurfaceInfo = () => {
const surfaces = canvas.getObjects().filter((obj) => POLYGON_TYPE.MODULE_SETUP_SURFACE === obj.name)
// setHeaders([header[0], { name: '', prop: 'circuit' }, ...header.slice(1)])
// setRows(
// rows.map((row) => {
// return {
// ...row,
// circuit: '',
// }
// }),
// )
// let totals = {}
// rows.forEach((row) => {
// if (header.length === 4) {
// if (!totals[header[2].prop]) totals[header[2].prop] = 0
// totals[header[2].prop] += +row[header[2].prop]
// } else if (header.length === 5) {
// if (!totals[header[2].prop]) totals[header[2].prop] = 0
// totals[header[2].prop] += +row[header[2].prop]
// if (!totals[header[3].prop]) totals[header[3].prop] = 0
// totals[header[3]] += +row[header[3]]
// }
// })
// setFooter([
// ...['', ''],
// ...Object.keys(totals).map((key) => {
// return totals[key]
// }),
// Object.keys(totals).reduce((acc, key) => {
// return acc + totals[key]
// }, 0),
// ])
// let totalWpout = 0
// const rows = surfaces.map((surface) => {
// let wpOut = 0
// let moduleInfo = {}
// surface.modules.forEach((module) => {
// wpOut += +module.moduleInfo.wpOut
// if (!moduleInfo[module.moduleInfo.itemId]) moduleInfo[module.moduleInfo.itemId] = 0
// moduleInfo[module.moduleInfo.itemId]++
// })
// totalWpout += wpOut
// console.log('🚀 ~ moduleData.rows=surfaces.map ~ module:', module)
// return {
// roofShape: DIRECTION[surface.direction],
// powerGeneration: wpOut.toLocaleString('ko-KR', { maximumFractionDigits: 4 }),
// ...moduleInfo,
// }
// })
// setTotalWpout(totalWpout)
// -> ->
// wpOut
// setModuleData({
// header: [
// { name: getMessage('modal.panel.batch.statistic.roof.shape'), prop: 'roofShape' },
// { name: getMessage('modal.circuit.trestle.setting.circuit.allocation.passivity.circuit'), prop: 'circuit' },
// ...selectedModules.itemList.map((module) => {
// return {
// name: module.itemNm,
// prop: module.itemId,
// }
// }),
// {
// name: `${getMessage('modal.panel.batch.statistic.power.generation.amount')}(kW)`,
// prop: 'powerGeneration',
// },
// ],
// rows: rows,
// })
}
const handleCircuitNumberFix = () => {
let uniqueCircuitNumbers = [
...new Set(
@ -177,6 +100,7 @@ export default function PassivityCircuitAllocation(props) {
return
} else if (selectedModels.length > 1) {
let result = false
uniqueCircuitNumbers.forEach((number) => {
if (
number.split('-')[1] === circuitNumber + ')' &&
@ -229,20 +153,14 @@ export default function PassivityCircuitAllocation(props) {
setSelectedPcs(tempSelectedPcs)
canvas.add(moduleCircuitText)
})
console.log('🚀 ~ handleCircuitNumberFix ~ selectedModels:', selectedModels)
// let pcsList = [...selectedModels.map((model) => ({ ...model }))]
let pcsList = JSON.parse(JSON.stringify(selectedModels))
pcsList = pcsList.map((model) => {
console.log('🚀 ~ handleCircuitNumberFix ~ pcsList:', pcsList)
let pcsList = JSON.parse(JSON.stringify(selectedModels)).map((model) => {
if (model.id === selectedPcs.id) {
model.isUsed = true
}
return model
})
console.log('🚀 ~ handleCircuitNumberFix ~ pcsList:', pcsList)
const roofSurfaceList = canvas
.getObjects()
.filter((obj) => POLYGON_TYPE.MODULE_SETUP_SURFACE === obj.name && obj?.modules.length > 0)
@ -261,7 +179,6 @@ export default function PassivityCircuitAllocation(props) {
}
})
console.log('uniqueCircuitNumbers', uniqueCircuitNumbers)
const usedPcses = pcsList.filter((model) => model.isUsed)
const pcsItemList = usedPcses.map((model, index) => {
return {
@ -289,7 +206,6 @@ export default function PassivityCircuitAllocation(props) {
}
getPcsManualConfChk(params).then((res) => {
console.log('targetModules', targetModules)
if (res.resultCode === 'E') {
swalFire({
text: res.resultMsg,
@ -321,8 +237,6 @@ export default function PassivityCircuitAllocation(props) {
setModuleStatisticsData()
})
}
console.log('🚀 ~ handleCircuitNumberFix ~ selectedModels:', selectedModels)
console.log('🚀 ~ handleCircuitNumberFix ~ selectedModels:', selectedModels)
const getCircuitNumber = () => {
if (selectedModels.length === 1) {
@ -334,7 +248,7 @@ export default function PassivityCircuitAllocation(props) {
const initSelectedPcsCircuitNumber = () => {
swalFire({
title: getMessage('modal.circuit.trestle.setting.circuit.allocation.passivity.init.info'),
title: getMessage('modal.circuit.trestle.setting.circuit.allocation.passivity.selected.power.conditional.reset.info'),
type: 'confirm',
icon: 'warning',
confirmFn: () => {
@ -355,7 +269,7 @@ export default function PassivityCircuitAllocation(props) {
const initAllPcsCircuitNumber = () => {
canvas.discardActiveObject()
swalFire({
title: getMessage('modal.circuit.trestle.setting.circuit.allocation.passivity.init.setting.info'),
title: getMessage('modal.circuit.trestle.setting.circuit.allocation.passivity.all.power.conditional.reset.info'),
type: 'confirm',
icon: 'warning',
confirmFn: () => {
@ -444,18 +358,6 @@ export default function PassivityCircuitAllocation(props) {
</label>
</div>
))}
{/* <div className="d-check-radio pop mb10">
<input type="radio" name="radio01" id="ra01" />
<label htmlFor="ra01">HQJP-KA55-5 (標準回路2枚10)</label>
</div>
<div className="d-check-radio pop mb10">
<input type="radio" name="radio01" id="ra02" />
<label htmlFor="ra02">HQJP-KA55-5 (標準回路2枚10)</label>
</div>
<div className="d-check-radio pop">
<input type="radio" name="radio01" id="ra03" />
<label htmlFor="ra03">HQJP-KA55-5 (標準回路2枚10)</label>
</div>*/}
</div>
</div>
</div>

View File

@ -1010,10 +1010,10 @@ export function useModule() {
wpOut: 0,
circuits: { wpOut: 0 },
}
}
if (!surfaceObjects[surface.id].circuits[module.circuitNumber].circuits[module.moduleInfo.itemId]) {
surfaceObjects[surface.id].circuits[module.circuitNumber].circuits[module.moduleInfo.itemId] = 0
}
if (!surfaceObjects[surface.id].circuits[module.circuitNumber].circuits[module.moduleInfo.itemId]) {
surfaceObjects[surface.id].circuits[module.circuitNumber].circuits[module.moduleInfo.itemId] = 0
}
surfaceObjects[surface.id].circuits[module.circuitNumber].circuits[module.moduleInfo.itemId]++
surfaceObjects[surface.id].circuits[module.circuitNumber].circuits.wpOut += +module.moduleInfo.wpOut
@ -1027,7 +1027,7 @@ export function useModule() {
let tempRow = {
name: surfaceObjects[key].roofSurface,
circuit: surfaceObjects[key].circuit,
wpOut: parseInt((surfaceObjects[key].wpOut / 1000).toFixed(3)),
wpOut: parseFloat(surfaceObjects[key].wpOut / 1000),
}
selectedModules.itemList.forEach((module) => {
tempRow[module.itemId] = surfaceObjects[key][module.itemId]
@ -1038,7 +1038,7 @@ export function useModule() {
let row = {
name: surfaceObjects[key].roofSurface,
circuit: surfaceObjects[key].circuits[circuit].circuit,
wpOut: parseInt((surfaceObjects[key].circuits[circuit].circuits.wpOut / 1000).toFixed(3)),
wpOut: parseFloat(surfaceObjects[key].circuits[circuit].circuits.wpOut / 1000),
}
selectedModules.itemList.forEach((module) => {
row[module.itemId] = surfaceObjects[key].circuits[circuit].circuits[module.itemId]

View File

@ -153,7 +153,9 @@
"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.info": "선택된 파워 컨디셔너의 회로할당을 초기화합니다.(JA)",
"modal.circuit.trestle.setting.circuit.allocation.passivity.all.power.conditional.reset": "すべての回路番号の初期化",
"modal.circuit.trestle.setting.circuit.allocation.passivity.all.power.conditional.reset.info": "회로 할당의 설정을 초기화합니다.(JA)",
"modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.num.fix": "番号確定",
"modal.circuit.trestle.setting.step.up.allocation": "昇圧設定",
"modal.circuit.trestle.setting.step.up.allocation.serial.amount": "シリアル枚数",

View File

@ -153,7 +153,9 @@
"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.info": "선택된 파워 컨디셔너의 회로할당을 초기화합니다.",
"modal.circuit.trestle.setting.circuit.allocation.passivity.all.power.conditional.reset": "모든 회로번호 초기화",
"modal.circuit.trestle.setting.circuit.allocation.passivity.all.power.conditional.reset.info": "회로 할당의 설정을 초기화합니다.",
"modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.num.fix": "번호 확정",
"modal.circuit.trestle.setting.step.up.allocation": "승압 설정",
"modal.circuit.trestle.setting.step.up.allocation.serial.amount": "직렬매수",