diff --git a/src/components/estimate/popup/DocDownOptionPop.jsx b/src/components/estimate/popup/DocDownOptionPop.jsx index 25461dc6..13477b63 100644 --- a/src/components/estimate/popup/DocDownOptionPop.jsx +++ b/src/components/estimate/popup/DocDownOptionPop.jsx @@ -18,7 +18,7 @@ export default function DocDownOptionPop({ planNo, setEstimatePopupOpen, docDown //다운로드 파일 EXCEL const [schUnitPriceFlg, setSchUnitPriceFlg] = useState('0') //견적제출서 표시명 - const [schDisplayFlg, setSchSchDisplayFlg] = useState('0') + const [schDisplayFlg, setSchDisplayFlg] = useState('0') //가대 중량표 포함(포함:1 미포함 : 0) const [schWeightFlg, setSchWeightFlg] = useState('1') //도면/시뮬레이션 파일 포함 @@ -208,7 +208,7 @@ export default function DocDownOptionPop({ planNo, setEstimatePopupOpen, docDown value={'0'} checked={schDisplayFlg === '0'} onChange={(e) => { - setSchSchDisplayFlg(e.target.value) + setSchDisplayFlg(e.target.value) }} /> @@ -221,7 +221,7 @@ export default function DocDownOptionPop({ planNo, setEstimatePopupOpen, docDown value={'1'} checked={schDisplayFlg === '1'} onChange={(e) => { - setSchSchDisplayFlg(e.target.value) + setSchDisplayFlg(e.target.value) }} /> diff --git a/src/components/estimate/popup/EstimateCopyPop.jsx b/src/components/estimate/popup/EstimateCopyPop.jsx index 001de6e9..35d8d54b 100644 --- a/src/components/estimate/popup/EstimateCopyPop.jsx +++ b/src/components/estimate/popup/EstimateCopyPop.jsx @@ -69,7 +69,7 @@ export default function EstimateCopyPop({ planNo, setEstimateCopyPopupOpen }) { get({ url: url }).then((res) => { if (!isEmptyArray(res)) { res.map((row) => { - row.value == row.saleStoreId + row.value = row.saleStoreId row.label = row.saleStoreName }) otherList = res diff --git a/src/components/estimate/popup/ProductFeaturesPop.jsx b/src/components/estimate/popup/ProductFeaturesPop.jsx index f2d98800..b6b02c64 100644 --- a/src/components/estimate/popup/ProductFeaturesPop.jsx +++ b/src/components/estimate/popup/ProductFeaturesPop.jsx @@ -7,16 +7,16 @@ export default function ProductFeaturesPop({ popShowSpecialNoteList, showProduct useEffect(() => { let pushData = [] - popShowSpecialNoteList.map((row) => { + popShowSpecialNoteList.forEach((row) => { let option = showProductFeatureData.split('、') - option.map((row2) => { + option.forEach((row2) => { if (row.code === row2) { pushData.push(row) } }) }) setShowSpecialNoteList(pushData) - }, [popShowSpecialNoteList]) + }, [popShowSpecialNoteList, showProductFeatureData]) return (
diff --git a/src/components/floor-plan/modal/module/PanelEdit.jsx b/src/components/floor-plan/modal/module/PanelEdit.jsx index 8e1f9fac..c324fab8 100644 --- a/src/components/floor-plan/modal/module/PanelEdit.jsx +++ b/src/components/floor-plan/modal/module/PanelEdit.jsx @@ -57,13 +57,13 @@ export default function PanelEdit(props) { moduleMove(length, direction) break case PANEL_EDIT_TYPE.MOVE_ALL: - moduleMoveAll(length, direction) + moduleMoveAll(length, direction, props.arrayData) break case PANEL_EDIT_TYPE.COPY: moduleCopy(length, direction) break case PANEL_EDIT_TYPE.COPY_ALL: - moduleCopyAll(length, direction) + moduleCopyAll(length, direction, props.arrayData) break case PANEL_EDIT_TYPE.COLUMN_MOVE: moduleMultiMove('column', length, direction) diff --git a/src/hooks/module/useModule.js b/src/hooks/module/useModule.js index ed8bd99c..53d3b897 100644 --- a/src/hooks/module/useModule.js +++ b/src/hooks/module/useModule.js @@ -145,105 +145,113 @@ export function useModule() { } } - const moduleMoveAll = (length, direction) => { - const moduleSetupSurface = canvas.getObjects().filter((obj) => canvas.getActiveObjects()[0].id === obj.id)[0] - const modules = canvas.getObjects().filter((obj) => obj.surfaceId === moduleSetupSurface.id && obj.name === POLYGON_TYPE.MODULE) - const objects = getObjects() + const moduleMoveAll = (length, direction, surfaceArray) => { + surfaceArray.forEach((surface) => { + const modules = canvas + .getObjects() + .filter((module) => module.name === POLYGON_TYPE.MODULE) + .filter((module) => module.surfaceId === surface.id) + const objects = getObjects() - let isWarning = false + let isWarning = false - modules.forEach((module) => { - const { top, left } = getPosotion(module, direction, length, false) - module.originPos = { - top: module.top, - left: module.left, - fill: module.fill, - } + modules.forEach((module) => { + const { top, left } = getPosotion(module, direction, length, false) + module.originPos = { + top: module.top, + left: module.left, + fill: module.fill, + } + + module.set({ top, left }) + module.setCoords() + canvas.renderAll() + + if (isOverlapObjects(module, objects) || isOutsideSurface(module, surface)) { + isWarning = true + module.set({ fill: 'red' }) + } + }) - module.set({ top, left }) - module.setCoords() canvas.renderAll() - - if (isOverlapObjects(module, objects) || isOutsideSurface(module, moduleSetupSurface)) { - isWarning = true - module.set({ fill: 'red' }) + if (isWarning) { + swalFire({ + title: getMessage('can.not.move.module'), + icon: 'error', + type: 'alert', + confirmFn: () => { + modules.forEach((module) => { + module.set({ top: module.originPos.top, left: module.originPos.left, fill: module.originPos.fill }) + module.setCoords() + }) + canvas.renderAll() + }, + }) } }) - - canvas.renderAll() - if (isWarning) { - swalFire({ - title: getMessage('can.not.move.module'), - icon: 'error', - type: 'alert', - confirmFn: () => { - modules.forEach((module) => { - module.set({ top: module.originPos.top, left: module.originPos.left, fill: module.originPos.fill }) - module.setCoords() - }) - canvas.renderAll() - }, - }) - } } - const moduleCopyAll = (length, direction) => { - const moduleSetupSurface = canvas.getObjects().filter((obj) => canvas.getActiveObjects()[0].id === obj.id)[0] - const modules = canvas.getObjects().filter((obj) => obj.surfaceId === moduleSetupSurface.id && obj.name === POLYGON_TYPE.MODULE) - const objects = getObjects() - const copyModules = [] - let copyModule = null - let isWarning = false - let moduleLength = 0 - if (['up', 'down'].includes(direction)) { - modules.sort((a, b) => a.top - b.top) - moduleLength = Number(modules[modules.length - 1].top) + Number(modules[modules.length - 1].height) - Number(modules[0].top) - } else if (['left', 'right'].includes(direction)) { - modules.sort((a, b) => a.left - b.left) - moduleLength = Number(modules[modules.length - 1].left) + Number(modules[modules.length - 1].width) - Number(modules[0].left) - } + const moduleCopyAll = (length, direction, surfaceArray) => { + surfaceArray.forEach((surface) => { + const modules = canvas + .getObjects() + .filter((module) => module.name === POLYGON_TYPE.MODULE) + .filter((module) => module.surfaceId === surface.id) + const objects = getObjects() + const copyModules = [] - modules.forEach((module) => { - const { top, left } = getPosotion(module, direction, Number(length) + Number(moduleLength), false) - module.clone((obj) => { - obj.set({ - parentId: module.parentId, - initOptions: module.initOptions, - direction: module.direction, - arrow: module.arrow, - name: module.name, - type: module.type, - length: module.length, - points: module.points, - surfaceId: module.surfaceId, - left, - top, - id: uuidv4(), - }) - copyModule = obj - canvas.add(obj) - copyModules.push(obj) - obj.setCoords() - }) - if (isOverlapObjects(copyModule, objects) || isOutsideSurface(copyModule, moduleSetupSurface)) { - isWarning = true - copyModule.set({ fill: 'red' }) + let copyModule = null + let isWarning = false + let moduleLength = 0 + if (['up', 'down'].includes(direction)) { + modules.sort((a, b) => a.top - b.top) + moduleLength = Number(modules[modules.length - 1].top) + Number(modules[modules.length - 1].height) - Number(modules[0].top) + } else if (['left', 'right'].includes(direction)) { + modules.sort((a, b) => a.left - b.left) + moduleLength = Number(modules[modules.length - 1].left) + Number(modules[modules.length - 1].width) - Number(modules[0].left) } - canvas.renderAll() - }) - if (isWarning) { - swalFire({ - title: getMessage('can.not.copy.module'), - icon: 'error', - type: 'alert', - confirmFn: () => { - canvas.remove(...copyModules) - canvas.renderAll() - }, + modules.forEach((module) => { + const { top, left } = getPosotion(module, direction, Number(length) + Number(moduleLength), false) + module.clone((obj) => { + obj.set({ + parentId: module.parentId, + initOptions: module.initOptions, + direction: module.direction, + arrow: module.arrow, + name: module.name, + type: module.type, + length: module.length, + points: module.points, + surfaceId: module.surfaceId, + left, + top, + id: uuidv4(), + }) + copyModule = obj + canvas.add(obj) + copyModules.push(obj) + obj.setCoords() + }) + if (isOverlapObjects(copyModule, objects) || isOutsideSurface(copyModule, surface)) { + isWarning = true + copyModule.set({ fill: 'red' }) + } + canvas.renderAll() }) - } - setModuleStatisticsData() + + if (isWarning) { + swalFire({ + title: getMessage('can.not.copy.module'), + icon: 'error', + type: 'alert', + confirmFn: () => { + canvas.remove(...copyModules) + canvas.renderAll() + }, + }) + } + }) } const moduleCopy = (length, direction) => { @@ -304,7 +312,6 @@ export function useModule() { }, }) } - setModuleStatisticsData() } const moduleMultiCopy = (type, length, direction) => { @@ -379,7 +386,6 @@ export function useModule() { }, }) } - setModuleStatisticsData() } const moduleColumnRemove = (type) => { @@ -494,7 +500,6 @@ export function useModule() { }, }) } - setModuleStatisticsData() } const moduleRowRemove = (type) => { @@ -610,7 +615,6 @@ export function useModule() { }, }) } - setModuleStatisticsData() } const moduleColumnInsert = (type) => { @@ -706,8 +710,6 @@ export function useModule() { }, }) } - moduleSetupSurface.set({ modules: [...moduleSetupSurface.modules, ...copyModules] }) - setModuleStatisticsData() } const muduleRowInsert = (type) => { @@ -805,9 +807,6 @@ export function useModule() { }, }) } - - moduleSetupSurface.set({ modules: [...moduleSetupSurface.modules, ...copyModules] }) - setModuleStatisticsData() } const alignModule = (type, surfaceArray) => { @@ -880,7 +879,6 @@ export function useModule() { surface.set({ modules: modules }) canvas.remove(activeModule) canvas.renderAll() - setModuleStatisticsData() } const moduleRoofRemove = (surfaceArray) => { @@ -976,7 +974,7 @@ export function useModule() { ] const surfaceObjects = {} const surfaces = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE) - surfaces.forEach((surface) => { + const rows = surfaces.map((surface) => { surfaceObjects[surface.id] = { roofSurface: canvas.getObjects().filter((obj) => obj.id === surface.parentId)[0].directionText, circuit: '-', @@ -1013,12 +1011,11 @@ export function useModule() { }) }) let tempRows = [] - console.log('surfaceObjects', surfaceObjects) Object.keys(surfaceObjects).forEach((key) => { let tempRow = { name: surfaceObjects[key].roofSurface, circuit: surfaceObjects[key].circuit, - wpOut: parseFloat(surfaceObjects[key].wpOut / 1000), + wpOut: parseInt((surfaceObjects[key].wpOut / 1000).toFixed(3)), } selectedModules.itemList.forEach((module) => { tempRow[module.itemId] = surfaceObjects[key][module.itemId] @@ -1029,7 +1026,7 @@ export function useModule() { let row = { name: surfaceObjects[key].roofSurface, circuit: surfaceObjects[key].circuits[circuit].circuit, - wpOut: parseFloat(surfaceObjects[key].circuits[circuit].circuits.wpOut / 1000), + wpOut: parseInt((surfaceObjects[key].circuits[circuit].circuits.wpOut / 1000).toFixed(3)), } selectedModules.itemList.forEach((module) => { row[module.itemId] = surfaceObjects[key].circuits[circuit].circuits[module.itemId] @@ -1037,14 +1034,14 @@ export function useModule() { tempRows.push(row) }) }) - console.log('tempRows', tempRows) + const tempFooter = { name: getMessage('modal.panel.batch.statistic.total'), circuit: '-', wpOut: tempRows.reduce((acc, row) => acc + row.wpOut, 0), } selectedModules.itemList.forEach((module) => { - tempFooter[module.itemId] = tempRows.reduce((acc, row) => acc + (row[module.itemId] ? parseFloat(row[module.itemId]) : 0), 0) + tempFooter[module.itemId] = tempRows.reduce((acc, row) => acc + row[module.itemId], 0) }) setModuleStatistics({ header: tempHeader, rows: tempRows.filter((row) => row.wpOut !== 0), footer: tempFooter }) } diff --git a/src/hooks/module/useModuleBasicSetting.js b/src/hooks/module/useModuleBasicSetting.js index 29f7f308..b6e0dad3 100644 --- a/src/hooks/module/useModuleBasicSetting.js +++ b/src/hooks/module/useModuleBasicSetting.js @@ -123,7 +123,7 @@ export function useModuleBasicSetting(tabNum) { makeModuleInstArea(roof, detail.data) //surface에 상세 데이터 추가 } else { - console.log('가대 데이터가 없네요...') + swalFire({ text: getMessage('module.roof.not.exist'), icon: 'warning' }) } } }) diff --git a/src/hooks/useContextMenu.js b/src/hooks/useContextMenu.js index 4235d8db..9892788a 100644 --- a/src/hooks/useContextMenu.js +++ b/src/hooks/useContextMenu.js @@ -747,18 +747,18 @@ export function useContextMenu() { { id: 'moduleMove', name: getMessage('contextmenu.module.move'), - component: , + component: , }, { id: 'moduleCopy', name: getMessage('contextmenu.module.copy'), - component: , - }, - { - id: 'moduleCircuitNumberEdit', - name: getMessage('contextmenu.module.circuit.number.edit'), - component: , + component: , }, + // { + // id: 'moduleCircuitNumberEdit', + // name: getMessage('contextmenu.module.circuit.number.edit'), + // component: , + // }, ], ]) break diff --git a/src/locales/ko.json b/src/locales/ko.json index 507f5415..e6d5290a 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -998,5 +998,6 @@ "menu.validation.canvas.roof": "패널을 배치하려면 지붕면을 입력해야 합니다.", "batch.object.outside.roof": "오브젝트는 지붕내에 설치해야 합니다.", "batch.object.notinstall.cross": "오브젝트는 겹쳐서 설치 할 수 없습니다.", - "module.not.batch.north": "북쪽에는 모듈을 배치할 수 없습니다." + "module.not.batch.north": "북쪽에는 모듈을 배치할 수 없습니다.", + "module.trestleDetail.not.exist": "가대 상세 정보가 없습니다." }