3중 멀티모듈 대응
This commit is contained in:
parent
aa2685e558
commit
3f40725647
@ -370,7 +370,20 @@ export const useTrestle = () => {
|
|||||||
rack.value.moduleTpCd === leftRowsInfo.moduleTotalTp &&
|
rack.value.moduleTpCd === leftRowsInfo.moduleTotalTp &&
|
||||||
rack.value.moduleRows === leftRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0)
|
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 (
|
return (
|
||||||
rack.value.moduleTpCd === leftRowsInfo.moduleTotalTp &&
|
rack.value.moduleTpCd === leftRowsInfo.moduleTotalTp &&
|
||||||
rack.value.moduleRows === leftRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0) &&
|
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.moduleTpCd === rightRowsInfo.moduleTotalTp &&
|
||||||
rack.value.moduleRows === rightRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0)
|
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 (
|
return (
|
||||||
rack.value.moduleTpCd === rightRowsInfo.moduleTotalTp &&
|
rack.value.moduleTpCd === rightRowsInfo.moduleTotalTp &&
|
||||||
rack.value.moduleRows === rightRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0) &&
|
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.moduleTpCd === centerRowsInfo.moduleTotalTp &&
|
||||||
rack.value.moduleRows === centerRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0)
|
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 (
|
return (
|
||||||
rack.value.moduleTpCd === centerRowsInfo.moduleTotalTp &&
|
rack.value.moduleTpCd === centerRowsInfo.moduleTotalTp &&
|
||||||
rack.value.moduleRows === centerRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0) &&
|
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.moduleTpCd === leftRowsInfo.moduleTotalTp &&
|
||||||
rack.value.moduleRows === leftRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0)
|
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 (
|
return (
|
||||||
rack.value.moduleTpCd === leftRowsInfo.moduleTotalTp &&
|
rack.value.moduleTpCd === leftRowsInfo.moduleTotalTp &&
|
||||||
rack.value.moduleRows === leftRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0) &&
|
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.moduleTpCd === rightRowsInfo.moduleTotalTp &&
|
||||||
rack.value.moduleRows === rightRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0)
|
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 (
|
return (
|
||||||
rack.value.moduleTpCd === rightRowsInfo.moduleTotalTp &&
|
rack.value.moduleTpCd === rightRowsInfo.moduleTotalTp &&
|
||||||
rack.value.moduleRows === rightRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0) &&
|
rack.value.moduleRows === rightRowsInfo.rowsInfo.reduce((acc, row) => acc + row.count, 0) &&
|
||||||
@ -635,6 +696,31 @@ export const useTrestle = () => {
|
|||||||
return { moduleTotalTp, rowsInfo }
|
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에 저장
|
// itemList 조회 후 estimateParam에 저장
|
||||||
const getEstimateData = async () => {
|
const getEstimateData = async () => {
|
||||||
const surfaces = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE)
|
const surfaces = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user