Files
IoTManagerWeb/src/widgets/Chart.svelte

64 lines
1.5 KiB
Svelte
Raw Normal View History

2022-08-31 02:14:16 +02:00
<script>
2022-08-31 22:25:22 +02:00
import { onMount } from "svelte";
2022-08-31 02:14:16 +02:00
import Chart from "svelte-frappe-charts";
2022-08-31 22:25:22 +02:00
onMount(async () => {
console.log("[i]", "------------chart mounted--------------");
});
let chartRef;
2022-08-31 02:14:16 +02:00
export let widget;
2022-08-31 22:25:22 +02:00
let axisOptions = { xAxisMode: "tick", xIsSeries: true };
let lineOptions;
if (widget.pointRadius == "0") {
lineOptions = { regionFill: 1, hideDots: 1, spline: 1 };
} else {
lineOptions = { regionFill: 1, dotSize: 3, spline: 1 };
}
let labels = ["", ""];
let values = ["", ""];
//let datachart = {
// labels: [],
// datasets: [],
//};
2022-08-31 02:14:16 +02:00
let datachart = {
labels: labels,
datasets: [
{
2022-08-31 22:25:22 +02:00
name: widget.descr,
2022-08-31 02:14:16 +02:00
values: values,
},
],
};
$: widget.status, calc();
function calc() {
if (widget.status) {
let dataArr = widget.status;
for (let i = 0; i < dataArr.length; i++) {
2022-08-31 22:25:22 +02:00
chartRef.addDataPoint(getHHMM(dataArr[i].x), [dataArr[i].y1]);
2022-08-31 02:14:16 +02:00
}
2022-08-31 22:25:22 +02:00
console.log("-------------------------calc-------------------------");
2022-08-31 02:14:16 +02:00
}
}
2022-08-31 22:25:22 +02:00
function getHHMM(timestamp) {
var date = new Date(timestamp * 1000);
return ("0" + date.getHours()).slice(-2) + ":" + ("0" + date.getMinutes()).slice(-2);
2022-08-31 02:14:16 +02:00
}
</script>
2022-08-31 22:25:22 +02:00
<!--<div class="text-center">-->
<!-- svelte-ignore a11y-label-has-associated-control -->
<!--<label class="wgt-dscr-stl">{!widget.descr ? "" : widget.descr} </label>-->
<!--</div>-->
<Chart data={datachart} type="line" lineOptions={lineOptions} axisOptions={axisOptions} bind:this={chartRef} />