hangban/main.js

57 lines
1.9 KiB
JavaScript
Raw Normal View History

import Chart from 'chart.js/auto'
2024-12-07 06:53:37 +08:00
import { createElement, div, table, thead, tbody, tr, th, td } from '@laniakeasupercluster/widgets'
const rest = await fetch('http://localhost:2000/api').then(res => res.json())
2024-12-07 06:53:37 +08:00
document.body.appendChild(div.childs([
table.childs([
thead.childs([
tr.childs([
th.text('ID'),
th.text('航班号'),
th.text('航空公司'),
th.text('起飞机场'),
th.text('到达机场'),
th.text('数据')
])
]),
tbody.childs(
rest.map(row => tr.childs([
td.text(row.flight_id),
td.text(row.flight_number),
td.text(row.airline),
td.text(row.origin),
td.text(row.destination),
td.text(row.shuju)
]))
)
])
]))
const metrics = await fetch('http://localhost:2000/api/metrics').then(res => res.json())
2024-12-07 06:57:03 +08:00
const context = createElement({ width: 800, height: 200 }, 'canvas')
2024-12-07 06:53:37 +08:00
new Chart(context, {
type: 'line',
data: {
2024-12-07 06:53:37 +08:00
labels: metrics.map(row => new Date(row.date).toLocaleDateString()), // 显示日期
datasets: [{
2024-12-07 06:53:37 +08:00
label: '航班数量',
data: metrics.map(row => row.count), // 使用 count 作为数据
backgroundColor: 'rgba(255, 99, 132, 0.2)', // 曲线下方填充颜色透明度0.2
borderColor: 'rgba(255, 99, 132, 1)', // 曲线颜色
borderWidth: 2, // 曲线宽度
lineTension: 0.3, // 平滑曲线
fill: true // 填充曲线下方区域
}]
},
options: {
scales: {
y: {
beginAtZero: true
}
}
}
2024-12-07 06:57:03 +08:00
})
document.body.appendChild(context)