DmitrMakeev commited on
Commit
0b6bc0c
·
verified ·
1 Parent(s): 2ea87f5

Update nutri_call.html

Browse files
Files changed (1) hide show
  1. nutri_call.html +345 -35
nutri_call.html CHANGED
@@ -324,51 +324,355 @@
324
  </fieldset>
325
 
326
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
327
  <script>
328
  document.getElementById('calculate-btn').addEventListener('click', function() {
329
  // Получение значений с проверкой
330
  const getValue = (id) => {
331
- const val = parseFloat(document.getElementById(id)?.value);
 
 
 
 
 
332
  return isNaN(val) ? 0 : val;
333
  };
334
 
335
  // Формирование данных для сервера
336
  const requestData = {
337
  fertilizerConstants: {
338
- "Кальциевая селитра": {
339
- "N (NO3-)": getValue('fert_ca_no3') / 100,
340
- "Ca": getValue('fert_ca_ca') / 100
341
  },
342
- "Калий азотнокислый": {
343
- "N (NO3-)": getValue('fert_kno3_no3') / 100,
344
- "K": getValue('fert_kno3_k') / 100
345
  },
346
- "Аммоний азотнокислый": {
347
- "N (NO3-)": getValue('fert_nh4no3_no3') / 100,
348
- "N (NH4+)": getValue('fert_nh4no3_nh4') / 100
349
  },
350
- "Сульфат магния": {
351
- "Mg": getValue('fert_mgso4_mg') / 100,
352
- "S": getValue('fert_mgso4_s') / 100
353
  },
354
- "Монофосфат калия": {
355
- "P": getValue('fert_kh2po4_p') / 100,
356
- "K": getValue('fert_kh2po4_k') / 100
357
  },
358
- "Калий сернокислый": {
359
- "K": getValue('fert_k2so4_k') / 100,
360
- "S": getValue('fert_k2so4_s') / 100
361
  }
362
  },
363
  profileSettings: {
364
- 'P': getValue('profile_k'),
365
- 'K': getValue('profile_ca'),
366
- 'Mg': getValue('profile_s'),
367
- 'Ca': getValue('profile_mg'),
368
- 'S': getValue('profile_cl'),
369
- 'N (NO3-)': getValue('profile_no3'),
370
- 'N (NH4+)': getValue('profile_nh4'),
371
- 'liters': parseInt(document.getElementById('liters-input')?.value) || 1
372
  }
373
  };
374
 
@@ -386,11 +690,13 @@ document.getElementById('calculate-btn').addEventListener('click', function() {
386
  })
387
  .then(response => {
388
  if (!response.ok) {
389
- throw new Error(`HTTP error! status: ${response.status}`);
390
  }
391
  return response.json();
392
  })
393
  .then(data => {
 
 
394
  // Заполнение полей с результатами
395
  const fertilizerFields = {
396
  "Сульфат магния": "magnesium_sulfate",
@@ -408,13 +714,17 @@ document.getElementById('calculate-btn').addEventListener('click', function() {
408
  });
409
 
410
  // Заполнение граммовок удобрений
411
- data.fertilizers?.forEach(fert => {
412
- const fieldId = fertilizerFields[fert.name];
413
- if (fieldId) {
414
- const field = document.getElementById(fieldId);
415
- if (field) field.value = fert.grams?.toFixed(3) || "0";
416
- }
417
- });
 
 
 
 
418
 
419
  // Заполнение EC если есть поле
420
  const ecField = document.getElementById('profile_ec');
 
324
  </fieldset>
325
 
326
 
327
+ <script>
328
+ <fieldset>
329
+ <legend>Макропрофиль в мг/л (ppm)</legend>
330
+ <div class="main-container">
331
+ <!-- Основные элементы -->
332
+ <div class="profile-container">
333
+ <div class="profile-element" style="grid-column: 2">
334
+ <span class="profile-label">N</span>
335
+ <input id="profile_n" type="number" value="125.000" step="0.001"/>
336
+ </div>
337
+ <div class="profile-element" style="grid-column: 3">
338
+ <span class="profile-label">P</span>
339
+ <input id="profile_p" type="number" value="31.000" step="0.001"/>
340
+ </div>
341
+ <div class="profile-element" style="grid-column: 4">
342
+ <span class="profile-label">K</span>
343
+ <input id="profile_k" type="number" value="210.000" step="0.001"/>
344
+ </div>
345
+ <div class="profile-element" style="grid-column: 5">
346
+ <span class="profile-label">Ca</span>
347
+ <input id="profile_ca" type="number" value="84.000" step="0.001"/>
348
+ </div>
349
+ <div class="profile-element" style="grid-column: 6">
350
+ <span class="profile-label">Mg</span>
351
+ <input id="profile_mg" type="number" value="24.000" step="0.001"/>
352
+ </div>
353
+ <div class="profile-element" style="grid-column: 7">
354
+ <span class="profile-label">S</span>
355
+ <input id="profile_s" type="number" value="56.439" step="0.001"/>
356
+ </div>
357
+ <div class="profile-element" style="grid-column: 8">
358
+ <span class="profile-label">EC</span>
359
+ <input id="profile_ec" type="number" value="0.0" step="0.001" readonly/>
360
+ </div>
361
+ </div>
362
+
363
+ <!-- Азотные элементы -->
364
+ <div class="nitrogen-container">
365
+ <div class="nitrogen-group">
366
+ <label for="profile_nh4">NH4:</label>
367
+ <input id="profile_nh4" type="number" value="1.0" step="1.0" readonly style="background-color: #f0f0f0; border: 1px solid #ccc; color: #666;">
368
+ </div>
369
+ <div class="nitrogen-group">
370
+ <label for="profile_no3">NO3:</label>
371
+ <input id="profile_no3" type="number" value="10.0" step="0.01" min="5" max="10.001"/>
372
+ </div>
373
+ </div>
374
+ </div>
375
+ </fieldset>
376
+
377
+ <fieldset>
378
+ <legend>Составы солей</legend>
379
+ <div class="fertilisers-container">
380
+ <!-- Заголовки -->
381
+ <div class="fert-row">
382
+ <span class="fert-name">Удобрение</span>
383
+ <span class="fert-header">NH4</span>
384
+ <span class="fert-header">NO3</span>
385
+ <span class="fert-header">P</span>
386
+ <span class="fert-header">K</span>
387
+ <span class="fert-header">Ca</span>
388
+ <span class="fert-header">Mg</span>
389
+ <span class="fert-header">S</span>
390
+ <span class="fert-header">Грамм</span>
391
+ </div>
392
+
393
+ <!-- Строки с удобрениями -->
394
+ <div class="fert-row">
395
+ <span class="fert-name">CaN2O6</span>
396
+ <span class="fert-cell">-</span>
397
+ <input class="fert-input" type="number" value="11.863" step="0.001" id="fert_ca_no3"/>
398
+ <span class="fert-cell">-</span>
399
+ <span class="fert-cell">-</span>
400
+ <input class="fert-input" type="number" value="16.972" step="0.001" id="fert_ca_ca"/>
401
+ <span class="fert-cell">-</span>
402
+ <span class="fert-cell">-</span>
403
+ <input class="fert-input" type="number" step="0.001" id="calcium_nitrate" readonly/>
404
+ </div>
405
+
406
+ <div class="fert-row">
407
+ <span class="fert-name">KNO3</span>
408
+ <span class="fert-cell">-</span>
409
+ <input class="fert-input" type="number" value="13.854" step="0.001" id="fert_kno3_no3"/>
410
+ <span class="fert-cell">-</span>
411
+ <input class="fert-input" type="number" value="36.672" step="0.001" id="fert_kno3_k"/>
412
+ <span class="fert-cell">-</span>
413
+ <span class="fert-cell">-</span>
414
+ <span class="fert-cell">-</span>
415
+ <input class="fert-input" type="number" step="0.001" id="potassium_nitrate" readonly/>
416
+ </div>
417
+
418
+ <div class="fert-row">
419
+ <span class="fert-name">NH4NO3</span>
420
+ <input class="fert-input" type="number" value="17.499" step="0.001" id="fert_nh4no3_nh4"/>
421
+ <input class="fert-input" type="number" value="17.499" step="0.001" id="fert_nh4no3_no3"/>
422
+ <span class="fert-cell">-</span>
423
+ <span class="fert-cell">-</span>
424
+ <span class="fert-cell">-</span>
425
+ <span class="fert-cell">-</span>
426
+ <span class="fert-cell">-</span>
427
+ <input class="fert-input" type="number" step="0.001" id="ammonium_nitrate" readonly/>
428
+ </div>
429
+
430
+ <div class="fert-row">
431
+ <span class="fert-name">MgSO4</span>
432
+ <span class="fert-cell">-</span>
433
+ <span class="fert-cell">-</span>
434
+ <span class="fert-cell">-</span>
435
+ <span class="fert-cell">-</span>
436
+ <span class="fert-cell">-</span>
437
+ <input class="fert-input" type="number" value="10.22" step="0.001" id="fert_mgso4_mg"/>
438
+ <input class="fert-input" type="number" value="13.483" step="0.001" id="fert_mgso4_s"/>
439
+ <input class="fert-input" type="number" step="0.001" id="magnesium_sulfate" readonly/>
440
+ </div>
441
+
442
+ <div class="fert-row">
443
+ <span class="fert-name">KH2PO4</span>
444
+ <span class="fert-cell">-</span>
445
+ <span class="fert-cell">-</span>
446
+ <input class="fert-input" type="number" value="22.761" step="0.001" id="fert_kh2po4_p"/>
447
+ <input class="fert-input" type="number" value="28.731" step="0.001" id="fert_kh2po4_k"/>
448
+ <span class="fert-cell">-</span>
449
+ <span class="fert-cell">-</span>
450
+ <span class="fert-cell">-</span>
451
+ <input class="fert-input" type="number" step="0.001" id="monopotassium_phosphate" readonly/>
452
+ </div>
453
+
454
+ <div class="fert-row">
455
+ <span class="fert-name">K2SO4</span>
456
+ <span class="fert-cell">-</span>
457
+ <span class="fert-cell">-</span>
458
+ <span class="fert-cell">-</span>
459
+ <input class="fert-input" type="number" value="44.874" step="0.001" id="fert_k2so4_k"/>
460
+ <span class="fert-cell">-</span>
461
+ <span class="fert-cell">-</span>
462
+ <input class="fert-input" type="number" value="18.401" step="0.001" id="fert_k2so4_s"/>
463
+ <input class="fert-input" type="number" step="0.001" id="potassium_sulfate" readonly/>
464
+ </div>
465
+ </div>
466
+ </fieldset>
467
+
468
+ <fieldset class="calculation-box">
469
+ <legend>Расчёт удобрений</legend>
470
+ <div class="calculation-container">
471
+ <div class="calculation-label">Литры:</div>
472
+ <input type="number" id="liters-input" value="100" min="1" step="1">
473
+ <button id="calculate-btn">Рассчитать</button>
474
+ </div>
475
+ </fieldset>
476
+
477
+ <fieldset>
478
+ <legend>Макропрофиль в мг/л (ppm)</legend>
479
+ <div class="main-container">
480
+ <!-- Основные элементы -->
481
+ <div class="profile-container">
482
+ <div class="profile-element" style="grid-column: 2">
483
+ <span class="profile-label">N</span>
484
+ <input id="profile_n" type="number" value="125.000" step="0.001"/>
485
+ </div>
486
+ <div class="profile-element" style="grid-column: 3">
487
+ <span class="profile-label">P</span>
488
+ <input id="profile_p" type="number" value="31.000" step="0.001"/>
489
+ </div>
490
+ <div class="profile-element" style="grid-column: 4">
491
+ <span class="profile-label">K</span>
492
+ <input id="profile_k" type="number" value="210.000" step="0.001"/>
493
+ </div>
494
+ <div class="profile-element" style="grid-column: 5">
495
+ <span class="profile-label">Ca</span>
496
+ <input id="profile_ca" type="number" value="84.000" step="0.001"/>
497
+ </div>
498
+ <div class="profile-element" style="grid-column: 6">
499
+ <span class="profile-label">Mg</span>
500
+ <input id="profile_mg" type="number" value="24.000" step="0.001"/>
501
+ </div>
502
+ <div class="profile-element" style="grid-column: 7">
503
+ <span class="profile-label">S</span>
504
+ <input id="profile_s" type="number" value="56.439" step="0.001"/>
505
+ </div>
506
+ <div class="profile-element" style="grid-column: 8">
507
+ <span class="profile-label">EC</span>
508
+ <input id="profile_ec" type="number" value="0.0" step="0.001" readonly/>
509
+ </div>
510
+ </div>
511
+
512
+ <!-- Азотные элементы -->
513
+ <div class="nitrogen-container">
514
+ <div class="nitrogen-group">
515
+ <label for="profile_nh4">NH4:</label>
516
+ <input id="profile_nh4" type="number" value="1.0" step="1.0" readonly style="background-color: #f0f0f0; border: 1px solid #ccc; color: #666;">
517
+ </div>
518
+ <div class="nitrogen-group">
519
+ <label for="profile_no3">NO3:</label>
520
+ <input id="profile_no3" type="number" value="10.0" step="0.01" min="5" max="10.001"/>
521
+ </div>
522
+ </div>
523
+ </div>
524
+ </fieldset>
525
+
526
+ <fieldset>
527
+ <legend>Составы солей</legend>
528
+ <div class="fertilisers-container">
529
+ <!-- Заголовки -->
530
+ <div class="fert-row">
531
+ <span class="fert-name">Удобрение</span>
532
+ <span class="fert-header">NH4</span>
533
+ <span class="fert-header">NO3</span>
534
+ <span class="fert-header">P</span>
535
+ <span class="fert-header">K</span>
536
+ <span class="fert-header">Ca</span>
537
+ <span class="fert-header">Mg</span>
538
+ <span class="fert-header">S</span>
539
+ <span class="fert-header">Грамм</span>
540
+ </div>
541
+
542
+ <!-- Строки с удобрениями -->
543
+ <div class="fert-row">
544
+ <span class="fert-name">CaN2O6</span>
545
+ <span class="fert-cell">-</span>
546
+ <input class="fert-input" type="number" value="11.863" step="0.001" id="fert_ca_no3"/>
547
+ <span class="fert-cell">-</span>
548
+ <span class="fert-cell">-</span>
549
+ <input class="fert-input" type="number" value="16.972" step="0.001" id="fert_ca_ca"/>
550
+ <span class="fert-cell">-</span>
551
+ <span class="fert-cell">-</span>
552
+ <input class="fert-input" type="number" step="0.001" id="calcium_nitrate" readonly/>
553
+ </div>
554
+
555
+ <div class="fert-row">
556
+ <span class="fert-name">KNO3</span>
557
+ <span class="fert-cell">-</span>
558
+ <input class="fert-input" type="number" value="13.854" step="0.001" id="fert_kno3_no3"/>
559
+ <span class="fert-cell">-</span>
560
+ <input class="fert-input" type="number" value="36.672" step="0.001" id="fert_kno3_k"/>
561
+ <span class="fert-cell">-</span>
562
+ <span class="fert-cell">-</span>
563
+ <span class="fert-cell">-</span>
564
+ <input class="fert-input" type="number" step="0.001" id="potassium_nitrate" readonly/>
565
+ </div>
566
+
567
+ <div class="fert-row">
568
+ <span class="fert-name">NH4NO3</span>
569
+ <input class="fert-input" type="number" value="17.499" step="0.001" id="fert_nh4no3_nh4"/>
570
+ <input class="fert-input" type="number" value="17.499" step="0.001" id="fert_nh4no3_no3"/>
571
+ <span class="fert-cell">-</span>
572
+ <span class="fert-cell">-</span>
573
+ <span class="fert-cell">-</span>
574
+ <span class="fert-cell">-</span>
575
+ <span class="fert-cell">-</span>
576
+ <input class="fert-input" type="number" step="0.001" id="ammonium_nitrate" readonly/>
577
+ </div>
578
+
579
+ <div class="fert-row">
580
+ <span class="fert-name">MgSO4</span>
581
+ <span class="fert-cell">-</span>
582
+ <span class="fert-cell">-</span>
583
+ <span class="fert-cell">-</span>
584
+ <span class="fert-cell">-</span>
585
+ <span class="fert-cell">-</span>
586
+ <input class="fert-input" type="number" value="10.22" step="0.001" id="fert_mgso4_mg"/>
587
+ <input class="fert-input" type="number" value="13.483" step="0.001" id="fert_mgso4_s"/>
588
+ <input class="fert-input" type="number" step="0.001" id="magnesium_sulfate" readonly/>
589
+ </div>
590
+
591
+ <div class="fert-row">
592
+ <span class="fert-name">KH2PO4</span>
593
+ <span class="fert-cell">-</span>
594
+ <span class="fert-cell">-</span>
595
+ <input class="fert-input" type="number" value="22.761" step="0.001" id="fert_kh2po4_p"/>
596
+ <input class="fert-input" type="number" value="28.731" step="0.001" id="fert_kh2po4_k"/>
597
+ <span class="fert-cell">-</span>
598
+ <span class="fert-cell">-</span>
599
+ <span class="fert-cell">-</span>
600
+ <input class="fert-input" type="number" step="0.001" id="monopotassium_phosphate" readonly/>
601
+ </div>
602
+
603
+ <div class="fert-row">
604
+ <span class="fert-name">K2SO4</span>
605
+ <span class="fert-cell">-</span>
606
+ <span class="fert-cell">-</span>
607
+ <span class="fert-cell">-</span>
608
+ <input class="fert-input" type="number" value="44.874" step="0.001" id="fert_k2so4_k"/>
609
+ <span class="fert-cell">-</span>
610
+ <span class="fert-cell">-</span>
611
+ <input class="fert-input" type="number" value="18.401" step="0.001" id="fert_k2so4_s"/>
612
+ <input class="fert-input" type="number" step="0.001" id="potassium_sulfate" readonly/>
613
+ </div>
614
+ </div>
615
+ </fieldset>
616
+
617
+ <fieldset class="calculation-box">
618
+ <legend>Расчёт удобрений</legend>
619
+ <div class="calculation-container">
620
+ <div class="calculation-label">Литры:</div>
621
+ <input type="number" id="liters-input" value="100" min="1" step="1">
622
+ <button id="calculate-btn">Рассчитать</button>
623
+ </div>
624
+ </fieldset>
625
+
626
  <script>
627
  document.getElementById('calculate-btn').addEventListener('click', function() {
628
  // Получение значений с проверкой
629
  const getValue = (id) => {
630
+ const element = document.getElementById(id);
631
+ if (!element) {
632
+ console.error(`Element with id ${id} not found`);
633
+ return 0;
634
+ }
635
+ const val = parseFloat(element.value);
636
  return isNaN(val) ? 0 : val;
637
  };
638
 
639
  // Формирование данных для сервера
640
  const requestData = {
641
  fertilizerConstants: {
642
+ "CaN2O6": {
643
+ "NO3": getValue('fert_ca_no3'),
644
+ "Ca": getValue('fert_ca_ca')
645
  },
646
+ "KNO3": {
647
+ "NO3": getValue('fert_kno3_no3'),
648
+ "K": getValue('fert_kno3_k')
649
  },
650
+ "NH4NO3": {
651
+ "NH4": getValue('fert_nh4no3_nh4'),
652
+ "NO3": getValue('fert_nh4no3_no3')
653
  },
654
+ "MgSO4": {
655
+ "Mg": getValue('fert_mgso4_mg'),
656
+ "S": getValue('fert_mgso4_s')
657
  },
658
+ "KH2PO4": {
659
+ "P": getValue('fert_kh2po4_p'),
660
+ "K": getValue('fert_kh2po4_k')
661
  },
662
+ "K2SO4": {
663
+ "K": getValue('fert_k2so4_k'),
664
+ "S": getValue('fert_k2so4_s')
665
  }
666
  },
667
  profileSettings: {
668
+ 'P': getValue('profile_p'),
669
+ 'K': getValue('profile_k'),
670
+ 'Mg': getValue('profile_mg'),
671
+ 'Ca': getValue('profile_ca'),
672
+ 'S': getValue('profile_s'),
673
+ 'NO3': getValue('profile_no3'),
674
+ 'NH4': getValue('profile_nh4'),
675
+ 'liters': parseInt(document.getElementById('liters-input').value) || 1
676
  }
677
  };
678
 
 
690
  })
691
  .then(response => {
692
  if (!response.ok) {
693
+ return response.json().then(err => { throw new Error(err.error || 'Server error'); });
694
  }
695
  return response.json();
696
  })
697
  .then(data => {
698
+ console.log("Ответ от сервера:", data);
699
+
700
  // Заполнение полей с результатами
701
  const fertilizerFields = {
702
  "Сульфат магния": "magnesium_sulfate",
 
714
  });
715
 
716
  // Заполнение граммовок удобрений
717
+ if (data.fertilizers) {
718
+ data.fertilizers.forEach(fert => {
719
+ const fieldId = fertilizerFields[fert.name];
720
+ if (fieldId) {
721
+ const field = document.getElementById(fieldId);
722
+ if (field) {
723
+ field.value = fert.grams ? fert.grams.toFixed(3) : "0";
724
+ }
725
+ }
726
+ });
727
+ }
728
 
729
  // Заполнение EC если есть поле
730
  const ecField = document.getElementById('profile_ec');