Разработка frond-end страницы с использованием bootstrap
Требования к реализации:
- Использовать популярный клиентский фреймворк вроде React или подобный. На серверной стороне Apache+PHP
- Верстка на Bootstrap 3 (уже используется в проекте, стандартная тема)
- Вписаться в существующую структуру проекта (очень простая, все пути от корня, в папке /plugins/ складываем все что вам нужно по подпапкам с осмысленными названиями). Готовый пример высылаю архивом исполнителю, самому придумывать ничего не нужно
Структура страницы следующая: два поля выбора, список с определенными значениями ("Здание") и календарь с выбором месяца ("Период")
Выбрав определенное здание и период, пользователь видит набор данных для этого здания+периода. Данные подгружаются с сервера в JSON и имеют следующую структуру:
- Вкладки с наименованиями ("Услуги")
- Внутри каждой вкладки – два таблицы:
Первая таблица ("Счетчики здания") – 5 столбцов, одно поле для ввода. Количество записей примерно до 4 штук
Вторая таблица ("Счетчики помещений") – 6 столбцов, одно поле для ввода. Количество записей примерно до 1000 штук
Задачи интерфейса:
- При подгрузке данных желательно блокировать старые данные или скрывать, и показывать прелоадер
- Выбор здания и периода, при изменении отсылать на сервер новые значения в JSON (сохраняются в сессии), и загружать новые данные для выбранных здания+периода
- Навигация по вкладкам услуг
- Навигация по счетчикам помещений. Их может быть много, необходима постраничная навигация (внутри услуги)
- Общая для всей страницы кнопка "Сохранить значения", при нажатии на которую все измененные значения нужно отправить на сервер в JSON
Важные моменты:
- пустое значение поля ввода тоже является значением. То есть если к примеру в поле было значение 10, пользователь стер его и там стало пусто, пустое значение также нужно передать на сервер при сохранении
- по каждому изменению поля не нужно сообщать об этом серверу. Только по нажатию кнопки на всю страницу – но все измененные поля
- формат JSON выбираете удобный для вас, показываете какой, и точно такой будет реализован на backend в течении одного рабочего дня