레이아웃 설치 validate 추가
This commit is contained in:
parent
87ef010ae6
commit
d6b9634a89
@ -64,8 +64,6 @@ const Placement = forwardRef((props, refs) => {
|
|||||||
|
|
||||||
//최초 지입시 체크
|
//최초 지입시 체크
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
console.log('moduleSelectionData', moduleSelectionData)
|
|
||||||
|
|
||||||
if (isObjectNotEmpty(moduleSelectionData)) {
|
if (isObjectNotEmpty(moduleSelectionData)) {
|
||||||
//두번째 선택한 데이터가를 기반으로 세번째 선택을 체크한다
|
//두번째 선택한 데이터가를 기반으로 세번째 선택을 체크한다
|
||||||
if (moduleSelectionData.roofConstructions.length > 0 && moduleSelectionData.module.itemList.length > 0) {
|
if (moduleSelectionData.roofConstructions.length > 0 && moduleSelectionData.module.itemList.length > 0) {
|
||||||
@ -77,9 +75,10 @@ const Placement = forwardRef((props, refs) => {
|
|||||||
initCheckedModule = { ...initCheckedModule, [obj.itemId]: true }
|
initCheckedModule = { ...initCheckedModule, [obj.itemId]: true }
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
setSelectedItems(initCheckedModule)
|
setSelectedItems(initCheckedModule)
|
||||||
setSelectedModules(moduleSelectionData.module)
|
setSelectedModules(moduleSelectionData.module)
|
||||||
props.setLayoutSetup(moduleSelectionData.module.itemList.map((item) => ({ moduleId: item.itemId, col: 0, row: 0 })))
|
props.setLayoutSetup(moduleSelectionData.module.itemList.map((item) => ({ moduleId: item.itemId, col: 0, row: 0, checked: true })))
|
||||||
}
|
}
|
||||||
|
|
||||||
//모듈 배치면 생성
|
//모듈 배치면 생성
|
||||||
@ -131,13 +130,25 @@ const Placement = forwardRef((props, refs) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//체크된 모듈 아이디 추출
|
//체크된 모듈 아이디 추출
|
||||||
const handleSelectedItem = (e) => {
|
const handleSelectedItem = (e, itemId) => {
|
||||||
setSelectedItems({ ...selectedItems, [e.target.name]: e.target.checked })
|
setSelectedItems({ ...selectedItems, [e.target.name]: e.target.checked })
|
||||||
|
|
||||||
|
const newLayoutSetup = [...props.layoutSetup]
|
||||||
|
props.layoutSetup.forEach((item, index) => {
|
||||||
|
if (item.moduleId === itemId) {
|
||||||
|
newLayoutSetup[index] = { ...props.layoutSetup[index], checked: e.target.checked }
|
||||||
|
}
|
||||||
|
})
|
||||||
|
props.setLayoutSetup(newLayoutSetup)
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleLayoutSetup = (e, itemId, index) => {
|
const handleLayoutSetup = (e, itemId, index) => {
|
||||||
const newLayoutSetup = [...props.layoutSetup]
|
const newLayoutSetup = [...props.layoutSetup]
|
||||||
newLayoutSetup[index] = { ...newLayoutSetup[index], moduleId: itemId, [e.target.name]: Number(e.target.value) }
|
newLayoutSetup[index] = {
|
||||||
|
...newLayoutSetup[index],
|
||||||
|
moduleId: itemId,
|
||||||
|
[e.target.name]: Number(e.target.value),
|
||||||
|
}
|
||||||
props.setLayoutSetup(newLayoutSetup)
|
props.setLayoutSetup(newLayoutSetup)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -173,7 +184,7 @@ const Placement = forwardRef((props, refs) => {
|
|||||||
id={item.itemId}
|
id={item.itemId}
|
||||||
name={item.itemId}
|
name={item.itemId}
|
||||||
checked={selectedItems[item.itemId]}
|
checked={selectedItems[item.itemId]}
|
||||||
onChange={handleSelectedItem}
|
onChange={(e) => handleSelectedItem(e, item.itemId)}
|
||||||
/>
|
/>
|
||||||
<label htmlFor={item.itemId}></label>
|
<label htmlFor={item.itemId}></label>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -892,8 +892,11 @@ export function useModuleBasicSetting(tabNum) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//숫자 0이 하나라도 있으면 설치 불가
|
||||||
const hasZeroLength = checkedModule.some((item) =>
|
const hasZeroLength = checkedModule.some((item) =>
|
||||||
layoutSetupRef.some((layoutItem) => item.itemId === layoutItem.moduleId && (layoutItem.row === 0 || layoutItem.col === 0)),
|
layoutSetupRef.some(
|
||||||
|
(layoutItem) => layoutItem.checked && item.itemId === layoutItem.moduleId && (layoutItem.row === 0 || layoutItem.col === 0),
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
if (hasZeroLength) {
|
if (hasZeroLength) {
|
||||||
@ -903,6 +906,16 @@ export function useModuleBasicSetting(tabNum) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//혼합 가능 모듈과 혼합 불가능 모듈을 선택했을때 카운트를 해서 확인
|
||||||
|
const mixAsgY = checkedModule.filter((obj) => obj.mixAsgYn === 'Y')
|
||||||
|
const mixAsgN = checkedModule.filter((obj) => obj.mixAsgYn === 'N')
|
||||||
|
|
||||||
|
//Y인 모듈과 N인 모듈이 둘다 존재하면 설치 불가
|
||||||
|
if (mixAsgY.length > 0 && mixAsgN.length > 0) {
|
||||||
|
swalFire({ text: getMessage('modal.module.basic.setting.module.placement.mix.asg.yn.error') })
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
const batchObjects = canvas?.getObjects().filter((obj) => obj.name === POLYGON_TYPE.OBJECT_SURFACE) //도머s 객체
|
const batchObjects = canvas?.getObjects().filter((obj) => obj.name === POLYGON_TYPE.OBJECT_SURFACE) //도머s 객체
|
||||||
//수동모드 모듈 설치면 선택 잠금
|
//수동모드 모듈 설치면 선택 잠금
|
||||||
moduleSetupSurfaces.forEach((obj) => {
|
moduleSetupSurfaces.forEach((obj) => {
|
||||||
@ -1260,7 +1273,7 @@ export function useModuleBasicSetting(tabNum) {
|
|||||||
|
|
||||||
//단수 합단수
|
//단수 합단수
|
||||||
const sumRowCount = isMultipleModules
|
const sumRowCount = isMultipleModules
|
||||||
? layoutSetupRef.reduce((acc, cur) => acc + cur.row, 0)
|
? layoutSetupRef.filter((item) => item.checked).reduce((acc, cur) => acc + cur.row, 0)
|
||||||
: layoutSetupRef.find((item) => item.moduleId === checkedModule[0].itemId).row //멀티모듈이면 전체 합, 체크된 한개의 열
|
: layoutSetupRef.find((item) => item.moduleId === checkedModule[0].itemId).row //멀티모듈이면 전체 합, 체크된 한개의 열
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -1273,7 +1286,8 @@ export function useModuleBasicSetting(tabNum) {
|
|||||||
|
|
||||||
// 혼합일때 모듈 개별의 row를 체크함
|
// 혼합일때 모듈 개별의 row를 체크함
|
||||||
const isPassedObject =
|
const isPassedObject =
|
||||||
isMultipleModules && layoutSetupRef.find((item, index) => item.row > trestlePolygon.trestleDetail.module[index].mixModuleMaxRows)
|
isMultipleModules &&
|
||||||
|
layoutSetupRef.find((item, index) => item.checked && item.row > trestlePolygon.trestleDetail.module[index].mixModuleMaxRows)
|
||||||
|
|
||||||
if (isPassedObject) {
|
if (isPassedObject) {
|
||||||
swalFire({
|
swalFire({
|
||||||
|
|||||||
@ -130,7 +130,6 @@
|
|||||||
"modal.module.basic.setting.pitch.module.column.margin": "左右間隔",
|
"modal.module.basic.setting.pitch.module.column.margin": "左右間隔",
|
||||||
"modal.module.basic.setting.prev": "前に戻る",
|
"modal.module.basic.setting.prev": "前に戻る",
|
||||||
"modal.module.basic.setting.passivity.placement": "手動配置",
|
"modal.module.basic.setting.passivity.placement": "手動配置",
|
||||||
"modal.module.basic.setting.layoutpassivity.placement": "layout配置",
|
|
||||||
"modal.module.basic.setting.auto.placement": "設定値に自動配置",
|
"modal.module.basic.setting.auto.placement": "設定値に自動配置",
|
||||||
"plan.menu.module.circuit.setting.circuit.trestle.setting": "回路設定",
|
"plan.menu.module.circuit.setting.circuit.trestle.setting": "回路設定",
|
||||||
"modal.circuit.trestle.setting": "回路設定",
|
"modal.circuit.trestle.setting": "回路設定",
|
||||||
@ -1051,5 +1050,6 @@
|
|||||||
"modal.module.basic.setting.module.placement.max.row": "최대 단수 (JA)",
|
"modal.module.basic.setting.module.placement.max.row": "최대 단수 (JA)",
|
||||||
"modal.module.basic.setting.module.placement.max.rows.multiple": "혼합 단수 (JA)",
|
"modal.module.basic.setting.module.placement.max.rows.multiple": "혼합 단수 (JA)",
|
||||||
"modal.module.basic.setting.module.placement.mix.asg.yn.error": "혼합 설치 불가능한 모듈입니다. (JA)",
|
"modal.module.basic.setting.module.placement.mix.asg.yn.error": "혼합 설치 불가능한 모듈입니다. (JA)",
|
||||||
"modal.module.basic.setting.module.placement.mix.asg.yn": "ミックス. (JA)"
|
"modal.module.basic.setting.module.placement.mix.asg.yn": "ミックス. (JA)",
|
||||||
|
"modal.module.basic.setting.layoutpassivity.placement": "layout配置 (JA)"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -130,7 +130,6 @@
|
|||||||
"modal.module.basic.setting.pitch.module.column.margin": "좌우간격",
|
"modal.module.basic.setting.pitch.module.column.margin": "좌우간격",
|
||||||
"modal.module.basic.setting.prev": "이전",
|
"modal.module.basic.setting.prev": "이전",
|
||||||
"modal.module.basic.setting.passivity.placement": "수동 배치",
|
"modal.module.basic.setting.passivity.placement": "수동 배치",
|
||||||
"modal.module.basic.setting.layoutpassivity.placement": "레이아웃 배치",
|
|
||||||
"modal.module.basic.setting.auto.placement": "설정값으로 자동 배치",
|
"modal.module.basic.setting.auto.placement": "설정값으로 자동 배치",
|
||||||
"plan.menu.module.circuit.setting.circuit.trestle.setting": "회로설정",
|
"plan.menu.module.circuit.setting.circuit.trestle.setting": "회로설정",
|
||||||
"modal.circuit.trestle.setting": "회로설정",
|
"modal.circuit.trestle.setting": "회로설정",
|
||||||
@ -1051,5 +1050,6 @@
|
|||||||
"modal.module.basic.setting.module.placement.max.row": "최대 단수",
|
"modal.module.basic.setting.module.placement.max.row": "최대 단수",
|
||||||
"modal.module.basic.setting.module.placement.max.rows.multiple": "혼합 단수",
|
"modal.module.basic.setting.module.placement.max.rows.multiple": "혼합 단수",
|
||||||
"modal.module.basic.setting.module.placement.mix.asg.yn.error": "혼합 설치 불가능한 모듈입니다.",
|
"modal.module.basic.setting.module.placement.mix.asg.yn.error": "혼합 설치 불가능한 모듈입니다.",
|
||||||
"modal.module.basic.setting.module.placement.mix.asg.yn": "혼합"
|
"modal.module.basic.setting.module.placement.mix.asg.yn": "혼합",
|
||||||
|
"modal.module.basic.setting.layoutpassivity.placement": "레이아웃 배치"
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user