Maks | wip: убедился в работе калькулятора и чуть покопался в нем

web_99
Andrei 2 months ago
parent 2bdfeef5d6
commit abd5ac332b
  1. 1
      local/components/era/calculator/class.php
  2. 2
      local/components/era/calculator/templates/.default/ajax.php
  3. 138
      local/components/era/calculator/templates/.default/template.php

@ -57,6 +57,7 @@ class EraCalculatorComponent extends CBitrixComponent
$this->arResult['GROUND_WATER'] = $this->getPropertyEnumValues(57);
if ($this->request->isPost() && ($this->request->getPost('calculate') === 'Y' || $this->isAjax)) {
$this->processCalculation();
}

@ -43,6 +43,8 @@ if (!empty($arResult['ITEMS'])):
</div>
<?php endforeach;
else: ?>
<p>Попробуйте поменять настройки калькулятора, либо же оставьте заявку в следующей форме:</p>
<div class="product__order">
<h3 class="product__order-title section-title">Нужен септик для бизнеса?</h3>
<div class="product__order-info">Наш менеджер свяжется с вами в ближайшее время</div>

@ -207,81 +207,82 @@
</form>
</section>
<section class="sale sale--calc section-inner container" id="calculator-container" style="display: none;">
<h2 class="section-title">Подходящие септики в нашем каталоге</h2>
<div class="sale__wrap">
<div class="sale__products" id="calculator-results">
<?php if (!empty($arResult['ITEMS'])): ?>
<?php foreach ($arResult['ITEMS'] as $item): ?>
<div class="product">
<pre style="background: #f5f5f5; padding: 10px; overflow: auto; max-height: 300px;">
<?php print_r($item); ?>
</pre>
<a class="product__image" href="<?=$item['DETAIL_PAGE_URL']?>">
<img src="<?=$item['PREVIEW_PICTURE']?>" alt="<?=$item['NAME']?>">
</a>
<div class="product__data">
<?php if(isset($item['RATING'])): ?>
<div class="product__rating rating rating--<?=$item['RATING']?>"><?=$item['RATING']?>/5</div>
<?php endif; ?>
<div class="product__info">
<a class="product__title" href="<?=$item['DETAIL_PAGE_URL']?>"><?=$item['NAME']?></a>
<?php if(!empty($item['PREVIEW_TEXT'])): ?>
<p class="product__text"><?=$item['PREVIEW_TEXT']?></p>
<?php endif; ?>
</div>
<div class="product__info">
<?php if(!empty($item['PEOPLE_COUNT'])): ?>
<p class="product__text">Пользователей: <span><?=$item['PEOPLE_COUNT']?></span></p>
<?php endif; ?>
<?php if(!empty($item['PERFORMANCE'])): ?>
<p class="product__text">Производительность: <span><?=$item['PERFORMANCE']?> м³/сут</span></p>
<?php endif; ?>
<?php if(!empty($item['RESET'])): ?>
<p class="product__text">Залповый сброс: <span><?=$item['RESET']?> л</span></p>
<?php endif; ?>
<?php if(!empty($item['POWER'])): ?>
<p class="product__text">Питание: <span><?=$item['POWER']?></span></p>
<?php endif; ?>
</div>
<?php if(!empty($item['PRICE'])): ?>
<div class="product__price"><?=number_format($item['PRICE'], 0, '.', ' ')?></div>
<?php endif; ?>
<div class="product__btns">
<button class="button button--orange" onclick="addToCart(<?=$item['ID']?>)">Купить</button>
<button class="button button--outline">Купить с установкой</button>
<h2 class="section-title" style="display: none;">Подходящие септики в нашем каталоге</h2>
<div class="sale__wrap">
<div class="sale__products" id="calculator-results">
<?php if (!empty($arResult['ITEMS'])): ?>
<?php foreach ($arResult['ITEMS'] as $item): ?>
<div class="product">
<pre style="background: #f5f5f5; padding: 10px; overflow: auto; max-height: 300px;">
<?php print_r($item); ?>
</pre>
<a class="product__image" href="<?=$item['DETAIL_PAGE_URL']?>">
<img src="<?=$item['PREVIEW_PICTURE']?>" alt="<?=$item['NAME']?>">
</a>
<div class="product__data">
<?php if(isset($item['RATING'])): ?>
<div class="product__rating rating rating--<?=$item['RATING']?>"><?=$item['RATING']?>/5</div>
<?php endif; ?>
<div class="product__info">
<a class="product__title" href="<?=$item['DETAIL_PAGE_URL']?>"><?=$item['NAME']?></a>
<?php if(!empty($item['PREVIEW_TEXT'])): ?>
<p class="product__text"><?=$item['PREVIEW_TEXT']?></p>
<?php endif; ?>
</div>
<div class="product__info">
<?php if(!empty($item['PEOPLE_COUNT'])): ?>
<p class="product__text">Пользователей: <span><?=$item['PEOPLE_COUNT']?></span></p>
<?php endif; ?>
<?php if(!empty($item['PERFORMANCE'])): ?>
<p class="product__text">Производительность: <span><?=$item['PERFORMANCE']?> м³/сут</span></p>
<?php endif; ?>
<?php if(!empty($item['RESET'])): ?>
<p class="product__text">Залповый сброс: <span><?=$item['RESET']?> л</span></p>
<?php endif; ?>
<?php if(!empty($item['POWER'])): ?>
<p class="product__text">Питание: <span><?=$item['POWER']?></span></p>
<?php endif; ?>
</div>
<?php if(!empty($item['PRICE'])): ?>
<div class="product__price"><?=number_format($item['PRICE'], 0, '.', ' ')?></div>
<?php endif; ?>
<div class="product__btns">
<button class="button button--orange" onclick="addToCart(<?=$item['ID']?>)">Купить</button>
<button class="button button--outline">Купить с установкой</button>
</div>
<?php if(!empty($item['REVIEWS'])): ?>
<div class="product__reviews">
<h3>Отзывы:</h3>
<?php foreach($item['REVIEWS'] as $review): ?>
<div class="review">
<div class="review__header">
<span class="review__author"><?=$review['NAME']?></span>
<span class="review__city"><?=$review['CITY']?></span>
<span class="review__date"><?=$review['DATE']?></span>
<span class="review__rating"><?=$review['RATING']?>/5</span>
</div>
<?php if(!empty($item['REVIEWS'])): ?>
<div class="product__reviews">
<h3>Отзывы:</h3>
<?php foreach($item['REVIEWS'] as $review): ?>
<div class="review">
<div class="review__header">
<span class="review__author"><?=$review['NAME']?></span>
<span class="review__city"><?=$review['CITY']?></span>
<span class="review__date"><?=$review['DATE']?></span>
<span class="review__rating"><?=$review['RATING']?>/5</span>
</div>
<div class="review__content">
<h4><?=$review['HEADER']?></h4>
<p><?=$review['TEXT']?></p>
</div>
</div>
<?php endforeach; ?>
<div class="review__content">
<h4><?=$review['HEADER']?></h4>
<p><?=$review['TEXT']?></p>
</div>
<?php endif; ?>
</div>
<?php endforeach; ?>
</div>
<?php endforeach; ?>
<?php endif; ?>
</div>
</div>
</section>
<?php endif; ?>
</div>
</div>
<?php endforeach; ?>
<?php endif; ?>
</div>
</div>
</section>
<script>
document.addEventListener('DOMContentLoaded', function() {
const form = document.getElementById('calculator-form');
const resultsContainer = document.getElementById('calculator-results');
const calculatorContainer = document.getElementById('calculator-container');
const calculatorTitle =document.querySelector('.section-title');
function validateForm() {
const selects = form.querySelectorAll('select');
@ -313,15 +314,17 @@ document.addEventListener('DOMContentLoaded', function() {
washer: 50,
dishwasher: 50
};
let totalVolume = 0;
var totalVolume = 0;
const devices = Object.keys(deviceVolumes);
devices.forEach(device => {
/* нужно добаваить множитель в radio-btn (1-3) */
const checkbox = document.getElementById(`calc-${device}`);
if (checkbox && checkbox.checked) {
totalVolume += deviceVolumes[device];
}
});
// Собираем только нужные поля
const formData = new FormData();
formData.append('ajax', 'Y');
@ -347,9 +350,12 @@ document.addEventListener('DOMContentLoaded', function() {
.then(response => response.json())
.then(data => {
if (data.items) {
console.log(data.items)
calculatorContainer.style.display = 'block';
calculatorTitle.style.display = 'block';
resultsContainer.innerHTML = data.items;
} else {
calculatorTitle.style.display = 'none';
calculatorContainer.style.display = 'none';
}

Loading…
Cancel
Save