DmitrMakeev commited on
Commit
93ac351
·
verified ·
1 Parent(s): 8036977

Update nutri_call.html

Browse files
Files changed (1) hide show
  1. nutri_call.html +80 -41
nutri_call.html CHANGED
@@ -610,7 +610,18 @@ legend {
610
  <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/toastify-js"></script>
611
  <script>
612
  let call_data;
613
-
 
 
 
 
 
 
 
 
 
 
 
614
  document.getElementById('calculate-btn').addEventListener('click', function() {
615
  console.log("=== НАЧАЛО ОБРАБОТКИ ===");
616
 
@@ -730,50 +741,53 @@ document.getElementById('calculate-btn').addEventListener('click', function() {
730
  headers: {
731
  'Content-Type': 'application/json',
732
  },
733
- body: JSON.stringify(requestData)
734
- })
735
- .then(response => {
736
- console.log("Получен ответ от сервера. Статус:", response.status);
737
-
738
- if (!response.ok) {
739
- console.error("ОШИБКА СЕРВЕРА. Полный ответ:", response);
740
- throw new Error(`HTTP error! status: ${response.status}`);
741
- }
742
- return response.json();
743
  })
744
- .then(data => {
745
- call_data = data;
746
- console.log("=== УСПЕШНЫЙ ОТВЕТ ОТ СЕРВЕРА ===", call_data);
747
-
748
- // Выводим данные в форму
749
- data_out(call_data);
750
-
751
- // Показываем статус расчёта
752
- showCalculationStatus(call_data); // <-- Вот эта строка запуска
753
 
754
- // Обновляем поля NH4 и NO3
755
- updateNitrogenFields(call_data); // <-- Добавляем вызов функции
 
 
 
 
 
 
 
756
 
757
- // Обновляем значения NPK
758
- updateNPK(call_data); // <-- Добавляем вызов функции
759
 
760
- // Проверяем, применилась ли точность округления
761
- console.log("Проверка округления в ответе:");
762
- if (data.fertilizers) {
763
- Object.entries(data.fertilizers).forEach(([name, values]) => {
764
- console.log(`Удобрение ${name}:`, values);
765
- });
766
- }
767
-
768
- // Здесь можно добавить обработку ответа
769
- })
770
- .catch(error => {
771
- console.error("=== ОШИБКА ПРИ ОБРАБОТКЕ ===", error);
772
- alert("Ошибка при расчете: " + error.message);
773
- })
774
- .finally(() => {
775
- console.log("=== ЗАВЕРШЕНИЕ ОБРАБОТКИ ===");
776
- });
 
 
 
 
 
 
 
 
 
 
 
 
777
  });
778
 
779
 
@@ -822,7 +836,32 @@ function data_out(response) {
822
 
823
 
824
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
825
 
 
 
 
 
 
 
 
 
826
 
827
  // Функция для расчета соотношения NPK
828
  function updateNPK(data) {
 
610
  <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/toastify-js"></script>
611
  <script>
612
  let call_data;
613
+ const ecConstants = {
614
+ "Ca": 0.05, // Коэффициент для кальция
615
+ "K": 0.07, // Коэффициент для калия
616
+ "Mg": 0.06, // Коэффициент для магния
617
+ "P": 0.1, // Коэффициент для фосфора
618
+ "S": 0.08, // Коэффициент для серы
619
+ "N (NO3-)": 0.09, // Коэффициент для нитратов
620
+ "N (NH4+)": 0.08, // Коэффициент для аммония
621
+ "Fe": 0.04, // Коэффициент для железа (если добавляется позже)
622
+ "Zn": 0.03, // Коэффициент для цинка (если добавляется позже)
623
+ // Добавьте другие элементы по необходимости
624
+ };
625
  document.getElementById('calculate-btn').addEventListener('click', function() {
626
  console.log("=== НАЧАЛО ОБРАБОТКИ ===");
627
 
 
741
  headers: {
742
  'Content-Type': 'application/json',
743
  },
744
+ body: JSON.stringify(requestData),
 
 
 
 
 
 
 
 
 
745
  })
746
+ .then(response => {
747
+ console.log("Получен ответ от сервера. Статус:", response.status);
 
 
 
 
 
 
 
748
 
749
+ if (!response.ok) {
750
+ console.error("ОШИБКА СЕРВЕРА. Полный ответ:", response);
751
+ throw new Error(`HTTP error! status: ${response.status}`);
752
+ }
753
+ return response.json();
754
+ })
755
+ .then(data => {
756
+ call_data = data;
757
+ console.log("=== УСПЕШНЫЙ ОТВЕТ ОТ СЕРВЕРА ===", call_data);
758
 
759
+ // Выводим данные в форму
760
+ data_out(call_data);
761
 
762
+ // Показываем статус расчёта
763
+ showCalculationStatus(call_data);
764
+
765
+ // Обновляем поля NH4 и NO3
766
+ updateNitrogenFields(call_data);
767
+
768
+ // Обновляем значения NPK
769
+ updateNPK(call_data);
770
+
771
+ // Получаем температуру из формы
772
+ const temperature = parseFloat(document.getElementById('profile_temp').value) || 25;
773
+
774
+ // Рассчитываем EC
775
+ const ecValue = calculateEC(call_data, temperature);
776
+
777
+ // Обновляем поле EC
778
+ const ecInput = document.getElementById('profile_ec');
779
+ if (ecInput) {
780
+ ecInput.value = ecValue.toFixed(2);
781
+ console.log(`Установлено значение EC: ${ecValue.toFixed(2)}`);
782
+ }
783
+ })
784
+ .catch(error => {
785
+ console.error("=== ОШИБКА ПРИ ОБРАБОТКЕ ===", error);
786
+ alert("Ошибка при расчете: " + error.message);
787
+ })
788
+ .finally(() => {
789
+ console.log("=== ЗАВЕРШЕНИЕ ОБРАБОТКИ ===");
790
+ });
791
  });
792
 
793
 
 
836
 
837
 
838
 
839
+ function calculateEC(data, temperature) {
840
+ console.log("=== РАСЧЕТ ЭЛЕКТРОПРОВОДНОСТИ (EC) ===");
841
+
842
+ // Извлекаем значения элементов из actual_profile
843
+ const profile = data.actual_profile;
844
+ let totalEC = 0;
845
+
846
+ // Суммируем EC для каждого элемента
847
+ for (const [element, ppm] of Object.entries(profile)) {
848
+ if (ecConstants[element]) {
849
+ const elementEC = ppm * ecConstants[element];
850
+ totalEC += elementEC;
851
+ console.log(`EC для ${element}: ${elementEC.toFixed(3)} (ppm=${ppm}, const=${ecConstants[element]})`);
852
+ } else {
853
+ console.warn(`Константа для элемента ${element} не найдена.`);
854
+ }
855
+ }
856
 
857
+ console.log(`Общая EC без компенсации: ${totalEC.toFixed(3)}`);
858
+
859
+ // Применяем температурную компенсацию
860
+ const compensatedEC = totalEC * (1 + 0.02 * (temperature - 25));
861
+ console.log(`Компенсированная EC: ${compensatedEC.toFixed(3)} (при температуре ${temperature}°C)`);
862
+
863
+ return compensatedEC;
864
+ }
865
 
866
  // Функция для расчета соотношения NPK
867
  function updateNPK(data) {