This commit is contained in:
Dmitry Borisenko
2022-03-02 00:42:55 +01:00
parent 869fcdf97b
commit 244d3925ce
5 changed files with 29 additions and 17 deletions

View File

@@ -4,7 +4,7 @@
<meta charset='utf-8'> <meta charset='utf-8'>
<meta name='viewport' content='width=device-width,initial-scale=1'> <meta name='viewport' content='width=device-width,initial-scale=1'>
<title>IoT Manager 4.1.1</title> <title>IoT Manager 4.1.2</title>
<link rel='icon' type='image/png' href='/favicon.ico'> <link rel='icon' type='image/png' href='/favicon.ico'>
<link rel='stylesheet' href='/build/bundle.css'> <link rel='stylesheet' href='/build/bundle.css'>

View File

@@ -40,8 +40,8 @@
//****************************************************variable section**********************************************************/ //****************************************************variable section**********************************************************/
//******************************************************************************************************************************/ //******************************************************************************************************************************/
//let myip = document.location.hostname; let myip = document.location.hostname;
let myip = "192.168.88.224"; //let myip = "192.168.88.224";
//Flags //Flags
let firstDevListRequest = true; let firstDevListRequest = true;
@@ -442,18 +442,17 @@
if (data === "/st/layout.json") { if (data === "/st/layout.json") {
} }
if (data === "/end/layout.json") { if (data === "/end/layout.json") {
dashReady = true;
createLayoutUnderLoading(ws); createLayoutUnderLoading(ws);
} }
//сборщик paramsJson сообщений====================================== //сборщик paramsJson сообщений======================================
if (data.includes('"params":"')) { if (data.includes('"params":"')) {
if (IsJsonParse(data)) { if (IsJsonParse(data)) {
//как добавить в объект json новый объект
paramsJson = { paramsJson = {
...paramsJson, ...paramsJson,
...JSON.parse(data), ...JSON.parse(data),
}; };
paramsJson = paramsJson; paramsJson = paramsJson;
if (paramsJsonParced) console.log("✔", "paramsJson parced", paramsJson);
onParced(); onParced();
} }
} }
@@ -462,9 +461,7 @@
if (IsJsonParse(data)) { if (IsJsonParse(data)) {
let statusJson = JSON.parse(data); let statusJson = JSON.parse(data);
udateStatusOfWidget(statusJson); udateStatusOfWidget(statusJson);
sortingLayout();
if (debug) console.log("[i]", statusJson); if (debug) console.log("[i]", statusJson);
statusJsonParced = true;
} }
} }
} }
@@ -520,10 +517,6 @@
} }
} }
//var t0 = performance.now();
//var t1 = performance.now();
//console.log("layout time: " + (t1 - t0) + " mls");
function udateStatusOfAllWidgets() { function udateStatusOfAllWidgets() {
for (const [key, value] of Object.entries(paramsJson)) { for (const [key, value] of Object.entries(paramsJson)) {
for (let i = 0; i < layoutJson.length; i++) { for (let i = 0; i < layoutJson.length; i++) {
@@ -549,10 +542,10 @@
} }
async function onParced() { async function onParced() {
if (currentPageName === "/|" && paramsJsonParced) { if (currentPageName === "/|") {
clearParcedFlags(); clearParcedFlags();
if (debug) console.log("✔", "dashboard data parced"); if (debug) console.log("✔", "dashboard packet received");
//createFinalLayout(); dashReady = true;
} }
if (currentPageName === "/config|" && itemsJsonParced && widgetsJsonParced && configJsonParced && settingsJsonParced && scenarioTxtParced) { if (currentPageName === "/config|" && itemsJsonParced && widgetsJsonParced && configJsonParced && settingsJsonParced && scenarioTxtParced) {
clearParcedFlags(); clearParcedFlags();
@@ -736,6 +729,17 @@
//***********************************************************dashboard***************************************************************/ //***********************************************************dashboard***************************************************************/
function sortingLayout() { function sortingLayout() {
//сортируем весь layout по алфавиту
layoutJson.sort(function (a, b) {
if (a.descr < b.descr) {
return -1;
}
if (a.descr > b.descr) {
return 1;
}
return 0;
});
//формируем json всех карточек
pages = []; pages = [];
const newPage = Array.from(new Set(Array.from(layoutJson, ({ page }) => page))); const newPage = Array.from(new Set(Array.from(layoutJson, ({ page }) => page)));
newPage.forEach(function (item, i, arr) { newPage.forEach(function (item, i, arr) {
@@ -748,6 +752,7 @@
), ),
]; ];
}); });
//сортируем карточки по алфавиту
pages.sort(function (a, b) { pages.sort(function (a, b) {
if (a.page < b.page) { if (a.page < b.page) {
return -1; return -1;

View File

@@ -120,7 +120,7 @@
</div> </div>
<div class="grd-1col1"> <div class="grd-1col1">
<Card title="Сценарии"> <Card title="Сценарии">
<textarea bind:value={scenarioTxt} class="ipt-big h-80 w-full" /> <textarea bind:value={scenarioTxt} class="ipt-big h-40 w-full" />
<div class="grd-2col1"> <div class="grd-2col1">
<button class="btn-lg" on:click={() => saveConfig()}>{"Сохранить"}</button> <button class="btn-lg" on:click={() => saveConfig()}>{"Сохранить"}</button>
<button class="btn-lg" on:click={() => rebootEsp()}>{"Перезагрузить"}</button> <button class="btn-lg" on:click={() => rebootEsp()}>{"Перезагрузить"}</button>

View File

@@ -18,9 +18,9 @@
{#if layoutJson === []} {#if layoutJson === []}
<Card title={"Ваша панель управления пуста, вначале добавьте новые элементы в конфигураторе!"} /> <Card title={"Ваша панель управления пуста, вначале добавьте новые элементы в конфигураторе!"} />
{/if} {/if}
{#each pages as pagesName, i} {#each pages as pagesName, p}
<Card title={pagesName.page}> <Card title={pagesName.page}>
{#each layoutJson as widget, i} {#each layoutJson as widget, l}
{#if widget.page === pagesName.page} {#if widget.page === pagesName.page}
{#if widget.widget === "input"} {#if widget.widget === "input"}
<Input bind:value={widget.status} widget={widget} wsPush={(ws, topic, status) => wsPush(ws, topic, status)} /> <Input bind:value={widget.status} widget={widget} wsPush={(ws, topic, status) => wsPush(ws, topic, status)} />

View File

@@ -0,0 +1,7 @@
<script>
// вывести время чего либо в консоль
var t0 = performance.now();
var t1 = performance.now();
console.log("layout time: " + (t1 - t0) + " mls");
//
</script>