DmitrMakeev commited on
Commit
8aed613
·
verified ·
1 Parent(s): 9f6adde

Update plot_week.html

Browse files
Files changed (1) hide show
  1. plot_week.html +67 -41
plot_week.html CHANGED
@@ -102,52 +102,78 @@ body {
102
  <body>
103
  <div id="protection-overlay"></div> <!-- Полупрозрачный фон -->
104
  <script>
105
- document.addEventListener("DOMContentLoaded", function () {
106
- const overlay = document.getElementById("protection-overlay");
107
- let pageKey = localStorage.getItem("page_key");
108
- // Функция проверки ключа
109
- function checkApiKey(apiKey) {
110
- fetch(`/page_key?api_sys=${apiKey}`)
111
- .then(response => response.json())
112
- .then(data => {
113
- if (data.status === "ok") {
114
- overlay.style.display = "none"; // ✅ Убираем защиту
115
- } else {
116
- requestNewKey("Неверный код. Введите заново!");
117
- }
118
- })
119
- .catch(() => requestNewKey("Ошибка сервера. Попробуйте снова."));
120
- }
121
- // Функция запроса нового ключа
122
- function requestNewKey(message = "Введите код доступа:") {
123
- Swal.fire({
124
- title: "Внимание!",
125
- text: message,
126
- input: "text",
127
- inputAttributes: { autocapitalize: "off" },
128
- showCancelButton: false,
129
- confirmButtonText: "Отправить",
130
- confirmButtonColor: "#4CAF50",
131
- allowOutsideClick: false
132
- }).then((result) => {
133
- if (result.isConfirmed && result.value) {
134
- localStorage.setItem("page_key", result.value); // 🔥 Сохраняем ключ
135
- checkApiKey(result.value); // 🔥 Проверяем ключ
136
- } else {
137
- requestNewKey("Введите корректный код!"); // Повторяем ввод
138
- }
139
  });
140
  }
141
- // Если ключ есть → Проверяем его, иначе запрашиваем новый
142
- if (pageKey) {
143
- checkApiKey(pageKey);
144
- } else {
145
- requestNewKey();
146
- }
147
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  </script>
149
 
150
 
 
151
  <!-- Навигационная панель -->
152
  <nav class="navbar navbar-light bg-light w-100">
153
  <div class="container">
 
102
  <body>
103
  <div id="protection-overlay"></div> <!-- Полупрозрачный фон -->
104
  <script>
105
+ const data = {{ data | tojson }};
106
+
107
+ function createChart(id, yData, title, yLabel, color, parameterName, unit) {
108
+ Plotly.newPlot(id, [{
109
+ x: data.dates,
110
+ y: yData,
111
+ type: "scatter",
112
+ mode: "lines+markers",
113
+ line: { color: color },
114
+ hovertemplate: data.days_of_week.map((day, index) =>
115
+ `Неделя: ${data.week}<br>День: ${day}<br>Время системы: ${data.sus[index]}<br>${parameterName}: %{y} ${unit}<br>Дата: ${data.dates[index]}<extra></extra>`
116
+ )
117
+ }], {
118
+ title: title,
119
+ xaxis: { title: "", showticklabels: false },
120
+ yaxis: { title: yLabel, titlefont: { size: 14 } },
121
+ hovermode: "closest",
122
+ showlegend: false
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
  });
124
  }
125
+
126
+ // Создание графиков с правильными подсказками
127
+ createChart("ph_chart", data.ph, `График pH за ${data.week}-ю неделю`, "Уровень pH", "blue", "pH", "");
128
+ createChart("ec_chart", data.ec, `График EC за ${data.week} неделю`, "Уровень EC", "blue", "EC", "мкСм/см");
129
+ createChart("ts_chart", data.tS, `Температура раствора за ${data.week}-ю неделю`, "Температура (°C)", "purple", "Температура раствора", "°C");
130
+ createChart("ta_chart", data.tA, `Температура воздуха за ${data.week}-ю неделю`, "Температура (°C)", "purple", "Температура воздуха", "°C");
131
+ createChart("hdm_chart", data.hDm, `Влажность воздуха за ${data.week}-ю неделю`, "Влажность (%)", "purple", "Влажность воздуха", "%");
132
+ createChart("sven_chart", data.sVen, `Обороты вентилятора за ${data.week}-ю неделю`, "Обороты (%)", "purple", "Обороты вентилятора", "%");
133
+
134
+ // График насосов
135
+ Plotly.newPlot("pump_chart", [
136
+ {
137
+ x: data.dates,
138
+ y: data.onA,
139
+ type: "scatter",
140
+ mode: "lines+markers",
141
+ line: { color: "green" },
142
+ hovertemplate: data.days_of_week.map((day, index) =>
143
+ `Неделя: ${data.week}<br>День: ${day}<br>Время системы: ${data.sus[index]}<br>Насос A: %{y} сек.<br>Дата: ${data.dates[index]}<extra></extra>`
144
+ )
145
+ },
146
+ {
147
+ x: data.dates,
148
+ y: data.onB,
149
+ type: "scatter",
150
+ mode: "lines+markers",
151
+ line: { color: "brown" },
152
+ hovertemplate: data.days_of_week.map((day, index) =>
153
+ `Неделя: ${data.week}<br>День: ${day}<br>Время системы: ${data.sus[index]}<br>Насос B: %{y} сек.<br>Дата: ${data.dates[index]}<extra></extra>`
154
+ )
155
+ },
156
+ {
157
+ x: data.dates,
158
+ y: data.onC,
159
+ type: "scatter",
160
+ mode: "lines+markers",
161
+ line: { color: "orange" },
162
+ hovertemplate: data.days_of_week.map((day, index) =>
163
+ `Неделя: ${data.week}<br>День: ${day}<br>Время системы: ${data.sus[index]}<br>Насос C: %{y} сек.<br>Дата: ${data.dates[index]}<extra></extra>`
164
+ )
165
+ }
166
+ ], {
167
+ title: `Интервал дозирования насосов для ${data.week}-ой недели`,
168
+ xaxis: { title: "", showticklabels: false },
169
+ yaxis: { title: "Время ВКЛ(сек.)" },
170
+ hovermode: "closest",
171
+ showlegend: false
172
+ });
173
  </script>
174
 
175
 
176
+
177
  <!-- Навигационная панель -->
178
  <nav class="navbar navbar-light bg-light w-100">
179
  <div class="container">