3.6 KiB
3.6 KiB
Журнал учёта заявок
Тип решения
Статический сайт (index.html + style.css + script.js) на ванильном JS с сохранением данных в LocalStorage браузера.
Задача
Создать инструмент для ведения журнала заявок: фиксация того, кто подал, что нужно, сроки и текущий статус.
Кто пользуется
Сотрудники, подающие заявки, и администраторы, отслеживающие их исполнение.
Что делает прототип
- Главный экран: Отображает таблицу со списком заявок. Сверху — счетчики (Всего, В работе, Выполнено, Отклонено) и строка поиска по тексту.
- Управление статусами: Под строкой поиска — кнопки-чипсы для фильтрации таблицы по статусам.
- Форма: Кнопка «Добавить заявку» открывает модальное окно. В форме поля: «Кто подал», «Что нужно», «Срок» (календарь), «Статус» (выпадающий список). Эта же форма используется для редактирования.
- Действия в строке: В каждой строке таблицы кнопки «Изменить» и «Удалить».
- Логика удаления: При нажатии «Удалить» появляется системное подтверждение. После подтверждения запись исчезает, а в скрытый журнал изменений (доступен по кнопке «История») пишется: дата, время, действие, кто удалил (имя из сессии или «Администратор» по допущению).
- Экспорт: Кнопка «Скачать в Excel» формирует и скачивает CSV-файл с текущим содержимым таблицы.
- Сохранение: Все данные сохраняются в памяти браузера (LocalStorage) — не пропадают после обновления страницы.
- Формат дат: Отображение дат строго в формате ДД.ММ.ГГГГ.
Демо-данные
5 записей с реалистичными именами (Алия К., Ержан М.) и задачами (Закупка СИЗ, Ремонт серверной, Выдача пропуска). Статусы распределены: 2 «Новая», 2 «В работе», 1 «Выполнено». Даты в диапазоне текущего месяца.
Допущения
- Пользователь работает с одного устройства/браузера (данные не синхронизируются между разными ПК).
- Поле «Кто удалил» в журнале заполняется фиксированным значением «Текущий пользователь», так как реальной авторизации нет.
Чего пока нет
- Общего сервера для работы команды с разных компьютеров.
- Интеграции с почтой Lotus и корпоративным агентом Alem.
- Авторизации через корпоративный аккаунт.