diff --git a/src/components/floor-plan/modal/roofAllocation/RoofAllocationSetting.jsx b/src/components/floor-plan/modal/roofAllocation/RoofAllocationSetting.jsx index dbd4d992..91268678 100644 --- a/src/components/floor-plan/modal/roofAllocation/RoofAllocationSetting.jsx +++ b/src/components/floor-plan/modal/roofAllocation/RoofAllocationSetting.jsx @@ -121,7 +121,7 @@ export default function RoofAllocationSetting(props) { onChange={(e) => { handleChangeInput(e, 'pitch', index) }} - defaultValue={currentAngleType === 'slope' ? roof.pitch : getDegreeByChon(roof.pitch)} + defaultValue={currentAngleType === 'slope' ? roof.pitch : roof.angle} /> {pitchText} diff --git a/src/components/management/StuffDetail.jsx b/src/components/management/StuffDetail.jsx index 506df945..e6133ce2 100644 --- a/src/components/management/StuffDetail.jsx +++ b/src/components/management/StuffDetail.jsx @@ -1265,57 +1265,59 @@ export default function StuffDetail() { return alert(getMessage('stuff.detail.save.valierror2')) } - let detail_sort = Object.keys(managementState) - .sort() - .reduce((obj, key) => ((obj[key] = managementState[key]), obj), {}) - let params_sort = Object.keys(params) - .sort() - .reduce((obj, key) => ((obj[key] = params[key]), obj), {}) + if (managementState) { + let detail_sort = Object.keys(managementState) + .sort() + .reduce((obj, key) => ((obj[key] = managementState[key]), obj), {}) + let params_sort = Object.keys(params) + .sort() + .reduce((obj, key) => ((obj[key] = params[key]), obj), {}) - delete detail_sort.areaName - delete detail_sort.contentsPath - delete detail_sort.createDatetime - delete detail_sort.createUserName - delete detail_sort.dispCompanyName - delete detail_sort.firstAgentId - delete detail_sort.lastEditDatetime - delete detail_sort.lastEditUserName - delete detail_sort.planList - delete detail_sort.planNo - delete detail_sort.planTotCnt - delete detail_sort.receiveCompanyName - delete detail_sort.saleStoreName - delete detail_sort.rowNumber - delete detail_sort.prefName - delete detail_sort.sameObjectInfo - delete detail_sort.specificationConfirmDate - delete detail_sort.totCnt - delete detail_sort.workNo - delete detail_sort.workName + delete detail_sort.areaName + delete detail_sort.contentsPath + delete detail_sort.createDatetime + delete detail_sort.createUserName + delete detail_sort.dispCompanyName + delete detail_sort.firstAgentId + delete detail_sort.lastEditDatetime + delete detail_sort.lastEditUserName + delete detail_sort.planList + delete detail_sort.planNo + delete detail_sort.planTotCnt + delete detail_sort.receiveCompanyName + delete detail_sort.saleStoreName + delete detail_sort.rowNumber + delete detail_sort.prefName + delete detail_sort.sameObjectInfo + delete detail_sort.specificationConfirmDate + delete detail_sort.totCnt + delete detail_sort.workNo + delete detail_sort.workName - delete params_sort.areaName - delete params_sort.contentsPath - delete params_sort.createDatetime - delete params_sort.createUserName - delete params_sort.dispCompanyName - delete params_sort.firstAgentId - delete params_sort.lastEditDatetime - delete params_sort.lastEditUserName - delete params_sort.planList - delete params_sort.planNo - delete params_sort.planTotCnt - delete params_sort.receiveCompanyName - delete params_sort.saleStoreName - delete params_sort.rowNumber - delete params_sort.prefName - delete params_sort.sameObjectInfo - delete params_sort.specificationConfirmDate - delete params_sort.totCnt - delete params_sort.workNo - delete params_sort.workName + delete params_sort.areaName + delete params_sort.contentsPath + delete params_sort.createDatetime + delete params_sort.createUserName + delete params_sort.dispCompanyName + delete params_sort.firstAgentId + delete params_sort.lastEditDatetime + delete params_sort.lastEditUserName + delete params_sort.planList + delete params_sort.planNo + delete params_sort.planTotCnt + delete params_sort.receiveCompanyName + delete params_sort.saleStoreName + delete params_sort.rowNumber + delete params_sort.prefName + delete params_sort.sameObjectInfo + delete params_sort.specificationConfirmDate + delete params_sort.totCnt + delete params_sort.workNo + delete params_sort.workName - if (Object.entries(detail_sort).toString() === Object.entries(params_sort).toString()) { - return alert(getMessage('stuff.detail.noChgData')) + if (Object.entries(detail_sort).toString() === Object.entries(params_sort).toString()) { + return alert(getMessage('stuff.detail.noChgData')) + } } if (params?.receiveUser !== '') { diff --git a/src/components/simulator/Simulator.jsx b/src/components/simulator/Simulator.jsx index 603a5fde..0d33bbf8 100644 --- a/src/components/simulator/Simulator.jsx +++ b/src/components/simulator/Simulator.jsx @@ -227,7 +227,7 @@ export default function Simulator() { {/* 연간예측발전량 */}
{getMessage('simulator.title.sub4')}
-
{chartData[chartData.length - 1]}
+
{convertNumberToPriceDecimal(chartData[chartData.length - 1])}
@@ -343,15 +343,15 @@ export default function Simulator() { {/* 지붕면 */} {moduleInfo.roofSurface} {/* 경사각 */} - {convertNumberToPriceDecimal(moduleInfo.slope)}寸 + {convertNumberToPriceDecimal(moduleInfo.slopeAngle)}寸 {/* 방위각(도) */} - {convertNumberToPriceDecimal(moduleInfo.angle)} + {convertNumberToPriceDecimal(moduleInfo.azimuth)} {/* 태양전지모듈 */}
{moduleInfo.itemNo}
{/* 매수 */} - {moduleInfo.amount} + {convertNumberToPriceDecimal(moduleInfo.amount)} ) @@ -393,7 +393,7 @@ export default function Simulator() {
{pcsInfo.itemNo}
{/* 대 */} - {pcsInfo.amount} + {convertNumberToPriceDecimal(pcsInfo.amount)} ) diff --git a/src/hooks/common/useMasterController.js b/src/hooks/common/useMasterController.js index 94f455c5..f4bc607b 100644 --- a/src/hooks/common/useMasterController.js +++ b/src/hooks/common/useMasterController.js @@ -112,11 +112,27 @@ export function useMasterController() { }) } + /** + * PCS 메이커, 시리즈 목록 조회 + * @param {PCS 메이커코드} pcsMkrCd + * @param {혼합모듈번호} mixMatlNo + * @returns + */ + const getPcsMakerList = async (params) => { + const paramString = getQueryString(params) + console.log('🚀🚀 ~ getPcsMakerList ~ paramString:', paramString) + return await get({ url: '/api/v1/master/pcsMakerList' + paramString }).then((res) => { + console.log('🚀🚀 ~ getPcsMakerList ~ res:', res) + return res + }) + } + return { getRoofMaterialList, getModuleTypeItemList, getTrestleList, getConstructionList, getTrestleDetailList, + getPcsMakerList, } } diff --git a/src/hooks/option/useCanvasSetting.js b/src/hooks/option/useCanvasSetting.js index 1691d2cc..c4ac79c9 100644 --- a/src/hooks/option/useCanvasSetting.js +++ b/src/hooks/option/useCanvasSetting.js @@ -135,7 +135,8 @@ export function useCanvasSetting() { raft: item.raftBase && parseInt(item.raftBase), layout: ['ROOF_ID_SLATE', 'ROOF_ID_SINGLE'].includes(item.roofMatlCd) ? ROOF_MATERIAL_LAYOUT.STAIRS : ROOF_MATERIAL_LAYOUT.PARALLEL, hajebichi: item.roofPchBase && parseInt(item.roofPchBase), - pitch: item.pitch && parseInt(item.pitch), + pitch: item.pitch ? parseInt(item.pitch) : 4, + angle: item.angle ? parseInt(item.angle) : 21.8, })) setRoofMaterials(roofLists) const selectedRoofMaterial = roofLists[0] diff --git a/src/hooks/roofcover/useRoofAllocationSetting.js b/src/hooks/roofcover/useRoofAllocationSetting.js index 638da76a..3e999380 100644 --- a/src/hooks/roofcover/useRoofAllocationSetting.js +++ b/src/hooks/roofcover/useRoofAllocationSetting.js @@ -23,7 +23,7 @@ import { menuTypeState } from '@/store/menuAtom' import { useRoofFn } from '@/hooks/common/useRoofFn' import { ROOF_MATERIAL_LAYOUT } from '@/components/floor-plan/modal/placementShape/PlacementShapeSetting' import { globalLocaleStore } from '@/store/localeAtom' -import { getChonByDegree } from '@/util/canvas-util' +import { getChonByDegree, getDegreeByChon } from '@/util/canvas-util' // 지붕면 할당 export function useRoofAllocationSetting(id) { @@ -473,7 +473,9 @@ export function useRoofAllocationSetting(id) { const value = e.target.value const newRoofList = currentRoofList.map((roof, idx) => { if (idx === index) { - return { ...roof, pitch: value } + const result = + currentAngleType === 'slope' ? { pitch: value, angle: getDegreeByChon(value) } : { pitch: getChonByDegree(value), angle: value } + return { ...roof, ...result } } return roof })