mirror of
https://github.com/IoTManagerProject/IoTManagerWeb.git
synced 2026-03-26 15:02:21 +03:00
создал функцию генерирующию layout
This commit is contained in:
256
src/App.svelte
256
src/App.svelte
@@ -37,115 +37,115 @@
|
|||||||
let wigets = [];
|
let wigets = [];
|
||||||
let pages = [];
|
let pages = [];
|
||||||
|
|
||||||
wigets = [
|
//wigets = [
|
||||||
{
|
// {
|
||||||
widget: "input",
|
// widget: "input",
|
||||||
type: "date",
|
// type: "date",
|
||||||
status: "2021-10-17",
|
// status: "2021-10-17",
|
||||||
page: "Inputs",
|
// page: "Inputs",
|
||||||
order: "4",
|
// order: "4",
|
||||||
descr: "Switch on boiler date",
|
// descr: "Switch on boiler date",
|
||||||
topic: "/prefix/00000-00004/date1",
|
// topic: "/prefix/00000-00004/date1",
|
||||||
ws: 0,
|
// ws: 0,
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
widget: "input",
|
// widget: "input",
|
||||||
type: "time",
|
// type: "time",
|
||||||
status: "12:00",
|
// status: "12:00",
|
||||||
page: "Inputs",
|
// page: "Inputs",
|
||||||
order: "1",
|
// order: "1",
|
||||||
descr: "Switch on boiler time",
|
// descr: "Switch on boiler time",
|
||||||
topic: "/prefix/00000-00001/time",
|
// topic: "/prefix/00000-00001/time",
|
||||||
ws: 0,
|
// ws: 0,
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
widget: "input",
|
// widget: "input",
|
||||||
type: "number",
|
// type: "number",
|
||||||
status: "30.5",
|
// status: "30.5",
|
||||||
after: "°С",
|
// after: "°С",
|
||||||
page: "Inputs",
|
// page: "Inputs",
|
||||||
order: "2",
|
// order: "2",
|
||||||
descr: "Boiler temperature",
|
// descr: "Boiler temperature",
|
||||||
topic: "/prefix/00000-00002/temp",
|
// topic: "/prefix/00000-00002/temp",
|
||||||
ws: 0,
|
// ws: 0,
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
widget: "input",
|
// widget: "input",
|
||||||
type: "text",
|
// type: "text",
|
||||||
status: "Hello",
|
// status: "Hello",
|
||||||
page: "Inputs",
|
// page: "Inputs",
|
||||||
order: "3",
|
// order: "3",
|
||||||
descr: "Message to be send",
|
// descr: "Message to be send",
|
||||||
topic: "/prefix/00000-00003/text",
|
// topic: "/prefix/00000-00003/text",
|
||||||
ws: 0,
|
// ws: 0,
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
widget: "toggle",
|
// widget: "toggle",
|
||||||
status: 0,
|
// status: 0,
|
||||||
page: "Toggles",
|
// page: "Toggles",
|
||||||
order: "3",
|
// order: "3",
|
||||||
descr: "Light in my room",
|
// descr: "Light in my room",
|
||||||
topic: "/prefix/00000-00003/btn1",
|
// topic: "/prefix/00000-00003/btn1",
|
||||||
ws: 0,
|
// ws: 0,
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
widget: "toggle",
|
// widget: "toggle",
|
||||||
status: 0,
|
// status: 0,
|
||||||
page: "Toggles",
|
// page: "Toggles",
|
||||||
order: "3",
|
// order: "3",
|
||||||
descr: "Light in my room",
|
// descr: "Light in my room",
|
||||||
topic: "/prefix/00000-00003/btn2",
|
// topic: "/prefix/00000-00003/btn2",
|
||||||
ws: 0,
|
// ws: 0,
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
widget: "toggle",
|
// widget: "toggle",
|
||||||
status: 0,
|
// status: 0,
|
||||||
page: "Toggles",
|
// page: "Toggles",
|
||||||
order: "3",
|
// order: "3",
|
||||||
descr: "Light in my room",
|
// descr: "Light in my room",
|
||||||
topic: "/prefix/00000-00003/btn3",
|
// topic: "/prefix/00000-00003/btn3",
|
||||||
ws: 0,
|
// ws: 0,
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
widget: "anydata",
|
// widget: "anydata",
|
||||||
status: 30.5,
|
// status: 30.5,
|
||||||
after: "°С",
|
// after: "°С",
|
||||||
page: "Any data",
|
// page: "Any data",
|
||||||
order: "3",
|
// order: "3",
|
||||||
descr: "Temperature",
|
// descr: "Temperature",
|
||||||
topic: "/prefix/00000-00003/tmp10",
|
// topic: "/prefix/00000-00003/tmp10",
|
||||||
ws: 0,
|
// ws: 0,
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
widget: "anydata",
|
// widget: "anydata",
|
||||||
status: 1032,
|
// status: 1032,
|
||||||
after: "mm",
|
// after: "mm",
|
||||||
page: "Any data",
|
// page: "Any data",
|
||||||
order: "3",
|
// order: "3",
|
||||||
descr: "Pressure",
|
// descr: "Pressure",
|
||||||
topic: "/prefix/00000-00003/tmp10",
|
// topic: "/prefix/00000-00003/tmp10",
|
||||||
ws: 0,
|
// ws: 0,
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
widget: "anydata",
|
// widget: "anydata",
|
||||||
status: 50,
|
// status: 50,
|
||||||
after: "%",
|
// after: "%",
|
||||||
page: "Any data",
|
// page: "Any data",
|
||||||
order: "3",
|
// order: "3",
|
||||||
descr: "Level",
|
// descr: "Level",
|
||||||
topic: "/prefix/00000-00003/tmp10",
|
// topic: "/prefix/00000-00003/tmp10",
|
||||||
ws: 0,
|
// ws: 0,
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
widget: "anydata",
|
// widget: "anydata",
|
||||||
status: "opened",
|
// status: "opened",
|
||||||
page: "Any data",
|
// page: "Any data",
|
||||||
order: "3",
|
// order: "3",
|
||||||
descr: "Status",
|
// descr: "Status",
|
||||||
topic: "/prefix/00000-00003/tmp10",
|
// topic: "/prefix/00000-00003/tmp10",
|
||||||
ws: 0,
|
// ws: 0,
|
||||||
},
|
// },
|
||||||
];
|
//];
|
||||||
|
|
||||||
let datachart = {
|
let datachart = {
|
||||||
labels: ["Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat"],
|
labels: ["Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat"],
|
||||||
@@ -177,8 +177,8 @@
|
|||||||
{
|
{
|
||||||
name: "Устройство 1",
|
name: "Устройство 1",
|
||||||
id: "987654321",
|
id: "987654321",
|
||||||
ip: myip,
|
//ip: myip,
|
||||||
//ip: "192.168.88.235",
|
ip: "192.168.88.235",
|
||||||
status: false,
|
status: false,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
@@ -369,12 +369,40 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function sendConfigJson() {
|
function saveConfig() {
|
||||||
|
generateLayout();
|
||||||
wsSendMsg(wsSelected, "/gifnoc" + JSON.stringify(configJson));
|
wsSendMsg(wsSelected, "/gifnoc" + JSON.stringify(configJson));
|
||||||
clearData();
|
clearData();
|
||||||
sendCurrentPageName();
|
sendCurrentPageName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function generateLayout() {
|
||||||
|
let layout = [];
|
||||||
|
for (let i = 0; i < configJson.length; i++) {
|
||||||
|
let config = configJson[i];
|
||||||
|
let setWidget = config.widget;
|
||||||
|
let error = true;
|
||||||
|
for (let w = 0; w < widgetsJson.length; w++) {
|
||||||
|
if (setWidget === widgetsJson[w].name) {
|
||||||
|
let widget = widgetsJson[w];
|
||||||
|
widget.page = config.page;
|
||||||
|
widget.descr = config.descr;
|
||||||
|
widget.id = config.id;
|
||||||
|
layout.push(widget);
|
||||||
|
error = false;
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
error = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (error) console.log("[e]", "error, widget not found: " + setWidget);
|
||||||
|
}
|
||||||
|
if (debug) console.log("[i]", JSON.stringify(layout));
|
||||||
|
wigets = layout;
|
||||||
|
wigets = wigets;
|
||||||
|
wigetsUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
function clearData() {
|
function clearData() {
|
||||||
configJson = [];
|
configJson = [];
|
||||||
configJsonBlob.clear();
|
configJsonBlob.clear();
|
||||||
@@ -434,7 +462,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function wigetsUpdate() {
|
function wigetsUpdate() {
|
||||||
wigets = JSON.parse(document.getElementById("text1").value);
|
//wigets = JSON.parse(document.getElementById("text1").value);
|
||||||
findNewPage();
|
findNewPage();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -730,7 +758,7 @@
|
|||||||
{/each}
|
{/each}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<button class="btn-lg" on:click={() => sendConfigJson()}>{"Сохранить"}</button>
|
<button class="btn-lg" on:click={() => saveConfig()}>{"Сохранить"}</button>
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
</Route>
|
</Route>
|
||||||
|
|||||||
Reference in New Issue
Block a user