修复 lint warnings
This commit is contained in:
@@ -55,6 +55,54 @@ const AnalysisParameters: React.FC = () => {
|
||||
|
||||
const [highlightLayer, setHighlightLayer] = useState<VectorLayer<VectorSource> | null>(null);
|
||||
|
||||
// Map click handler
|
||||
const handleMapClickSelectFeatures = useCallback(
|
||||
async (event: { coordinate: number[] }) => {
|
||||
if (!map || selectionMode === 'none') return;
|
||||
|
||||
const feature = await mapClickSelectFeatures(event, map);
|
||||
if (!feature) return;
|
||||
|
||||
const layer = feature.getId()?.toString().split(".")[0];
|
||||
const featureId = feature.getProperties().id;
|
||||
|
||||
if (selectionMode === 'valve') {
|
||||
if (layer !== 'geo_valves') {
|
||||
open?.({
|
||||
type: "error",
|
||||
message: "请选择阀门要素",
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
setValves((prev) => {
|
||||
if (prev.some((v) => v.id === featureId)) {
|
||||
open?.({
|
||||
type: "error",
|
||||
message: "该阀门已添加",
|
||||
});
|
||||
return prev;
|
||||
}
|
||||
return [...prev, { id: featureId, k: 1.0, feature }];
|
||||
});
|
||||
|
||||
} else if (selectionMode === 'drainage') {
|
||||
if (layer !== 'geo_junctions') {
|
||||
open?.({
|
||||
type: "error",
|
||||
message: "请选择节点要素作为排水点",
|
||||
});
|
||||
return;
|
||||
}
|
||||
setDrainageNode(featureId);
|
||||
setDrainageFeature(feature);
|
||||
setSelectionMode('none');
|
||||
map.un("click", handleMapClickSelectFeatures);
|
||||
}
|
||||
},
|
||||
[map, selectionMode, open]
|
||||
);
|
||||
|
||||
// Initialize highlight layer
|
||||
useEffect(() => {
|
||||
if (!map) return;
|
||||
@@ -103,7 +151,7 @@ const AnalysisParameters: React.FC = () => {
|
||||
map.removeLayer(layer);
|
||||
map.un("click", handleMapClickSelectFeatures);
|
||||
};
|
||||
}, [map]);
|
||||
}, [map, handleMapClickSelectFeatures]);
|
||||
|
||||
// Update highlight layer features
|
||||
useEffect(() => {
|
||||
@@ -134,54 +182,6 @@ const AnalysisParameters: React.FC = () => {
|
||||
|
||||
}, [highlightLayer, valves, drainageFeature]);
|
||||
|
||||
// Map click handler
|
||||
const handleMapClickSelectFeatures = useCallback(
|
||||
async (event: { coordinate: number[] }) => {
|
||||
if (!map || selectionMode === 'none') return;
|
||||
|
||||
const feature = await mapClickSelectFeatures(event, map);
|
||||
if (!feature) return;
|
||||
|
||||
const layer = feature.getId()?.toString().split(".")[0];
|
||||
const featureId = feature.getProperties().id;
|
||||
|
||||
if (selectionMode === 'valve') {
|
||||
if (layer !== 'geo_valves') {
|
||||
open?.({
|
||||
type: "error",
|
||||
message: "请选择阀门要素",
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
setValves((prev) => {
|
||||
if (prev.some((v) => v.id === featureId)) {
|
||||
open?.({
|
||||
type: "error",
|
||||
message: "该阀门已添加",
|
||||
});
|
||||
return prev;
|
||||
}
|
||||
return [...prev, { id: featureId, k: 1.0, feature }]; // Default k=1.0? User can change.
|
||||
});
|
||||
|
||||
} else if (selectionMode === 'drainage') {
|
||||
if (layer !== 'geo_junctions') {
|
||||
open?.({
|
||||
type: "error",
|
||||
message: "请选择节点要素作为排水点",
|
||||
});
|
||||
return;
|
||||
}
|
||||
setDrainageNode(featureId);
|
||||
setDrainageFeature(feature);
|
||||
setSelectionMode('none'); // Auto exit selection after picking one
|
||||
map.un("click", handleMapClickSelectFeatures);
|
||||
}
|
||||
},
|
||||
[map, selectionMode, open]
|
||||
);
|
||||
|
||||
// Bind click event based on selection mode
|
||||
useEffect(() => {
|
||||
if (!map || selectionMode === "none") return;
|
||||
|
||||
Reference in New Issue
Block a user