mirror of
https://github.com/IoTManagerProject/IoTManagerWeb.git
synced 2026-03-26 15:02:21 +03:00
ghjdthrf
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
//});
|
//});
|
||||||
|
|
||||||
import Card from "./components/Card.svelte";
|
import Card from "./components/Card.svelte";
|
||||||
|
import Alarm from "./components/Alarm.svelte";
|
||||||
import Modal from "./components/Modal.svelte";
|
import Modal from "./components/Modal.svelte";
|
||||||
import Input from "./widgets/Input.svelte";
|
import Input from "./widgets/Input.svelte";
|
||||||
import Toggle from "./widgets/Toggle.svelte";
|
import Toggle from "./widgets/Toggle.svelte";
|
||||||
@@ -97,8 +98,8 @@
|
|||||||
{
|
{
|
||||||
name: "Устройство 1",
|
name: "Устройство 1",
|
||||||
id: "987654321",
|
id: "987654321",
|
||||||
ip: myip,
|
//ip: myip,
|
||||||
//ip: "192.168.8.196",
|
ip: "192.168.88.235",
|
||||||
status: false,
|
status: false,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
@@ -234,7 +235,7 @@
|
|||||||
socket[ws].addEventListener("message", function (event) {
|
socket[ws].addEventListener("message", function (event) {
|
||||||
if (typeof event.data === "string") {
|
if (typeof event.data === "string") {
|
||||||
let data = event.data;
|
let data = event.data;
|
||||||
//if (debug) console.log("[i]", getIP(ws), "msg received", data);//
|
if (debug) console.log("[i]", getIP(ws), "msg received", data); //
|
||||||
//сборщик statusJson сообщений======================================
|
//сборщик statusJson сообщений======================================
|
||||||
if (data.includes("status")) {
|
if (data.includes("status")) {
|
||||||
if (IsJsonParse(data)) {
|
if (IsJsonParse(data)) {
|
||||||
@@ -963,7 +964,12 @@
|
|||||||
<input bind:value={settingsJson.routerpass} class="wgt-ipt text-left focus:border-indigo-500" type="text" />
|
<input bind:value={settingsJson.routerpass} class="wgt-ipt text-left focus:border-indigo-500" type="text" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button class="btn-lg" on:click={() => saveSettings()}>{"Сохранить"}</button>
|
{#if settingsJson.pass_status === 1}
|
||||||
|
<div class="grd-1cols">
|
||||||
|
<Alarm title="Введен неправильный пароль" />
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
<button class="btn-lg" on:click={() => saveSettings()}>{"Сохранить и перезагрузить"}</button>
|
||||||
</Card>
|
</Card>
|
||||||
<Card title="Подключение к MQTT брокеру">
|
<Card title="Подключение к MQTT брокеру">
|
||||||
<div class="crd-itm-psn">
|
<div class="crd-itm-psn">
|
||||||
@@ -1006,7 +1012,7 @@
|
|||||||
<input bind:value={settingsJson.mqttPass} class="wgt-ipt text-left focus:border-indigo-500" type="text" />
|
<input bind:value={settingsJson.mqttPass} class="wgt-ipt text-left focus:border-indigo-500" type="text" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button class="btn-lg" on:click={() => saveSettings()}>{"Сохранить"}</button>
|
<button class="btn-lg" on:click={() => saveSettings()}>{"Сохранить и проверить подключение"}</button>
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
</Route>
|
</Route>
|
||||||
@@ -1085,14 +1091,6 @@
|
|||||||
@apply grid grid-cols-1 justify-items-center;
|
@apply grid grid-cols-1 justify-items-center;
|
||||||
}
|
}
|
||||||
/*=============================================card and items inside===============================================*/
|
/*=============================================card and items inside===============================================*/
|
||||||
/* 1. paddig and style for card */
|
|
||||||
.crd {
|
|
||||||
@apply w-full p-2 sm:p-2 md:p-2 lg:p-2 xl:px-8 xl:py-4 2xl:px-8 2xl:py-4 bg-white rounded-lg shadow-md lg:shadow-lg border border-gray-100;
|
|
||||||
}
|
|
||||||
/* 2. style for card header */
|
|
||||||
.crd-hdr {
|
|
||||||
@apply text-center text-lg text-gray-500 font-bold pb-4;
|
|
||||||
}
|
|
||||||
/* 3. card items positioning*/
|
/* 3. card items positioning*/
|
||||||
.crd-itm-psn {
|
.crd-itm-psn {
|
||||||
@apply flex mb-3 h-8 items-center;
|
@apply flex mb-3 h-8 items-center;
|
||||||
|
|||||||
109
src/Connection.svelte
Normal file
109
src/Connection.svelte
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
<script>
|
||||||
|
import Card from "./components/Card.svelte";
|
||||||
|
import Alarm from "./components/Alarm.svelte";
|
||||||
|
export let settingsJson;
|
||||||
|
export let ssidJson;
|
||||||
|
|
||||||
|
export let ssidDropdownClick = () => {};
|
||||||
|
export let saveSettings = () => {};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="grd-2cols">
|
||||||
|
<Card title="Подключение к WiFi роутеру">
|
||||||
|
<div class="crd-itm-psn">
|
||||||
|
<div class="wgt-dscr-w">
|
||||||
|
<p class="wgt-dscr-stl">Название устройства</p>
|
||||||
|
</div>
|
||||||
|
<div class="wgt-w">
|
||||||
|
<input bind:value={settingsJson.name} class="wgt-ipt text-left focus:border-indigo-500" type="text" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="crd-itm-psn">
|
||||||
|
<div class="wgt-dscr-w">
|
||||||
|
<p class="wgt-dscr-stl">Точка доступа</p>
|
||||||
|
</div>
|
||||||
|
<div class="wgt-w">
|
||||||
|
<input bind:value={settingsJson.apssid} class="wgt-ipt text-left focus:border-indigo-500" type="text" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="crd-itm-psn">
|
||||||
|
<div class="wgt-dscr-w">
|
||||||
|
<p class="wgt-dscr-stl">Пароль точки доступа</p>
|
||||||
|
</div>
|
||||||
|
<div class="wgt-w">
|
||||||
|
<input bind:value={settingsJson.appass} class="wgt-ipt text-left focus:border-indigo-500" type="text" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="crd-itm-psn">
|
||||||
|
<div class="wgt-dscr-w">
|
||||||
|
<p class="wgt-dscr-stl">Название wifi сети</p>
|
||||||
|
</div>
|
||||||
|
<div class="wgt-w">
|
||||||
|
<select class="wgt-ipt text-left focus:border-indigo-500" bind:value={settingsJson.routerssid} on:click={() => ssidDropdownClick()}>
|
||||||
|
{#each Object.entries(ssidJson) as [num, ssid]}
|
||||||
|
<option value={ssid}>
|
||||||
|
{ssid}
|
||||||
|
</option>
|
||||||
|
{/each}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="crd-itm-psn">
|
||||||
|
<div class="wgt-dscr-w">
|
||||||
|
<p class="wgt-dscr-stl">Пароль</p>
|
||||||
|
</div>
|
||||||
|
<div class="wgt-w">
|
||||||
|
<input bind:value={settingsJson.routerpass} class="wgt-ipt text-left focus:border-indigo-500" type="text" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{#if settingsJson.pass_status === 1}
|
||||||
|
<div class="grd-1cols">
|
||||||
|
<Alarm title="Введен неправильный пароль" />
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
<button class="btn-lg" on:click={() => saveSettings()}>{"Сохранить и перезагрузить"}</button>
|
||||||
|
</Card>
|
||||||
|
<Card title="Подключение к MQTT брокеру">
|
||||||
|
<div class="crd-itm-psn">
|
||||||
|
<div class="wgt-dscr-w">
|
||||||
|
<p class="wgt-dscr-stl">Название сервера</p>
|
||||||
|
</div>
|
||||||
|
<div class="wgt-w">
|
||||||
|
<input bind:value={settingsJson.mqttServer} class="wgt-ipt text-left focus:border-indigo-500" type="text" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="crd-itm-psn">
|
||||||
|
<div class="wgt-dscr-w">
|
||||||
|
<p class="wgt-dscr-stl">Порт</p>
|
||||||
|
</div>
|
||||||
|
<div class="wgt-w">
|
||||||
|
<input bind:value={settingsJson.mqttPort} class="wgt-ipt text-left focus:border-indigo-500" type="text" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="crd-itm-psn">
|
||||||
|
<div class="wgt-dscr-w">
|
||||||
|
<p class="wgt-dscr-stl">Префикс</p>
|
||||||
|
</div>
|
||||||
|
<div class="wgt-w">
|
||||||
|
<input bind:value={settingsJson.mqttPrefix} class="wgt-ipt text-left focus:border-indigo-500" type="text" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="crd-itm-psn">
|
||||||
|
<div class="wgt-dscr-w">
|
||||||
|
<p class="wgt-dscr-stl">Имя пользователя</p>
|
||||||
|
</div>
|
||||||
|
<div class="wgt-w">
|
||||||
|
<input bind:value={settingsJson.mqttUser} class="wgt-ipt text-left focus:border-indigo-500" type="text" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="crd-itm-psn">
|
||||||
|
<div class="wgt-dscr-w">
|
||||||
|
<p class="wgt-dscr-stl">Пароль</p>
|
||||||
|
</div>
|
||||||
|
<div class="wgt-w">
|
||||||
|
<input bind:value={settingsJson.mqttPass} class="wgt-ipt text-left focus:border-indigo-500" type="text" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<button class="btn-lg" on:click={() => saveSettings()}>{"Сохранить и проверить подключение"}</button>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
25
src/components/Alarm.svelte
Normal file
25
src/components/Alarm.svelte
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<script>
|
||||||
|
export let title;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="alm">
|
||||||
|
{#if title}
|
||||||
|
<h1 class="alm-hdr">{title}</h1>
|
||||||
|
{/if}
|
||||||
|
<slot />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style lang="postcss" global>
|
||||||
|
@tailwind base;
|
||||||
|
@tailwind components;
|
||||||
|
@tailwind utilities;
|
||||||
|
|
||||||
|
@layer components {
|
||||||
|
.alm-hdr {
|
||||||
|
@apply text-center text-base text-gray-500 font-bold pb-0;
|
||||||
|
}
|
||||||
|
.alm {
|
||||||
|
@apply mb-4 w-full p-2 sm:p-2 md:p-2 lg:p-2 xl:px-4 xl:py-2 2xl:px-4 2xl:py-2 bg-red-100 shadow-md lg:shadow-lg border border-gray-300 rounded;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -8,3 +8,18 @@
|
|||||||
{/if}
|
{/if}
|
||||||
<slot />
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<style lang="postcss" global>
|
||||||
|
@tailwind base;
|
||||||
|
@tailwind components;
|
||||||
|
@tailwind utilities;
|
||||||
|
|
||||||
|
@layer components {
|
||||||
|
.crd {
|
||||||
|
@apply w-full p-2 sm:p-2 md:p-2 lg:p-2 xl:px-8 xl:py-4 2xl:px-8 2xl:py-4 bg-white rounded-lg shadow-md lg:shadow-lg border border-gray-100;
|
||||||
|
}
|
||||||
|
.crd-hdr {
|
||||||
|
@apply text-center text-lg text-gray-500 font-bold pb-4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user