сделал вторую версию прототипа для QoS, осталось для нее только сохранение прикрутить

This commit is contained in:
Vladislav Ostapov 2024-11-08 18:08:47 +03:00
parent 1f5eb54225
commit 4c1ce6031b

View File

@ -432,63 +432,71 @@
<span class="toggle-input"><input type="checkbox" v-model="qos.en" /><span class="slider"></span></span> <span class="toggle-input"><input type="checkbox" v-model="qos.en" /><span class="slider"></span></span>
</label> </label>
</div> </div>
<h3>Классы CD</h3> <template>
<button class="action-button" @click="qosAddClass('cd')">Добавить класс CD</button> <div v-for="classesGroup in ['rt1', 'rt2', 'rt3', 'cd']">
<details v-for="(rule, index) in qos.cd" :key="index" class="settings-set-container"> <h3>Классы {{ classesGroup.toUpperCase() }}</h3>
<summary >#{{ index }} CIR={{ rule.cir }}кбит, PIR={{ rule.pir }}кбит {{ rule.description }}</summary> <button class="action-button" @click="qosAddClass(classesGroup)">Добавить класс {{ classesGroup.toUpperCase() }}</button>
<label> <details v-for="(rule, index) in qos[classesGroup]" :key="index" class="settings-set-container">
<span>CIR</span> <summary v-if="classesGroup === 'cd'">#{{ index }} CIR={{ rule.cir }}кбит, PIR={{ rule.pir }}кбит {{ rule.description }}</summary>
<input v-model="rule.cir" type="number"/> <summary v-if="classesGroup !== 'cd'">#{{ index }} CBR={{ rule.cir }}кбит {{ rule.description }}</summary>
</label> <label>
<label> <span v-if="classesGroup === 'cd'">CIR</span> <span v-if="classesGroup !== 'cd'">CBR</span>
<span>PIR</span> <input v-model="rule.cir" type="number"/>
<input v-model="rule.pir" type="number"/> </label>
</label> <label v-if="classesGroup === 'cd'">
<label> <span>PIR</span>
<span>Описание</span> <input v-model="rule.pir" type="number"/>
<input v-model="rule.description"/> </label>
</label> <label>
<span>Описание</span>
<input v-model="rule.description"/>
</label>
<h3>Фильтры ({{ rule.filters.length }})</h3> <h3>Фильтры ({{ rule.filters.length }})</h3>
<div> <div>
<button class="action-button" @click="qosClassAddRule('cd', index)">Добавить правило</button> <button class="action-button" @click="qosClassAddRule(classesGroup, index)">Добавить правило</button>
</div> </div>
<details v-for="(filter, filterIndex) in rule.filters" :key="filterIndex" class="settings-set-container"> <details v-for="(filter, filterIndex) in rule.filters" :key="filterIndex" class="settings-set-container">
<summary><span>#{{ filterIndex }} {{ qosGenerateRuleDescription(filter) }}</span> <button class="dangerous-button" @click="qosDelFilter('cd', index, filterIndex)">Del</button></summary> <summary><span>#{{ filterIndex }} {{ qosGenerateRuleDescription(filter) }}</span> <button class="dangerous-button" @click="qosDelFilter(classesGroup, index, filterIndex)">Del</button></summary>
<label> <label>
<span>VLAN ID</span> <span>VLAN ID</span>
<input v-model="filter.vlan" type="text"> <input v-model="filter.vlan" type="text">
</label> </label>
<label> <label>
<span>Протокол L3</span> <span>Протокол L3</span>
<input v-model="filter.proto" type="text"> <input v-model="filter.proto" type="text">
</label> </label>
<label> <label>
<span>Порт источника</span> <span>Порт источника</span>
<input v-model="filter.sport" type="text"> <input v-model="filter.sport" type="text">
</label> </label>
<label> <label>
<span>Порт назначения</span> <span>Порт назначения</span>
<input v-model="filter.dport" type="text"> <input v-model="filter.dport" type="text">
</label> </label>
<label> <label>
<span>IP источника</span> <span>IP источника</span>
<input v-model="filter.ip_src" type="text"> <input v-model="filter.ip_src" type="text">
</label> </label>
<label> <label>
<span>IP назначения</span> <span>IP назначения</span>
<input v-model="filter.ip_dest" type="text"> <input v-model="filter.ip_dest" type="text">
</label> </label>
<label> <label>
<span>Метка IP.DSCP</span> <span>Метка IP.DSCP</span>
<input v-model="filter.dscp" type="text"> <input v-model="filter.dscp" type="text">
</label> </label>
</details> </details>
<div> <div>
<button class="dangerous-button" @click="qosDelClass('cd', index)">Удалить класс QoS</button> <button class="dangerous-button" @click="qosDelClass(classesGroup, index)">Удалить класс QoS</button>
</div>
</details>
</div> </div>
</details> </template>
<button class="action-button" @click="settingsSubmitQoS()">Применить <span class="submit-spinner" v-show="submitStatus.qos"></span></button> <button class="action-button" @click="settingsSubmitQoS()">Применить <span class="submit-spinner" v-show="submitStatus.qos"></span></button>
<p> <p>