куча мелких изменений в вебе

This commit is contained in:
2024-11-07 18:07:06 +03:00
parent 4a293e10f6
commit fae7a2ffc8
5 changed files with 161 additions and 47 deletions

View File

@@ -26,7 +26,7 @@
<a href="/logout" class="tabs-btn">Выход</a>
</div>
<div :class="{ value_bad: initState !== 'Успешная инициализация системы' }">{{ initState }}</div>
<div class="tabs-body">
<div id="content">
<div class="tabs-body-item tabs-item-flex-container" v-show="activeTab === 'monitoring'">
<div>
<h2>Статистика приема</h2>
@@ -98,7 +98,7 @@
</div>
<div class="tabs-body-item" v-show="activeTab === 'setup' && settingFetchComplete">
<h2>Настройки приема/передачи</h2>
<form class="settings-set-container">
<div class="settings-set-container">
<label>
<span>Режим работы</span>
<select v-model="param.general.isCinC">
@@ -106,10 +106,10 @@
<option value="true">CinC</option>
</select>
</label>
</form>
<form class="tabs-item-flex-container">
<div>
<h2>Настройки передатчика</h2>
</div>
<div class="tabs-item-flex-container">
<div class="settings-set-container">
<h3>Настройки передатчика</h3>
<label>
<span>Включить передатчик</span>
<span class="toggle-input">
@@ -139,8 +139,8 @@
</select>
</label>
</div>
<div>
<h2>Параметры передачи</h2>
<div class="settings-set-container">
<h3>Параметры передачи</h3>
<label>
<span>Центральная частота, КГц</span>
<input v-model="param.tx.centerFreq"/>
@@ -165,8 +165,8 @@
</label>
</div>
<div>
<h2>Режим работы DVB-S2</h2>
<div class="settings-set-container">
<h3>Режим работы DVB-S2</h3>
<label>
<span>Режим</span>
<select v-model="param.dvbs2.mode">
@@ -241,8 +241,8 @@
</select>
</label>
</div>
<div>
<h2>Настройки авто-регулировки мощности</h2>
<div class="settings-set-container">
<h3>Авто-регулировка мощности</h3>
<label>
<span>Авто-регулировка мощности</span>
<span class="toggle-input">
@@ -263,8 +263,8 @@
<input v-model="param.acm.requiredSnr"/>
</label>
</div>
<div>
<h2>Настройка приемника</h2>
<div class="settings-set-container">
<h3>Настройка приемника</h3>
<label>
<span>Режим управления усилением</span>
<select v-model="param.rx.gainMode">
@@ -306,11 +306,11 @@
<input v-model="param.rx.attenuation"/>
</label>
</div>
</form>
</div>
<button>Сохранить</button>
<h2 v-show="param.general.isCinC">Настройки режима CinC</h2>
<form v-show="param.general.isCinC" class="settings-set-container">
<div v-show="param.general.isCinC" class="settings-set-container">
<label>
<span>Метод расчета задержки</span>
<select v-model="param.cinc.mode">
@@ -342,12 +342,12 @@
<span>до, мс</span>
<input v-model="param.cinc.delayMax"/>
</label>
</form>
</div>
<button v-show="param.general.isCinC" type="submit">Сохранить</button>
<h2>Настройки питания и опорного генератора</h2>
<div class="tabs-item-flex-container">
<form>
<div class="settings-set-container">
<h3>Настройки BUC</h3>
<label>
<span>Подача опоры 10МГц</span>
@@ -364,9 +364,8 @@
<option value="48">48В</option>
</select>
</label>
</form>
<form>
</div>
<div class="settings-set-container">
<h3>Настройки LNB</h3>
<label>
<span>Подача опоры 10МГц</span>
@@ -384,9 +383,8 @@
<option value="24">24В</option>
</select>
</label>
</form>
<form>
</div>
<div class="settings-set-container">
<h3>Сервисные настройки</h3>
<label>
<span>Подача опоры 10МГц на 'Выход 10МГц'</span>
@@ -402,18 +400,83 @@
<span class="slider"></span>
</span>
</label>
</form>
</div>
</div>
<button type="submit">Сохранить</button>
</div>
<div class="tabs-body-item" v-show="activeTab === 'qos'">
<h2>Настройки QoS</h2>
<div class="settings-set-container">
<label>
<span>Активировать QoS</span>
<span class="toggle-input"><input type="checkbox" v-model="qos.en" /><span class="slider"></span></span>
</label>
</div>
<h3>Классы CD</h3>
<button @click="qosAddClass('cd')">Добавить класс CD</button>
<details v-for="(rule, index) in qos.cd" :key="index" class="settings-set-container">
<summary >#{{ index }} CIR={{ rule.cir }}кбит, PIR={{ rule.pir }}кбит {{ rule.description }}</summary>
<label>
<span>CIR</span>
<input v-model="rule.cir" type="number"/>
</label>
<label>
<span>PIR</span>
<input v-model="rule.pir" type="number"/>
</label>
<label>
<span>Описание</span>
<input v-model="rule.description"/>
</label>
<h3>Фильтры ({{ rule.filters.length }})</h3>
<button @click="qosClassAddRule('cd', index)">Добавить правило</button>
<details v-for="filter in rule.filters" class="settings-set-container">
<!-- :key="filterIndex"-->
<!-- <summary>Правило #{{ filterIndex }}</summary>-->
<label>
<span>vlan</span>
<input v-model="filter.vlan" type="text">
</label>
<label>
<span>proto</span>
<input v-model="filter.proto" type="text">
</label>
<label>
<span>sport</span>
<input v-model="filter.sport" type="text">
</label>
<label>
<span>dport</span>
<input v-model="filter.dport" type="text">
</label>
<label>
<span>ip_src</span>
<input v-model="filter.ip_src" type="text">
</label>
<label>
<span>ip_dest</span>
<input v-model="filter.ip_dest" type="text">
</label>
<label>
<span>dscp</span>
<input v-model="filter.dscp" type="text">
</label>
</details>
<button @click="qosDelClass('cd', index)">Del</button>
</details>
<button>Применить</button>
<p>
Эти настройки пока недоступны, но скоро разработчик это поправит. А пока купи разработчику банку <strike>пива</strike> колы)
</p>
<video preload="auto" controls style="max-width: 100%">
<source src="/vid/video_2024-11-06_15-49-35.mp4" type="video/mp4" />
</video>
</div>
<div class="tabs-body-item" v-show="activeTab === 'admin'">
<p>
@@ -639,7 +702,15 @@
},
},
testState: '?',
qos: {
en: false,
rt1: [{cir: 100, description: 'test class'}],
rt2: [],
rt3: [],
cd: [],
},
testState: false,
initState: '',
lastUpdateTime: new Date(),
activeTab: getCurrentTab(),
@@ -776,6 +847,48 @@
this.param.lnb.powering = vals["settings"]["lnb.powering"]
this.param.serviceSettings.refClk10M = vals["settings"]["serviceSettings.refClk10M"]
this.param.serviceSettings.autoStart = vals["settings"]["serviceSettings.autoStart"]
},
// addQosClass()
qosAddClass(name) {
let res = {
cir: 0,
pir: 0,
filters: []
}
switch (name) {
case 'rt1': this.qos.rt1.push(res); break
case 'rt2': this.qos.rt2.push(res); break
case 'rt3': this.qos.rt3.push(res); break
case 'cd': this.qos.cd.push(res); break
}
},
qosClassAddRule(name, index) {
let rule = {
vlan: "",
proto: "tcp",
sport: "22,80,448",
dport: "5000-6000",
ip_src: "192.168.0.0/24",
ip_dest: "192.168.0.0/24,172.16.0.0/16,95.127.91.34",
dscp: ""
}
switch (name) {
case 'rt1': this.qos.rt1[index].filters.push(rule); break
case 'rt2': this.qos.rt2[index].filters.push(rule); break
case 'rt3': this.qos.rt3[index].filters.push(rule); break
case 'cd': this.qos.cd[index].filters.push(rule); break
}
},
qosDelClass(name, index) {
switch (name) {
case 'rt1': this.qos.rt1.splice(index, 1); break
case 'rt2': this.qos.rt2.splice(index, 1); break
case 'rt3': this.qos.rt3.splice(index, 1); break
case 'cd': this.qos.cd.splice(index, 1); break
}
}
},
mounted() {