mirror of
https://github.com/IoTManagerProject/IoTManagerWeb.git
synced 2026-03-26 23:12:34 +03:00
добавил меню выбора элементов
This commit is contained in:
@@ -166,23 +166,9 @@
|
|||||||
let widgetsJsonFlag = false;
|
let widgetsJsonFlag = false;
|
||||||
|
|
||||||
let itemsJson = [];
|
let itemsJson = [];
|
||||||
|
let itemsJsonFlag = false;
|
||||||
|
|
||||||
itemsJson = [
|
let itemsJsonBind = 0;
|
||||||
{
|
|
||||||
name: "1. Аналоговый сенсор",
|
|
||||||
type: "Reading",
|
|
||||||
subtype: "AnalogAdc",
|
|
||||||
id: "t",
|
|
||||||
widget: "anydataTmp",
|
|
||||||
page: "Сенсоры",
|
|
||||||
descr: "Температура",
|
|
||||||
map: "1,1024,1,1024",
|
|
||||||
plus: 0,
|
|
||||||
multiply: 1,
|
|
||||||
pin: 0,
|
|
||||||
int: 15,
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
//web sockets
|
//web sockets
|
||||||
let socket = [];
|
let socket = [];
|
||||||
@@ -229,6 +215,7 @@
|
|||||||
let currentPageName = undefined;
|
let currentPageName = undefined;
|
||||||
var configJsonBlob = new MyBlobBuilder();
|
var configJsonBlob = new MyBlobBuilder();
|
||||||
var widgetsJsonBlob = new MyBlobBuilder();
|
var widgetsJsonBlob = new MyBlobBuilder();
|
||||||
|
var itemsJsonBlob = new MyBlobBuilder();
|
||||||
router.subscribe(handleNavigation);
|
router.subscribe(handleNavigation);
|
||||||
|
|
||||||
function handleNavigation() {
|
function handleNavigation() {
|
||||||
@@ -371,10 +358,31 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
//сборщик itemsJson пакетов========================================
|
||||||
|
if (data === "/st/items.json") {
|
||||||
|
if (debug) console.log("[i]", "itemsJson start!");
|
||||||
|
itemsJsonFlag = true;
|
||||||
|
}
|
||||||
|
if (data === "/end/items.json") {
|
||||||
|
if (debug) console.log("[i]", "itemsJson end!");
|
||||||
|
itemsJsonFlag = false;
|
||||||
|
var bb = itemsJsonBlob.getBlob();
|
||||||
|
let itemsJsonReader = new FileReader();
|
||||||
|
itemsJsonReader.readAsText(bb);
|
||||||
|
itemsJsonReader.onload = () => {
|
||||||
|
let itemsJsonResult = itemsJsonReader.result;
|
||||||
|
if (IsJsonParse(itemsJsonResult)) {
|
||||||
|
itemsJson = JSON.parse(itemsJsonResult);
|
||||||
|
itemsJson = itemsJson;
|
||||||
|
if (debug) console.log("[i]", "itemsJson parced!");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (event.data instanceof Blob) {
|
if (event.data instanceof Blob) {
|
||||||
if (configJsonFlag) configJsonBlob.append(event.data);
|
if (configJsonFlag) configJsonBlob.append(event.data);
|
||||||
if (widgetsJsonFlag) widgetsJsonBlob.append(event.data);
|
if (widgetsJsonFlag) widgetsJsonBlob.append(event.data);
|
||||||
|
if (itemsJsonFlag) itemsJsonBlob.append(event.data);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
socket[ws].addEventListener("close", (event) => {
|
socket[ws].addEventListener("close", (event) => {
|
||||||
@@ -651,7 +659,26 @@
|
|||||||
|
|
||||||
//************************************************elements and presets dropdown************************************************************/
|
//************************************************elements and presets dropdown************************************************************/
|
||||||
|
|
||||||
function elementsDropdownChange() {}
|
function elementsDropdownChange() {
|
||||||
|
//костыльный вариант предотвкащающий binding
|
||||||
|
let itemStr = JSON.stringify(getItem(itemsJsonBind));
|
||||||
|
let item = JSON.parse(itemStr);
|
||||||
|
delete item.num;
|
||||||
|
delete item.name;
|
||||||
|
configJson.push(item);
|
||||||
|
configJson = configJson;
|
||||||
|
itemsJsonBind = 0;
|
||||||
|
if (debug) console.log("[i]", "item added");
|
||||||
|
}
|
||||||
|
|
||||||
|
function getItem(num) {
|
||||||
|
for (let i = 0; i < itemsJson.length; i++) {
|
||||||
|
let item = itemsJson[i];
|
||||||
|
if (num === item.num) {
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//*******************************************************initialisation********************************************************************/
|
//*******************************************************initialisation********************************************************************/
|
||||||
onMount(async () => {
|
onMount(async () => {
|
||||||
@@ -742,16 +769,21 @@
|
|||||||
<div class="grd-1cols">
|
<div class="grd-1cols">
|
||||||
<Card>
|
<Card>
|
||||||
<div class="grd-2cols">
|
<div class="grd-2cols">
|
||||||
<select class="slct-lg" on:change={() => elementsDropdownChange()}>
|
<select class="slct-lg" bind:value={itemsJsonBind} on:change={() => elementsDropdownChange()}>
|
||||||
{#each itemsJson as item}
|
{#each itemsJson as item}
|
||||||
<option value={item}>
|
{#if item.header}
|
||||||
{item.name}
|
<optgroup label={item.header} />
|
||||||
</option>
|
{/if}
|
||||||
|
{#if !item.header}
|
||||||
|
<option value={item.num}>
|
||||||
|
{item.name}
|
||||||
|
</option>
|
||||||
|
{/if}
|
||||||
{/each}
|
{/each}
|
||||||
</select>
|
</select>
|
||||||
<select class="slct-lg">{"Выберите пресет"}</select>
|
<select class="slct-lg">{"Выберите пресет"}</select>
|
||||||
</div>
|
</div>
|
||||||
<table class="table-fixed w-full select-none my-2 border-gray-300 rounded">
|
<table class="table-fixed w-full select-none my-2 ">
|
||||||
<thead class="bg-gray-100">
|
<thead class="bg-gray-100">
|
||||||
<tr class="tbl-txt-sz tbl-txt-p">
|
<tr class="tbl-txt-sz tbl-txt-p">
|
||||||
<th class="tbl-hd">Тип</th>
|
<th class="tbl-hd">Тип</th>
|
||||||
|
|||||||
Reference in New Issue
Block a user