Commit 3dd20147 authored by Mele's avatar Mele
Browse files

Frontend now works perfect

parent fe786311
No related merge requests found
Showing with 72 additions and 4 deletions
+72 -4
<template>
<RouterLink :to="`/rooms/${room}`" class="room-card">
<RouterLink :to="`/rooms/${encodeURIComponent(room)}`" class="room-card">
<div class="card-content">
<h3>{{ room }}</h3>
</div>
......
......@@ -39,6 +39,12 @@ const router = createRouter({
name: 'charts',
component: ChartView
},
{
path: '/rooms/:room',
name: 'RoomChart',
component: () => import('../views/ChartView.vue'),
props: true
},
{
path: '/about',
name: 'about',
......
<template>
<MyChart />
<div class="chart-view">
<h2>Daten für Raum: {{ room }}</h2>
<ChartCard
title="CO₂ Verlauf"
:labels="labels"
:data="co2Data"
borderColor="#ff6384"
/>
<!-- Debug-Ausgabe -->
<pre>Labels: {{ labels }}</pre>
<pre>CO₂: {{ co2Data }}</pre>
</div>
</template>
<script setup lang="ts">
import MyChart from '@/components/Chart.vue'
<script lang="ts">
import { defineComponent, ref, onMounted } from 'vue'
import { useRoute } from 'vue-router'
import ChartCard from '../components/ChartCard.vue'
export default defineComponent({
name: 'ChartView',
components: { ChartCard },
setup() {
const route = useRoute()
const room = decodeURIComponent(route.params.room as string)
const labels = ref<string[]>([])
const co2Data = ref<number[]>([])
onMounted(async () => {
try {
const url = `http://localhost:8000/api/room_data_range?room=${encodeURIComponent(room)}&start=-7d&stop=now()`
const response = await fetch(url)
if (!response.ok) {
throw new Error(`HTTP-Fehler: ${response.status}`)
}
const json = await response.json()
const entries = Object.entries(json.data).sort(
([a], [b]) => new Date(a).getTime() - new Date(b).getTime()
)
const labelsArray = entries.map(([timestamp]) =>
new Date(timestamp).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })
)
const co2DataArray = entries.map(([, values]) => values.co2)
labels.value = labelsArray
co2Data.value = co2DataArray
} catch (err) {
console.error('❌ Fehler beim Laden der Daten:', err)
}
})
return { room, labels, co2Data }
}
})
</script>
<style scoped>
.chart-view {
padding: 2rem;
}
</style>
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment