52 lines
3.0 KiB
JavaScript
52 lines
3.0 KiB
JavaScript
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>`;
|
||
});
|