v3 - separate budget execution form
This commit is contained in:
parent
55905e16ed
commit
f33f1435c4
227
budget-form.html
Normal file
227
budget-form.html
Normal file
@ -0,0 +1,227 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>Исполнение бюджета — Казахтелеком</title>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
:root{--ink:#0F1218;--cyan:#00E5FF;--cyan-50:#E8FCFF;--white:#fff;--gray-500:#5B6573;--gray-100:#F2F4F7}
|
||||
*{box-sizing:border-box;margin:0;padding:0}
|
||||
body{font-family:'Inter',sans-serif;font-size:17px;line-height:1.6;color:var(--ink);background:var(--white)}
|
||||
.container{max-width:1140px;margin:0 auto;padding:80px 24px}
|
||||
.hero{background:var(--ink);color:var(--white);text-align:center}
|
||||
.hero h1{font-size:56px;font-weight:800;line-height:1.05;margin-bottom:24px}
|
||||
.hero p{font-size:20px;color:#9aa3b2;max-width:700px;margin:0 auto 32px}
|
||||
.btn{display:inline-block;background:var(--cyan);color:var(--ink);padding:14px 28px;border-radius:8px;font-weight:700;text-decoration:none;border:none;cursor:pointer;font-size:17px}
|
||||
.btn:hover{background:#1be5ff}
|
||||
.section{padding:80px 24px}
|
||||
.section h2{font-size:36px;font-weight:700;margin-bottom:24px;text-align:center}
|
||||
.form-card{background:var(--gray-100);border-radius:16px;padding:40px;max-width:700px;margin:0 auto}
|
||||
.form-group{margin-bottom:24px}
|
||||
.form-group label{display:block;font-weight:600;margin-bottom:8px}
|
||||
.form-group select,.form-group input,.form-group textarea{width:100%;padding:14px;border:2px solid var(--gray-100);border-radius:8px;font-size:17px;font-family:inherit}
|
||||
.form-group select:focus,.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--cyan)}
|
||||
.form-group textarea{min-height:100px;resize:vertical}
|
||||
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}
|
||||
.form-section{margin-bottom:32px;padding-bottom:24px;border-bottom:2px solid var(--gray-100)}
|
||||
.form-section h3{font-size:20px;font-weight:700;margin-bottom:16px;color:var(--ink)}
|
||||
.success-message{display:none;background:#10B981;color:var(--white);padding:20px;border-radius:8px;text-align:center;font-weight:600}
|
||||
footer{background:var(--ink);color:var(--gray-500);text-align:center;padding:40px 24px;font-size:14px}
|
||||
@media(max-width:640px){
|
||||
.hero h1{font-size:36px}
|
||||
.section h2{font-size:28px}
|
||||
.form-row{grid-template-columns:1fr}
|
||||
.container{padding:48px 20px}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<section class="hero">
|
||||
<div class="container">
|
||||
<h1>Исполнение бюджета</h1>
|
||||
<p>Ежемесячный отчёт по бюджету обучений и командировочных расходов — филиалы Казахтелеком</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<h2>Отправка данных</h2>
|
||||
<div class="form-card">
|
||||
<form id="budget-form" action="https://formspree.io/f/mbldnbvb" method="POST">
|
||||
|
||||
<div class="form-section">
|
||||
<h3>Основная информация</h3>
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="branch">Филиал</label>
|
||||
<select id="branch" name="branch" required>
|
||||
<option value="">Выберите филиал</option>
|
||||
<option value="Астана">Астана</option>
|
||||
<option value="Алматы">Алматы</option>
|
||||
<option value="Шымкент">Шымкент</option>
|
||||
<option value="Атырау">Атырау</option>
|
||||
<option value="Актобе">Актобе</option>
|
||||
<option value="Караганда">Караганда</option>
|
||||
<option value="Павлодар">Павлодар</option>
|
||||
<option value="Петропавловск">Петропавловск</option>
|
||||
<option value="Костанай">Костанай</option>
|
||||
<option value="Туркестан">Туркестан</option>
|
||||
<option value="Усть-Каменогорск">Усть-Каменогорск</option>
|
||||
<option value="Уральск">Уральск</option>
|
||||
<option value="Семей">Семей</option>
|
||||
<option value="Кызылорда">Кызылорда</option>
|
||||
<option value="Тараз">Тараз</option>
|
||||
<option value="Жезказган">Жезказган</option>
|
||||
<option value="Экибастуз">Экибастуз</option>
|
||||
<option value="Темиртау">Темиртау</option>
|
||||
<option value="Балхаш">Балхаш</option>
|
||||
<option value="Турксиб">Турксиб</option>
|
||||
<option value="ЦА (Центральный аппарат)">ЦА (Центральный аппарат)</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="month">Месяц</label>
|
||||
<select id="month" name="month" required>
|
||||
<option value="">Выберите месяц</option>
|
||||
<option value="Январь">Январь</option>
|
||||
<option value="Февраль">Февраль</option>
|
||||
<option value="Март">Март</option>
|
||||
<option value="Апрель">Апрель</option>
|
||||
<option value="Май">Май</option>
|
||||
<option value="Июнь">Июнь</option>
|
||||
<option value="Июль">Июль</option>
|
||||
<option value="Август">Август</option>
|
||||
<option value="Сентябрь">Сентябрь</option>
|
||||
<option value="Октябрь">Октябрь</option>
|
||||
<option value="Ноябрь">Ноябрь</option>
|
||||
<option value="Декабрь">Декабрь</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="year">Год</label>
|
||||
<select id="year" name="year" required>
|
||||
<option value="2026">2026</option>
|
||||
<option value="2025">2025</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-section">
|
||||
<h3>Бюджет обучений</h3>
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="training_plan">План на год (тенге)</label>
|
||||
<input type="number" id="training_plan" name="training_plan" placeholder="0" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="training_fact">Факт за месяц (тенге)</label>
|
||||
<input type="number" id="training_fact" name="training_fact" placeholder="0" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="training_cumulative">Нарастающий итог (тенге)</label>
|
||||
<input type="number" id="training_cumulative" name="training_cumulative" placeholder="0" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-section">
|
||||
<h3>Бюджет командировок</h3>
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="trip_plan">План на год (тенге)</label>
|
||||
<input type="number" id="trip_plan" name="trip_plan" placeholder="0" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="trip_fact">Факт за месяц (тенге)</label>
|
||||
<input type="number" id="trip_fact" name="trip_fact" placeholder="0" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="trip_cumulative">Нарастающий итог (тенге)</label>
|
||||
<input type="number" id="trip_cumulative" name="trip_cumulative" placeholder="0" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-section">
|
||||
<h3>Статистика обучений</h3>
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="planned_count">Запланировано обучений</label>
|
||||
<input type="number" id="planned_count" name="planned_count" placeholder="0">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="completed_count">Прошло обучений</label>
|
||||
<input type="number" id="completed_count" name="completed_count" placeholder="0">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="planned_employees">Запланировано сотрудников</label>
|
||||
<input type="number" id="planned_employees" name="planned_employees" placeholder="0">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="completed_employees">Обучено сотрудников</label>
|
||||
<input type="number" id="completed_employees" name="completed_employees" placeholder="0">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="notes">Комментарии</label>
|
||||
<textarea id="notes" name="notes" placeholder="Основания перерасхода/экономии, особенности периода..."></textarea>
|
||||
</div>
|
||||
|
||||
<input type="hidden" name="_subject" value="Исполнение бюджета - ежемесячный отчёт">
|
||||
<input type="hidden" name="_template" value="table">
|
||||
<input type="text" name="_gotcha" style="display:none">
|
||||
|
||||
<button type="submit" class="btn" style="width:100%">Отправить данные</button>
|
||||
</form>
|
||||
|
||||
<div id="success-message" class="success-message">
|
||||
✓ Данные успешно отправлены! Спасибо.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
<p>© 2026 Казахтелеком — Исполнение бюджета</p>
|
||||
</footer>
|
||||
|
||||
<script>
|
||||
document.getElementById('budget-form').addEventListener('submit', async function(e) {
|
||||
e.preventDefault();
|
||||
const form = e.target;
|
||||
const submitBtn = form.querySelector('button[type="submit"]');
|
||||
|
||||
submitBtn.textContent = 'Отправка...';
|
||||
submitBtn.disabled = true;
|
||||
|
||||
try {
|
||||
const response = await fetch(form.action, {
|
||||
method: 'POST',
|
||||
body: new FormData(form),
|
||||
headers: { 'Accept': 'application/json' }
|
||||
});
|
||||
|
||||
if (response.ok) {
|
||||
form.style.display = 'none';
|
||||
document.getElementById('success-message').style.display = 'block';
|
||||
} else {
|
||||
throw new Error('Ошибка сервера');
|
||||
}
|
||||
} catch (error) {
|
||||
alert('Произошла ошибка при отправке. Попробуйте ещё раз.');
|
||||
submitBtn.textContent = 'Отправить данные';
|
||||
submitBtn.disabled = false;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Reference in New Issue
Block a user