diff --git a/src/components/estimate/Estimate.jsx b/src/components/estimate/Estimate.jsx index da241db1..b6bdbfef 100644 --- a/src/components/estimate/Estimate.jsx +++ b/src/components/estimate/Estimate.jsx @@ -46,7 +46,6 @@ export default function Estimate({}) { const [selection, setSelection] = useState(new Set()) //견적특이사항 접고 펼치기 - // const [hidden, setHidden] = useState(false) const [hidden, setHidden] = useState(true) //아이템 자동완성 리스트 @@ -569,7 +568,7 @@ export default function Estimate({}) { return selection.size === getAbledItems(estimateContextState.itemList).length } - //row 체크박스 컨트롤 + //아이템row 체크박스 컨트롤 const onChangeSelect = (dispOrder) => { const newSelection = new Set(selection) if (newSelection.has(dispOrder)) { @@ -581,10 +580,6 @@ export default function Estimate({}) { setSelection(newSelection) } - function formatNumberWithComma(number) { - return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') - } - //주택PKG input 변경 const onChangePkgAsp = (value) => { if (estimateContextState.estimateType === 'YJSS') { @@ -1140,6 +1135,7 @@ export default function Estimate({}) { } } }, [estimateContextState]) + return (
diff --git a/src/components/floor-plan/CanvasFrame.jsx b/src/components/floor-plan/CanvasFrame.jsx index 6e302fa1..7144a920 100644 --- a/src/components/floor-plan/CanvasFrame.jsx +++ b/src/components/floor-plan/CanvasFrame.jsx @@ -13,7 +13,7 @@ import { useContextMenu } from '@/hooks/useContextMenu' import { useCanvasConfigInitialize } from '@/hooks/common/useCanvasConfigInitialize' import { currentMenuState } from '@/store/canvasAtom' import { totalDisplaySelector } from '@/store/settingAtom' -import { MENU } from '@/common/common' +import { MENU, POLYGON_TYPE } from '@/common/common' import { FloorPlanContext } from '@/app/floor-plan/FloorPlanProvider' import { QcastContext } from '@/app/QcastProvider' import { @@ -27,6 +27,7 @@ import { } from '@/store/circuitTrestleAtom' import { useCanvasPopupStatusController } from '@/hooks/common/useCanvasPopupStatusController' import { useCanvasSetting } from '@/hooks/option/useCanvasSetting' +import { useCanvasMenu } from '@/hooks/common/useCanvasMenu' export default function CanvasFrame() { const canvasRef = useRef(null) @@ -47,6 +48,7 @@ export default function CanvasFrame() { const resetPcsCheckState = useResetRecoilState(pcsCheckState) const { handleModuleSelectionTotal } = useCanvasPopupStatusController() const { fetchBasicSettings } = useCanvasSetting() + const { setSelectedMenu } = useCanvasMenu() const loadCanvas = () => { if (!canvas) return @@ -58,6 +60,10 @@ export default function CanvasFrame() { canvas?.loadFromJSON(JSON.parse(plan.canvasStatus), function () { canvasLoadInit() //config된 상태로 캔버스 객체를 그린다 canvas?.renderAll() // 캔버스를 다시 그립니다. + + if (canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE).length > 0) { + setSelectedMenu('module') + } }) } } diff --git a/src/components/floor-plan/CanvasMenu.jsx b/src/components/floor-plan/CanvasMenu.jsx index 66d13c88..ebb31fa6 100644 --- a/src/components/floor-plan/CanvasMenu.jsx +++ b/src/components/floor-plan/CanvasMenu.jsx @@ -186,6 +186,7 @@ export default function CanvasMenu(props) { const modules = canvas .getObjects() .filter((obj) => [POLYGON_TYPE.MODULE_SETUP_SURFACE, POLYGON_TYPE.MODULE, POLYGON_TYPE.OBJECT_SURFACE].includes(obj.name)) + initRoofs() if (modules.length > 0) { swalFire({ diff --git a/src/components/floor-plan/modal/roofAllocation/ContextRoofAllocationSetting.jsx b/src/components/floor-plan/modal/roofAllocation/ContextRoofAllocationSetting.jsx index 37fc53bc..30e56c0e 100644 --- a/src/components/floor-plan/modal/roofAllocation/ContextRoofAllocationSetting.jsx +++ b/src/components/floor-plan/modal/roofAllocation/ContextRoofAllocationSetting.jsx @@ -85,7 +85,7 @@ export default function ContextRoofAllocationSetting(props) { }} > - {getMessage('modal.common.add')} + {getMessage('modal.roof.alloc.add.roof.material')}
diff --git a/src/components/floor-plan/modal/roofAllocation/RoofAllocationSetting.jsx b/src/components/floor-plan/modal/roofAllocation/RoofAllocationSetting.jsx index 7723b9de..3dd03385 100644 --- a/src/components/floor-plan/modal/roofAllocation/RoofAllocationSetting.jsx +++ b/src/components/floor-plan/modal/roofAllocation/RoofAllocationSetting.jsx @@ -85,7 +85,7 @@ export default function RoofAllocationSetting(props) { }} > - {getMessage('modal.common.add')} + {getMessage('modal.roof.alloc.add.roof.material')}
diff --git a/src/components/main/ChangePasswordPop.jsx b/src/components/main/ChangePasswordPop.jsx index dbc9d6e4..54075153 100644 --- a/src/components/main/ChangePasswordPop.jsx +++ b/src/components/main/ChangePasswordPop.jsx @@ -119,7 +119,11 @@ export default function ChangePasswordPop(props) { }, }) } else { - alert(res?.result?.resultMsg) + swalFire({ + text: getMessage(res?.result?.resultMsg), + type: 'alert', + icon: 'error', + }) } } else { setIsGlobalLoading(false) diff --git a/src/components/management/Stuff.jsx b/src/components/management/Stuff.jsx index 0a3be3ee..43446209 100644 --- a/src/components/management/Stuff.jsx +++ b/src/components/management/Stuff.jsx @@ -75,7 +75,10 @@ export default function Stuff() { type: 'alert', }) } catch (err) { - alert(getMessage('stuff.detail.header.failCopy')) + swalFire({ + text: getMessage('stuff.detail.header.failCopy'), + type: 'alert', + }) } finally { textArea.remove() } diff --git a/src/components/management/StuffDetail.jsx b/src/components/management/StuffDetail.jsx index f4d7fbd4..266f1779 100644 --- a/src/components/management/StuffDetail.jsx +++ b/src/components/management/StuffDetail.jsx @@ -107,7 +107,6 @@ export default function StuffDetail() { const [areaIdList, setAreaIdList] = useState([]) //발전시뮬레이션 리스트 - const [isFormValid, setIsFormValid] = useState(false) //임시저장, 진짜저장 버튼 컨트롤 const [showAddressButtonValid, setShowAddressButtonValid] = useState(false) //주소검색팝업 활성화 컨트롤 const [showDesignRequestButtonValid, setShowDesignRequestButtonValid] = useState(false) //설계의뢰팝업 활성화 컨트롤 const [showWindSpeedButtonValid, setShowWindSpeedButtonValid] = useState(false) //풍속선택팝업 활성화 컨트롤 @@ -1094,8 +1093,6 @@ export default function StuffDetail() { if (!formData.installHeight) { errors.installHeight = true } - - setIsFormValid(Object.keys(errors).length === 0 ? true : false) } else { //상세일떄 폼체크 const formData = form.getValues() @@ -1140,8 +1137,6 @@ export default function StuffDetail() { if (!formData.installHeight) { errors.installHeight = true } - - setIsFormValid(Object.keys(errors).length === 0 ? true : false) } }, [ _receiveUser, diff --git a/src/components/management/StuffHeader.jsx b/src/components/management/StuffHeader.jsx index d669ad7a..1f68d68a 100644 --- a/src/components/management/StuffHeader.jsx +++ b/src/components/management/StuffHeader.jsx @@ -4,7 +4,6 @@ import { useContext, useEffect } from 'react' import { useMessage } from '@/hooks/useMessage' import dayjs from 'dayjs' import { GlobalDataContext } from '@/app/GlobalDataProvider' -// import { ManagementContext } from '@/app/management/ManagementProvider' import { useSwal } from '@/hooks/useSwal' export default function StuffHeader() { const { getMessage } = useMessage() @@ -23,7 +22,10 @@ export default function StuffHeader() { }) }) .catch(() => { - alert(getMessage('stuff.detail.header.failCopy')) + swalFire({ + text: getMessage('stuff.detail.header.failCopy'), + type: 'alert', + }) }) } else { // Use the 'out of viewport hidden text area' trick @@ -44,7 +46,10 @@ export default function StuffHeader() { type: 'alert', }) } catch (err) { - alert(getMessage('stuff.detail.header.failCopy')) + swalFire({ + text: getMessage('stuff.detail.header.failCopy'), + type: 'alert', + }) } finally { textArea.remove() } diff --git a/src/components/management/StuffSearchCondition.jsx b/src/components/management/StuffSearchCondition.jsx index 05c00a13..c00e8bd6 100644 --- a/src/components/management/StuffSearchCondition.jsx +++ b/src/components/management/StuffSearchCondition.jsx @@ -18,6 +18,7 @@ import { isObjectNotEmpty } from '@/util/common-utils' import { SessionContext } from '@/app/SessionProvider' import { QcastContext } from '@/app/QcastProvider' +import { useSwal } from '@/hooks/useSwal' export default function StuffSearchCondition() { const router = useRouter() @@ -73,17 +74,24 @@ export default function StuffSearchCondition() { const [otherSaleStoreId, setOtherSaleStoreId] = useState('') const { setIsGlobalLoading } = useContext(QcastContext) + const { swalFire } = useSwal() // 조회 const onSubmit = () => { let diff = dayjs(endDate).diff(startDate, 'day') if (diff > 366) { - return alert(getMessage('stuff.message.periodError')) + return swalFire({ + text: getMessage('stuff.message.periodError'), + type: 'alert', + }) } if (isNaN(diff)) { - return alert(getMessage('stuff.message.periodError')) + return swalFire({ + text: getMessage('stuff.message.periodError'), + type: 'alert', + }) } setIsGlobalLoading(true) diff --git a/src/hooks/option/useCanvasSetting.js b/src/hooks/option/useCanvasSetting.js index 6567838f..5219a6a5 100644 --- a/src/hooks/option/useCanvasSetting.js +++ b/src/hooks/option/useCanvasSetting.js @@ -221,6 +221,14 @@ export function useCanvasSetting(executeEffect = true) { } const { column } = corridorDimension const lengthTexts = canvas.getObjects().filter((obj) => obj.name === 'lengthText') + const group = canvas.getObjects().filter((obj) => obj.type === 'group') + group.forEach((obj) => { + obj._objects + .filter((obj2) => obj2.name === 'lengthText') + .forEach((obj3) => { + lengthTexts.push(obj3) + }) + }) switch (column) { case 'corridorDimension': diff --git a/src/hooks/usePolygon.js b/src/hooks/usePolygon.js index 04507c17..c9528e72 100644 --- a/src/hooks/usePolygon.js +++ b/src/hooks/usePolygon.js @@ -48,6 +48,7 @@ export const usePolygon = () => { canvas.remove(text) }) const lines = polygon.lines + polygon.texts = [] lines.forEach((line, i) => { const length = line.getLength() @@ -102,7 +103,7 @@ export const usePolygon = () => { parent: polygon, name: 'lengthText', }) - + polygon.texts.push(text) canvas.add(text) }) diff --git a/src/locales/ja.json b/src/locales/ja.json index 76f16b36..64b2f0f4 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -174,6 +174,7 @@ "modal.roof.alloc.info": "※配置面初期設定で保存した[基本屋根材]を変更したり、屋根材を追加して割り当てることができます。", "modal.roof.alloc.default.roof.material": "基本屋根材", "modal.roof.alloc.select.roof.material": "屋根材の選択", + "modal.roof.alloc.add.roof.material": "지붕재 추가(JA)", "modal.roof.alloc.select.parallel": "筋配置", "modal.roof.alloc.select.stairs": "千鳥配置", "modal.roof.alloc.apply": "選択した屋根材として割り当て", diff --git a/src/locales/ko.json b/src/locales/ko.json index 0a1119d0..9252ac19 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -174,6 +174,7 @@ "modal.roof.alloc.info": "※ 배치면 초기설정에서 저장한 [기본 지붕재]를 변경하거나 지붕재를 추가하여 할당할 수 있습니다.", "modal.roof.alloc.default.roof.material": "기본 지붕재", "modal.roof.alloc.select.roof.material": "지붕재 선택", + "modal.roof.alloc.add.roof.material": "지붕재 추가", "modal.roof.alloc.select.parallel": "병렬식", "modal.roof.alloc.select.stairs": "계단식", "modal.roof.alloc.apply": "선택한 지붕재로 할당",