This commit is contained in:
2026-03-17 20:01:50 +03:00
parent f755cf9660
commit ecb3bd7714
16 changed files with 4441 additions and 274 deletions

View File

@@ -654,7 +654,7 @@
<div class="header">
<div class="logo">
<i class="fas fa-briefcase"></i>
<span>Rabota.Today</span>
<span>МП.Ярмарка</span>
</div>
<div class="nav" id="nav">
@@ -685,19 +685,16 @@
<i class="fas fa-briefcase"></i>
<div class="stat-number" id="vacanciesCount">0</div>
<div class="stat-label">активных вакансий</div>
<div class="stat-trend" id="vacanciesTrend"></div>
</div>
<div class="stat-card" onclick="window.location.href='/resumes'">
<i class="fas fa-users"></i>
<div class="stat-number" id="resumesCount">0</div>
<div class="stat-number" id="employeesCount">0</div>
<div class="stat-label">соискателей</div>
<div class="stat-trend" id="resumesTrend"></div>
</div>
<div class="stat-card" onclick="window.location.href='/companies'">
<i class="fas fa-building"></i>
<div class="stat-number" id="companiesCount">0</div>
<div class="stat-label">компаний</div>
<div class="stat-trend" id="companiesTrend"></div>
</div>
</div>
@@ -757,9 +754,9 @@
<!-- Подвал -->
<div class="footer">
© 2024 Rabota.Today - Ярмарка вакансий. Все права защищены. |
<a href="#">Пользовательское соглашение</a> |
<a href="#">Политика конфиденциальности</a>
© 2026 Rabota.Today - Ярмарка вакансий. Все права защищены. |
<a href="/terms">Пользовательское соглашение</a> |
<a href="/privacy">Политика конфиденциальности</a>
</div>
</div>
@@ -869,7 +866,7 @@
// Анимируем цифры
animateNumber(document.getElementById('vacanciesCount'), stats.active_vacancies || 1234);
animateNumber(document.getElementById('resumesCount'), stats.total_resumes || 5678);
animateNumber(document.getElementById('employeesCount'), stats.total_employees || 5678); // Изменено
animateNumber(document.getElementById('companiesCount'), stats.total_employers || 500);
// Обновляем текст в CTA секции
@@ -878,25 +875,27 @@
(stats.total_users > 1000 ? 'тысяч' : '');
}
} else {
// Если статистика не загрузилась, используем данные из API
const [vacResponse, resResponse] = await Promise.all([
// Если публичная статистика не работает, используем отдельные запросы
console.log('📊 Используем отдельные запросы для статистики');
const [vacResponse, employeesResponse] = await Promise.all([
fetch(`${API_BASE_URL}/vacancies/all?page=1&limit=1`),
fetch(`${API_BASE_URL}/resumes/all?page=1&limit=1`)
fetch(`${API_BASE_URL}/users/count?role=employee`) // Новый эндпоинт
]);
const vacData = await vacResponse.json();
const resData = await resResponse.json();
const employeesData = await employeesResponse.json();
animateNumber(document.getElementById('vacanciesCount'), vacData.total || 1234);
animateNumber(document.getElementById('resumesCount'), resData.total || 5678);
animateNumber(document.getElementById('employeesCount'), employeesData.count || 5678);
document.getElementById('companiesCount').textContent = '500+';
}
} catch (error) {
console.error('Error loading stats:', error);
console.error('❌ Ошибка загрузки статистики:', error);
// Заглушки на случай ошибки
document.getElementById('vacanciesCount').textContent = '1,234';
document.getElementById('resumesCount').textContent = '5,678';
document.getElementById('employeesCount').textContent = '5,678';
document.getElementById('companiesCount').textContent = '500+';
}
}