Добавление новых договоров
Backend
Добавлять новые договоры может только менеджер, имеющий соответствующее разрешение (в рамках лабораторной работы —
член группы staff
). Добавление договора происходит с помощью POST-запроса на эндпоинт /contracts/
. Задача
фронтенда — преобразовать человекочитаемые названия объектов в соответствующие id.
Frontend
Скрипт:
- Импорты:
computed
,ref
,watch
из Vue.js для реактивности.fetchWrapper
для выполнения HTTP-запросов.-
useRouter
для навигации. -
Основные Переменные:
-
contract
,organizations
,agents
,employees
для хранения данных формы и связанных сущностей. -
Функции:
loadData
для загрузки данных организаций, агентов и сотрудников.submitContract
для отправки данных контракта.-
filteredEmployees
для фильтрации сотрудников в соответствии с выбранной организацией. -
Наблюдатели (watchers):
- Отслеживание изменений в выборе организации для обновления списка сотрудников.
Разметка:
- Форма для создания контракта с использованием Vuetify компонентов.
- Включает в себя поля для выбора типа контракта, даты начала и окончания, стоимости страховки, а также выбора организации, агента и сотрудников.
Логика работы:
- Инициализация: Загрузка данных организаций, агентов и сотрудников при загрузке компонента.
- Ввод данных: Пользователь вводит или выбирает необходимые данные для создания контракта.
- Фильтрация сотрудников: Основываясь на выбранной организации, предлагается соответствующий список сотрудников.
- Отправка формы: По нажатию кнопки отправки, данные контракта передаются на сервер.
Стилизация:
Использование Vuetify для создания привлекательного и функционального интерфейса формы.
Пример работы
Начало работы:
Заполнение полей:
Результат: