zhurnal-komandirovok-sotrudn/brief.md

6.0 KiB
Raw Permalink Blame History

Журнал командировок сотрудников

Тип решения

Статический сайт: index.html + style.css + script.js (ванильный JS, Tailwind через CDN). Публикация по постоянной ссылке.

Задача

Создать прототип журнала учёта командировок для визуализации списка поездок, статусов согласования и бюджетов.

Кто пользуется

Владелец процесса и его команда для ручного ведения и просмотра списка командировок в браузере.

Что делает прототип

  1. Главный экран (Дашборд):

    • Сверху: 4 карточки-счётчика (Всего, На согласовании, Согласовано, В поездке).
    • Ниже: строка поиска по ФИО или городу.
    • Ниже: фильтр статусов кнопками-чипсами (Все, На согласовании, Согласовано, Отказано).
    • Основная таблица: столбцы «Сотрудник», «Куда», «Даты» (ДД.ММ.ГГГГ), «Бюджет», «Статус», «Действия».
    • Кнопка «+ Добавить командировку» справа сверху.
  2. Форма (Модальное окно):

    • Поля: ФИО сотрудника, Город назначения, Дата начала, Дата окончания, Бюджет (тенге), Статус (выпадающий список).
    • Кнопки: «Сохранить» (добавляет или обновляет запись), «Отмена».
  3. Логика работы:

    • При нажатии на строку таблицы открывается форма для редактирования.
    • Кнопка удаления в строке вызывает подтверждение («Удалить запись?»), после чего запись исчезает, а в журнал изменений (внизу страницы или в консоли) пишется событие.
    • Данные сохраняются в LocalStorage браузера (не пропадают после обновления страницы F5).
    • Кнопка «Выгрузить в Excel» формирует CSV-файл текущей выборки.

Демо-данные

5 записей с реалистичными данными:

  • Иванов А. (Алматы -> Астана, 10.10.2023, 150 000 тг, Согласовано)
  • Петров Б. (Шымкент -> Алматы, 12.10.2023, 80 000 тг, На согласовании)
  • Смирнов В. (Актобе -> Москва, 01.11.2023, 450 000 тг, В поездке)
  • Ахметов К. (Караганда -> Астана, 05.11.2023, 120 000 тг, Отказано)
  • Ли Д. (Уральск -> Атырау, 20.11.2023, 90 000 тг, На согласовании)

Допущения

  • Валюта бюджета везде в тенге.
  • Статусы фиксированы: «На согласовании», «Согласовано», «Отказано», «В поездке», «Завершено».
  • Журнал изменений хранится в памяти браузера.

Чего пока нет

  • Авторизации и разделения прав доступа.
  • Интеграции с 1С, SAP или кадровыми системами.
  • Отправки уведомлений в Telegram или на почту.

Дизайн — дизайн-система KT AI

Весь интерфейс собирай на дизайн-системе KT AI, которая уже лежит в папке проекта design-system/. Перед первой строкой вёрстки прочитай design.md и design-system/AGENTS.md и следуй им. Подключай файлы ДС относительными путями и в этом порядке: ./design-system/kt-ai-fonts.css, ./design-system/kt-ai-tokens.css, ./design-system/kt-ai-components.css, ./design-system/kt-ai-page.css. Тема по умолчанию — светлая: <html lang="ru" data-theme="light">; не ставь dark и не ставь auto (auto уходит в тёмную по системной теме). Переключатель темы можно оставить, но открываться страница должна светлой. Цвета, отступы и размеры — только токенами var(--kt-ai-…), иконки — из design-system/icons/kt-ai-lucide-sprite.svg. Таблицы, списки, журналы, дашборды и формы собирай из готовых классов ДС (design-system/COMPONENTS.md), архетип экрана выбирай по design-system/docs/ARCHETYPES.md. Каркас страницы — из design.md, с обычными <link>. Шаблон design-system/templates/kt-ai-app-shell.html целиком не копируй: его скрипты-загрузчики (data-kt-ai-base-resolver, data-kt-ai-boot) тянут CSS с корня сайта по абсолютному пути /design-system/…, а сайт публикуется в подпапке — стили не загрузятся. Подключай только файлы, которые реально лежат в design-system/ (проверь ls design-system): файла kt-ai-components.js там нет. Свой стиль не выдумывай, Bootstrap/Tailwind/Material/Google Fonts не подключай, сырые hex-цвета не пиши. Папку design-system/ закоммить вместе с проектом — иначе опубликованная страница останется без стилей.