264 lines
8.7 KiB
JavaScript
264 lines
8.7 KiB
JavaScript
import { useAxios } from '@/hooks/useAxios'
|
|
import { useMessage } from '@/hooks/useMessage'
|
|
import { useSwal } from '@/hooks/useSwal'
|
|
import { getQueryString } from '@/util/common-utils'
|
|
|
|
/**
|
|
* 마스터 컨트롤러 훅
|
|
* @returns
|
|
*/
|
|
export function useMasterController() {
|
|
const { get, post, put } = useAxios()
|
|
const { getMessage } = useMessage()
|
|
const { swalFire } = useSwal()
|
|
|
|
/**
|
|
* 지붕재 목록 조회
|
|
* @returns
|
|
*/
|
|
const getRoofMaterialList = async () => {
|
|
return await get({ url: '/api/v1/master/getRoofMaterialList' }).then((res) => {
|
|
// console.log('🚀🚀 ~ getRoofMaterialList ~ res:', res)
|
|
return res
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 모듈 타입별 아이템 목록 조회
|
|
* @param {지붕재 코드 목록} arrRoofMatlCd
|
|
* @returns
|
|
*/
|
|
const getModuleTypeItemList = async (paramArr) => {
|
|
if (!Array.isArray(paramArr) || paramArr.length === 0 || paramArr.length > 4 || paramArr.some((item) => !item || item.trim() === '')) {
|
|
swalFire({ text: getMessage('master.moduletypeitem.message.error'), type: 'alert', icon: 'error' })
|
|
return null
|
|
}
|
|
const paramString = `?${paramArr.map((item) => `arrRoofMatlCd=${item}`).join('&')}`
|
|
return await get({ url: `/api/v1/master/getModuleTypeItemList${paramString}` }).then((res) => {
|
|
// console.log('🚀🚀 ~ getModuleTypeItemList ~ res:', res)
|
|
return res
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 가대 목록 조회
|
|
* @param {모듈타입코드} moduleTpCd
|
|
* @param {지붕재코드} roofMatlCd
|
|
* @param {서까래기초코드} raftBaseCd
|
|
* @param {가대메이커코드} trestleMkrCd
|
|
* @param {공법코드} constMthdCd
|
|
* @param {지붕기초코드} roofBaseCd
|
|
* @returns
|
|
*/
|
|
const getTrestleList = async (params) => {
|
|
const paramString = getQueryString(params)
|
|
// console.log('🚀🚀 ~ getTrestleList ~ paramString:', paramString)
|
|
return await get({ url: '/api/v1/master/getTrestleList' + paramString }).then((res) => {
|
|
// console.log('🚀🚀 ~ getTrestleList ~ res:', res)
|
|
return res
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 모듈 시공법 목록 조회
|
|
* @param {모듈타입코드} moduleTpCd
|
|
* @param {지붕재코드} roofMatlCd
|
|
* @param {가대메이커코드} trestleMkrCd
|
|
* @param {공법코드} constMthdCd
|
|
* @param {지붕기초코드} roofBaseCd
|
|
* @param {면조도} illuminationTp
|
|
* @param {설치높이} instHt
|
|
* @param {풍속} stdWindSpeed
|
|
* @param {적설량} stdSnowLd
|
|
* @param {경사도코드} inclCd
|
|
* @param {서까래기초코드} raftBaseCd
|
|
* @param {하제(망둥어)피치} roofPitch
|
|
*
|
|
* @returns
|
|
*/
|
|
const getConstructionList = async (params) => {
|
|
const paramString = getQueryString(params)
|
|
// console.log('🚀🚀 ~ getConstructionList ~ paramString:', paramString)
|
|
return await get({ url: '/api/v1/master/getConstructionList' + paramString }).then((res) => {
|
|
// console.log('🚀🚀 ~ getConstructionList ~ res:', res)
|
|
return res
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 가대 상세 조회
|
|
* @param {모듈타입코드} moduleTpCd
|
|
* @param {지붕재코드} roofMatlCd
|
|
* @param {가대메이커코드} trestleMkrCd
|
|
* @param {공법코드} constMthdCd
|
|
* @param {지붕기초코드} roofBaseCd
|
|
* @param {면조도} illuminationTp
|
|
* @param {설치높이} instHt
|
|
* @param {풍속} stdWindSpeed
|
|
* @param {적설량} stdSnowLd
|
|
* @param {경사도코드} inclCd
|
|
* @param {시공법} constTp
|
|
* @param {혼합모듈번호} mixMatlNo
|
|
* @param {하제(망둥어)피치}roofPitch
|
|
* @returns
|
|
*/
|
|
const getTrestleDetailList = async (params) => {
|
|
// const paramString = getQueryString(params)
|
|
return await post({ url: '/api/v1/master/getTrestleDetailList', data: params }).then((res) => {
|
|
return res
|
|
})
|
|
}
|
|
|
|
/**
|
|
* PCS 메이커, 시리즈 목록 조회
|
|
* @param {PCS 메이커코드} pcsMkrCd
|
|
* @param {혼합모듈번호} mixMatlNo
|
|
* @returns
|
|
*/
|
|
const getPcsMakerList = async (params = null) => {
|
|
let paramString = ''
|
|
if (params) {
|
|
paramString = getQueryString(params)
|
|
}
|
|
return await get({ url: '/api/v1/master/pcsMakerList' + paramString }).then((res) => {
|
|
return res
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 모듈 타입별 아이템 목록 조회
|
|
* @param {PCS 메이커코드} pcsMkrCd
|
|
* @param {PCS시리즈코드 목록} pcsSerList
|
|
* @param {모듈아이템 ID 목록} moduleItemList
|
|
* @returns
|
|
*/
|
|
const getPcsModelList = async (params = null) => {
|
|
return await post({ url: '/api/v1/master/getPcsSeriesItemList', data: params }).then((res) => {
|
|
return res
|
|
})
|
|
}
|
|
/**
|
|
* 시리즈중 자동으로 추천 PCS 정보 조회
|
|
* @param {Max접속(과적)여부} maxConnYn
|
|
* @param {동일회로도여부} smpCirYn
|
|
* @param {한랭지여부} coldZoneYn
|
|
* @param {사용된 모듈 아이템 List} useModuleItemList
|
|
* @param {지붕면별 목록} roofSurfaceList
|
|
* @param {PCS 제품 목록} pcsItemList
|
|
* @returns
|
|
*/
|
|
const getPcsAutoRecommendList = async (params = null) => {
|
|
return await post({ url: '/api/v1/master/getPcsAutoRecommendList', data: params }).then((res) => {
|
|
return res
|
|
})
|
|
}
|
|
|
|
const getPcsManualConfChk = async (params = null) => {
|
|
return await post({ url: '/api/v1/master/getPcsMenualConfChk', data: params }).then((res) => {
|
|
return res
|
|
})
|
|
}
|
|
|
|
/**
|
|
* PCS로 회로 구성 가능 여부 체크
|
|
* @param {Max접속(과적)여부} maxConnYn
|
|
* @param {동일회로도여부} smpCirYn
|
|
* @param {한랭지여부} coldZoneYn
|
|
* @param {사용된 모듈 아이템 List} useModuleItemList
|
|
* @param {지붕면별 목록} roofSurfaceList
|
|
* @param {PCS 제품 목록} pcsItemList
|
|
* @returns
|
|
*/
|
|
const getPcsVoltageChk = async (params = null) => {
|
|
return await post({ url: '/api/v1/master/getPcsVoltageChk', data: params }).then((res) => {
|
|
return res
|
|
})
|
|
}
|
|
|
|
/**
|
|
* PCS 승압설정 정보 조회
|
|
* @param {Max접속(과적)여부} maxConnYn
|
|
* @param {동일회로도여부} smpCirYn
|
|
* @param {한랭지여부} coldZoneYn
|
|
* @param {사용된 모듈아이템 목록} useModuleItemList
|
|
* @param {지붕면 목록} roofSurfaceList
|
|
* @param {PCS 아이템 목록} pcsItemList
|
|
|
|
* @returns
|
|
*/
|
|
const getPcsVoltageStepUpList = async (params2 = null) => {
|
|
// roofSurfaceList의 moduleList에서 circuit 속성을 제외
|
|
const modifiedRoofSurfaceList = params2.roofSurfaceList.map((surface) => ({
|
|
...surface,
|
|
moduleList: surface.moduleList.map((module) => ({
|
|
itemId: module.itemId,
|
|
uniqueId: module.uniqueId,
|
|
})),
|
|
}))
|
|
|
|
const params = {
|
|
...params2,
|
|
maxConnYn: params2.maxConnYn,
|
|
smpCirYn: params2.smpCirYn,
|
|
coldZoneYn: params2.coldZoneYn,
|
|
useModuleItemList: params2.useModuleItemList,
|
|
roofSurfaceList: modifiedRoofSurfaceList,
|
|
pcsItemList: params2.pcsItemList,
|
|
}
|
|
|
|
return await post({ url: '/api/v1/master/getPcsVoltageStepUpList', data: params }).then((res) => {
|
|
return res
|
|
})
|
|
}
|
|
|
|
const getQuotationItem = async (params) => {
|
|
return await post({ url: '/api/v1/master/getQuotationItem', data: params })
|
|
.then((res) => {
|
|
return res
|
|
})
|
|
.catch((error) => {
|
|
console.log('🚀 ~ getQuotationItem ~ error:', error)
|
|
setIsGlobalLoading(false)
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 물건 정보 업데이트 api 호출
|
|
* @param {objectNo standardWindSpeedId verticalSnowCover surfaceType installHeight userId} params
|
|
* @param {물건번호 기준풍속코드 적설량 면조도구분 설치높이 작성자아아디 } params
|
|
* @returns
|
|
*/
|
|
const updateObjectDate = async (params = null) => {
|
|
return await put({ url: '/api/object/update-object-date', data: params })
|
|
}
|
|
|
|
/**
|
|
* PCS 접속함 및 옵션 목록 조회
|
|
* @param {사용된 모듈 아이템 목록} useModuleItemList
|
|
* @param {PCS 제품 목록} pcsItemList
|
|
* @returns
|
|
*/
|
|
const getPcsConnOptionItemList = async (params = null) => {
|
|
return await post({ url: '/api/v1/master/getPcsConnOptionItemList', data: params }).then((res) => {
|
|
return res
|
|
})
|
|
}
|
|
|
|
return {
|
|
getRoofMaterialList,
|
|
getModuleTypeItemList,
|
|
getTrestleList,
|
|
getConstructionList,
|
|
getTrestleDetailList,
|
|
getPcsMakerList,
|
|
getPcsModelList,
|
|
getPcsAutoRecommendList,
|
|
getPcsVoltageChk,
|
|
getPcsManualConfChk,
|
|
getPcsVoltageStepUpList,
|
|
updateObjectDate,
|
|
getQuotationItem,
|
|
getPcsConnOptionItemList,
|
|
}
|
|
}
|