DmitrMakeev commited on
Commit
f6393b2
·
verified ·
1 Parent(s): d94390e

Update nutri_call.html

Browse files
Files changed (1) hide show
  1. nutri_call.html +21 -13
nutri_call.html CHANGED
@@ -1184,6 +1184,7 @@ function calculateAndUpdate(data) {
1184
 
1185
  function calculateCationsAndAnions() {
1186
  console.log("=== ДИНАМИЧЕСКИЙ РАСЧЕТ КАТИОНОВ И АНИОНОВ ===");
 
1187
  // 1. Получаем текущие значения из формы
1188
  const getValue = (id) => parseFloat(document.getElementById(id).value) || 0;
1189
  const profile = {
@@ -1193,9 +1194,10 @@ function calculateCationsAndAnions() {
1193
  'K': getValue('profile_k'),
1194
  'Ca': getValue('profile_ca'),
1195
  'Mg': getValue('profile_mg'),
1196
- 'S': getValue('profile_s'),
1197
- 'Cl': getValue('profile_cacl') * 0.32366 / 0.18294 // Пересчет CaCl2 в Cl
1198
  };
 
1199
  // 2. Константы из вашей формы (упрощенные)
1200
  const FERTILIZER_CONSTANTS = {
1201
  'Кальциевая селитра': { 'N (NO3-)': 0.11863, 'Ca': 0.16972 },
@@ -1203,9 +1205,10 @@ function calculateCationsAndAnions() {
1203
  'Аммоний азотнокислый': { 'N (NO3-)': 0.17499, 'N (NH4+)': 0.17499 },
1204
  'Сульфат магния': { 'Mg': 0.10220, 'S': 0.13483 },
1205
  'Монофосфат калия': { 'P': 0.22761, 'K': 0.28731 },
1206
- 'Калий сернокислый': { 'K': 0.44874, 'S': 0.18401 },
1207
- 'Кальций хлорид': { 'Ca': 0.18294, 'Cl': 0.32366 }
1208
  };
 
1209
  // 3. Молярные массы и валентности
1210
  const ION_DATA = {
1211
  'Ca': { mass: 40.08, charge: 2 },
@@ -1214,11 +1217,13 @@ function calculateCationsAndAnions() {
1214
  'NH4': { mass: 18.038, charge: 1 },
1215
  'NO3': { mass: 62.004, charge: 1 },
1216
  'SO4': { mass: 96.06, charge: 2 },
1217
- 'H2PO4': { mass: 96.99, charge: 1 },
1218
- 'Cl': { mass: 35.453, charge: 1 }
1219
  };
 
1220
  // 4. Пересчет серы (S → SO4²⁻)
1221
  const so4 = profile['S'] * (96.06 / 32.06);
 
1222
  // 5. Расчет mEq/L для каждого иона
1223
  const ions = {
1224
  'Ca': profile['Ca'] * ION_DATA['Ca'].charge / ION_DATA['Ca'].mass,
@@ -1227,33 +1232,36 @@ function calculateCationsAndAnions() {
1227
  'NH4': profile['N (NH4+)'] * ION_DATA['NH4'].charge / ION_DATA['NH4'].mass,
1228
  'NO3': profile['N (NO3-)'] * ION_DATA['NO3'].charge / ION_DATA['NO3'].mass,
1229
  'SO4': so4 * ION_DATA['SO4'].charge / ION_DATA['SO4'].mass,
1230
- 'H2PO4': profile['P'] * ION_DATA['H2PO4'].charge / ION_DATA['H2PO4'].mass,
1231
- 'Cl': profile['Cl'] * ION_DATA['Cl'].charge / ION_DATA['Cl'].mass
1232
  };
 
1233
  // 6. Суммирование
1234
  const totalCations = ions['Ca'] + ions['Mg'] + ions['K'] + ions['NH4'];
1235
- const totalAnions = ions['NO3'] + ions['SO4'] + ions['H2PO4'] + ions['Cl'];
 
 
1236
  // 7. Расчет процентов
1237
  const total = totalCations + totalAnions;
1238
  const cationPercent = total > 0 ? (totalCations / total * 100).toFixed(1) : 0;
1239
  const anionPercent = total > 0 ? (totalAnions / total * 100).toFixed(1) : 0;
 
1240
  // 8. Вывод результатов
1241
  console.log(`Катионы: ${totalCations.toFixed(2)} mEq/L (${cationPercent}%)`);
1242
  console.log(`Анионы: ${totalAnions.toFixed(2)} mEq/L (${anionPercent}%)`);
1243
  console.log(`Дисбаланс: ${(totalCations - totalAnions).toFixed(2)} mEq/L`);
 
1244
  // 9. Обновление UI
1245
  document.getElementById("n1-value").textContent =
1246
  `Катионы: ${totalCations.toFixed(2)} mEq/L | Анионы: ${totalAnions.toFixed(2)} mEq/L`;
1247
-
1248
- // Обновление ширины индикаторов
1249
  document.getElementById("cation-indicator").style.width = `${cationPercent}%`;
1250
  document.getElementById("anion-indicator").style.width = `${anionPercent}%`;
1251
  }
1252
 
1253
 
1254
 
1255
-
1256
-
1257
 
1258
 
1259
 
 
1184
 
1185
  function calculateCationsAndAnions() {
1186
  console.log("=== ДИНАМИЧЕСКИЙ РАСЧЕТ КАТИОНОВ И АНИОНОВ ===");
1187
+
1188
  // 1. Получаем текущие значения из формы
1189
  const getValue = (id) => parseFloat(document.getElementById(id).value) || 0;
1190
  const profile = {
 
1194
  'K': getValue('profile_k'),
1195
  'Ca': getValue('profile_ca'),
1196
  'Mg': getValue('profile_mg'),
1197
+ 'S': getValue('profile_s')
1198
+ // Убрали 'Cl', так как больше не учитываем кальций хлористый
1199
  };
1200
+
1201
  // 2. Константы из вашей формы (упрощенные)
1202
  const FERTILIZER_CONSTANTS = {
1203
  'Кальциевая селитра': { 'N (NO3-)': 0.11863, 'Ca': 0.16972 },
 
1205
  'Аммоний азотнокислый': { 'N (NO3-)': 0.17499, 'N (NH4+)': 0.17499 },
1206
  'Сульфат магния': { 'Mg': 0.10220, 'S': 0.13483 },
1207
  'Монофосфат калия': { 'P': 0.22761, 'K': 0.28731 },
1208
+ 'Калий сернокислый': { 'K': 0.44874, 'S': 0.18401 }
1209
+ // Убрали 'Кальций хлорид'
1210
  };
1211
+
1212
  // 3. Молярные массы и валентности
1213
  const ION_DATA = {
1214
  'Ca': { mass: 40.08, charge: 2 },
 
1217
  'NH4': { mass: 18.038, charge: 1 },
1218
  'NO3': { mass: 62.004, charge: 1 },
1219
  'SO4': { mass: 96.06, charge: 2 },
1220
+ 'H2PO4': { mass: 96.99, charge: 1 }
1221
+ // Убрали 'Cl', так как больше не учитываем хлор
1222
  };
1223
+
1224
  // 4. Пересчет серы (S → SO4²⁻)
1225
  const so4 = profile['S'] * (96.06 / 32.06);
1226
+
1227
  // 5. Расчет mEq/L для каждого иона
1228
  const ions = {
1229
  'Ca': profile['Ca'] * ION_DATA['Ca'].charge / ION_DATA['Ca'].mass,
 
1232
  'NH4': profile['N (NH4+)'] * ION_DATA['NH4'].charge / ION_DATA['NH4'].mass,
1233
  'NO3': profile['N (NO3-)'] * ION_DATA['NO3'].charge / ION_DATA['NO3'].mass,
1234
  'SO4': so4 * ION_DATA['SO4'].charge / ION_DATA['SO4'].mass,
1235
+ 'H2PO4': profile['P'] * ION_DATA['H2PO4'].charge / ION_DATA['H2PO4'].mass
1236
+ // Убрали 'Cl', так как больше не учитываем хлор
1237
  };
1238
+
1239
  // 6. Суммирование
1240
  const totalCations = ions['Ca'] + ions['Mg'] + ions['K'] + ions['NH4'];
1241
+ const totalAnions = ions['NO3'] + ions['SO4'] + ions['H2PO4'];
1242
+ // Убрали 'Cl' из суммы анионов
1243
+
1244
  // 7. Расчет процентов
1245
  const total = totalCations + totalAnions;
1246
  const cationPercent = total > 0 ? (totalCations / total * 100).toFixed(1) : 0;
1247
  const anionPercent = total > 0 ? (totalAnions / total * 100).toFixed(1) : 0;
1248
+
1249
  // 8. Вывод результатов
1250
  console.log(`Катионы: ${totalCations.toFixed(2)} mEq/L (${cationPercent}%)`);
1251
  console.log(`Анионы: ${totalAnions.toFixed(2)} mEq/L (${anionPercent}%)`);
1252
  console.log(`Дисбаланс: ${(totalCations - totalAnions).toFixed(2)} mEq/L`);
1253
+
1254
  // 9. Обновление UI
1255
  document.getElementById("n1-value").textContent =
1256
  `Катионы: ${totalCations.toFixed(2)} mEq/L | Анионы: ${totalAnions.toFixed(2)} mEq/L`;
1257
+
1258
+ // Обновление ширины индикаторов
1259
  document.getElementById("cation-indicator").style.width = `${cationPercent}%`;
1260
  document.getElementById("anion-indicator").style.width = `${anionPercent}%`;
1261
  }
1262
 
1263
 
1264
 
 
 
1265
 
1266
 
1267