sdelay-sayt-abiturientam-po/script.js

52 lines
3.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const UNIVERSITIES = [
{ name: "КазНУ им. аль-Фараби", min: 88, note: "Технические и точные направления — ближе к 90–100; гуманитарные — 80-85." },
{ name: "КАУ им. Я. Аманжаева", min: 82, note: "Инженерные и экономические направления — реальный порог 80+." },
{ name: "КазГЮУ им. М. Серикбаева", min: 84, note: "Юриспруденция конкурсная — 80+ вероятен, но ставьте в середину заявки." },
{ name: "АУКа", min: 80, note: "Педагогика, гуманитарные и экономика — уверенный грант; бизнес-направления 85+." },
{ name: "НУ \"Қазақстан\" им. Абая (кампус Алматы)", min: 80, note: "Умеренный порог, 80+ — рабочая зона." },
{ name: "СГУ им. М. Утемисырова", min: 75, note: "Самый доступный: при 80+ грант почти гарантирован." },
{ name: "АУЭиС", min: 72, note: "Слабый порог среди государственных — надёжная страховка." }
];
const scoreEl = document.getElementById("score");
const bonusEl = document.getElementById("bonus");
const checkBtn = document.getElementById("checkBtn");
const resultEl = document.getElementById("result");
checkBtn.addEventListener("click", () => {
const score = Number(scoreEl.value) || 0;
const bonus = Number(bonusEl.value) || 0;
const total = score + bonus;
const list = UNIVERSITIES
.filter((u) => total >= u.min)
.map((u) => ({ ...u, gap: total - u.min }));
resultEl.hidden = false;
if (!list.length) {
resultEl.innerHTML = '<p>При таком балле грант в госуниверситетах Алматы, скорее всего, не дастся. Добавьте доп. баллы (олимпиады, IELTS) или поднимите балл ЕНТ.</p>';
return;
}
const rows = list
.sort((a, b) => b.min - a.min)
.map((u) => {
const state =
u.gap >= 5
? { label: "высокий шанс", cls: "high" }
: u.gap >= 1
? { label: "с шансом", cls: "mid" }
: { label: "граница", cls: "low" };
return `<div style="display:flex; justify-content:space-between; gap: var(--kt-ai-space-4); align-items:baseline;">
<div><strong>${u.name}</strong><div class="dir">${u.note} Порог ≈ ${u.min}.</div></div>
<span class="chance ${state.cls}">${state.label}</span>
</div>`;
})
.join("");
resultEl.innerHTML = `
<p>Итоговый балл: <strong>${total}</strong> (${score} ЕНТ + ${bonus} доп.)</p>
${rows}
<p class="dir">Оценка ориентировочная: пороги меняются каждый год. Точные цифры — на mygrant.kz после начала подачи заявок.</p>`;
});