3중 멀티모듈 대응
This commit is contained in:
parent
aa2685e558
commit
3f40725647
@ -370,7 +370,20 @@ export const useTrestle = () => {
|
||||
rack.value.moduleTpCd === leftRowsInfo.moduleTotalTp &&
|
||||
rack.value.moduleRows === leftRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0)
|
||||
)
|
||||
} else {
|
||||
} else if (leftRowsInfo.rowsInfo.length >= 2) {
|
||||
//C1C2C3인 경우
|
||||
if (rack.value.moduleTpCd.length === 6) {
|
||||
// 변환 C1C2만 있는경우 C3 0개로 추가해준다.
|
||||
let newLeftRowsInfo = normalizeModules(rack.value.moduleTpCd, leftRowsInfo)
|
||||
|
||||
return (
|
||||
rack.value.moduleTpCd === newLeftRowsInfo.moduleTotalTp &&
|
||||
rack.value.moduleRows === newLeftRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0) &&
|
||||
Number(rack.value.moduleTpRows1) === newLeftRowsInfo.rowsInfo[0].count &&
|
||||
Number(rack.value.moduleTpRows2) === newLeftRowsInfo.rowsInfo[1].count &&
|
||||
Number(rack.value.moduleTpRows3) === newLeftRowsInfo.rowsInfo[2].count
|
||||
)
|
||||
}
|
||||
return (
|
||||
rack.value.moduleTpCd === leftRowsInfo.moduleTotalTp &&
|
||||
rack.value.moduleRows === leftRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0) &&
|
||||
@ -387,7 +400,19 @@ export const useTrestle = () => {
|
||||
rack.value.moduleTpCd === rightRowsInfo.moduleTotalTp &&
|
||||
rack.value.moduleRows === rightRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0)
|
||||
)
|
||||
} else {
|
||||
} else if (rightRowsInfo.rowsInfo.length === 2) {
|
||||
if (rack.value.moduleTpCd.length === 6) {
|
||||
// 변환 C1C2만 있는경우 C3 0개로 추가해준다.
|
||||
let newRightRowsInfo = normalizeModules(rack.value.moduleTpCd, rightRowsInfo)
|
||||
|
||||
return (
|
||||
rack.value.moduleTpCd === newRightRowsInfo.moduleTotalTp &&
|
||||
rack.value.moduleRows === newRightRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0) &&
|
||||
Number(rack.value.moduleTpRows1) === newRightRowsInfo.rowsInfo[0].count &&
|
||||
Number(rack.value.moduleTpRows2) === newRightRowsInfo.rowsInfo[1].count &&
|
||||
Number(rack.value.moduleTpRows3) === newRightRowsInfo.rowsInfo[2].count
|
||||
)
|
||||
}
|
||||
return (
|
||||
rack.value.moduleTpCd === rightRowsInfo.moduleTotalTp &&
|
||||
rack.value.moduleRows === rightRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0) &&
|
||||
@ -404,7 +429,19 @@ export const useTrestle = () => {
|
||||
rack.value.moduleTpCd === centerRowsInfo.moduleTotalTp &&
|
||||
rack.value.moduleRows === centerRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0)
|
||||
)
|
||||
} else {
|
||||
} else if (centerRowsInfo.rowsInfo.length === 2) {
|
||||
if (rack.value.moduleTpCd.length === 6) {
|
||||
// 변환 C1C2만 있는경우 C3 0개로 추가해준다.
|
||||
let newCenterRowsInfo = normalizeModules(rack.value.moduleTpCd, centerRowsInfo)
|
||||
|
||||
return (
|
||||
rack.value.moduleTpCd === newCenterRowsInfo.moduleTotalTp &&
|
||||
rack.value.moduleRows === newCenterRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0) &&
|
||||
Number(rack.value.moduleTpRows1) === newCenterRowsInfo.rowsInfo[0].count &&
|
||||
Number(rack.value.moduleTpRows2) === newCenterRowsInfo.rowsInfo[1].count &&
|
||||
Number(rack.value.moduleTpRows3) === newCenterRowsInfo.rowsInfo[2].count
|
||||
)
|
||||
}
|
||||
return (
|
||||
rack.value.moduleTpCd === centerRowsInfo.moduleTotalTp &&
|
||||
rack.value.moduleRows === centerRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0) &&
|
||||
@ -499,7 +536,19 @@ export const useTrestle = () => {
|
||||
rack.value.moduleTpCd === leftRowsInfo.moduleTotalTp &&
|
||||
rack.value.moduleRows === leftRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0)
|
||||
)
|
||||
} else {
|
||||
} else if (leftRowsInfo.rowsInfo.length === 2) {
|
||||
if (rack.value.moduleTpCd.length === 6) {
|
||||
// 변환 C1C2만 있는경우 C3 0개로 추가해준다.
|
||||
let newLeftRowsInfo = normalizeModules(rack.value.moduleTpCd, leftRowsInfo)
|
||||
|
||||
return (
|
||||
rack.value.moduleTpCd === newLeftRowsInfo.moduleTotalTp &&
|
||||
rack.value.moduleRows === newLeftRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0) &&
|
||||
Number(rack.value.moduleTpRows1) === newLeftRowsInfo.rowsInfo[0].count &&
|
||||
Number(rack.value.moduleTpRows2) === newLeftRowsInfo.rowsInfo[1].count &&
|
||||
Number(rack.value.moduleTpRows3) === newLeftRowsInfo.rowsInfo[2].count
|
||||
)
|
||||
}
|
||||
return (
|
||||
rack.value.moduleTpCd === leftRowsInfo.moduleTotalTp &&
|
||||
rack.value.moduleRows === leftRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0) &&
|
||||
@ -575,7 +624,19 @@ export const useTrestle = () => {
|
||||
rack.value.moduleTpCd === rightRowsInfo.moduleTotalTp &&
|
||||
rack.value.moduleRows === rightRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0)
|
||||
)
|
||||
} else {
|
||||
} else if (rightRowsInfo.rowsInfo.length === 2) {
|
||||
if (rack.value.moduleTpCd.length === 6) {
|
||||
// 변환 C1C2만 있는경우 C3 0개로 추가해준다.
|
||||
let newRightRowsInfo = normalizeModules(rack.value.moduleTpCd, rightRowsInfo)
|
||||
|
||||
return (
|
||||
rack.value.moduleTpCd === newRightRowsInfo.moduleTotalTp &&
|
||||
rack.value.moduleRows === newRightRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0) &&
|
||||
Number(rack.value.moduleTpRows1) === newRightRowsInfo.rowsInfo[0].count &&
|
||||
Number(rack.value.moduleTpRows2) === newRightRowsInfo.rowsInfo[1].count &&
|
||||
Number(rack.value.moduleTpRows3) === newRightRowsInfo.rowsInfo[2].count
|
||||
)
|
||||
}
|
||||
return (
|
||||
rack.value.moduleTpCd === rightRowsInfo.moduleTotalTp &&
|
||||
rack.value.moduleRows === rightRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0) &&
|
||||
@ -635,6 +696,31 @@ export const useTrestle = () => {
|
||||
return { moduleTotalTp, rowsInfo }
|
||||
}
|
||||
|
||||
function normalizeModules(rackTpCd, data) {
|
||||
// rackTpCd를 숫자를 기준으로 자른다.
|
||||
const allModules = rackTpCd.match(/[A-Za-z]+\d+/g) || [] // 모든 모듈 유형
|
||||
|
||||
// 현재 존재하는 모듈 유형을 추출
|
||||
const existingModules = data.rowsInfo.map((row) => row.moduleTpCd)
|
||||
|
||||
const result = { ...data, rowsInfo: [...data.rowsInfo] }
|
||||
|
||||
// 없는 모듈을 추가 (count: 0)
|
||||
allModules.forEach((module) => {
|
||||
if (!existingModules.includes(module)) {
|
||||
result.rowsInfo.push({ moduleTpCd: module, count: 0 })
|
||||
}
|
||||
})
|
||||
|
||||
// rowsInfo를 C1, C2, C3 순서로 정렬
|
||||
result.rowsInfo.sort((a, b) => allModules.indexOf(a.moduleTpCd) - allModules.indexOf(b.moduleTpCd))
|
||||
|
||||
// moduleTotalTp를 C1C2C3로 설정
|
||||
result.moduleTotalTp = allModules.join('')
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
// itemList 조회 후 estimateParam에 저장
|
||||
const getEstimateData = async () => {
|
||||
const surfaces = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user