Merge pull request 'dev' (#520) from dev into prd-deploy

Reviewed-on: #520
This commit is contained in:
ysCha 2025-12-24 10:42:52 +09:00
commit fd65d17e9c
3 changed files with 52 additions and 18 deletions

View File

@ -1,13 +1,10 @@
import { GlobalDataContext } from '@/app/GlobalDataProvider'
import QSelectBox from '@/components/common/select/QSelectBox'
import { useMessage } from '@/hooks/useMessage'
import { canvasState } from '@/store/canvasAtom'
import { modelState, pcsCheckState } from '@/store/circuitTrestleAtom'
import { pcsCheckState } from '@/store/circuitTrestleAtom'
import { selectedModuleState } from '@/store/selectedModuleOptions'
import { useContext, useEffect, useState } from 'react'
import { useEffect, useState } from 'react'
import { useRecoilState, useRecoilValue } from 'recoil'
import { useCanvasPopupStatusController } from '@/hooks/common/useCanvasPopupStatusController'
import { canvasPopupStatusStore } from '@/store/canvasPopupStatusAtom'
import { useMasterController } from '@/hooks/common/useMasterController'
import { v4 as uuidv4 } from 'uuid'
import { globalLocaleStore } from '@/store/localeAtom'
@ -15,7 +12,6 @@ import { POLYGON_TYPE } from '@/common/common'
import { useSwal } from '@/hooks/useSwal'
import { circuitNumDisplaySelector } from '@/store/settingAtom'
import { fontSelector } from '@/store/fontAtom'
import { PCS_MKR_MULTI_TYPE } from './PowerConditionalSelect'
export default function StepUp(props) {
const {
@ -109,7 +105,7 @@ export default function StepUp(props) {
/** 캔버스에 회로 정보 적용 */
// pcs setSubOpsions, setMainOptions
console.log('stepUpListData', stepUpListData)
let mChk = 0;
let mChk = 0
stepUpListData[0].pcsItemList.forEach((pcsItem, index) => {
const optionList = formatOptionCodes(pcsItem.optionList)
if (isMultiOptions()) {
@ -166,7 +162,7 @@ export default function StepUp(props) {
targetModule.circuitNumber = module.circuit
canvas.add(moduleCircuitText)
} else {
mChk++;
mChk++
}
})
})
@ -399,10 +395,14 @@ export default function StepUp(props) {
}))
}
const handleChangeApplyParalQty = (mainIdx, subIdx, applyParalQty) => {
handleRowClick(mainIdx, subIdx, applyParalQty)
}
/**
* 선택 핸들러 함수 추가
*/
const handleRowClick = (mainIdx, subIdx) => {
const handleRowClick = (mainIdx, subIdx, applyParalQty = null) => {
/** 자동 승압 설정인 경우만 실행 */
if (allocationType !== 'auto') return
@ -434,7 +434,13 @@ export default function StepUp(props) {
/** 선택된 serQty 찾기 */
const selectedSerQty = matchingPcsItem?.serQtyList.find((serQty) => serQty.selected)?.serQty || 0
if (index === 0) {
return {
...pcsItem,
applySerQty: selectedSerQty,
applyParalQty: +applyParalQty,
}
}
return {
...pcsItem,
applySerQty: selectedSerQty,
@ -474,7 +480,7 @@ export default function StepUp(props) {
module.pcsItemId = null
})
/** 선택된 모듈 목록 추가 */
/** 선택된 모듈 목록 추가 */
selectedData.roofSurfaceList.forEach((roofSurface) => {
const targetSurface = canvas.getObjects().filter((obj) => obj.id === roofSurface.roofSurfaceId)[0]
const moduleIds = targetSurface.modules.map((module) => {
@ -523,7 +529,7 @@ export default function StepUp(props) {
canvas.renderAll()
setModuleStatisticsData()
}
}
/**
* 현재 선택된 값들을 가져오는 함수 추가
@ -645,15 +651,39 @@ export default function StepUp(props) {
<tr
key={`row-${serQtyIdx}`}
className={`${item.selected ? 'on' : ''}`}
onClick={() => handleRowClick(idx, serQtyIdx)}
onClick={() => {
if (idx === 0) return
handleRowClick(idx, serQtyIdx)
}}
style={{ cursor: allocationType === 'auto' ? 'pointer' : 'default' }}
>
<td className="al-r">{item.serQty}</td>
<td className="al-r">
{/* 2025.12.04 select 추가 */}
<select className="select-light dark table-select" name="" id="">
<option value="">{item.paralQty}</option>
</select>
{idx === 0 ? (
<select
className="select-light dark table-select"
defaultValue={item.paralQty}
name=""
id=""
onChange={(e) => {
handleChangeApplyParalQty(idx, serQtyIdx, e.target.value)
}}
>
{item.paralQty === 0 && (
<option key="0" value="0">
0
</option>
)}
{Array.from({ length: item.paralQty }, (_, i) => i + 1).map((num) => (
<option key={num} value={num}>
{num}
</option>
))}
</select>
) : (
<>{item.paralQty}</>
)}
</td>
{/* <td className="al-r">{item.paralQty}</td> */}
</tr>

View File

@ -267,14 +267,14 @@ export function useModuleBasicSetting(tabNum) {
//도머일때
if (obj.name === BATCH_TYPE.TRIANGLE_DORMER || obj.name === BATCH_TYPE.PENTAGON_DORMER) {
const groupPoints = obj.getCurrentPoints()
const offsetObjects = offsetPolygon(groupPoints, 10)
const offsetObjects = offsetPolygon(groupPoints, 30)
const dormerOffset = new QPolygon(offsetObjects, batchObjectOptions)
dormerOffset.setViewLengthText(false)
canvas.add(dormerOffset) //모듈설치면 만들기
} else {
//개구, 그림자일때
const points = obj.getCurrentPoints()
const offsetObjects = offsetPolygon(points, 10)
const offsetObjects = offsetPolygon(points, 30)
const offset = new QPolygon(offsetObjects, batchObjectOptions)
offset.setViewLengthText(false)
canvas.add(offset) //모듈설치면 만들기

View File

@ -50,6 +50,10 @@ export function useCanvasEvent() {
if (target) {
// settleDown(target)
// roof 이동 후 좌표 재계산
if (target.name === POLYGON_TYPE.ROOF && target.type === 'QPolygon') {
target.fire('polygonMoved')
}
}
},
addEvent: (e) => {