발전시물레이션 차트 list 타입 추가

This commit is contained in:
leeyongjae 2024-11-20 16:14:03 +09:00
parent c088be3d94
commit d39f55c366

View File

@ -41,6 +41,7 @@ export default function Simulator() {
// //
const [chartData, setChartData] = useState([]) const [chartData, setChartData] = useState([])
const data = { const data = {
labels: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'], labels: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
datasets: [ datasets: [
@ -118,13 +119,30 @@ export default function Simulator() {
// //
const [pcsInfoList, setPcsInfoList] = useState([]) const [pcsInfoList, setPcsInfoList] = useState([])
// list
const [hatsudenryouAll, setHatsudenryouAll] = useState([])
const [hatsudenryouAllSnow, setHatsudenryouAllSnow] = useState([])
const [hatsudenryouPeakcutAll, setHatsudenryouPeakcutAll] = useState([])
const [hatsudenryouPeakcutAllSnow, setHatsudenryouPeakcutAllSnow] = useState([])
const fetchObjectDetail = async (objectNo) => { const fetchObjectDetail = async (objectNo) => {
const apiUrl = `/api/pwrGnrSimulation/calculations?objectNo=${objectNo}&planNo=${plan?.id}` const apiUrl = `/api/pwrGnrSimulation/calculations?objectNo=${objectNo}&planNo=${plan?.id}`
const resultData = await get({ url: apiUrl }) const resultData = await get({ url: apiUrl })
if (resultData) { if (resultData) {
setObjectDetail(resultData) setObjectDetail(resultData)
if (resultData.frcPwrGnrList) { if (resultData.hatsudenryouAll) {
setChartData(resultData.frcPwrGnrList) setHatsudenryouAll(resultData.hatsudenryouAll)
}
if (resultData.hatsudenryouAllSnow) {
setHatsudenryouAllSnow(resultData.hatsudenryouAllSnow)
}
if (resultData.hatsudenryouPeakcutAll) {
setHatsudenryouPeakcutAll(resultData.hatsudenryouPeakcutAll)
}
if (resultData.hatsudenryouPeakcutAllSnow) {
setHatsudenryouPeakcutAllSnow(resultData.hatsudenryouPeakcutAllSnow)
setChartData(resultData.hatsudenryouPeakcutAllSnow)
} }
if (resultData.pcsList) { if (resultData.pcsList) {
setPcsInfoList(resultData.pcsList) setPcsInfoList(resultData.pcsList)
@ -148,6 +166,26 @@ export default function Simulator() {
}) })
} }
// , list type
const [pwrGnrSimType, setPwrGnrSimType] = useState('D')
const handleChartChangeData = (type) => {
setPwrGnrSimType(type)
switch (type) {
case 'A':
setChartData(hatsudenryouAll)
break
case 'B':
setChartData(hatsudenryouAllSnow)
break
case 'C':
setChartData(hatsudenryouPeakcutAll)
break
case 'D':
setChartData(hatsudenryouPeakcutAllSnow)
break
}
}
return ( return (
<div className="sub-content estimate"> <div className="sub-content estimate">
<div className="sub-content-inner"> <div className="sub-content-inner">
@ -176,7 +214,7 @@ export default function Simulator() {
{/* 연간예측발전량 */} {/* 연간예측발전량 */}
<div className="estimate-box"> <div className="estimate-box">
<div className="estimate-tit">{getMessage('simulator.title.sub4')}</div> <div className="estimate-tit">{getMessage('simulator.title.sub4')}</div>
<div className="estimate-name">{objectDetail.anlFrcsGnrt ? convertNumberToPriceDecimal(objectDetail.anlFrcsGnrt) : ''}</div> <div className="estimate-name">{chartData[chartData.length - 1]}</div>
</div> </div>
</div> </div>
<div className="estimate-list-wrap"> <div className="estimate-list-wrap">
@ -208,6 +246,22 @@ export default function Simulator() {
<div className="chart-inner"> <div className="chart-inner">
<div className="sub-table-box"> <div className="sub-table-box">
<div className="chart-box"> <div className="chart-box">
{/* chart */}
<div className="select-wrap">
<select
style={{ width: '30%' }}
className="select-light"
defaultValue={`D`}
onChange={(e) => {
handleChartChangeData(e.target.value)
}}
>
<option value={`A`}>積雪考慮なし(ピークカットなし発電量)</option>
<option value={`B`}>積雪考慮なし(ピークカットあり発電量)</option>
<option value={`C`}>積雪考慮あり(ピークカットなし発電量)</option>
<option value={`D`}>積雪考慮あり(ピークカットあり発電量)</option>
</select>
</div>
<Bar ref={chartRef} data={data} options={options} /> <Bar ref={chartRef} data={data} options={options} />
</div> </div>
<div className="table-box-title-wrap"> <div className="table-box-title-wrap">
@ -239,7 +293,7 @@ export default function Simulator() {
{chartData.length > 0 ? ( {chartData.length > 0 ? (
<tr> <tr>
{chartData.map((data) => ( {chartData.map((data) => (
<td key={data}>{convertNumberToPriceDecimal(data)}</td> <td key={data}>{data}</td>
))} ))}
</tr> </tr>
) : ( ) : (