修补自定义分段后,面板过长的问题
This commit is contained in:
@@ -715,7 +715,7 @@ const StyleEditorPanel: React.FC<StyleEditorPanelProps> = ({
|
|||||||
// 判断此次触发是否由用户点击“应用”按钮引起
|
// 判断此次触发是否由用户点击“应用”按钮引起
|
||||||
const isUserTrigger =
|
const isUserTrigger =
|
||||||
styleUpdateTrigger !== prevStyleUpdateTriggerRef.current;
|
styleUpdateTrigger !== prevStyleUpdateTriggerRef.current;
|
||||||
// 更新 prevStyleUpdateTriggerRef
|
// 更新 prevStyleUpdateTrigger
|
||||||
prevStyleUpdateTriggerRef.current = styleUpdateTrigger;
|
prevStyleUpdateTriggerRef.current = styleUpdateTrigger;
|
||||||
|
|
||||||
const updateJunctionStyle = () => {
|
const updateJunctionStyle = () => {
|
||||||
@@ -1368,45 +1368,50 @@ const StyleEditorPanel: React.FC<StyleEditorPanelProps> = ({
|
|||||||
<Typography variant="subtitle2" gutterBottom>
|
<Typography variant="subtitle2" gutterBottom>
|
||||||
手动设置区间阈值(按升序填写,最小值 {">="} 0)
|
手动设置区间阈值(按升序填写,最小值 {">="} 0)
|
||||||
</Typography>
|
</Typography>
|
||||||
<Box className="flex flex-col gap-2">
|
<Box
|
||||||
{Array.from({ length: styleConfig.segments }).map((_, idx) => (
|
className="flex flex-col gap-2"
|
||||||
<TextField
|
sx={{ maxHeight: "240px", overflowY: "auto", paddingTop: "12px" }}
|
||||||
key={idx}
|
>
|
||||||
label={`阈值 ${idx + 1}`}
|
{Array.from({ length: styleConfig.segments + 1 }).map(
|
||||||
type="number"
|
(_, idx) => (
|
||||||
size="small"
|
<TextField
|
||||||
slotProps={{ input: { inputProps: { min: 0, step: 0.1 } } }}
|
key={idx}
|
||||||
value={
|
label={`阈值 ${idx + 1}`}
|
||||||
(styleConfig.customBreaks &&
|
type="number"
|
||||||
styleConfig.customBreaks[idx]) ??
|
size="small"
|
||||||
""
|
slotProps={{ input: { inputProps: { min: 0, step: 0.1 } } }}
|
||||||
}
|
value={
|
||||||
onChange={(e) => {
|
(styleConfig.customBreaks &&
|
||||||
const v = parseFloat(e.target.value);
|
styleConfig.customBreaks[idx]) ??
|
||||||
setStyleConfig((prev) => {
|
""
|
||||||
const prevBreaks = prev.customBreaks
|
}
|
||||||
? [...prev.customBreaks]
|
onChange={(e) => {
|
||||||
: [];
|
const v = parseFloat(e.target.value);
|
||||||
// 保证长度
|
setStyleConfig((prev) => {
|
||||||
while (prevBreaks.length < styleConfig.segments + 1)
|
const prevBreaks = prev.customBreaks
|
||||||
prevBreaks.push(0);
|
? [...prev.customBreaks]
|
||||||
prevBreaks[idx] = isNaN(v) ? 0 : Math.max(0, v);
|
: [];
|
||||||
return { ...prev, customBreaks: prevBreaks };
|
// 保证长度
|
||||||
});
|
while (prevBreaks.length < styleConfig.segments + 1)
|
||||||
}}
|
prevBreaks.push(0);
|
||||||
onBlur={() => {
|
prevBreaks[idx] = isNaN(v) ? 0 : Math.max(0, v);
|
||||||
// on blur 保证升序
|
return { ...prev, customBreaks: prevBreaks };
|
||||||
setStyleConfig((prev) => {
|
});
|
||||||
const prevBreaks = (prev.customBreaks || []).slice(
|
}}
|
||||||
0,
|
onBlur={() => {
|
||||||
styleConfig.segments + 1
|
// on blur 保证升序
|
||||||
);
|
setStyleConfig((prev) => {
|
||||||
prevBreaks.sort((a, b) => a - b);
|
const prevBreaks = (prev.customBreaks || []).slice(
|
||||||
return { ...prev, customBreaks: prevBreaks };
|
0,
|
||||||
});
|
styleConfig.segments + 1
|
||||||
}}
|
);
|
||||||
/>
|
prevBreaks.sort((a, b) => a - b);
|
||||||
))}
|
return { ...prev, customBreaks: prevBreaks };
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
)}
|
||||||
</Box>
|
</Box>
|
||||||
</Box>
|
</Box>
|
||||||
)}
|
)}
|
||||||
|
|||||||
Reference in New Issue
Block a user