added TimeChargeandDischargePower, StartTimeChargeandDischargeDayandTime, Stop TimeChargeandDischargeDayandTime to frontend
This commit is contained in:
parent
77e25aab51
commit
dd953256dd
|
|
@ -336,9 +336,9 @@ export interface JSONRecordData {
|
||||||
ControlPermission:boolean;
|
ControlPermission:boolean;
|
||||||
|
|
||||||
//For SodistoerHome-Sinexcel: TimeChargeDischarge mode
|
//For SodistoerHome-Sinexcel: TimeChargeDischarge mode
|
||||||
TimeChargeDischargePower?: number;
|
TimeChargeandDischargePower?: number;
|
||||||
TimeChargeDischargeTime?: string;
|
StartTimeChargeandDischargeDayandTime?: Date | null;
|
||||||
TimeChargeDischargeDate?: string;
|
StopTimeChargeandDischargeDayandTime?: Date | null;
|
||||||
};
|
};
|
||||||
|
|
||||||
DcDc: {
|
DcDc: {
|
||||||
|
|
@ -650,9 +650,9 @@ export type ConfigurationValues = {
|
||||||
controlPermission:boolean;
|
controlPermission:boolean;
|
||||||
|
|
||||||
// For sodistoreHome-Sinexcel: TimeChargeDischarge mode
|
// For sodistoreHome-Sinexcel: TimeChargeDischarge mode
|
||||||
timeChargeDischargePower?: number;
|
timeChargeandDischargePower?: number;
|
||||||
timeChargeDischargeTime?: Date | string;
|
startTimeChargeandDischargeDayandTime?: Date | null;
|
||||||
timeChargeDischargeDate?: Date | string;
|
stopTimeChargeandDischargeDayandTime?: Date | null;
|
||||||
};
|
};
|
||||||
//
|
//
|
||||||
// export interface Pv {
|
// export interface Pv {
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ import { ProductIdContext } from '../../../contexts/ProductIdContextProvider';
|
||||||
import { I_Installation } from 'src/interfaces/InstallationTypes';
|
import { I_Installation } from 'src/interfaces/InstallationTypes';
|
||||||
import { LocalizationProvider } from '@mui/x-date-pickers';
|
import { LocalizationProvider } from '@mui/x-date-pickers';
|
||||||
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
|
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
|
||||||
import { DatePicker, TimePicker } from '@mui/x-date-pickers';
|
import {DateTimePicker } from '@mui/x-date-pickers';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import Switch from '@mui/material/Switch';
|
import Switch from '@mui/material/Switch';
|
||||||
import FormControlLabel from '@mui/material/FormControlLabel';
|
import FormControlLabel from '@mui/material/FormControlLabel';
|
||||||
|
|
@ -91,31 +91,18 @@ function SodistoreHomeConfiguration(props: SodistoreHomeConfigurationProps) {
|
||||||
batteriesCount: props.values.Config.BatteriesCount,
|
batteriesCount: props.values.Config.BatteriesCount,
|
||||||
clusterNumber: props.values.Config.ClusterNumber??1,
|
clusterNumber: props.values.Config.ClusterNumber??1,
|
||||||
PvNumber: props.values.Config.PvNumber??0,
|
PvNumber: props.values.Config.PvNumber??0,
|
||||||
timeChargeDischargePower: props.values.Config?.TimeChargeDischargePower ?? 0, // default 0 W
|
timeChargeandDischargePower: props.values.Config?.TimeChargeandDischargePower ?? 0, // default 0 W
|
||||||
timeChargeDischargeTime: props.values.Config?.TimeChargeDischargeTime ? dayjs(props.values.Config.TimeChargeDischargeTime).toDate() : dayjs().hour(8).minute(0).second(0).toDate(), // default 08:00
|
startTimeChargeandDischargeDayandTime:
|
||||||
timeChargeDischargeDate: props.values.Config?.TimeChargeDischargeDate ? dayjs(props.values.Config.TimeChargeDischargeDate).toDate() : dayjs().add(1, 'day').toDate(), // default = tomorrow
|
props.values.Config?.StartTimeChargeandDischargeDayandTime
|
||||||
|
? dayjs(props.values.Config.StartTimeChargeandDischargeDayandTime).toDate()
|
||||||
|
: null,
|
||||||
|
stopTimeChargeandDischargeDayandTime:
|
||||||
|
props.values.Config?.StopTimeChargeandDischargeDayandTime
|
||||||
|
? dayjs(props.values.Config.StopTimeChargeandDischargeDayandTime).toDate()
|
||||||
|
: null,
|
||||||
|
|
||||||
// controlPermission: props.values.Config.ControlPermission??false,
|
// controlPermission: props.values.Config.ControlPermission??false,
|
||||||
controlPermission: String(props.values.Config.ControlPermission).toLowerCase() === "true",
|
controlPermission: String(props.values.Config.ControlPermission).toLowerCase() === "true",
|
||||||
|
|
||||||
// ...(device === 4
|
|
||||||
// ? {
|
|
||||||
// clusterNumber: props.values.Config.ClusterNumber??1,
|
|
||||||
// PvNumber: props.values.Config.PvNumber??0,
|
|
||||||
// timeChargeDischargePower:
|
|
||||||
// props.values.Config?.TimeChargeDischargePower ?? 0, // default 0 W
|
|
||||||
// timeChargeDischargeTime: props.values.Config?.TimeChargeDischargeTime
|
|
||||||
// ? dayjs(props.values.Config.TimeChargeDischargeTime).toDate()
|
|
||||||
// : dayjs().hour(8).minute(0).second(0).toDate(), // default 08:00
|
|
||||||
// timeChargeDischargeDate: props.values.Config?.TimeChargeDischargeDate
|
|
||||||
// ? dayjs(props.values.Config.TimeChargeDischargeDate).toDate()
|
|
||||||
// : dayjs().add(1, 'day').toDate(), // default = tomorrow
|
|
||||||
// }
|
|
||||||
// : {}),
|
|
||||||
// ...(device === 3
|
|
||||||
// ? {
|
|
||||||
// controlPermission: props.values.Config.ControlPermission??true,
|
|
||||||
// }
|
|
||||||
// : {}),
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const handleOperatingPriorityChange = (event) => {
|
const handleOperatingPriorityChange = (event) => {
|
||||||
|
|
@ -137,17 +124,10 @@ function SodistoreHomeConfiguration(props: SodistoreHomeConfigurationProps) {
|
||||||
batteriesCount:formValues.batteriesCount,
|
batteriesCount:formValues.batteriesCount,
|
||||||
clusterNumber:formValues.clusterNumber,
|
clusterNumber:formValues.clusterNumber,
|
||||||
PvNumber:formValues.PvNumber,
|
PvNumber:formValues.PvNumber,
|
||||||
timeChargeDischargePower: formValues.timeChargeDischargePower,
|
timeChargeandDischargePower: formValues.timeChargeandDischargePower,
|
||||||
timeChargeDischargeTime: formValues.timeChargeDischargeTime,
|
startTimeChargeandDischargeDayandTime: formValues.startTimeChargeandDischargeDayandTime,
|
||||||
timeChargeDischargeDate: formValues.timeChargeDischargeDate,
|
stopTimeChargeandDischargeDayandTime: formValues.stopTimeChargeandDischargeDayandTime,
|
||||||
controlPermission:formValues.controlPermission
|
controlPermission:formValues.controlPermission
|
||||||
// ...(device === 4 &&
|
|
||||||
// OperatingPriorityOptions[formValues.operatingPriority] ===
|
|
||||||
// 'TimeChargeDischarge' && {
|
|
||||||
// timeChargeDischargePower: formValues.timeChargeDischargePower,
|
|
||||||
// timeChargeDischargeTime: formValues.timeChargeDischargeTime,
|
|
||||||
// timeChargeDischargeDate: formValues.timeChargeDischargeDate
|
|
||||||
// })
|
|
||||||
};
|
};
|
||||||
|
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
|
|
@ -469,17 +449,17 @@ function SodistoreHomeConfiguration(props: SodistoreHomeConfigurationProps) {
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
|
|
||||||
{/* --- Extra fields for device=4 + TimeChargeDischarge --- */}
|
{/* --- Sinexcel + TimeChargeDischarge --- */}
|
||||||
{device === 4 &&
|
{device === 4 &&
|
||||||
OperatingPriorityOptions[formValues.operatingPriority] ===
|
OperatingPriorityOptions[formValues.operatingPriority] ===
|
||||||
'TimeChargeDischarge' && (
|
'TimeChargeDischarge' && (
|
||||||
<>
|
<>
|
||||||
{/* Power input */}
|
{/* Power input*/}
|
||||||
<div style={{ marginBottom: '5px' }}>
|
<div style={{ marginBottom: '5px' }}>
|
||||||
<TextField
|
<TextField
|
||||||
label="Power (W)"
|
label="Power (W)"
|
||||||
name="timeChargeDischargePower"
|
name="timeChargeandDischargePower"
|
||||||
value={formValues.timeChargeDischargePower}
|
value={formValues.timeChargeandDischargePower}
|
||||||
onChange={(e) =>
|
onChange={(e) =>
|
||||||
handleTimeChargeDischargeChange(e.target.name, e.target.value)
|
handleTimeChargeDischargeChange(e.target.name, e.target.value)
|
||||||
}
|
}
|
||||||
|
|
@ -488,25 +468,31 @@ function SodistoreHomeConfiguration(props: SodistoreHomeConfigurationProps) {
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Time picker */}
|
{/* Start DateTime */}
|
||||||
<div style={{ marginBottom: '5px' }}>
|
<div style={{ marginBottom: '5px' }}>
|
||||||
<LocalizationProvider dateAdapter={AdapterDayjs}>
|
<LocalizationProvider dateAdapter={AdapterDayjs}>
|
||||||
<TimePicker
|
<DateTimePicker
|
||||||
ampm={false}
|
ampm={false}
|
||||||
label="Time"
|
label="Start Time (Charge & Discharge)"
|
||||||
value={dayjs(formValues.timeChargeDischargeTime)}
|
value={
|
||||||
onChange={(newTime) =>
|
formValues.startTimeChargeandDischargeDayandTime
|
||||||
handleTimeChargeDischargeChange(
|
? dayjs(formValues.startTimeChargeandDischargeDayandTime)
|
||||||
'timeChargeDischargeTime',
|
: null
|
||||||
newTime?.toDate()
|
}
|
||||||
)
|
onChange={(newValue) =>
|
||||||
|
setFormValues((prev) => ({
|
||||||
|
...prev,
|
||||||
|
startTimeChargeandDischargeDayandTime: newValue
|
||||||
|
? newValue.toDate()
|
||||||
|
: null,
|
||||||
|
}))
|
||||||
}
|
}
|
||||||
renderInput={(params) => (
|
renderInput={(params) => (
|
||||||
<TextField
|
<TextField
|
||||||
{...params}
|
{...params}
|
||||||
sx={{
|
sx={{
|
||||||
marginTop: 2,
|
marginTop: 2,
|
||||||
width: '100%'
|
width: '100%',
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
@ -514,24 +500,31 @@ function SodistoreHomeConfiguration(props: SodistoreHomeConfigurationProps) {
|
||||||
</LocalizationProvider>
|
</LocalizationProvider>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Date picker */}
|
{/* Stop DateTime */}
|
||||||
<div style={{ marginBottom: '5px' }}>
|
<div style={{ marginBottom: '5px' }}>
|
||||||
<LocalizationProvider dateAdapter={AdapterDayjs}>
|
<LocalizationProvider dateAdapter={AdapterDayjs}>
|
||||||
<DatePicker
|
<DateTimePicker
|
||||||
label="Date"
|
ampm={false}
|
||||||
value={dayjs(formValues.timeChargeDischargeDate)}
|
label="Stop Time (Charge & Discharge)"
|
||||||
onChange={(newDate) =>
|
value={
|
||||||
handleTimeChargeDischargeChange(
|
formValues.stopTimeChargeandDischargeDayandTime
|
||||||
'timeChargeDischargeDate',
|
? dayjs(formValues.stopTimeChargeandDischargeDayandTime)
|
||||||
newDate?.toDate()
|
: null
|
||||||
)
|
}
|
||||||
|
onChange={(newValue) =>
|
||||||
|
setFormValues((prev) => ({
|
||||||
|
...prev,
|
||||||
|
stopTimeChargeandDischargeDayandTime: newValue
|
||||||
|
? newValue.toDate()
|
||||||
|
: null,
|
||||||
|
}))
|
||||||
}
|
}
|
||||||
renderInput={(params) => (
|
renderInput={(params) => (
|
||||||
<TextField
|
<TextField
|
||||||
{...params}
|
{...params}
|
||||||
sx={{
|
sx={{
|
||||||
marginTop: 2,
|
marginTop: 2,
|
||||||
width: '100%'
|
width: '100%',
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue