refactor: TDRChartActionBar auf selectedSlot (0-basiert) umgestellt
- Verwendung von selectedSlot aus kueChartMode statt slotNumber aus kabelueberwachungChart - Slot-Datenzugriff jetzt direkt 0-basiert (z. B. slot0.json) - Referenz-Button berücksichtigt API-Format (Slot + 1) - Dropdown-Menü nutzt korrekte TDM-Liste für gewählten Slot
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
// /components/main/kabelueberwachung/kue705FO/Charts/TDRChart/TDRChartActionBar.tsx
|
// /components/main/kabelueberwachung/kue705FO/Charts/TDRChart/TDRChartActionBar.tsx
|
||||||
|
|
||||||
import React, { useState, useEffect } from "react";
|
import React, { useState, useEffect } from "react";
|
||||||
import { useSelector } from "react-redux";
|
import { useSelector } from "react-redux";
|
||||||
import { useAppDispatch } from "../../../../../../redux/store";
|
import { useAppDispatch } from "../../../../../../redux/store";
|
||||||
@@ -9,28 +10,33 @@ import { fetchTDRChartDataByIdThunk } from "../../../../../../redux/thunks/fetch
|
|||||||
const TDRChartActionBar: React.FC = () => {
|
const TDRChartActionBar: React.FC = () => {
|
||||||
const dispatch = useAppDispatch();
|
const dispatch = useAppDispatch();
|
||||||
|
|
||||||
const tdmChartData = useSelector((state: RootState) => state.tdmChart.data);
|
// ✅ Redux: selectedSlot aus kueChartMode (0-basiert)
|
||||||
const selectedSlot = useSelector(
|
const selectedSlot = useSelector(
|
||||||
(state: RootState) => state.kueChartMode.selectedSlot
|
(state: RootState) => state.kueChartMode.selectedSlot
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const tdmChartData = useSelector(
|
||||||
|
(state: RootState) => state.tdmSingleChart.data
|
||||||
|
);
|
||||||
|
|
||||||
const idsForSlot =
|
const idsForSlot =
|
||||||
selectedSlot !== null ? tdmChartData[selectedSlot] ?? [] : [];
|
selectedSlot !== null ? tdmChartData[selectedSlot] ?? [] : [];
|
||||||
|
|
||||||
const [selectedId, setSelectedId] = useState<number | null>(null);
|
const [selectedId, setSelectedId] = useState<number | null>(null);
|
||||||
|
|
||||||
// Dropdown-Auswahl: Neue ID auswählen
|
// 🔄 Dropdown-Auswahl: neue Messung laden
|
||||||
const handleSelectChange = (e: React.ChangeEvent<HTMLSelectElement>) => {
|
const handleSelectChange = (e: React.ChangeEvent<HTMLSelectElement>) => {
|
||||||
const id = parseInt(e.target.value);
|
const id = parseInt(e.target.value);
|
||||||
setSelectedId(id);
|
setSelectedId(id);
|
||||||
dispatch(fetchTDRChartDataByIdThunk(id));
|
dispatch(fetchTDRChartDataByIdThunk(id));
|
||||||
};
|
};
|
||||||
|
|
||||||
// Button: Als Referenzkurve setzen
|
// 📌 Referenz setzen (nutzt Slotnummer + 1 für die API)
|
||||||
const handleSetReference = async () => {
|
const handleSetReference = async () => {
|
||||||
if (selectedId === null || selectedSlot === null) return;
|
if (selectedId === null || selectedSlot === null) return;
|
||||||
|
|
||||||
const url = `${window.location.origin}/CPL?seite.ACP&KTR${selectedSlot}=${selectedId}`;
|
const apiSlot = selectedSlot + 1;
|
||||||
|
const url = `${window.location.origin}/CPL?seite.ACP&KTR${apiSlot}=${selectedId}`;
|
||||||
try {
|
try {
|
||||||
const response = await fetch(url);
|
const response = await fetch(url);
|
||||||
if (!response.ok) throw new Error("Fehler beim Setzen der Referenzkurve");
|
if (!response.ok) throw new Error("Fehler beim Setzen der Referenzkurve");
|
||||||
@@ -41,7 +47,7 @@ const TDRChartActionBar: React.FC = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Automatisch neueste ID laden, wenn Slot sich ändert
|
// 📥 Beim Slot-Wechsel TDM-Liste + letzte ID laden
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (selectedSlot !== null) {
|
if (selectedSlot !== null) {
|
||||||
dispatch(fetchTDMDataBySlotThunk(selectedSlot)).then((action: any) => {
|
dispatch(fetchTDMDataBySlotThunk(selectedSlot)).then((action: any) => {
|
||||||
@@ -57,14 +63,14 @@ const TDRChartActionBar: React.FC = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="flex justify-between items-center p-2 bg-gray-100 rounded-lg space-x-4">
|
<div className="flex justify-between items-center p-2 bg-gray-100 rounded-lg space-x-4">
|
||||||
{/* Ausgewählter Slot */}
|
{/* 🧩 Slot-Anzeige (1-basiert für Benutzer) */}
|
||||||
<div className="text-sm font-semibold">
|
<div className="text-sm font-semibold">
|
||||||
{selectedSlot !== null
|
{selectedSlot !== null
|
||||||
? `Slot ${selectedSlot + 1}`
|
? `Slot ${selectedSlot + 1}`
|
||||||
: "Kein Slot gewählt"}
|
: "Kein Slot gewählt"}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Button: Als Referenzkurve setzen */}
|
{/* ✅ Referenz setzen */}
|
||||||
{selectedId !== null && (
|
{selectedId !== null && (
|
||||||
<button
|
<button
|
||||||
onClick={handleSetReference}
|
onClick={handleSetReference}
|
||||||
@@ -74,7 +80,7 @@ const TDRChartActionBar: React.FC = () => {
|
|||||||
</button>
|
</button>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{/* Dropdown für Messungsauswahl */}
|
{/* 🔽 Dropdown für Messungen */}
|
||||||
<div className="flex items-center space-x-2">
|
<div className="flex items-center space-x-2">
|
||||||
<label htmlFor="tdrIdSelect" className="text-sm font-semibold">
|
<label htmlFor="tdrIdSelect" className="text-sm font-semibold">
|
||||||
Messung ID
|
Messung ID
|
||||||
|
|||||||
@@ -6,5 +6,5 @@
|
|||||||
2: Patch oder Hotfix (Bugfixes oder kleine Änderungen).
|
2: Patch oder Hotfix (Bugfixes oder kleine Änderungen).
|
||||||
|
|
||||||
*/
|
*/
|
||||||
const webVersion = "1.6.182";
|
const webVersion = "1.6.183";
|
||||||
export default webVersion;
|
export default webVersion;
|
||||||
|
|||||||
@@ -159,8 +159,8 @@ var win_tdrLocation = [
|
|||||||
0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0,
|
||||||
];
|
];
|
||||||
var win_tdrActive = [
|
var win_tdrActive = [
|
||||||
1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||||
0, 0, 0, 0, 0, 0,
|
1, 1, 1, 1, 1, 1,
|
||||||
];
|
];
|
||||||
var win_tdrLast = [
|
var win_tdrLast = [
|
||||||
"2024-10-17 07:51:54:000",
|
"2024-10-17 07:51:54:000",
|
||||||
|
|||||||
Reference in New Issue
Block a user