сделал получение параметров через api, немного подредачил фронт
This commit is contained in:
118
static/main.html
Normal file
118
static/main.html
Normal file
@@ -0,0 +1,118 @@
|
||||
<!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">
|
||||
<style>
|
||||
.tabs-header {
|
||||
margin: 0.5em 0;
|
||||
background: var(--brand-bg);
|
||||
}
|
||||
.tabs-header > * {
|
||||
display: inline-block;
|
||||
}
|
||||
.tabs-btn {
|
||||
font-size: 18px;
|
||||
border: none;
|
||||
padding: 10px 25px;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
margin-bottom: -3px;
|
||||
border-bottom: 3px solid #eee;
|
||||
}
|
||||
.tabs-btn.active {
|
||||
color: #5fa03a;
|
||||
border-bottom: 3px solid #5fa03a;
|
||||
}
|
||||
.tabs-body-item {
|
||||
padding: 20px 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="app" hidden>
|
||||
<div>
|
||||
<h1>Общее состояние</h1>
|
||||
<ul>
|
||||
<li>Прием: {{ rxState }}</li>
|
||||
<li>Передача: {{ txState }}</li>
|
||||
<li>Тест: {{ testState }}</li>
|
||||
<li>Последнее обновление: {{ lastUpdateTime }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabs">
|
||||
<div class="tabs-header">
|
||||
<span style="font-weight:bold">RSCM-101</span>
|
||||
<button class="tabs-btn" @click="activeTab = 1" :class="{ active: activeTab === 1 }">Мониторинг</button>
|
||||
<button class="tabs-btn" @click="activeTab = 2" :class="{ active: activeTab === 2 }">Прием/Передача</button>
|
||||
<button class="tabs-btn" @click="activeTab = 3" :class="{ active: activeTab === 3 }">Настройки CinC</button>
|
||||
<button class="tabs-btn" @click="activeTab = 4" :class="{ active: activeTab === 4 }">Настройки питания и опорного генератора</button>
|
||||
<button class="tabs-btn" @click="activeTab = 5" :class="{ active: activeTab === 5 }">Администрирование</button>
|
||||
</div>
|
||||
<div class="tabs-body">
|
||||
<div class="tabs-body-item" v-show="activeTab === 1">
|
||||
<div>
|
||||
<h2>Статистика передачи</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tabs-body-item" v-show="activeTab === 2">
|
||||
Содержимое вкладки 2
|
||||
</div>
|
||||
<div class="tabs-body-item" v-show="activeTab === 3">
|
||||
Содержимое вкладки 3
|
||||
</div>
|
||||
<div class="tabs-body-item" v-show="activeTab === 4">
|
||||
Содержимое вкладки 4
|
||||
</div>
|
||||
<div class="tabs-body-item" v-show="activeTab === 5">
|
||||
Содержимое вкладки 5
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="mainState" hidden>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="status-header"></div>
|
||||
|
||||
<!-- Версия для разработки включает в себя возможность вывода в консоль полезных уведомлений -->
|
||||
<script src="/js/vue.js"></script>
|
||||
<script>
|
||||
const app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
activeTab: 1,
|
||||
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("app").removeAttribute("hidden")
|
||||
|
||||
// import MyComponent from './modules/header'
|
||||
// const sh = new Vue(MyComponent)
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user