56 lines
1.7 KiB
HTML
56 lines
1.7 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Главная</title>
|
|
<link rel="stylesheet" type="text/css" href="/style.css">
|
|
</head>
|
|
<body>
|
|
<div id="mainState" hidden>
|
|
<h1>Общее состояние</h1>
|
|
<ul>
|
|
<li>Прием: {{ rxState }}</li>
|
|
<li>Передача: {{ txState }}</li>
|
|
<li>Тест: {{ testState }}</li>
|
|
<li>Последнее обновление: {{ lastUpdateTime }}</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div id="status-header"></div>
|
|
|
|
<!-- Версия для разработки включает в себя возможность вывода в консоль полезных уведомлений -->
|
|
<script src="/js/vue.js"></script>
|
|
<script>
|
|
const mainState = new Vue({
|
|
el: '#mainState',
|
|
data: {
|
|
rxState: '?',
|
|
txState: '?',
|
|
testState: '?',
|
|
lastUpdateTime: new Date()
|
|
},
|
|
methods: {
|
|
updateMainState(vals) {
|
|
this.lastUpdateTime = new Date();
|
|
this.rxState = vals["mainState"]["rxState"]
|
|
this.txState = vals["mainState"]["txState"]
|
|
this.testState = vals["mainState"]["testState"]
|
|
}
|
|
},
|
|
mounted() {
|
|
setInterval(() => {
|
|
fetch("/api/mainStatistics").then(async (val) => {
|
|
this.updateMainState(await val.json())
|
|
});
|
|
}, 1000);
|
|
}
|
|
})
|
|
|
|
document.getElementById("mainState").removeAttribute("hidden")
|
|
|
|
// import MyComponent from './modules/header'
|
|
// const sh = new Vue(MyComponent)
|
|
</script>
|
|
</body>
|
|
</html> |