From e3e23a027dc47dcfcbbd86143f2a10e7dec8750f Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Tue, 7 Jan 2025 11:00:02 +0900 Subject: [PATCH 01/19] =?UTF-8?q?=EC=A7=80=EB=B6=95=EB=A9=B4=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=EC=8B=9C=20=EC=97=90=EB=9F=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/roofcover/useRoofAllocationSetting.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/hooks/roofcover/useRoofAllocationSetting.js b/src/hooks/roofcover/useRoofAllocationSetting.js index ec2d2661..0671f502 100644 --- a/src/hooks/roofcover/useRoofAllocationSetting.js +++ b/src/hooks/roofcover/useRoofAllocationSetting.js @@ -258,8 +258,6 @@ export function useRoofAllocationSetting(id) { return roof }) - newRoofList[selectedIndex].selected = true - setCurrentRoofList(newRoofList) } From 96be1c7cc232c3a18cc46d1b029c105c4d06ced4 Mon Sep 17 00:00:00 2001 From: basssy Date: Tue, 7 Jan 2025 11:03:30 +0900 Subject: [PATCH 02/19] =?UTF-8?q?Qcast=20=EB=A9=94=EC=9D=B8=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20=EC=B5=9C=EA=B7=BC=20=EB=AC=BC=EA=B1=B4=20=EC=97=86?= =?UTF-8?q?=EC=9D=84=EA=B2=BD=EC=9A=B0=20=ED=99=94=EB=A9=B4=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/main/MainContents.jsx | 9 +++++++-- src/locales/ja.json | 2 ++ src/locales/ko.json | 2 ++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/components/main/MainContents.jsx b/src/components/main/MainContents.jsx index df50bd40..452e2a3a 100644 --- a/src/components/main/MainContents.jsx +++ b/src/components/main/MainContents.jsx @@ -116,8 +116,13 @@ export default function MainContents() { })} ) : ( - <> - // +
+

{getMessage('main.content.objectList.noData1')}

+

{getMessage('main.content.objectList.noData2')}

+ +
)} diff --git a/src/locales/ja.json b/src/locales/ja.json index 27794f3e..c4a457ea 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -801,6 +801,8 @@ "main.storeName": "販売店名", "main.objectNo": "物件番号", "main.faq": "FAQ", + "main.content.objectList.noData1": "登録された商品情報はありません.", + "main.content.objectList.noData2": "下のボタンをクリックして商品情報を登録してください.", "main.content.objectList": "最近の更新物件一覧", "main.content.notice": "お知らせ", "main.content.download1": "操作マニュアル", diff --git a/src/locales/ko.json b/src/locales/ko.json index b7a64b03..94f21f7e 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -811,6 +811,8 @@ "main.storeName": "판매점명", "main.objectNo": "물건번호", "main.faq": "FAQ", + "main.content.objectList.noData1": "등록된 물건정보가 없습니다.", + "main.content.objectList.noData2": "아래 버튼을 클릭하여 물건정보를 등록하십시오.", "main.content.objectList": "최근 갱신 물건목록", "main.content.notice": "공지사항", "main.content.download1": "조작메뉴얼", From cf8eeedeb99b5361fbcfa9af4f8cbf8460ebf708 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=8B=9D?= <43837214+Minsiki@users.noreply.github.com> Date: Tue, 7 Jan 2025 11:09:22 +0900 Subject: [PATCH 03/19] =?UTF-8?q?-=20=EB=AA=A8=EB=93=88=20=EA=B0=80?= =?UTF-8?q?=EB=A1=9C.=EC=84=B8=EB=A1=9C=20=EC=A0=95=EB=A0=AC=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20-=20=EB=AA=A8=EB=93=88=20=EC=9D=BC=EA=B4=84=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../floor-plan/modal/module/PanelEdit.jsx | 10 +- src/hooks/module/useModule.js | 279 ++++++++++++++---- src/hooks/useContextMenu.js | 40 +-- 3 files changed, 251 insertions(+), 78 deletions(-) diff --git a/src/components/floor-plan/modal/module/PanelEdit.jsx b/src/components/floor-plan/modal/module/PanelEdit.jsx index dccedba2..5d38f9a8 100644 --- a/src/components/floor-plan/modal/module/PanelEdit.jsx +++ b/src/components/floor-plan/modal/module/PanelEdit.jsx @@ -14,7 +14,9 @@ import { useModule } from '@/hooks/module/useModule' export const PANEL_EDIT_TYPE = { MOVE: 'move', + MOVE_ALL: 'moveAll', COPY: 'copy', + COPY_ALL: 'copyAll', COLUMN_MOVE: 'columnMove', COLUMN_COPY: 'columnCopy', ROW_MOVE: 'rowMove', @@ -29,7 +31,7 @@ export default function PanelEdit(props) { const [direction, setDirection] = useState('up') const { getMessage } = useMessage() const canvas = useRecoilValue(canvasState) - const { moduleMove, moduleCopy, moduleMultiMove, moduleMultiCopy } = useModule() + const { moduleMove, moduleCopy, moduleMultiMove, moduleMultiCopy, moduleMoveAll, moduleCopyAll } = useModule() useEffect(() => { if (canvas) { @@ -44,9 +46,15 @@ export default function PanelEdit(props) { case PANEL_EDIT_TYPE.MOVE: moduleMove(length, direction) break + case PANEL_EDIT_TYPE.MOVE_ALL: + moduleMoveAll(length, direction) + break case PANEL_EDIT_TYPE.COPY: moduleCopy(length, direction) break + case PANEL_EDIT_TYPE.COPY_ALL: + moduleCopyAll(length, direction) + break case PANEL_EDIT_TYPE.COLUMN_MOVE: moduleMultiMove('column', length, direction) break diff --git a/src/hooks/module/useModule.js b/src/hooks/module/useModule.js index 34f3f7bd..a4f50cbe 100644 --- a/src/hooks/module/useModule.js +++ b/src/hooks/module/useModule.js @@ -26,7 +26,8 @@ export const MODULE_INSERT_TYPE = { } export const MODULE_ALIGN_TYPE = { - TOP: 'top', + VERTICAL: 'vertical', + HORIZONTAL: 'horizontal', } export function useModule() { @@ -83,6 +84,162 @@ export function useModule() { } } } + const moduleMultiMove = (type, length, direction) => { + if (canvas.getActiveObjects().length === 0) return + if (canvas.getActiveObjects().length > 1) { + swalFire({ + title: '여러 개의 모듈을 선택할 수 없습니다.', + icon: 'error', + type: 'alert', + }) + canvas.discardActiveObject() + return + } + const activeModule = canvas.getObjects().filter((obj) => canvas.getActiveObjects()[0].id === obj.id)[0] + const modules = type === 'row' ? getRowModules(activeModule) : getColumnModules(activeModule) + const otherModules = getOtherModules(modules) + const objects = getObjects() + const moduleSetupSurface = canvas + .getObjects() + .filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === activeModule.surfaceId)[0] + 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, + } + + module.set({ top, left }) + module.setCoords() + canvas.renderAll() + + if (otherModules.length > 0) { + if (isOverlapOtherModules(module, otherModules) || isOverlapObjects(module, objects) || isOutsideSurface(module, moduleSetupSurface)) { + isWarning = true + module.set({ fill: 'red' }) + } + } + }) + + 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 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() + + 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, + } + + module.set({ top, left }) + module.setCoords() + canvas.renderAll() + + if (isOverlapObjects(module, objects) || isOutsideSurface(module, moduleSetupSurface)) { + isWarning = true + module.set({ fill: 'red' }) + } + }) + + 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) + } + + 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' }) + } + canvas.renderAll() + }) + + if (isWarning) { + swalFire({ + title: getMessage('can.not.copy.module'), + icon: 'error', + type: 'alert', + confirmFn: () => { + canvas.remove(...copyModules) + canvas.renderAll() + }, + }) + } + } const moduleCopy = (length, direction) => { if (canvas.getActiveObjects().length === 0) return @@ -144,63 +301,6 @@ export function useModule() { } } - const moduleMultiMove = (type, length, direction) => { - if (canvas.getActiveObjects().length === 0) return - if (canvas.getActiveObjects().length > 1) { - swalFire({ - title: '여러 개의 모듈을 선택할 수 없습니다.', - icon: 'error', - type: 'alert', - }) - canvas.discardActiveObject() - return - } - const activeModule = canvas.getObjects().filter((obj) => canvas.getActiveObjects()[0].id === obj.id)[0] - const modules = type === 'row' ? getRowModules(activeModule) : getColumnModules(activeModule) - const otherModules = getOtherModules(modules) - const objects = getObjects() - const moduleSetupSurface = canvas - .getObjects() - .filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === activeModule.surfaceId)[0] - 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, - } - - module.set({ top, left }) - module.setCoords() - canvas.renderAll() - - if (otherModules.length > 0) { - if (isOverlapOtherModules(module, otherModules) || isOverlapObjects(module, objects) || isOutsideSurface(module, moduleSetupSurface)) { - isWarning = true - module.set({ fill: 'red' }) - } - } - }) - - 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 moduleMultiCopy = (type, length, direction) => { if (canvas.getActiveObjects().length === 0) return if (canvas.getActiveObjects().length > 1) { @@ -694,7 +794,64 @@ export function useModule() { } } - const alignModule = (type) => {} + const alignModule = (type) => { + 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 top = Math.min(...modules.map((module) => module.top)) + const left = Math.min(...modules.map((module) => module.left)) + const moduleSurfacePos = { + top: Math.min(...moduleSetupSurface.points.map((point) => point.y)), + left: Math.min(...moduleSetupSurface.points.map((point) => point.x)), + } + const [height, width] = [bottom - top, right - left] + const verticalCenterLength = moduleSurfacePos.top + moduleSetupSurface.height / 2 - (top + height / 2) + const horizontalCenterLength = moduleSurfacePos.left + moduleSetupSurface.width / 2 - (left + width / 2) + let isWarning = false + + canvas.discardActiveObject() + modules.forEach((module) => { + module.originPos = { + left: module.left, + top: module.top, + fill: module.fill, + } + if (type === MODULE_ALIGN_TYPE.VERTICAL) { + module.set({ top: module.top + verticalCenterLength }) + } else if (type === MODULE_ALIGN_TYPE.HORIZONTAL) { + module.set({ left: module.left + horizontalCenterLength }) + } + + canvas.renderAll() + module.setCoords() + if (isOverlapObjects(module, objects) || isOutsideSurface(module, moduleSetupSurface)) { + isWarning = true + module.set({ fill: 'red' }) + } + }) + canvas.renderAll() + if (isWarning) { + swalFire({ + title: getMessage('can.not.align.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 modulesRemove = () => { + const activeModule = canvas.getObjects().filter((obj) => canvas.getActiveObjects()[0].id === obj.id)[0] + const modules = canvas.getObjects().filter((obj) => obj.surfaceId === activeModule.surfaceId && obj.name === POLYGON_TYPE.MODULE) + canvas.remove(...modules) + canvas.renderAll() + } const isOverlapOtherModules = (module, otherModules) => { return otherModules.some( @@ -765,11 +922,15 @@ export function useModule() { return { moduleMove, moduleMultiMove, + moduleMoveAll, moduleCopy, moduleMultiCopy, + moduleCopyAll, moduleColumnRemove, moduleRowRemove, moduleColumnInsert, muduleRowInsert, + modulesRemove, + alignModule, } } diff --git a/src/hooks/useContextMenu.js b/src/hooks/useContextMenu.js index 02896cb3..837c489a 100644 --- a/src/hooks/useContextMenu.js +++ b/src/hooks/useContextMenu.js @@ -1,7 +1,7 @@ import { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil' import { canvasState, currentMenuState, currentObjectState } from '@/store/canvasAtom' import { useEffect, useState } from 'react' -import { MENU } from '@/common/common' +import { MENU, POLYGON_TYPE } from '@/common/common' import AuxiliarySize from '@/components/floor-plan/modal/auxiliary/AuxiliarySize' import { usePopup } from '@/hooks/usePopup' import { v4 as uuidv4 } from 'uuid' @@ -40,6 +40,7 @@ import { useCanvasSetting } from './option/useCanvasSetting' import { useGrid } from './common/useGrid' import { useAdsorptionPoint } from './useAdsorptionPoint' import { useRoofFn } from '@/hooks/common/useRoofFn' +import { MODULE_ALIGN_TYPE, useModule } from './module/useModule' export function useContextMenu() { const canvas = useRecoilValue(canvasState) @@ -66,6 +67,7 @@ export function useContextMenu() { const commonTextFont = useRecoilValue(fontSelector('commonText')) const { settingsData, setSettingsDataSave } = useCanvasSetting() const { swalFire } = useSwal() + const { alignModule } = useModule() const { removeRoofMaterial, removeAllRoofMaterial } = useRoofFn() const currentMenuSetting = () => { @@ -691,36 +693,38 @@ export function useContextMenu() { ]) break case 'moduleSetupSurface': - case 'dimensionLineText': + case 'roof': setContextMenu([ [ { id: 'moduleVerticalCenterAlign', name: getMessage('contextmenu.module.vertical.align'), + fn: () => alignModule(MODULE_ALIGN_TYPE.VERTICAL), }, { id: 'moduleHorizonCenterAlign', name: getMessage('contextmenu.module.horizon.align'), - }, - { - id: 'moduleLeftAlign', - name: getMessage('contextmenu.module.left.align'), - }, - { - id: 'moduleRightAlign', - name: getMessage('contextmenu.module.right.align'), - }, - { - id: 'moduleUpAlign', - name: getMessage('contextmenu.module.up.align'), - }, - { - id: 'moduleDownAlign', - name: getMessage('contextmenu.module.down.align'), + fn: () => alignModule(MODULE_ALIGN_TYPE.HORIZONTAL), }, { id: 'moduleRemove', name: getMessage('contextmenu.module.remove'), + fn: () => { + 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) + canvas.remove(...modules) + canvas.renderAll() + }, + }, + { + id: 'moduleMove', + name: getMessage('contextmenu.module.move'), + component: , + }, + { + id: 'moduleCopy', + name: getMessage('contextmenu.module.copy'), + component: , }, { id: 'moduleCircuitNumberEdit', From e823621e92932cef26769e0aa7be434c17212cd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=8B=9D?= <43837214+Minsiki@users.noreply.github.com> Date: Tue, 7 Jan 2025 11:09:47 +0900 Subject: [PATCH 04/19] =?UTF-8?q?-=20y=20scroll=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roofAllocation/RoofAllocationSetting.jsx | 208 +++++++++--------- 1 file changed, 105 insertions(+), 103 deletions(-) diff --git a/src/components/floor-plan/modal/roofAllocation/RoofAllocationSetting.jsx b/src/components/floor-plan/modal/roofAllocation/RoofAllocationSetting.jsx index a949fd2e..d8f7a8ae 100644 --- a/src/components/floor-plan/modal/roofAllocation/RoofAllocationSetting.jsx +++ b/src/components/floor-plan/modal/roofAllocation/RoofAllocationSetting.jsx @@ -73,119 +73,121 @@ export default function RoofAllocationSetting(props) { {getMessage('modal.common.add')} -
- {currentRoofList.map((roof, index) => { - return ( -
-
- - -
-
-
-
-
- handleChangeRoofMaterial(e, index)} - /> -
- {index === 0 && {getMessage('modal.roof.alloc.default.roof.material')}} - {index !== 0 && } -
+
+
+ {currentRoofList.map((roof, index) => { + return ( +
+
+ +
- {(roof.widAuth || roof.lenAuth) && ( +
- {roof.widAuth && ( -
- W -
- -
+
+
+ handleChangeRoofMaterial(e, index)} + />
- )} - {roof.lenAuth && ( -
- L -
- -
-
- )} + {index === 0 && {getMessage('modal.roof.alloc.default.roof.material')}} + {index !== 0 && } +
- )} - {(roof.raftAuth || roof.roofPchAuth) && ( -
- {roof.raftAuth && ( -
+ {(roof.widAuth || roof.lenAuth) && ( +
+ {roof.widAuth && (
- {getMessage('modal.placement.initial.setting.rafter')} - {raftCodes.length > 0 && ( -
- handleChangeRaft(e, index)} - /> -
- )} -
-
- )} - {roof.roofPchAuth && ( -
-
- {getMessage('hajebichi')} -
- + W +
+
-
- )} -
- )} -
-
- - + )} + {roof.lenAuth && ( +
+ L +
+ +
+
+ )} +
+ )} + {(roof.raftAuth || roof.roofPchAuth) && ( +
+ {roof.raftAuth && ( +
+
+ {getMessage('modal.placement.initial.setting.rafter')} + {raftCodes.length > 0 && ( +
+ handleChangeRaft(e, index)} + /> +
+ )} +
+
+ )} + {roof.roofPchAuth && ( +
+
+ {getMessage('hajebichi')} +
+ +
+
+
+ )} +
+ )} +
+
+ + +
-
- ) - })} + ) + })} +
-
From fc4d29281cd9620e53dc84959c99bf7c41252168 Mon Sep 17 00:00:00 2001 From: basssy Date: Tue, 7 Jan 2025 15:08:10 +0900 Subject: [PATCH 17/19] =?UTF-8?q?=EB=AC=BC=EA=B1=B4=20=ED=98=84=ED=99=A9?= =?UTF-8?q?=20=EA=B2=80=EC=83=89=EC=A1=B0=EA=B1=B4=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?ing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/management/Stuff.jsx | 3 + .../management/StuffSearchCondition.jsx | 215 ++++++++++++------ src/locales/ja.json | 4 + src/locales/ko.json | 4 + src/store/stuffAtom.js | 1 + 5 files changed, 162 insertions(+), 65 deletions(-) diff --git a/src/components/management/Stuff.jsx b/src/components/management/Stuff.jsx index 88f822fa..cc75a4c4 100644 --- a/src/components/management/Stuff.jsx +++ b/src/components/management/Stuff.jsx @@ -207,6 +207,7 @@ export default function Stuff() { schReceiveUser: stuffSearchParams?.schReceiveUser, schDispCompanyName: stuffSearchParams?.schDispCompanyName, schDateType: stuffSearchParams.schDateType, + schTempFlg: stuffSearchParams.schTempFlg, //임시저장 물건 schFromDt: dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD'), schToDt: dayjs(new Date()).format('YYYY-MM-DD'), startRow: (stuffSearch.pageNo - 1) * stuffSearchParams.pageSize + 1, @@ -249,6 +250,7 @@ export default function Stuff() { schReceiveUser: '', schDispCompanyName: '', schDateType: 'U', + schTempFlg: '', schFromDt: dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD'), schToDt: dayjs(new Date()).format('YYYY-MM-DD'), startRow: (pageNo - 1) * pageSize + 1, @@ -322,6 +324,7 @@ export default function Stuff() { schReceiveUser: '', schDispCompanyName: '', schDateType: 'U', + schTempFlg: '', schFromDt: dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD'), schToDt: dayjs(new Date()).format('YYYY-MM-DD'), startRow: 1, diff --git a/src/components/management/StuffSearchCondition.jsx b/src/components/management/StuffSearchCondition.jsx index 09fecdb5..a72fda59 100644 --- a/src/components/management/StuffSearchCondition.jsx +++ b/src/components/management/StuffSearchCondition.jsx @@ -60,6 +60,7 @@ export default function StuffSearchCondition() { const [schSelSaleStoreId, setSchSelSaleStoreId] = useState('') //판매대리점 선택 const [receiveUser, setReceiveUser] = useState('') //담당자 const [dateType, setDateType] = useState('U') //갱신일(U)/등록일(R) + const [tempFlg, setTempFlg] = useState('') //임시저장여부 const [schSelSaleStoreList, setSchSelSaleStoreList] = useState([]) //판매대리점 자동완성 SELECT 전체 const [favoriteStoreList, setFavoriteStoreList] = useState([]) //즐겨찾기한 판매점목록 @@ -95,6 +96,7 @@ export default function StuffSearchCondition() { schOtherSelSaleStoreId: stuffSearch?.schOtherSelSaleStoreId ? stuffSearch.schOtherSelSaleStoreId : '', schReceiveUser: receiveUser ? receiveUser.trim() : '', schDateType: dateType, + schTempFlg: tempFlg, //임시저장물건 schFromDt: startDate ? dayjs(startDate).format('YYYY-MM-DD') : '', schToDt: endDate ? dayjs(endDate).format('YYYY-MM-DD') : '', code: 'E', @@ -115,6 +117,7 @@ export default function StuffSearchCondition() { schOtherSelSaleStoreId: stuffSearch?.schOtherSelSaleStoreId ? stuffSearch.schOtherSelSaleStoreId : '', schReceiveUser: receiveUser ? receiveUser.trim() : '', schDateType: dateType, + schTempFlg: tempFlg, //임시저장물건 schFromDt: startDate ? dayjs(startDate).format('YYYY-MM-DD') : '', schToDt: endDate ? dayjs(endDate).format('YYYY-MM-DD') : '', code: 'E', @@ -136,6 +139,7 @@ export default function StuffSearchCondition() { schOtherSelSaleStoreId: otherSaleStoreId, schReceiveUser: receiveUser.trim(), schDateType: dateType, + schTempFlg: tempFlg, //임시저장물건 schFromDt: startDate ? dayjs(startDate).format('YYYY-MM-DD') : '', schToDt: endDate ? dayjs(endDate).format('YYYY-MM-DD') : '', code: 'E', @@ -155,6 +159,7 @@ export default function StuffSearchCondition() { schOtherSelSaleStoreId: otherSaleStoreId, schReceiveUser: stuffSearch?.schReceiveUser ? stuffSearch.schReceiveUser.trim() : receiveUser.trim(), schDateType: dateType, + schTempFlg: tempFlg, //임시저장물건 schFromDt: startDate ? dayjs(startDate).format('YYYY-MM-DD') : '', schToDt: endDate ? dayjs(endDate).format('YYYY-MM-DD') : '', code: 'E', @@ -176,6 +181,7 @@ export default function StuffSearchCondition() { schOtherSelSaleStoreId: stuffSearch?.schOtherSelSaleStoreId ? stuffSearch.schOtherSelSaleStoreId : '', schReceiveUser: receiveUser ? receiveUser.trim() : '', schDateType: dateType, + schTempFlg: tempFlg, //임시저장물건 schFromDt: startDate ? dayjs(startDate).format('YYYY-MM-DD') : '', schToDt: endDate ? dayjs(endDate).format('YYYY-MM-DD') : '', code: 'E', @@ -196,6 +202,7 @@ export default function StuffSearchCondition() { schOtherSelSaleStoreId: otherSaleStoreId, schReceiveUser: stuffSearch?.schReceiveUser ? stuffSearch.schReceiveUser.trim() : receiveUser.trim(), schDateType: dateType, + schTempFlg: tempFlg, //임시저장물건 schFromDt: startDate ? dayjs(startDate).format('YYYY-MM-DD') : '', schToDt: endDate ? dayjs(endDate).format('YYYY-MM-DD') : '', code: 'E', @@ -217,6 +224,7 @@ export default function StuffSearchCondition() { schOtherSelSaleStoreId: otherSaleStoreId, schReceiveUser: stuffSearch?.schReceiveUser ? stuffSearch.schReceiveUser.trim() : receiveUser.trim(), schDateType: dateType, + schTempFlg: tempFlg, //임시저장물건 schFromDt: startDate ? dayjs(startDate).format('YYYY-MM-DD') : '', schToDt: endDate ? dayjs(endDate).format('YYYY-MM-DD') : '', code: 'E', @@ -238,6 +246,7 @@ export default function StuffSearchCondition() { schOtherSelSaleStoreId: otherSaleStoreId, schReceiveUser: receiveUser.trim(), schDateType: dateType, + schTempFlg: tempFlg, //임시저장물건 schFromDt: startDate ? dayjs(startDate).format('YYYY-MM-DD') : '', schToDt: endDate ? dayjs(endDate).format('YYYY-MM-DD') : '', code: 'E', @@ -261,6 +270,7 @@ export default function StuffSearchCondition() { dispCompanyNameRef.current.value = '' receiveUserRef.current.value = '' stuffSearch.schDateType = 'U' + stuffSearch.schTempFlg = '' setObjectNo('') setAddress('') setobjectName('') @@ -268,6 +278,7 @@ export default function StuffSearchCondition() { setReceiveUser('') setDispCompanyName('') setDateType('U') + setTempFlg('') setStartDate(dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD')) setEndDate(dayjs(new Date()).format('YYYY-MM-DD')) if (session?.storeId === 'T01') { @@ -285,6 +296,7 @@ export default function StuffSearchCondition() { schSelSaleStoreId: '', schOtherSelSaleStoreId: '', schDateType: 'U', + schTempFlg: '', startRow: 1, endRow: 100, schSortType: 'U', @@ -302,6 +314,7 @@ export default function StuffSearchCondition() { stuffSearch.schReceiveUser = '' stuffSearch.schDispCompanyName = '' stuffSearch.schDateType = 'U' + stuffSearch.schTempFlg = '' stuffSearch.startRow = 1 stuffSearch.endRow = 100 @@ -316,6 +329,7 @@ export default function StuffSearchCondition() { stuffSearch.schReceiveUser = '' stuffSearch.schDispCompanyName = '' stuffSearch.schDateType = 'U' + stuffSearch.schTempFlg = '' stuffSearch.startRow = 1 stuffSearch.endRow = 100 @@ -542,6 +556,7 @@ export default function StuffSearchCondition() { stuffSearch.schReceiveUser = '' stuffSearch.schDispCompanyName = '' stuffSearch.schDateType = 'U' + stuffSearch.schTempFlg = '' stuffSearch.schFromDt = dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD') stuffSearch.schToDt = dayjs(new Date()).format('YYYY-MM-DD') stuffSearch.startRow = 1 @@ -574,6 +589,7 @@ export default function StuffSearchCondition() { stuffSearch.schReceiveUser = '' stuffSearch.schDispCompanyName = '' stuffSearch.schDateType = 'U' + stuffSearch.schTempFlg = '' stuffSearch.schFromDt = dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD') stuffSearch.schToDt = dayjs(new Date()).format('YYYY-MM-DD') stuffSearch.startRow = 1 @@ -596,6 +612,17 @@ export default function StuffSearchCondition() { setDispCompanyName(stuffSearch.schDispCompanyName ? stuffSearch.schDispCompanyName : dispCompanyName) setReceiveUser(stuffSearch.schReceiveUser ? stuffSearch.schReceiveUser : receiveUser) setDateType(stuffSearch.schDateType ? stuffSearch.schDateType : dateType) + setTempFlg(stuffSearch.schTempFlg ? stuffSearch.schTempFlg : tempFlg) + } + + if (stuffSearch.schDateType === 'R') { + setDateType('R') + } + + if (stuffSearch.schTempFlg === '0') { + setTempFlg('0') + } else if (stuffSearch.schTempFlg === '1') { + setTempFlg('1') } }, [stuffSearch]) @@ -647,8 +674,8 @@ export default function StuffSearchCondition() { - - + {/* + */} @@ -684,22 +711,7 @@ export default function StuffSearchCondition() { />
- {getMessage('stuff.search.schAddress')} - -
- { - stuffSearch.schAddress = addressRef.current.value - setAddress(addressRef.current.value) - }} - onKeyUp={handleByOnKeyUp} - /> -
- + {getMessage('stuff.search.schDispCompanyName')}
@@ -750,8 +762,127 @@ export default function StuffSearchCondition() { />
- {getMessage('stuff.search.schSelSaleStoreId')} + {getMessage('stuff.search.schAddress')} + +
+ { + stuffSearch.schAddress = addressRef.current.value + setAddress(addressRef.current.value) + }} + onKeyUp={handleByOnKeyUp} + /> +
+ + + + {getMessage('stuff.search.period')} +
+
+
+ { + setDateType(e.target.value) + stuffSearch.schDateType = e.target.value + }} + /> + +
+
+ { + setDateType(e.target.value) + stuffSearch.schDateType = e.target.value + }} + /> + +
+
+
+
+ +
+ ~ +
+ +
+
+
+ + {getMessage('stuff.search.schTempFlgT')} + +
+
+
+ { + // let tempFlg = e.target.value + // setTempFlg(tempFlg) + // console.log('포함을 눌렀어:::::11:::::::', e.target.value) + // console.log('포함을 눌렀어::::22::::::::', tempFlg) + setTempFlg(e.target.value) + stuffSearch.schTempFlg = e.target.value + }} + /> + +
+
+ { + setTempFlg(e.target.value) + stuffSearch.schTempFlg = e.target.value + }} + /> + +
+
+ { + setTempFlg(e.target.value) + stuffSearch.schTempFlg = e.target.value + }} + /> + +
+
+
+ + + + {getMessage('stuff.search.schSelSaleStoreId')} +
{session?.storeId === 'T01' && ( @@ -875,52 +1006,6 @@ export default function StuffSearchCondition() {
- - {getMessage('stuff.search.period')} - -
-
-
- { - setDateType(e.target.value) - stuffSearch.schDateType = e.target.value - }} - /> - -
-
- { - setDateType(e.target.value) - stuffSearch.schDateType = e.target.value - }} - /> - -
-
-
-
- -
- ~ -
- -
-
-
- -
diff --git a/src/locales/ja.json b/src/locales/ja.json index a4d8c6ad..be982f43 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -724,6 +724,10 @@ "stuff.search.period": "期間検索", "stuff.search.schDateTypeU": "更新日", "stuff.search.schDateTypeR": "登録日", + "stuff.search.schTempFlgT": "一時保存物", + "stuff.search.schTempFlg": "含む", + "stuff.search.schTempFlg0": "除外", + "stuff.search.schTempFlg1": "一時的なものだけを見る", "stuff.search.grid.title": "商品リスト", "stuff.search.grid.all": "全体", "stuff.search.grid.selected": "選択", diff --git a/src/locales/ko.json b/src/locales/ko.json index 71e7943f..05916f95 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -734,6 +734,10 @@ "stuff.search.period": "기간검색", "stuff.search.schDateTypeU": "갱신일", "stuff.search.schDateTypeR": "등록일", + "stuff.search.schTempFlgT": "임시저장 물건", + "stuff.search.schTempFlg": "포함", + "stuff.search.schTempFlg0": "제외", + "stuff.search.schTempFlg1": "임시물건만 조회", "stuff.search.grid.title": "물건목록", "stuff.search.grid.all": "전체", "stuff.search.grid.selected": "선택", diff --git a/src/store/stuffAtom.js b/src/store/stuffAtom.js index d30baab7..d4e9eaad 100644 --- a/src/store/stuffAtom.js +++ b/src/store/stuffAtom.js @@ -20,6 +20,7 @@ export const stuffSearchState = atom({ schSortType: 'U', //정렬조건 (R:최근등록일 U:최근수정일) pageNo: 1, pageSize: 100, + schTempFlg: '', //임시저장여부 }, dangerouslyAllowMutability: true, }) From 0b5c190cf32fc91eabad7d02c2459b7bb307cff9 Mon Sep 17 00:00:00 2001 From: basssy Date: Tue, 7 Jan 2025 15:25:24 +0900 Subject: [PATCH 18/19] =?UTF-8?q?Qcast=20=EC=B5=9C=EC=B4=88=20=EB=B9=84?= =?UTF-8?q?=EB=B0=80=EB=B2=88=ED=98=B8=EB=B3=80=EA=B2=BD=ED=8C=9D=EC=97=85?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/main/ChangePasswordPop.jsx | 30 ++++++++++------------- src/locales/ja.json | 1 + src/locales/ko.json | 1 + 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/src/components/main/ChangePasswordPop.jsx b/src/components/main/ChangePasswordPop.jsx index 4eb7164d..508f5d25 100644 --- a/src/components/main/ChangePasswordPop.jsx +++ b/src/components/main/ChangePasswordPop.jsx @@ -1,12 +1,10 @@ -import React, { useState } from 'react' +import React from 'react' import { useMessage } from '@/hooks/useMessage' import { useForm } from 'react-hook-form' import { sessionStore } from '@/store/commonAtom' import { useRecoilValue, useRecoilState } from 'recoil' import { useAxios } from '@/hooks/useAxios' import { globalLocaleStore } from '@/store/localeAtom' -import { useRouter } from 'next/navigation' -import { setSession } from '@/lib/authActions' import { logout } from '@/lib/authActions' export default function ChangePasswordPop(props) { const globalLocaleState = useRecoilValue(globalLocaleStore) @@ -14,7 +12,6 @@ export default function ChangePasswordPop(props) { const { patch } = useAxios(globalLocaleState) const { getMessage } = useMessage() const [sessionState, setSessionState] = useRecoilState(sessionStore) - const router = useRouter() const formInitValue = { password1: '', password2: '', @@ -56,6 +53,16 @@ export default function ChangePasswordPop(props) { const _password1 = form.watch('password1') const _password2 = form.watch('password2') + //비밀번호 미입력시 + if (_password1.trim() === '') { + alert(getMessage('main.popup.login.validate3')) + return false + } + if (_password2.trim() === '') { + alert(getMessage('main.popup.login.validate3')) + return false + } + if (_password1 !== _password2) { alert(getMessage('main.popup.login.validate1')) return false @@ -78,10 +85,6 @@ export default function ChangePasswordPop(props) { if (res?.result?.resultCode === 'S') { alert(getMessage('main.popup.login.success')) logout() - //로그인 화면으로 이동해서 다시 로그인해야되서 setSessionState필요없음 - // setSessionState({ ...sessionState, pwdInitYn: 'Y' }) - //props.setChagePasswordPopOpen(false) - //router.push('/login') } else { alert(res?.result?.resultMsg) } @@ -110,10 +113,7 @@ export default function ChangePasswordPop(props) {
-
- {getMessage('main.popup.login.newPassword1')} - * -
+
{getMessage('main.popup.login.newPassword1')}
{getMessage('main.popup.login.placeholder')}
@@ -133,10 +133,7 @@ export default function ChangePasswordPop(props) {
-
- {getMessage('main.popup.login.newPassword2')} - * -
+
{getMessage('main.popup.login.newPassword2')}
{getMessage('main.popup.login.placeholder')}
@@ -169,7 +166,6 @@ export default function ChangePasswordPop(props) { className="btn-origin grey" onClick={() => { logout() - // router.push('/login') }} > {getMessage('main.popup.login.btn2')} diff --git a/src/locales/ja.json b/src/locales/ja.json index be982f43..0fc32b81 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -824,6 +824,7 @@ "main.popup.login.btn2": "変更しない", "main.popup.login.validate1": "入力したパスワードが異なります。", "main.popup.login.validate2": "半角10文字以内で入力してください。", + "main.popup.login.validate3": "비밀번호를 입력해주세요.", "main.popup.login.success": "パスワードが変更されました。", "common.canvas.validate.size": "寸法を入力してください.", "surface.shape.validate.size.1to2": "①길이는 ②보다 큰 값을 넣어주세요.", diff --git a/src/locales/ko.json b/src/locales/ko.json index 05916f95..6b415e88 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -834,6 +834,7 @@ "main.popup.login.btn2": "변경안함", "main.popup.login.validate1": "입력한 패스워드가 다릅니다.", "main.popup.login.validate2": "반각 10자 이내로 입력해주세요.", + "main.popup.login.validate3": "비밀번호를 입력해주세요.", "main.popup.login.success": "비밀번호가 변경되었습니다.", "common.canvas.validate.size": "사이즈를 입력해 주세요.", "surface.shape.validate.size.1to2": "①길이는 ②보다 큰 값을 넣어주세요.", From 3a4821374a917f997ee0411e6459fc04419f9f94 Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Tue, 7 Jan 2025 15:31:20 +0900 Subject: [PATCH 19/19] =?UTF-8?q?=ED=99=8D=EA=B8=B0=EB=8B=98=20=EC=9A=94?= =?UTF-8?q?=EC=B2=AD=EC=82=AC=ED=95=AD=20=EC=88=98=EC=A0=95=20=EC=A0=90=20?= =?UTF-8?q?=EC=84=A0=20=EA=B7=B8=EB=A6=AC=EB=93=9C=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EC=BC=80=EB=9D=BC=EB=B0=94=EC=9D=98=20?= =?UTF-8?q?=EA=B2=BD=EC=9A=B0=20=EA=B2=BD=EC=82=AC=20=ED=95=84=EC=9A=94=20?= =?UTF-8?q?=EC=97=86=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../floor-plan/modal/grid/DotLineGrid.jsx | 77 +++++++++++-------- .../modal/roofShape/passivity/Gable.jsx | 9 --- 2 files changed, 44 insertions(+), 42 deletions(-) diff --git a/src/components/floor-plan/modal/grid/DotLineGrid.jsx b/src/components/floor-plan/modal/grid/DotLineGrid.jsx index 9e402a71..67c4cdf3 100644 --- a/src/components/floor-plan/modal/grid/DotLineGrid.jsx +++ b/src/components/floor-plan/modal/grid/DotLineGrid.jsx @@ -29,6 +29,8 @@ export default function DotLineGrid(props) { const { SelectOptions, currentSetting, setCurrentSetting, dotLineGridSettingState, setSettingModalGridOptions, setDotLineGridSettingState } = useCanvasSetting() + const [copyCurrentSetting, setCopyCurrentSetting] = useState({ ...currentSetting }) + // 데이터를 최초 한 번만 조회 useEffect(() => { console.log('DotLineGrid useEffect 실행') @@ -57,7 +59,7 @@ export default function DotLineGrid(props) { const handleCheckBoxChange = (e) => { const { value, checked } = e.target - setCurrentSetting((prev) => { + setCopyCurrentSetting((prev) => { return { ...prev, [value]: checked, @@ -66,23 +68,23 @@ export default function DotLineGrid(props) { } const handleSave = async () => { - if (!currentSetting.DOT && !currentSetting.LINE) { + /*if (!currentSetting.DOT && !currentSetting.LINE) { swalFire({ text: '배치할 그리드를 설정해주세요.' }) return - } + }*/ setDotLineGridSettingState((prev) => { return { ...prev, INTERVAL: { - type: currentSetting.INTERVAL.type, - horizontalInterval: currentSetting.INTERVAL.horizontalInterval, - verticalInterval: currentSetting.INTERVAL.verticalInterval, - ratioInterval: currentSetting.INTERVAL.ratioInterval, - dimension: currentSetting.INTERVAL.dimension, + type: copyCurrentSetting.INTERVAL.type, + horizontalInterval: copyCurrentSetting.INTERVAL.horizontalInterval, + verticalInterval: copyCurrentSetting.INTERVAL.verticalInterval, + ratioInterval: copyCurrentSetting.INTERVAL.ratioInterval, + dimension: copyCurrentSetting.INTERVAL.dimension, }, - DOT: currentSetting.DOT, - LINE: currentSetting.LINE, + DOT: copyCurrentSetting.DOT, + LINE: copyCurrentSetting.LINE, } //setDotLineGridSettingState({ ...currentSetting }) }) @@ -90,16 +92,18 @@ export default function DotLineGrid(props) { setSettingsData({ ...settingsData, INTERVAL: { - type: currentSetting.INTERVAL.type, - horizontalInterval: currentSetting.INTERVAL.horizontalInterval, - verticalInterval: currentSetting.INTERVAL.verticalInterval, - ratioInterval: currentSetting.INTERVAL.ratioInterval, - dimension: currentSetting.INTERVAL.dimension, + type: copyCurrentSetting.INTERVAL.type, + horizontalInterval: copyCurrentSetting.INTERVAL.horizontalInterval, + verticalInterval: copyCurrentSetting.INTERVAL.verticalInterval, + ratioInterval: copyCurrentSetting.INTERVAL.ratioInterval, + dimension: copyCurrentSetting.INTERVAL.dimension, }, - DOT: currentSetting.DOT, - LINE: currentSetting.LINE, + DOT: copyCurrentSetting.DOT, + LINE: copyCurrentSetting.LINE, }) + setCurrentSetting({ ...copyCurrentSetting }) + setIsShow(false) closePopup(id, isConfig) } @@ -107,7 +111,7 @@ export default function DotLineGrid(props) { const handleRadioChange = (e) => { const { value, name, checked, selected } = e.target - setCurrentSetting((prev) => { + setCopyCurrentSetting((prev) => { return { ...prev, INTERVAL: { @@ -120,7 +124,7 @@ export default function DotLineGrid(props) { const changeInput = (value, e) => { const { name } = e.target - setCurrentSetting((prev) => { + setCopyCurrentSetting((prev) => { return { ...prev, INTERVAL: { @@ -133,7 +137,7 @@ export default function DotLineGrid(props) { const changeDimension = (result) => { const { value } = result - setCurrentSetting((prev) => { + setCopyCurrentSetting((prev) => { return { ...prev, INTERVAL: { @@ -146,7 +150,7 @@ export default function DotLineGrid(props) { // 초기화 const reset = () => { - canvas + /*canvas ?.getObjects() .filter((obj) => obj.name === 'lineGrid') .forEach((obj) => canvas?.remove(obj)) @@ -154,9 +158,9 @@ export default function DotLineGrid(props) { ?.getObjects() .filter((obj) => obj.name === 'dotGrid') .forEach((obj) => canvas?.remove(obj)) - +*/ // resetDotLineGridSetting() - setCurrentSetting({ + setCopyCurrentSetting({ INTERVAL: { type: 2, // 1: 가로,세로 간격 수동, 2: 비율 간격 ratioInterval: 910, @@ -188,11 +192,11 @@ export default function DotLineGrid(props) {
- +
- +
@@ -205,8 +209,8 @@ export default function DotLineGrid(props) { id="ra01" value={1} onChange={handleRadioChange} - checked={(currentSetting.DOT || currentSetting.LINE) && currentSetting.INTERVAL.type === 1} - readOnly={!currentSetting.DOT && !currentSetting.LINE} + checked={(copyCurrentSetting.DOT || copyCurrentSetting.LINE) && copyCurrentSetting.INTERVAL.type === 1} + readOnly={!copyCurrentSetting.DOT && !copyCurrentSetting.LINE} />
@@ -217,7 +221,7 @@ export default function DotLineGrid(props) { type="text" className="input-origin" name={`horizontalInterval`} - value={currentSetting.INTERVAL.horizontalInterval} + value={copyCurrentSetting.INTERVAL.horizontalInterval} onChange={(e) => onlyNumberInputChange(e, changeInput)} />
@@ -230,7 +234,7 @@ export default function DotLineGrid(props) { type="text" className="input-origin" name={`verticalInterval`} - value={currentSetting.INTERVAL.verticalInterval} + value={copyCurrentSetting.INTERVAL.verticalInterval} onChange={(e) => onlyNumberInputChange(e, changeInput)} />
@@ -245,8 +249,8 @@ export default function DotLineGrid(props) { id="ra02" value={2} onChange={handleRadioChange} - checked={(currentSetting.DOT || currentSetting.LINE) && currentSetting.INTERVAL.type === 2} - readOnly={!currentSetting.DOT && !currentSetting.LINE} + checked={(copyCurrentSetting.DOT || copyCurrentSetting.LINE) && copyCurrentSetting.INTERVAL.type === 2} + readOnly={!copyCurrentSetting.DOT && !copyCurrentSetting.LINE} />
@@ -257,14 +261,21 @@ export default function DotLineGrid(props) { type="text" className="input-origin" name={`ratioInterval`} - value={currentSetting.INTERVAL.ratioInterval} + value={copyCurrentSetting.INTERVAL.ratioInterval} onChange={(e) => onlyNumberInputChange(e, changeInput)} />
mm
- +
diff --git a/src/components/floor-plan/modal/roofShape/passivity/Gable.jsx b/src/components/floor-plan/modal/roofShape/passivity/Gable.jsx index e7d9718d..8773ec32 100644 --- a/src/components/floor-plan/modal/roofShape/passivity/Gable.jsx +++ b/src/components/floor-plan/modal/roofShape/passivity/Gable.jsx @@ -7,15 +7,6 @@ export default function Gable({ offsetRef, pitchRef, pitchText }) { const currentAngleType = useRecoilValue(currentAngleTypeSelector) return ( <> -
- - {getMessage('slope')} - -
- -
- {pitchText} -
{getMessage('gable.offset')}