v2: басшылық пошта/телефондары + Алматы мемлекеттік органдары бөлімі
This commit is contained in:
parent
0af5fc4d2d
commit
56d78709f2
27
data.json
27
data.json
@ -10,14 +10,25 @@
|
||||
{ "id": 2, "title": "Мүдделер қақтығысын декларациялау", "text": "Қызметкерлер жыл сайын мүдделер қақтығысы туралы декларация толтырады. Нысан шағым жәшігі бөлімінен алуға болады.", "date": "2026-08-05" }
|
||||
],
|
||||
"org": [
|
||||
{ "level": 1, "name": "Бас директор", "person": "Ерлан Қасымов" },
|
||||
{ "level": 2, "name": "Басқарма төрағасы", "person": "Гүлнара Әбенова" },
|
||||
{ "level": 3, "name": "Қаржы дирекциясы", "person": "Серік Жұмабаев" },
|
||||
{ "level": 3, "name": "Эфир дирекциясы", "person": "Айжан Төлегенова" },
|
||||
{ "level": 3, "name": "Жаңалықтар дирекциясы", "person": "Марат Бекенов" },
|
||||
{ "level": 3, "name": "Техникалық дирекция", "person": "Нұрлан Сыдықов" },
|
||||
{ "level": 3, "name": "HR және әкімшілік", "person": "Ләззат Қалиева" },
|
||||
{ "level": 4, "name": "Комплаенс қызметі", "person": "Асет (сіз)" }
|
||||
{ "level": 1, "name": "Бас директор", "person": "Ерлан Қасымов", "email": "e.kasymov@qonaev.kz", "phone": "+7 (727) 300-10-01" },
|
||||
{ "level": 2, "name": "Басқарма төрағасы", "person": "Гүлнара Әбенова", "email": "g.abenova@qonaev.kz", "phone": "+7 (727) 300-10-02" },
|
||||
{ "level": 3, "name": "Қаржы дирекциясы", "person": "Серік Жұмабаев", "email": "s.zhumabaev@qonaev.kz", "phone": "+7 (727) 300-10-03" },
|
||||
{ "level": 3, "name": "Эфир дирекциясы", "person": "Айжан Төлегенова", "email": "a.tolegenova@qonaev.kz", "phone": "+7 (727) 300-10-04" },
|
||||
{ "level": 3, "name": "Жаңалықтар дирекциясы", "person": "Марат Бекенов", "email": "m.bekenov@qonaev.kz", "phone": "+7 (727) 300-10-05" },
|
||||
{ "level": 3, "name": "Техникалық дирекция", "person": "Нұрлан Сыдықов", "email": "n.sydykov@qonaev.kz", "phone": "+7 (727) 300-10-06" },
|
||||
{ "level": 3, "name": "HR және әкімшілік", "person": "Ләззат Қалиева", "email": "l.kalieva@qonaev.kz", "phone": "+7 (727) 300-10-07" },
|
||||
{ "level": 4, "name": "Комплаенс қызметі", "person": "Асет (сіз)", "email": "compliance@qonaev.kz", "phone": "+7 (727) 300-10-08" }
|
||||
],
|
||||
"contacts": [
|
||||
{ "org": "Антикор (ҚР Антикоррупциялық қызметі) Алматы қаласы бойынша департаменті", "type": "Ресми телефон", "phone": "8 (727) 278-73-24", "email": "almaty@nab.gov.kz", "note": "Мекенжай: Жібек Жолы даңғылы, 15" },
|
||||
{ "org": "Антикор бірыңғай Call-орталығы", "type": "Сенім телефоны", "phone": "1424", "email": "", "note": "Қазақстан бойынша қоңырау тегін" },
|
||||
{ "org": "Антикор WhatsApp-чат-бот", "type": "WhatsApp", "phone": "8 777 000 1424", "email": "", "note": "Хабарлама жіберуге болады" },
|
||||
{ "org": "Алматы қаласы прокуратурасы", "type": "Кеңсе", "phone": "8 (727) 225-40-86", "email": "", "note": "Мекенжай: Желтоқсан көшесі, 189" },
|
||||
{ "org": "Алматы қаласы прокуратурасы", "type": "Кезекші прокурор", "phone": "8 (727) 330-80-51", "email": "", "note": "Тәулік бойы" },
|
||||
{ "org": "ҚР Бас прокуратурасы Call-орталығы", "type": "Сенім телефоны", "phone": "115", "email": "", "note": "Дс-жм 09:00–18:30, қоңырау тегін" },
|
||||
{ "org": "Алматы қаласы Еңбек инспекциясы басқармасы", "type": "Ресми телефон", "phone": "+7 (727) 338-22-42", "email": "upr_gitm@mail.ru", "note": "Мекенжай: Достық даңғылы, 85" },
|
||||
{ "org": "Алматы қаласы Еңбек инспекциясы (канцелярия)", "type": "Телефон", "phone": "8 (727) 374-94-47", "email": "kgu2016@mail.ru", "note": "" },
|
||||
{ "org": "Алматы қаласы бойынша Мемлекеттік кірістер департаменті", "type": "Ресми телефон", "phone": "8 (7272) 267-15-54", "email": "", "note": "Мекенжай: Бөгенбай батыр көшесі, 132" }
|
||||
],
|
||||
"videos": [
|
||||
{ "id": 1, "title": "Комплаенс деген не?", "desc": "Кіріспе: комплаенс жүйесінің негіздері, мақсаттары және рөлі.", "dur": "12 мин", "thumb": "https://picsum.photos/seed/compl1/480/270" },
|
||||
|
||||
57
script.js
57
script.js
@ -19,6 +19,7 @@ var state = {
|
||||
var NAV = [
|
||||
{ id: "home", ico: "🏠", title: "Басты бет" },
|
||||
{ id: "org", ico: "🏛️", title: "Басшылық құрылымы" },
|
||||
{ id: "contacts", ico: "📞", title: "Мемлекеттік органдар" },
|
||||
{ id: "video", ico: "🎬", title: "Видео сабақтар" },
|
||||
{ id: "laws", ico: "⚖️", title: "Заң нормалары" },
|
||||
{ id: "complaints", ico: "✉️", title: "Шағым жәшігі" },
|
||||
@ -40,14 +41,25 @@ var MOCK_CONTENT = {
|
||||
{ id: 2, title: "Мүдделер қақтығысын декларациялау", text: "Қызметкерлер жыл сайын мүдделер қақтығысы туралы декларация толтырады. Нысан шағым жәшігі бөлімінен алуға болады.", date: "2026-08-05" },
|
||||
],
|
||||
org: [
|
||||
{ level: 1, name: "Бас директор", person: "Ерлан Қасымов" },
|
||||
{ level: 2, name: "Басқарма төрағасы", person: "Гүлнара Әбенова" },
|
||||
{ level: 3, name: "Қаржы дирекциясы", person: "Серік Жұмабаев" },
|
||||
{ level: 3, name: "Эфир дирекциясы", person: "Айжан Төлегенова" },
|
||||
{ level: 3, name: "Жаңалықтар дирекциясы", person: "Марат Бекенов" },
|
||||
{ level: 3, name: "Техникалық дирекция", person: "Нұрлан Сыдықов" },
|
||||
{ level: 3, name: "HR және әкімшілік", person: "Ләззат Қалиева" },
|
||||
{ level: 4, name: "Комплаенс қызметі", person: "Асет (сіз)" },
|
||||
{ level: 1, name: "Бас директор", person: "Ерлан Қасымов", email: "e.kasymov@qonaev.kz", phone: "+7 (727) 300-10-01" },
|
||||
{ level: 2, name: "Басқарма төрағасы", person: "Гүлнара Әбенова", email: "g.abenova@qonaev.kz", phone: "+7 (727) 300-10-02" },
|
||||
{ level: 3, name: "Қаржы дирекциясы", person: "Серік Жұмабаев", email: "s.zhumabaev@qonaev.kz", phone: "+7 (727) 300-10-03" },
|
||||
{ level: 3, name: "Эфир дирекциясы", person: "Айжан Төлегенова", email: "a.tolegenova@qonaev.kz", phone: "+7 (727) 300-10-04" },
|
||||
{ level: 3, name: "Жаңалықтар дирекциясы", person: "Марат Бекенов", email: "m.bekenov@qonaev.kz", phone: "+7 (727) 300-10-05" },
|
||||
{ level: 3, name: "Техникалық дирекция", person: "Нұрлан Сыдықов", email: "n.sydykov@qonaev.kz", phone: "+7 (727) 300-10-06" },
|
||||
{ level: 3, name: "HR және әкімшілік", person: "Ләззат Қалиева", email: "l.kalieva@qonaev.kz", phone: "+7 (727) 300-10-07" },
|
||||
{ level: 4, name: "Комплаенс қызметі", person: "Асет (сіз)", email: "compliance@qonaev.kz", phone: "+7 (727) 300-10-08" },
|
||||
],
|
||||
contacts: [
|
||||
{ org: "Антикор (ҚР Антикоррупциялық қызметі) Алматы қаласы бойынша департаменті", type: "Ресми телефон", phone: "8 (727) 278-73-24", email: "almaty@nab.gov.kz", note: "Мекенжай: Жібек Жолы даңғылы, 15" },
|
||||
{ org: "Антикор бірыңғай Call-орталығы", type: "Сенім телефоны", phone: "1424", email: "", note: "Қазақстан бойынша қоңырау тегін" },
|
||||
{ org: "Антикор WhatsApp-чат-бот", type: "WhatsApp", phone: "8 777 000 1424", email: "", note: "Хабарлама жіберуге болады" },
|
||||
{ org: "Алматы қаласы прокуратурасы", type: "Кеңсе", phone: "8 (727) 225-40-86", email: "", note: "Мекенжай: Желтоқсан көшесі, 189" },
|
||||
{ org: "Алматы қаласы прокуратурасы", type: "Кезекші прокурор", phone: "8 (727) 330-80-51", email: "", note: "Тәулік бойы" },
|
||||
{ org: "ҚР Бас прокуратурасы Call-орталығы", type: "Сенім телефоны", phone: "115", email: "", note: "Дс-жм 09:00–18:30, қоңырау тегін" },
|
||||
{ org: "Алматы қаласы Еңбек инспекциясы басқармасы", type: "Ресми телефон", phone: "+7 (727) 338-22-42", email: "upr_gitm@mail.ru", note: "Мекенжай: Достық даңғылы, 85" },
|
||||
{ org: "Алматы қаласы Еңбек инспекциясы (канцелярия)", type: "Телефон", phone: "8 (727) 374-94-47", email: "kgu2016@mail.ru", note: "" },
|
||||
{ org: "Алматы қаласы бойынша Мемлекеттік кірістер департаменті", type: "Ресми телефон", phone: "8 (7272) 267-15-54", email: "", note: "Мекенжай: Бөгенбай батыр көшесі, 132" },
|
||||
],
|
||||
videos: [
|
||||
{ id: 1, title: "Комплаенс деген не?", desc: "Кіріспе: комплаенс жүйесінің негіздері, мақсаттары және рөлі.", dur: "12 мин", thumb: "https://picsum.photos/seed/compl1/480/270" },
|
||||
@ -202,6 +214,7 @@ function go(page) {
|
||||
c.innerHTML = "";
|
||||
if (page === "home") renderHome(c);
|
||||
else if (page === "org") renderOrg(c);
|
||||
else if (page === "contacts") renderContacts(c);
|
||||
else if (page === "video") renderVideo(c);
|
||||
else if (page === "laws") renderLaws(c);
|
||||
else if (page === "complaints") renderComplaints(c);
|
||||
@ -275,7 +288,15 @@ function renderOrg(el) {
|
||||
Object.keys(levels).sort(function (a, b) { return a - b; }).forEach(function (lv) {
|
||||
html += '<div class="org-level">';
|
||||
levels[lv].forEach(function (o) {
|
||||
html += '<div class="org-card' + (o.level === 1 ? " top" : "") + '"><div class="org-name">' + esc(o.name) + '</div><div class="org-pos">' + esc(o.person) + "</div></div>";
|
||||
html += '<div class="org-card' + (o.level === 1 ? " top" : "") + '">';
|
||||
html += '<div class="org-name">' + esc(o.name) + '</div><div class="org-pos">' + esc(o.person) + "</div>";
|
||||
if (o.phone || o.email) {
|
||||
html += '<div class="org-contacts">';
|
||||
if (o.phone) html += '<div class="org-c">📞 <a href="tel:' + esc(o.phone.replace(/\s|\(|\)|-/g, "")) + '">' + esc(o.phone) + "</a></div>";
|
||||
if (o.email) html += '<div class="org-c">✉️ <a href="mailto:' + esc(o.email) + '">' + esc(o.email) + "</a></div>";
|
||||
html += "</div>";
|
||||
}
|
||||
html += "</div>";
|
||||
});
|
||||
html += "</div>";
|
||||
html += '<div class="org-arrow">▼</div>';
|
||||
@ -284,6 +305,24 @@ function renderOrg(el) {
|
||||
el.innerHTML = html;
|
||||
}
|
||||
|
||||
/* ---------------- МЕМЛЕКЕТТІК ОРГАНДАР ---------------- */
|
||||
function renderContacts(el) {
|
||||
var list = state.content && state.content.contacts ? state.content.contacts : [];
|
||||
var html = pageTitle("📞 Мемлекеттік органдар — Алматы қаласы");
|
||||
html += '<p class="muted" style="margin-bottom:16px">Комплаенс мәселелері бойынша хабарласуға болатын мемлекеттік органдардың ресми байланыс деректері.</p>';
|
||||
html += '<div class="grid grid-2">';
|
||||
list.forEach(function (c) {
|
||||
html += '<div class="card"><div class="spread"><h3>' + esc(c.org) + '</h3><span class="cat-tag">' + esc(c.type) + "</span></div>";
|
||||
html += '<div style="margin-top:12px">';
|
||||
if (c.phone) html += '<div class="org-c">📞 <a href="tel:' + esc(c.phone.replace(/\s|\(|\)|-/g, "")) + '"><b>' + esc(c.phone) + "</b></a></div>";
|
||||
if (c.email) html += '<div class="org-c">✉️ <a href="mailto:' + esc(c.email) + '">' + esc(c.email) + "</a></div>";
|
||||
if (c.note) html += '<div class="org-c muted">📍 ' + esc(c.note) + "</div>";
|
||||
html += "</div></div>";
|
||||
});
|
||||
html += "</div>";
|
||||
el.innerHTML = html;
|
||||
}
|
||||
|
||||
/* ---------------- ВИДЕО ---------------- */
|
||||
function renderVideo(el) {
|
||||
var vids = state.content ? state.content.videos : [];
|
||||
|
||||
@ -65,6 +65,7 @@ http.createServer(async (req, res) => {
|
||||
return send(res, 200, { ok: true, data: {
|
||||
announcements: db.announcements,
|
||||
org: db.org,
|
||||
contacts: db.contacts,
|
||||
videos: db.videos,
|
||||
laws: db.laws,
|
||||
tests: db.tests.map((t) => ({
|
||||
|
||||
@ -158,6 +158,12 @@ tr:last-child td{border-bottom:none}
|
||||
.org-name{font-weight:700;font-size:15px}
|
||||
.org-pos{font-size:12px;color:var(--gray-500);margin-top:2px}
|
||||
.org-card.top .org-pos{color:#9AA6BB}
|
||||
.org-contacts{margin-top:8px;padding-top:8px;border-top:1px solid #EEF1F6;text-align:left}
|
||||
.org-c{font-size:12px;margin-bottom:3px;word-break:break-all}
|
||||
.org-c a{color:var(--accent);text-decoration:none}
|
||||
.org-c a:hover{text-decoration:underline}
|
||||
.org-card.top .org-contacts{border-color:rgba(255,255,255,.12)}
|
||||
.org-card.top .org-c a{color:var(--cyan)}
|
||||
.org-arrow{text-align:center;color:var(--gray-500);font-size:20px;padding:6px 0}
|
||||
|
||||
/* ===== ВИДЕО ===== */
|
||||
|
||||
Loading…
Reference in New Issue
Block a user