更新遗传算法默认参数;更新漏损流量单位为m3/h
This commit is contained in:
@@ -20,6 +20,7 @@ import { useNotification } from "@refinedev/core";
|
||||
import { api } from "@/lib/api";
|
||||
import { NETWORK_NAME, config } from "@config/config";
|
||||
import { LeakageResultDetail } from "./types";
|
||||
import { DMA_FLOW_DISPLAY_UNIT, toM3s } from "./utils";
|
||||
|
||||
interface Props {
|
||||
onResult: (result: LeakageResultDetail) => void;
|
||||
@@ -33,15 +34,15 @@ const AnalysisParameters: React.FC<Props> = ({ onResult }) => {
|
||||
dayjs().subtract(2, "hour"),
|
||||
);
|
||||
const [endTime, setEndTime] = useState<Dayjs | null>(dayjs());
|
||||
const [popSize, setPopSize] = useState<number>(50);
|
||||
const [maxGen, setMaxGen] = useState<number>(100);
|
||||
const [qSum, setQSum] = useState<number>(0.4);
|
||||
const [popSize, setPopSize] = useState<number>(10);
|
||||
const [maxGen, setMaxGen] = useState<number>(50);
|
||||
const [qSum, setQSum] = useState<number>(1440);
|
||||
const [advancedOpen, setAdvancedOpen] = useState(false);
|
||||
const [running, setRunning] = useState(false);
|
||||
|
||||
const isValid = useMemo(() => {
|
||||
if (!schemeName.trim() || !startTime || !endTime) return false;
|
||||
return startTime.isBefore(endTime) && qSum >= 0.1;
|
||||
return startTime.isBefore(endTime) && qSum >= 360;
|
||||
}, [schemeName, startTime, endTime, qSum]);
|
||||
|
||||
const handleRun = async () => {
|
||||
@@ -67,9 +68,9 @@ const AnalysisParameters: React.FC<Props> = ({ onResult }) => {
|
||||
scada_end: endTime.toISOString(),
|
||||
pop_size: popSize,
|
||||
max_gen: maxGen,
|
||||
q_sum: qSum,
|
||||
q_sum: toM3s(qSum, DMA_FLOW_DISPLAY_UNIT),
|
||||
q_sum_unit: "m3/s",
|
||||
output_flow_unit: "m3/s",
|
||||
output_flow_unit: DMA_FLOW_DISPLAY_UNIT,
|
||||
},
|
||||
);
|
||||
onResult(response.data as LeakageResultDetail);
|
||||
@@ -115,25 +116,25 @@ const AnalysisParameters: React.FC<Props> = ({ onResult }) => {
|
||||
<Typography variant="subtitle2" className="mb-1 font-medium">
|
||||
DMA 数量
|
||||
</Typography>
|
||||
<TextField
|
||||
type="number"
|
||||
value={dmaCount}
|
||||
onChange={(e) => {
|
||||
const value = Number.parseInt(e.target.value, 10);
|
||||
// Limit between 3 and 10
|
||||
if (Number.isNaN(value)) {
|
||||
setDmaCount(5);
|
||||
} else if (value > 10) {
|
||||
setDmaCount(10);
|
||||
} else {
|
||||
setDmaCount(Math.max(3, value));
|
||||
}
|
||||
}}
|
||||
fullWidth
|
||||
size="small"
|
||||
inputProps={{ min: 3, max: 10, step: 1 }}
|
||||
helperText="DMA 数量限制为 3-10 个"
|
||||
/>
|
||||
<TextField
|
||||
type="number"
|
||||
value={dmaCount}
|
||||
onChange={(e) => {
|
||||
const value = Number.parseInt(e.target.value, 10);
|
||||
// Limit between 3 and 10
|
||||
if (Number.isNaN(value)) {
|
||||
setDmaCount(5);
|
||||
} else if (value > 10) {
|
||||
setDmaCount(10);
|
||||
} else {
|
||||
setDmaCount(Math.max(3, value));
|
||||
}
|
||||
}}
|
||||
fullWidth
|
||||
size="small"
|
||||
inputProps={{ min: 3, max: 10, step: 1 }}
|
||||
helperText="DMA 数量限制为 3-10 个"
|
||||
/>
|
||||
</Box>
|
||||
|
||||
<LocalizationProvider
|
||||
@@ -171,7 +172,7 @@ const AnalysisParameters: React.FC<Props> = ({ onResult }) => {
|
||||
|
||||
<Box className="flex flex-col gap-2">
|
||||
<Typography variant="subtitle2" className="mb-1 font-medium">
|
||||
总漏损流量 (m3/s)
|
||||
总漏损流量 ({DMA_FLOW_DISPLAY_UNIT})
|
||||
</Typography>
|
||||
<TextField
|
||||
type="number"
|
||||
@@ -179,9 +180,9 @@ const AnalysisParameters: React.FC<Props> = ({ onResult }) => {
|
||||
value={qSum}
|
||||
onChange={(e) => {
|
||||
const value = Number(e.target.value);
|
||||
setQSum(Number.isNaN(value) ? 0.4 : Math.max(0.1, value));
|
||||
setQSum(Number.isNaN(value) ? 1440 : Math.max(360, value));
|
||||
}}
|
||||
inputProps={{ min: 0.1, step: 0.1 }}
|
||||
inputProps={{ min: 360, step: 10 }}
|
||||
/>
|
||||
<Box
|
||||
sx={{
|
||||
|
||||
Reference in New Issue
Block a user