diff --git a/src/App.vue b/src/App.vue
index b1f3af1..a043328 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -3,53 +3,78 @@ import { onMounted, ref, watch } from "vue";
import My_naw from "./components/My_naw.vue";
import Section from "./components/Section.vue";
import Setings from "./components/Setings.vue";
+import Status from "./components/Status.vue";
import Authe from "./components/Authe.vue";
import axios from "axios";
+
+// Инициализация темы при загрузке приложения
+onMounted(() => {
+ const savedTheme = localStorage.getItem("theme");
+ if (savedTheme === "dark") {
+ document.documentElement.classList.add("dark");
+ } else if (savedTheme === "light") {
+ document.documentElement.classList.remove("dark");
+ } else {
+ // Проверяем системные настройки
+ if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
+ document.documentElement.classList.add("dark");
+ }
+ }
+});
+
// Состояния страницы и данные для входа
const currentPage = ref("admin-panel");
const items = ref([]);
+const items_status = ref([]);
// Универсальная функция для получения данных
const fetchData = async (url, targetRef) => {
try {
- const { data } = await axios.get(url)
- targetRef.value = data
+ const { data } = await axios.get(url);
+ targetRef.value = data;
} catch (err) {
- console.error(`Ошибка при получении данных с ${url}:`, err)
+ console.error(`Ошибка при получении данных с ${url}:`, err);
}
-}
-
+};
// Обертки для вызова
-const loadItems = () => fetchData("http://45.129.78.228:8002/records_all", items) //http://127.0.0.1:8002/records_all http://45.129.78.228:8002/records_all
+const loadItems = () =>
+ fetchData("http://45.129.78.228:8002/records_all", items); //http://127.0.0.1:8002/records_all http://45.129.78.228:8002/records_all
+const loadItems_status = () =>
+ fetchData("http://127.0.0.1:8002/records_all_status", items_status);
onMounted(() => {
- loadItems()
-})
+ (loadItems(), loadItems_status());
+});
-watch(items, loadItems)
+watch(items, loadItems);
+watch(items_status, loadItems_status);
function handleUpdate(newValue) {
currentPage.value = newValue; // изменение значения в родителе
}
-
-
+
-
-
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/main.css b/src/assets/main.css
index b2b3ede..c52ef8d 100644
--- a/src/assets/main.css
+++ b/src/assets/main.css
@@ -1,16 +1,14 @@
@import "tailwindcss";
-/* Для темной темы */
-@media (prefers-color-scheme: dark) {
- body {
- background: #111;
- /* другие стили для темной темы */
- }
+/* Включение dark mode через класс в Tailwind v4 */
+@custom-variant dark (&:where(.dark, .dark *));
+
+/* Базовые стили для светлой темы */
+body {
+ background-color: #f3f4f6;
}
-/* Для светлой темы (по умолчанию или явно) */
-@media (prefers-color-scheme: light) {
- body {
- background: #ccc; /* или любой другой цвет */
- }
-}
\ No newline at end of file
+/* Базовые стили для темной темы */
+.dark body {
+ background-color: #111827;
+}
diff --git a/src/components/My_naw.vue b/src/components/My_naw.vue
index 63a26a2..bf322ce 100644
--- a/src/components/My_naw.vue
+++ b/src/components/My_naw.vue
@@ -1,5 +1,8 @@