Направление работ: WebLk Код раздела: 5.2 Раздел: Заказы > Календарь Статус: черновик Ответственный: Панкова Л.А. Версия: 0.1 Обновлено: 17.07.26
1. Назначение
Раздел обеспечивает партнеру календарное представление заказов и заявок по объектам и площадкам партнерской зоны.
Партнер просматривает события календаря за выбранный период, переключает варианты отображения, меняет дату, просматривает состояния и источники заказов, переходит к связанным сценариям и удаляет заказы без статуса.
Интерфейс использует объекты и площадки партнера, состав заказа и состояния заказа, определенные в Back-разделах 2.1 «Объекты партнеров», 2.2 «Площадки партнеров», 3.1 «Состав заказа» и 3.2 «Процессинг заказов».
2. Ключевые понятия
Календарь заказов — экран WebLk, на котором события партнерской зоны отображаются по времени, датам, объектам и площадкам.
Объект — объект партнера, площадки которого могут быть выбраны для отображения в календаре.
Площадка — площадка объекта партнера, для которой в календаре отображаются временные слоты и события.
Заказ — заказ партнера, содержащий данные о клиенте, дате и времени, стоимости, состоянии и связанных признаках.
Бронирование — форма заказа, которая резервирует временной слот и проходит основной процессинг.
Событие календаря — отображение заказа или бронирования в календарной сетке с доступными данными и индикаторами.
Новый заказ — заказ в процессе создания партнером. Такое событие календаря отображается выбранным и переходит в другое состояние после завершения создания заказа.
Заявка — форма заказа, работа с которой выполняется в отдельном сценарии WebLk 5.4.1.
Абонемент — сущность, связанная с карточкой абонемента в WebLk 5.5.2.
Источник заказа — канал создания заказа: «Мобильное приложение», «Каталог MUSbooking», «Виджет», «Внешние календари» или «Telegram бот».
Состояние заказа — текущее состояние заказа, обозначенное постоянным индикатором в событии календаря.
Заказ без статуса — заказ по интеграции или пустой заказ, созданный партнером для перекрытия временного слота. Такой заказ доступен для удаления через дополнительные действия.
3. Scope
Входит
S1: Календарь и переходы в другие разделы
S2: Варианты отображения: день, неделя и месяц
S3: Смена даты
S4: Справка по состояниям
S5: Удаление заказа без статуса
S6: Состояния экрана и адаптивы
Не входит
- WebLk 5.2.1 Все объекты
- WebLk 5.2.2 Горизонтальное отображение
- WebLk 5.2.3 Создание горящего предложения
- WebLk 5.3.1 Создание бронирования
- WebLk 5.3.2 Карточка заказа
- WebLk 5.4.1 Работа с заявкой и ее преобразование в заказ
- WebLk 5.5.2 Карточка абонемента
4. BR
Указаны в пункте 4 разделов Back: 2.1 Объекты партнеров, 2.2 Площадки партнеров, 3.1 Состав заказа и 3.2 Процессинг заказов.
5. Функциональные требования (UC + FR)
| ID | Сценарий | Функциональное требование | BR | Вес | Статус |
|---|---|---|---|---|---|
| S1: FR5.2-1 | Партнер открывает раздел «Календарь» | Интерфейс открывает календарь заказов партнерской зоны и показывает панель управления, календарную сетку, события календаря и постоянную строку состояний заказов. | 1 | Частично OQ5.2-6 | |
| S1: FR5.2-2 | Партнер просматривает панель управления календарем | Интерфейс показывает выбор объектов и площадок, переключатели «День», «Неделя» и «Месяц», кнопки перехода к предыдущему и следующему периоду и отображение текущего периода или даты, по нажатию на которое открывается календарь выбора даты. Интерфейс также показывает кнопку справки и кнопку дополнительных действий. При нажатии на кнопку дополнительных действий интерфейс показывает: - «Горизонтальное отображение»; - «Создать горящую репетицию»; - «Удалить заказы без статуса». | 1 | Частично OQ5.2-1 | |
| S1: FR5.2-3 | Партнер переключает вариант отображения в панели управления | Интерфейс отмечает выбранный вариант «День», «Неделя» или «Месяц» и перестраивает период, заголовки и события календаря без перехода в другой раздел. | 1 | Реализовано OQ5.2-14 | |
| S1: FR5.2-4 | Партнер выбирает «Горизонтальное отображение» | Интерфейс переводит партнера в WebLk 5.2.2 «Горизонтальное отображение». | 2 | Частично OQ5.2-1 | |
| S1: FR5.2-5 | Партнер выбирает «Создать горящую репетицию» | Интерфейс переводит партнера в WebLk 5.2.3 «Создание горящего предложения». | 1 | Не реализовано OQ5.2-2 | |
| S1: FR5.2-6 | Партнер выбирает «Удалить заказы без статуса» | Интерфейс запускает сценарий удаления заказов без статуса, описанный в S5. | 1 | Не реализовано OQ5.2-2 | |
| S1: FR5.2-7 | Партнер открывает выбор объектов и площадок | Интерфейс позволяет выбрать все объекты и площадки. При выборе пункта «Все» интерфейс переводит партнера в WebLk 5.2.1 «Все объекты» и отображает площадки всех объектов. Интерфейс позволяет выбрать пункт «Все» внутри отдельного объекта, чтобы отобразить все его площадки, либо выбрать несколько отдельных площадок. При снятии выбора отдельной площадки интерфейс также снимает выбор соответствующего пункта «Все». Интерфейс позволяет выполнить действие «Отменить выбор» и возвращает исходный набор выбранных площадок. | 1 | Частично OQ5.2-3 | |
| S1: FR5.2-8 | Партнер просматривает событие календаря | Интерфейс показывает в событии календаря доступные данные: имя клиента или наименование «Новый заказ», время начала и окончания, стоимость и индикатор состояния заказа. Интерфейс также показывает индикатор источника заказа и, при наличии соответствующих данных, индикаторы информации о заказе. | 1 | Частично OQ5.2-4 | |
| S1: FR5.2-9 | Партнер просматривает источник и информацию о заказе | Интерфейс всегда показывает в событии календаря источник заказа и обозначает его одним из вариантов: - «Мобильное приложение»; - «Каталог MUSbooking»; - «Виджет»; - «Внешние календари»; - «Telegram бот». Интерфейс показывает информацию о заказе только при наличии соответствующих данных: - комментарий; - дополнительное оборудование; - ограничения клиента; - абонемент; - оплата online. | 2 | Частично OQ5.2-4, OQ5.2-5 | |
| S1: FR5.2-10 | Партнер просматривает легенду состояний заказов | Интерфейс постоянно показывает в календаре легенду состояний заказов. Легенда сопоставляет визуальные индикаторы с состояниями «Без статуса», «Зарезервировано», «Частично оплачено», «Оплачено», «Выбрано» и «Закрытый заказ» и позволяет визуально определить состояние события календаря. | 1 | Частично OQ5.2-6 | |
| S1: FR5.2-11 | Партнер выбирает свободный временной слот | Интерфейс создает событие календаря с пометкой «Новый заказ» и переводит партнера в WebLk 5.3.1 «Создание бронирования» с контекстом выбранных даты, времени и площадки. | 1 | Реализовано OQ5.2-14 | |
| S1: FR5.2-12 | Партнер выбирает событие | Интерфейс переводит партнера в WebLk 5.3.2 «Карточка заказа» для выбранного события календаря. | 1 | Реализовано OQ5.2-14 | |
| S1: FR5.2-13 | Партнер выбирает заявку | Интерфейс переводит партнера в WebLk 5.4.1 «Работа с заявкой и ее преобразование в заказ» для выбранной заявки. | 1 | Не реализовано OQ5.2-7 | |
| S1: FR5.2-14 | Партнер выбирает абонемент | Интерфейс переводит партнера в WebLk 5.5.2 «Карточка абонемента» для выбранного абонемента. | 1 | Не реализовано OQ5.2-8 | |
| S2: FR5.2-15 | Партнер выбирает «День» в панели управления | Интерфейс показывает выбранную дату со шкалой времени, индикатором текущего времени и группирует события календаря по выбранным объектам и площадкам. | 1 | Реализовано OQ5.2-15 | |
| S2: FR5.2-16 | Партнер просматривает дневное отображение выбранных площадок | Интерфейс формирует колонки по выбранным объектам и площадкам. Заголовок объекта объединяет относящиеся к нему выбранные площадки, а события календаря остаются привязаны к своим площадкам и временным слотам. Ширина и количество видимых колонок адаптируются к составу выбора и доступной области экрана. | 1 | Реализовано OQ5.2-15 | |
| S2: FR5.2-17 | Партнер просматривает дневное отображение с площадками, которые не помещаются на экране | Интерфейс сохраняет доступ ко всем выбранным площадкам и событиям календаря через горизонтальную прокрутку календарной сетки. | 2 | Реализовано OQ5.2-15 | |
| S2: FR5.2-18 | Партнер выбирает «Неделя» в панели управления | Интерфейс показывает последовательность дней недели со шкалой времени и размещает события календаря в днях и временных слотах выбранной недели. | 1 | Реализовано OQ5.2-15 | |
| S2: FR5.2-19 | Партнер просматривает недельное отображение выбранных площадок | Интерфейс перестраивает недельное отображение с учетом выбранных объектов и площадок, сохраняя привязку событий календаря к дням и временным слотам. Если данные не помещаются в доступной области экрана, интерфейс сохраняет доступ к ним через горизонтальную прокрутку. | 1 | Реализовано OQ5.2-15 | |
| S2: FR5.2-20 | Партнер выбирает «Месяц» в панели управления | Интерфейс показывает календарную сетку месяца с названиями дней недели, датами и событиями календаря внутри соответствующих дней. | 1 | Реализовано OQ5.2-15 | |
| S2: FR5.2-21 | Партнер просматривает события в режиме месячного отображения | Интерфейс изменяет вид событий календаря для месячной сетки, показывает количество заказов в соответствующих состояниях внутри дня и выделяет текущий день месяца. | 2 | Реализовано OQ5.2-15 | |
| S3: FR5.2-22 | Партнер переходит к предыдущему или следующему периоду | Интерфейс изменяет дату на предыдущий или следующий день, неделю либо месяц в зависимости от выбранного варианта отображения и обновляет события календаря. | 1 | Реализовано OQ5.2-14 | |
| S3: FR5.2-23 | Партнер нажимает на отображение текущего периода или даты | Интерфейс открывает календарь выбора даты поверх текущего экрана, показывает месяц, дни недели и доступные даты и отмечает сегодняшний день. До выбора новой даты действие «Применить» неактивно, а действие «Сбросить» доступно. | 1 | Частично OQ5.2-9 | |
| S3: FR5.2-24 | Партнер выбирает дату | Интерфейс отмечает выбранную дату в календаре выбора даты. Действие «Применить» становится активным. | 1 | Реализовано OQ5.2-9 | |
| S3: FR5.2-25 | Партнер нажимает «Сбросить» | Интерфейс снимает сделанный выбор даты и возвращает календарь выбора даты в исходное состояние. | 2 | Не реализовано OQ5.2-9 | |
| S3: FR5.2-26 | Партнер нажимает «Применить» | Интерфейс закрывает календарь выбора даты, показывает примененную дату в панели управления и обновляет календарную сетку и события для выбранной даты или содержащего ее периода. | 1 | Частично OQ5.2-9 | |
| S4: FR5.2-27 | Партнер открывает справку | Интерфейс открывает боковую панель справки, сохраняя календарь доступным для просмотра. | 2 | Частично OQ5.2-10 | |
| S4: FR5.2-28 | Партнер просматривает источники заказов в справке | В блоке «Источники заказов» интерфейс показывает обозначения «Мобильное приложение», «Каталог MUSbooking», «Виджет», «Внешние календари» и «Telegram бот». | 2 | Не реализовано OQ5.2-10 | |
| S4: FR5.2-29 | Партнер просматривает информацию о заказе в справке | В блоке «Информация о заказе» интерфейс показывает обозначения «Содержит комментарий», «Доп. оборудование», «Клиент с ограничениями», «Абонемент» и «Оплачен online». | 2 | Не реализовано OQ5.2-10 | |
| S4: FR5.2-30 | Партнер нажимает «Скрыть» | Интерфейс закрывает боковую панель справки и возвращает календарю полную доступную область. | 3 | Не реализовано OQ5.2-10 | |
| S5: FR5.2-31 | Партнер выбирает «Удалить заказы без статуса» | Интерфейс затемняет текущий экран и показывает окно подтверждения с заголовком «Удалить заказы без статуса?», пояснением «Заказы интегрированные из других сервисов также будут удалены» и кнопками «Отменить» и «Подтвердить». | 1 | Не реализовано OQ5.2-2 | |
| S5: FR5.2-32 | Партнер нажимает «Отменить» | Интерфейс закрывает окно подтверждения без удаления событий календаря и возвращает партнера к календарю. | 2 | Не реализовано OQ5.2-2 | |
| S5: FR5.2-33 | Партнер нажимает «Подтвердить» | Интерфейс закрывает окно подтверждения, удаляет из текущего календаря заказы без статуса и обновляет показанные события. | 1 | Не реализовано OQ5.2-2 | |
| S6: FR5.2-34 | Партнер открывает календарь, данные загружаются | Интерфейс показывает состояние загрузки, соответствующее выбранному варианту «День», «Неделя» или «Месяц», до отображения календарной сетки и событий. | 2 | Частично OQ5.2-11 | |
| S6: FR5.2-35 | Партнер открывает календарь на экране другого размера | Интерфейс адаптирует страницу календаря, панель управления, календарную сетку, события календаря, справку и модальные окна для desktop, laptop, tablet и mobile. | 1 | Реализовано OQ5.2-15 |
6. Открытые вопросы
Сверка с кодом: BRD 5.2 v0.1 · репозиторий
musbooking_personal_account· commitd6f907bf/main· 26.07.26 · якорьfeatures.fsd/order-calendar+widgets.fsd/order-calendarСводка: 15 вопросов (Open 13 · Подтверждено 2) Важно: в репозитории две реализации календаря — устаревшаяcomponents/calendar/и действующая FSD-версия. Страница/orders/calendarиспользует FSD-версию, сверка сделана по ней (см. OQ5.2-12). Маршрутизация без сверки с гайдбуком (гайдбук не передавался).
| ID | Источник | Вопрос | Кому | Статус | Рекомендации | Итоговое решение |
|---|---|---|---|---|---|---|
| OQ5.2-1 | Код FR5.2-2, FR5.2-4 | Требование говорит: в панели управления есть кнопка справки и кнопка дополнительных действий с тремя пунктами — «Горизонтальное отображение», «Создать горящую репетицию», «Удалить заказы без статуса». В коде меню дополнительных действий нет вообще: в панели стоят четыре отдельные кнопки-тумблера — подсказки, «Использовать правила бронирования», «Горизонтальный режим» и переключатель «К списку заказов / К календарю». Горизонтальное отображение включается тумблером, а не пунктом меню, и в режиме «День» этот тумблер скрыт совсем. Кнопка подсказок показывается только на мобильном (при ширине окна меньше 640 пикселей), на десктопе справку открыть нечем. Отдельно: переключатель вариантов отображения подписан «Сегодня», «Неделя», «Месяц» — вместо «День» стоит «Сегодня». \ features.fsd/order-calendar/ui/Core/Controls.vue:32-58 (кнопки), :34 (справка только на мобильном), :45 (тумблер скрыт в режиме «День»), :128-132 (подписи) | Бизнес | Open | (А) Привести код к BRD: собрать три действия в одно меню и вернуть справку на десктоп. Это заметная переработка панели, но два из трёх пунктов меню сейчас вообще отсутствуют (см. OQ5.2-2), так что делать её всё равно придётся. (Б) Признать текущую панель целевой и переписать FR5.2-2: тумблеры вместо меню. Тогда отдельно решите судьбу справки на десктопе — сейчас блок подсказок доступен только на узком экране, и это выглядит недосмотром, а не решением. Подпись «Сегодня» вместо «День» стоит поправить в любом случае: она вводит в заблуждение, потому что режим показывает выбранный день, а не обязательно сегодняшний. | |
| OQ5.2-2 | Код FR5.2-5, FR5.2-6, FR5.2-31, FR5.2-32, FR5.2-33 | Требование говорит: из календаря можно создать горящую репетицию (раздел 5.2.3) и удалить заказы без статуса — с окном подтверждения «Удалить заказы без статуса?», пояснением про заказы из внешних сервисов и кнопками «Отменить» и «Подтвердить». В коде обеих возможностей нет: ни в действующей FSD-версии календаря, ни в устаревшей нет ни одного упоминания горящих предложений и ни одного упоминания удаления заказов без статуса — ни кнопки, ни окна подтверждения, ни запроса к бэкенду. Это пять требований раздела, три из которых веса 1. \ поиск по features.fsd/order-calendar и widgets.fsd/order-calendar совпадений не даёт | Бизнес | Open | Подтвердить, в каком состоянии находятся оба сценария: это ещё не реализованная функциональность (тогда раздел BRD описывает целевое состояние, и это стоит пометить прямо в требованиях) или они реализованы где-то за пределами календаря. Замечу, что на бэкенде горящие предложения есть — см. сверку Back 2.7.2, но с фиксированной скидкой 50% и только на текущие сутки; это стоит учесть при постановке задачи на кабинет. После ответа — тикет в Bitrix на реализацию, приоритет по весу требований. | |
| OQ5.2-3 | Код FR5.2-7 | Требование говорит: в выборе объектов и площадок есть пункт «Все» (и для всех объектов, и внутри отдельного объекта), снятие выбора площадки снимает и соответствующий «Все», а действие «Отменить выбор» возвращает исходный набор площадок. В коде дерево выбора реализовано, пункты «Все объекты» и «Все площадки» есть, массовый выбор работает. А действия «Отменить выбор» (возврата к исходному набору) в компоненте нет — сбросить изменения одним действием нельзя. \ components/UI/filters/FilterTreeMenu.vue:498 (массовый выбор), :574 и :625 (пункты «Все»); действия отмены в компоненте не найдено | Бизнес | Open | (А) Подтвердить требование — тогда доработка небольшая: запоминать набор на момент открытия меню и восстанавливать его по действию. (Б) Снять «Отменить выбор» из FR5.2-7, если партнёру достаточно снять галочки вручную. Уточните заодно, что считать «исходным набором» — состояние на момент открытия меню или сохранённый ранее выбор партнёра. | |
| OQ5.2-4 | Код FR5.2-8, FR5.2-9 | Требование говорит: в событии календаря показываются индикаторы информации о заказе при наличии данных — комментарий, дополнительное оборудование, ограничения клиента, абонемент, оплата online. В коде из пяти индикаторов работает один: комментарий. Список дополнительных иконок жёстко возвращает пустой массив с пометкой «если нужны дополнительные иконки, добавить здесь», а признак ограничений клиента — константа «нет», поэтому значок ограничений не появится никогда, какие бы данные ни пришли. \ features.fsd/order-calendar/ui/Events/Event.vue:297-300 (пустой список иконок), :283 (константа ограничений), :52 и :92 (работающий значок комментария) | Разработка | Open | Завести тикет в Bitrix: подключить индикаторы к реальным данным заказа — оборудование, абонемент, оплата online, ограничения клиента. Продуктового выбора нет: требование описывает пять индикаторов, показывается один. Первым шагом уточнить у разработки, приходят ли эти признаки в модели заказа календаря: если нет, задача расширяется до правки запроса. | |
| OQ5.2-5 | Код FR5.2-9 | Требование говорит: источник заказа обозначается одним из пяти вариантов — «Мобильное приложение», «Каталог MUSbooking», «Виджет», «Внешние календари», «Telegram бот». В коде источников семь, и набор не совпадает: кабинет партнёра, мобильное приложение, виджет, YClients, AppEvent, Google Календарь и каталог. Telegram-бота среди них нет, а «Внешние календари» из требования разложены на два отдельных источника (YClients и Google Календарь). В самом справочнике оставлен комментарий, что идентификаторы виджет-каталога и внешнего календаря «добавятся позже». \ composables/useSourceMapper.ts:5-14 (список источников и комментарий), :18-35 (соответствие числовых кодов) | Бизнес | Open | (А) Привести BRD к коду (рекоменд.): перечислить фактические источники и решить, показывать ли YClients и Google Календарь по отдельности или объединять их подписью «Внешние календари» — второе ближе к тому, что нужно партнёру, и не требует правки справочника. (Б) Если заказы действительно приходят из Telegram-бота, нужен отдельный источник — это доработка и на бэкенде, и в кабинете; проверьте по разделу Телеграм бот, создаёт ли он заказы вообще или только уведомляет. | |
| OQ5.2-6 | Код FR5.2-10, FR5.2-1 | Требование говорит: легенда постоянно показана в календаре и сопоставляет индикаторы с состояниями «Без статуса», «Зарезервировано», «Частично оплачено», «Оплачено», «Выбрано» и «Закрытый заказ». В коде легенда есть, но состав другой: «Без статуса», «Зарезервировано», «Оплачено полностью», «Оплачено частично», «Закрыто», «Отменено». Состояния «Выбрано» в легенде нет (хотя выделение выбранного события в коде реализовано), зато есть «Отменено», которого нет в требовании. Формулировки трёх состояний отличаются от BRD дословно. Кроме того, легенда скрыта на мобильном — там вместо неё выдвижная панель подсказок, то есть «постоянно показывает» выполняется только на широком экране. \ features.fsd/order-calendar/ui/Core/Root.vue:350-361 (состав легенды), :146 (скрытие на мобильном), features.fsd/order-calendar/ui/Events/Event.vue:278-280 (выделение выбранного события) | Бизнес | Open | (А) Привести BRD к коду (рекоменд.): зафиксировать шесть фактических состояний с их названиями. Состояние «Отменено» в календаре нужно — партнёр должен отличать отменённый заказ от закрытого. (Б) Если «Выбрано» должно быть в легенде как отдельная строка — это правка на один элемент. Отдельно подтвердите поведение на мобильном: панель подсказок вместо постоянной легенды выглядит осознанным решением, но в FR5.2-1 и FR5.2-10 оно не описано. | |
| OQ5.2-7 | Код FR5.2-13 | Требование говорит: выбор заявки в календаре переводит партнёра в раздел 5.4.1 «Работа с заявкой». В коде заявки в календаре не реализованы: список заявок — это функция, всегда возвращающая пустой массив с комментарием «пока просто пустой массив, до реализации», а обработчик выбора заявки только пишет в журнал «Заявки пока не реализованы» и ничего не делает. Компоненты отображения заявок при этом написаны и подключены во все виды календаря — они просто никогда не получают данных. \ features.fsd/order-calendar/ui/Core/Root.vue:389 (пустой список), :405-407 (заглушка обработчика), :59-141 (подключение компонентов заявок) | Разработка | Open | Завести тикет в Bitrix: подключить заявки к календарю — загрузку и переход в карточку заявки. Продуктового выбора нет, требование веса 1. Уточнить у разработки, есть ли готовый метод получения заявок для периода: компоненты отображения уже написаны, поэтому работа может свестись к загрузке данных. До реализации стоит понимать, что партнёр сейчас не видит заявки в календаре вообще. | |
| OQ5.2-8 | Код FR5.2-14 | Требование говорит: выбор абонемента в календаре переводит партнёра в 5.5.2 «Карточка абонемента». В коде абонементов в календаре нет ни в каком виде: ни отдельного типа события, ни признака у заказа, ни перехода — поиск по действующей и устаревшей реализациям календаря не даёт ни одного совпадения. Отмечу, что индикатор «Абонемент» в событии тоже не выводится (см. OQ5.2-4). \ поиск по features.fsd/order-calendar и widgets.fsd/order-calendar совпадений не даёт | Бизнес | Open | Подтвердить, как абонемент должен выглядеть в календаре: отдельным событием, признаком у обычного заказа или он туда вообще не попадает. От ответа зависит объём: во втором случае достаточно индикатора и перехода из карточки заказа, в первом — это новый тип события со своей загрузкой. Вопрос логично закрыть вместе с OQ5.2-4, где речь про индикатор абонемента в событии. | |
| OQ5.2-9 | Код FR5.2-23, FR5.2-25, FR5.2-26 | Требование говорит: по нажатию на текущий период открывается календарь выбора даты с действиями «Применить» (неактивно до выбора) и «Сбросить»; «Применить» закрывает календарь и обновляет сетку. В коде календарь выбора даты открывается и дату выбрать можно, но кнопок «Применить» и «Сбросить» в компоненте нет — выбранная дата применяется сразу, без подтверждения, и сбросить выбор отдельным действием нельзя. \ components/UI/fields/DateInput.vue (компонент выбора даты; действий «Применить»/«Сбросить» не найдено), features.fsd/order-calendar/ui/Core/Controls.vue:24-30 (подключение) | Бизнес | Open | (А) Признать текущее поведение целевым (рекоменд.): применение по выбору даты — на один клик короче и привычнее; тогда FR5.2-23, FR5.2-25 и FR5.2-26 переписываются под него, а FR5.2-24 остаётся как есть. (Б) Если подтверждение нужно (например, чтобы не дёргать загрузку на каждый клик) — это доработка компонента выбора даты, и она затронет все места, где он используется, не только календарь. | |
| OQ5.2-10 | Код FR5.2-27, FR5.2-28, FR5.2-29, FR5.2-30 | Требование говорит: справка открывается боковой панелью, содержит блоки «Источники заказов» и «Информация о заказе» с перечисленными обозначениями и закрывается действием «Скрыть». В коде справка есть только как выдвижная панель на мобильном (кнопка подсказок показывается при ширине меньше 640 пикселей, см. OQ5.2-1). Блоков «Источники заказов» и «Информация о заказе» в ней нет — в календаре выводится только легенда состояний заказов; действия «Скрыть» тоже нет. \ features.fsd/order-calendar/ui/Core/Controls.vue:33-38 (кнопка только на мобильном), features.fsd/order-calendar/ui/Core/Legend.vue (только состояния) | Бизнес | Open | Решать вместе с OQ5.2-1 и OQ5.2-6 — это один и тот же узел. Если справка нужна на десктопе, то её содержимое (источники и индикаторы информации) имеет смысл делать после OQ5.2-4 и OQ5.2-5: объяснять в справке значки, которые не выводятся, бессмысленно. Порядок работ: сначала индикаторы, потом справка. | |
| OQ5.2-11 | Код FR5.2-34 | Требование говорит: при загрузке показывается состояние, соответствующее выбранному варианту «День», «Неделя» или «Месяц». В коде скелетоны есть, но они общие: одна заглушка панели управления и одна заглушка сетки, одинаковые для всех трёх режимов. Кроме того, на странице календаря объявлено отдельное вычисляемое состояние загрузки сетки — с проверкой готовности баз и статусов запросов — но в разметке оно не используется: показ скелетона завязан только на готовность пользователя и партнёрской зоны. \ pages/orders/calendar.vue:5-13 (общие скелетоны), :91-123 (неиспользуемое состояние загрузки сетки), :72-80 (фактическое условие) | Разработка | Open | Завести тикет в Bitrix: либо задействовать уже написанное состояние загрузки сетки, либо удалить его как мёртвый код. Различать скелетоны по режиму — вопрос к дизайну: если разница только в разметке сетки, это дешёвая правка, и её стоит сделать заодно. Практическое следствие текущего кода: сетка показывается до того, как загрузились заказы, поэтому партнёр видит пустой календарь и потом появляющиеся события. | |
| OQ5.2-12 | Код вне BRD | Проблема: в репозитории две параллельные реализации календаря — устаревшая в components/calendar/ (около 10 600 строк) и действующая FSD-версия в features.fsd/order-calendar/ (около 15 100 строк). Обе содержат одинаковый набор файлов: панель управления, легенду, виды «День», «Неделя», «Месяц», горизонтальный режим, события и заявки. Страница /orders/calendar использует FSD-версию, поэтому сверка сделана по ней, но устаревшая версия остаётся в сборке и отличается по поведению — например, в ней тумблер горизонтального режима виден всегда, а в FSD-версии скрыт в режиме «День». \ pages/orders/calendar.vue:16 и :28 (используется FSD-версия), components/calendar/Core/Controls.vue против features.fsd/order-calendar/ui/Core/Controls.vue | Разработка | Open | Завести тикет в Bitrix на техуборку: удалить устаревшую реализацию, если миграция завершена, либо явно пометить её как устаревшую и назначить срок удаления. Продуктового выбора нет. Это важно не только для сборки: при следующей сверке или доработке легко открыть не тот файл — названия компонентов совпадают, а поведение расходится. | |
| OQ5.2-13 | Код вне BRD | Что нашли: в панели управления есть две кнопки, которых нет в BRD. Первая — тумблер «Использовать правила бронирования»: судя по названию и по тому, что рядом лежит отдельный модуль проверки правил на 736 строк, он включает проверку заказа по правилам бронирования прямо в календаре. Вторая — переключатель между списком заказов и календарём («К списку заказов» / «К календарю»), который просто меняет адрес страницы. В BRD на этом месте описана кнопка справки и кнопка дополнительных действий. \ features.fsd/order-calendar/ui/Core/Controls.vue:39-43 (правила бронирования), :51-57 и :75-81 (переключение страниц), features.fsd/order-calendar/composables/useOrderValidation.ts (модуль проверки правил) | Бизнес | Open | Подтвердить обе кнопки и внести их в FR5.2-2. По правилам бронирования отдельно уточните, что означает выключенное состояние тумблера: партнёр может создать заказ в обход правил или проверка просто не подсвечивается в сетке — это разные вещи, и вторая безобидна, а первая требует описания в BRD. Переключатель «К списку заказов» — навигация между разделами, его достаточно упомянуть одной строкой. | |
| OQ5.2-14 | Код FR5.2-3, FR5.2-11, FR5.2-12, FR5.2-22 | Что подтверждено: переключение между вариантами отображения перестраивает календарь без перехода на другую страницу; выбор свободного слота создаёт новое событие и открывает форму создания заказа с контекстом даты, времени и площадки; выбор события открывает карточку заказа; стрелки «назад» и «вперёд» листают период в соответствии с выбранным режимом. \ features.fsd/order-calendar/ui/Core/Controls.vue:16-22 и :134-… (смена режима), features.fsd/order-calendar/ui/Core/Root.vue:995-1000 (создание заказа), :506-532 (открытие карточки заказа), components/UI/fields/DateInput.vue:17-24 и :44-51 (стрелки периода) | — | Подтверждено | Расхождения нет. | — |
| OQ5.2-15 | Код FR5.2-15 — FR5.2-21, FR5.2-35 | Что подтверждено: все три варианта отображения реализованы отдельными компонентами — день, неделя и месяц, плюс отдельный вариант недели для мобильного и горизонтальный режим. Дневной и недельный виды строят колонки по выбранным объектам и площадкам со шкалой времени и горизонтальной прокруткой, месячный — сетку дней с событиями внутри дня. Адаптивность заложена в панели управления и в самих видах: разметка перестраивается на ширинах 940, 640 и 480 пикселей, для мобильного есть отдельные компоненты и выдвижные панели. \ features.fsd/order-calendar/ui/Views/ (Day.vue, Week.vue, Month.vue, MobileWeek.vue, Horizontal.vue), features.fsd/order-calendar/ui/Grid/ (сетка и заголовки), ui/Core/Controls.vue:87-136 (адаптивная разметка панели) | — | Подтверждено | Расхождения нет. | — |