147 lines
5.6 KiB
HTML
147 lines
5.6 KiB
HTML
<!doctype html>
|
||
<html lang="ru">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>Учёт командировок</title>
|
||
<link rel="stylesheet" href="style.css">
|
||
</head>
|
||
<body>
|
||
<div class="container">
|
||
<header class="header">
|
||
<h1>📋 Учёт командировок</h1>
|
||
<p class="subtitle">Система учёта поездок сотрудников</p>
|
||
</header>
|
||
|
||
<section class="stats">
|
||
<div class="stat-card">
|
||
<span class="stat-value" id="stat-total">0</span>
|
||
<span class="stat-label">Всего</span>
|
||
</div>
|
||
<div class="stat-card pending">
|
||
<span class="stat-value" id="stat-pending">0</span>
|
||
<span class="stat-label">На согласовании</span>
|
||
</div>
|
||
<div class="stat-card approved">
|
||
<span class="stat-value" id="stat-approved">0</span>
|
||
<span class="stat-label">Согласовано</span>
|
||
</div>
|
||
<div class="stat-card rejected">
|
||
<span class="stat-value" id="stat-rejected">0</span>
|
||
<span class="stat-label">Отклонено</span>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="controls">
|
||
<div class="filters">
|
||
<button class="chip active" data-status="">Все</button>
|
||
<button class="chip" data-status="на согласовании">На согласовании</button>
|
||
<button class="chip" data-status="согласовано">Согласовано</button>
|
||
<button class="chip" data-status="отклонено">Отклонено</button>
|
||
</div>
|
||
<div class="actions">
|
||
<input type="text" id="search" class="search" placeholder="Поиск по сотруднику, городу, цели...">
|
||
<button class="btn btn-primary" id="btn-add">+ Добавить командировку</button>
|
||
<button class="btn btn-secondary" id="btn-export">Выгрузить в CSV</button>
|
||
<button class="btn btn-secondary" id="btn-log">Журнал изменений</button>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="table-section">
|
||
<table class="table">
|
||
<thead>
|
||
<tr>
|
||
<th>Сотрудник</th>
|
||
<th>Город</th>
|
||
<th>Даты поездки</th>
|
||
<th>Цель</th>
|
||
<th>Сумма (₸)</th>
|
||
<th>Статус</th>
|
||
<th>Действия</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody id="table-body">
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
</div>
|
||
|
||
<div class="modal" id="modal-form">
|
||
<div class="modal-content">
|
||
<div class="modal-header">
|
||
<h2 id="modal-title">Добавить командировку</h2>
|
||
<button class="close" id="close-form">×</button>
|
||
</div>
|
||
<form id="form">
|
||
<input type="hidden" id="form-id">
|
||
<div class="form-row">
|
||
<div class="form-group">
|
||
<label for="form-employee">Сотрудник</label>
|
||
<input type="text" id="form-employee" required placeholder="ФИО сотрудника">
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="form-city">Город</label>
|
||
<input type="text" id="form-city" required placeholder="Город поездки">
|
||
</div>
|
||
</div>
|
||
<div class="form-row">
|
||
<div class="form-group">
|
||
<label for="form-date-start">Дата начала</label>
|
||
<input type="date" id="form-date-start" required>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="form-date-end">Дата окончания</label>
|
||
<input type="date" id="form-date-end" required>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="form-purpose">Цель поездки</label>
|
||
<input type="text" id="form-purpose" required placeholder="Например: участие в конференции, переговоры">
|
||
</div>
|
||
<div class="form-row">
|
||
<div class="form-group">
|
||
<label for="form-amount">Сумма расходов (₸)</label>
|
||
<input type="number" id="form-amount" required min="0" placeholder="0">
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="form-status">Статус согласования</label>
|
||
<select id="form-status" required>
|
||
<option value="на согласовании">На согласовании</option>
|
||
<option value="согласовано">Согласовано</option>
|
||
<option value="отклонено">Отклонено</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="form-actions">
|
||
<button type="button" class="btn btn-secondary" id="cancel-form">Отмена</button>
|
||
<button type="submit" class="btn btn-primary">Сохранить</button>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="modal" id="modal-log">
|
||
<div class="modal-content modal-large">
|
||
<div class="modal-header">
|
||
<h2>Журнал изменений</h2>
|
||
<button class="close" id="close-log">×</button>
|
||
</div>
|
||
<div class="log-container">
|
||
<table class="log-table">
|
||
<thead>
|
||
<tr>
|
||
<th>Дата и время</th>
|
||
<th>Действие</th>
|
||
<th>Кто</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody id="log-body"></tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<script src="script.js"></script>
|
||
</body>
|
||
</html>
|