import { GlobalDataContext } from '@/app/GlobalDataProvider' import QSelectBox from '@/components/common/select/QSelectBox' import { useMasterController } from '@/hooks/common/useMasterController' import { useEvent } from '@/hooks/useEvent' import { useMessage } from '@/hooks/useMessage' import { useSwal } from '@/hooks/useSwal' import { makerState, modelState, pcsCheckState, seriesState } from '@/store/circuitTrestleAtom' import { globalLocaleStore } from '@/store/localeAtom' import { moduleSelectionDataState, selectedModuleState } from '@/store/selectedModuleOptions' import { useContext, useEffect, useState } from 'react' import { useRecoilState } from 'recoil' import { useRecoilValue } from 'recoil' import { v4 as uuidv4 } from 'uuid' export default function PowerConditionalSelect(props) { let { tabNum, setTabNum } = props const [makerData, setMakerData] = useRecoilState(makerState) const [makers, setMakers] = useState(makerData.makers) const [selectedMaker, setSelectedMaker] = useState(makerData.selectedMaker) const [series, setSeries] = useRecoilState(seriesState) const [seriesList, setSeriesList] = useState(series.series) const [selectedSeries, setSelectedSeries] = useState(series.selectedSeries) const [model, setModel] = useRecoilState(modelState) const [models, setModels] = useState(model.models) const [selectedModels, setSelectedModels] = useState(model.selectedModels) const [pcsCheck, setPcsCheck] = useRecoilState(pcsCheckState) const { managementState, setManagementState, managementStateLoaded } = useContext(GlobalDataContext) const { getMessage } = useMessage() const [selectedRow, setSelectedRow] = useState(null) const globalLocale = useRecoilValue(globalLocaleStore) const { getPcsMakerList, getPcsModelList } = useMasterController() const selectedModules = useRecoilValue(selectedModuleState) const { swalFire } = useSwal() const modelHeader = [ { name: getMessage('λͺ μΉ'), width: '15%', prop: 'itemNm', type: 'color-box' }, { name: `${getMessage('modal.circuit.trestle.setting.power.conditional.select.rated.output')} (kW)`, width: '10%', prop: 'ratedCapa', }, { name: `${getMessage('modal.circuit.trestle.setting.power.conditional.select.circuit.amount')}`, width: '10%', prop: 'paralMax', }, { name: `${getMessage('modal.circuit.trestle.setting.power.conditional.select.max.connection')}`, width: '10%', prop: 'moduleStdQty', }, { name: `${getMessage('modal.circuit.trestle.setting.power.conditional.select.max.overload')}`, width: '10%', prop: 'moduleMaxQty', }, ] useEffect(() => { if (makers.length === 0) { getPcsMakerList().then((res) => { setMakers(res.data) }) } console.log('π ~ useEffect ~ selectedModules:', selectedModules) if (!managementState) { setManagementState(managementStateLoaded) } // promiseGet({ url: `/api/object/${correntObjectNo}/detail` }).then((res) => { // console.log('π ~ useEffect ~ /api/object/${correntObjectNo}/detail:', res) // // coldRegionFlg-νλμ§μ¬μ, conType// κ³μ½μ‘°κ±΄(μμ¬~,μ λ) // }) return () => { setMakerData({ makers, selectedMaker }) setSeries({ series: seriesList, selectedSeries }) setModel({ models, selectedModels }) } }, []) useEffect(() => { console.log('π ~ PowerConditionalSelect ~ selectedMaker:', selectedMaker) if (selectedMaker) { setSelectedModels([]) setModels([]) getPcsMakerList(selectedMaker).then((res) => { setSeriesList( res.data.map((series) => { return { ...series, selected: false } }), ) }) } }, [selectedMaker]) useEffect(() => { if (seriesList.filter((series) => series.selected).length === 0) return const pcsMkrCd = seriesList.filter((series) => series.selected)[0]?.pcsMkrCd const pcsSerList = seriesList .filter((series) => series.selected) .map((series) => { return { pcsSerCd: series.pcsSerCd } }) const moduleItemList = selectedModules.itemList?.map((module) => { return { itemId: module.itemId, mixMatlNo: module.mixMatlNo, } }) getPcsModelList({ pcsMkrCd, pcsSerList, moduleItemList }).then((res) => { if (res?.result.code === 200) { console.log('π ~ useEffect ~ res:', res.data) setModels( res.data.map((model) => { return { ...model, moduleStdQty: parseInt(model.moduleStdQty), moduleMaxQty: parseInt(model.moduleMaxQty), code: uuidv4(), selected: false, } }), ) } }) }, [seriesList]) useEffect(() => { console.log('π ~ useEffect ~ models:', models) }, [models]) useEffect(() => { console.log('π ~ useEffect ~ pcsCheck:', pcsCheck) }, [pcsCheck]) const onCheckSeries = (series) => { setSeriesList((prev) => prev.map((s) => ({ ...s, selected: s.pcsSerCd === series.pcsSerCd ? !s.selected : s.selected }))) } const onAddSelectedModel = () => { if (selectedRow === null) return if (selectedModels.length === 3) { swalFire({ title: 'μ΅λ 3κ°κΉμ§ μ νν μ μμ΅λλ€.', icon: 'warning', }) return } setSelectedModels([...selectedModels, selectedRow]) setSelectedRow(null) } const onRemoveSelectedModel = (model) => { setSelectedModels(selectedModels.filter((m) => m.code !== model.code)) } useEffect(() => { console.log('π ~ useEffect ~ selectedModels:', selectedModels) const selectedModelsIds = selectedModels.map((model) => model.code) setModels( models.map((model) => { return { ...model, selected: selectedModelsIds.includes(model.code), } }), ) setModel({ ...model, selectedModels: selectedModels }) }, [selectedModels]) return ( <>
| {header.name} | ))}
|---|
| {model[header.prop]} | ))}