Направление работ: WebLk Код раздела: 5.2.2 Раздел: Заказы > Календарь > Горизонтальное отображение Статус: черновик Ответственный: Панкова Л.А. Версия: 0.1 Обновлено: 17.07.26


1. Назначение

Раздел обеспечивает партнеру горизонтальное недельное отображение календаря заказов.

Партнер переходит к этому отображению из раздела WebLk 5.2 «Календарь» и просматривает дни недели и площадки по вертикали, а время и продолжительность заказов — по горизонтали.

Интерфейс использует данные объектов, площадок и заказов, определенные в Back-разделах 2.1 «Объекты партнеров», 2.2 «Площадки партнеров», 3.1 «Состав заказа» и 3.2 «Процессинг заказов».

2. Ключевые понятия

Горизонтальное отображение календаря — недельное представление календаря, в котором дни и площадки расположены по вертикали, а время — по горизонтали.

Календарь заказов — экран WebLk, на котором партнер просматривает события по времени, датам, объектам и площадкам партнерской зоны.

Площадка — помещение объекта, представленное отдельной строкой внутри дня недели.

Заказ — событие календаря, размещенное на временной шкале выбранного дня и площадки.

3. Scope

Входит

S1: Горизонтальное отображение календаря

S2: Состояние загрузки и адаптивы

Не входит

4. BR

Указаны в пункте 4 разделов Back: 2.1 Объекты партнеров, 2.2 Площадки партнеров, 3.1 Состав заказа и 3.2 Процессинг заказов.

5. Функциональные требования (UC + FR)

IDСценарийФункциональное требованиеBRВесСтатус
S1: FR5.2.2-1Партнер в разделе WebLk 5.2 «Календарь» выбирает «Горизонтальное отображение»Интерфейс открывает горизонтальное отображение календаря сразу в режиме «Неделя». Горизонтальное отображение доступно только для недельного вида.1Частично
OQ5.2.2-4
S1: FR5.2.2-2Партнер работает с горизонтальным календаремПартнеру остаются доступны выбор объекта и площадок, переход к предыдущей и следующей неделе, выбор периода, справочная информация, дополнительные действия и справочная строка состояний событий из WebLk 5.2 «Календарь».1Частично
OQ5.2.2-5
S1: FR5.2.2-3Партнер просматривает горизонтальный календарьИнтерфейс показывает время по горизонтальной оси, дни выбранной недели по вертикальной оси и размещает события в строках соответствующих дней и временных интервалах.1Реализовано
OQ5.2.2-9
S1: FR5.2.2-4Партнер просматривает календарь для нескольких площадокИнтерфейс добавляет внутри каждого дня отдельную строку для каждой выбранной площадки и размещает события в строке соответствующей площадки. Для одной площадки день отображается одной строкой.1Реализовано
OQ5.2.2-9
S1: FR5.2.2-5Партнер просматривает выбранный объект и площадкиИнтерфейс показывает название объекта и название единственной выбранной площадки либо количество выбранных площадок относительно общего количества в формате «2 из 5 площадок», «3 из 5 площадок».2Реализовано
OQ5.2.2-9
S1: FR5.2.2-6Партнер просматривает события горизонтального календаряИнтерфейс размещает каждое событие на пересечении дня, площадки и времени и показывает продолжительность события вдоль временной шкалы. Состав данных и индикаторов события соответствует WebLk 5.2 «Календарь».1Частично
OQ5.2.2-6
S2: FR5.2.2-7Данные горизонтального календаря загружаютсяИнтерфейс показывает состояние загрузки с плейсхолдерами панели управления, календарной сетки, строк площадок и блоков событий до отображения данных.2Частично
OQ5.2.2-7
S2: FR5.2.2-8Партнер открывает горизонтальный календарь на экране другого размераИнтерфейс адаптирует страницу горизонтального отображения календаря, карточки заказов, связанные блоки и календарную таблицу для desktop, laptop, tablet и mobile.1Частично
OQ5.2.2-8

6. Открытые вопросы

Сверка с кодом: BRD 5.2.2 v0.1 · репозиторий musbooking_personal_account · commit d6f907bf / main · 26.07.26 · якорь features.fsd/order-calendar Сводка: 9 вопросов (Решено 7 · Open 1 — OQ5.2.2-2, у дизайна · Подтверждено 1) · итоговые решения зафиксированы 04.08.26 · строки OQ5.2.2-1…3 — вопросы дизайна, текст вопроса не изменялся Маршрутизация без сверки с гайдбуком (гайдбук не передавался).

IDИсточникВопросКомуСтатусРекомендацииИтоговое решение
OQ5.2.2-1Figma, фрейм «3 и более (Минимальный размер заказа, возможно откажемся)»Нужно ли задавать блоку заказа минимальную ширину или его ширина всегда должна точно соответствовать продолжительности заказа на временной шкале?Продукт / ДизайнРешёнСобытие привязано к сетке: ширина — целое число ячеек. Решение заказчика: горизонтальный календарь — это сетка, блок заказа занимает строго размер ячейки, либо двух ячеек и т.д. То есть ни минимальная ширина в пикселях, ни попиксельная пропорция длительности: заказ округляется до целого числа ячеек шкалы. Это одновременно решает читаемость коротких заказов и сохраняет предсказуемость шкалы. Зафиксировать правило в FR5.2.2-3/-6; при постановке указать шаг сетки и правило округления (вверх/ближайшее).
OQ5.2.2-2Figma, адаптив 360Должен ли мобильный экран горизонтального календаря иметь заголовок «Информация об объекте», как в макете, или заголовок раздела календаря?Продукт / ДизайнOpenОтдать дизайну. Заголовок мобильного экрана горизонтального календаря решается в рамках задачи на мобильный макет (см. OQ5.2.2-8). Вопрос остаётся открытым до макета; в коде ничего не меняем.
OQ5.2.2-3Figma, адаптивы 1920 и 360Какие связанные блоки должны отображаться рядом с календарем или под ним: «Заявки», «Абонементы» либо оба блока, и в каком порядке?Продукт / ДизайнРешёнОба блока: «Заявки», затем «Абонементы». Заявки первыми — они требуют реакции партнёра; абонементы вторыми. Отмечу связь: заявки подключаются по OQ5.2-7, а абонементы по OQ5.2-8 идут в сетке обычными заказами с процессинг-группой — значит блок «Абонементы» должен быть отдельным списком-сводкой, а не источником событий сетки. Уточнить состав блоков при проектировании макета.
OQ5.2.2-4Код FR5.2.2-1Требование говорит: горизонтальное отображение открывается сразу в режиме «Неделя» и доступно только для недельного вида. В коде ни того, ни другого: тумблер горизонтального режима скрыт только в режиме «День», то есть в режиме «Месяц» он доступен, а сам горизонтальный вид содержит отдельные ветки поведения для месяца — значит, работа в месячном режиме предусмотрена намеренно. Автоматического переключения на «Неделю» при включении горизонтального режима нет. \ features.fsd/order-calendar/ui/Core/Controls.vue:45 (скрыт только для «День»), features.fsd/order-calendar/ui/Views/Horizontal.vue:503 и :525 (ветки для месячного режима)БизнесРешён(А) Признать поддержку месяца целевой (рекоменд.) и переписать FR5.2.2-1: горизонтальный режим доступен для недели и месяца, текущий период при переключении сохраняется. Ограничивать до недели сейчас означало бы выключить уже работающее поведение. (Б) Если горизонтальный месяц не задумывался — скрывать тумблер и в режиме «Месяц» и переключать на «Неделю» при включении. Перед выбором стоит посмотреть, как горизонтальный месяц выглядит на стенде: если он нечитаемый, это аргумент за вариант Б.Только неделя. Горизонтальный месяц не задумывался — привести код к требованию: скрывать тумблер горизонтального режима и в режиме «Месяц» (сейчас скрыт только для «День»), при включении горизонтального режима переключать вид на «Неделю». Ветки месячного поведения в Horizontal.vue (включая принудительный setCurrentView('month') на строках 503-505) убрать или закрыть от вызова. FR5.2.2-1 остаётся в текущей формулировке. Тикет в Bitrix.
OQ5.2.2-5Код FR5.2.2-2Требование говорит: в горизонтальном отображении партнёру остаются доступны выбор объекта и площадок, переход по неделям, выбор периода, справочная информация, дополнительные действия и строка состояний событий. В коде панель управления в горизонтальном режиме та же самая, поэтому доступно ровно то, что описано в OQ5.2-1: выбор объектов и площадок, переключатели, стрелки и выбор даты работают, а дополнительных действий нет как таковых, справка доступна только на мобильном, при этом сам горизонтальный вид на мобильном не показывается (см. OQ5.2-8) — то есть до справки в горизонтальном режиме добраться нельзя вовсе. Строка состояний событий общая с обычным календарём. \ features.fsd/order-calendar/ui/Core/Root.vue:51-52 (горизонтальный вид под общей панелью), ui/Core/Controls.vue:32-58БизнесЗакрытОтдельного решения не требует — закрывается вместе с OQ5.2-1 и OQ5.2-2. Стоит только учесть при постановке: сочетание «справка только на мобильном» и «горизонтальный вид только на десктопе» делает справку в этом режиме недостижимой ни на одном экране — это довод в пользу возврата справки на десктоп.Отдельного решения не требует — закрывается родительскими. Состав доступного в горизонтальном режиме определяется решениями по OQ5.2-1 (панель тумблеров — целевая), OQ5.2-2 (горящая репетиция и удаление заказов без статуса — целевые, ещё не сделаны) и OQ5.2-10 (на десктопе справку заменяют тултипы у иконок, на мобильном — полная легенда по кнопке). Прежняя проблема «до справки в горизонтальном режиме не добраться ни на одном экране» снимается: на десктопе появляются тултипы, а на мобильном горизонтальный режим теперь будет (OQ5.2.2-8). Переписать FR5.2.2-2 вслед за FR5.2-2.
OQ5.2.2-6Код FR5.2.2-6Требование говорит: состав данных и индикаторов события в горизонтальном режиме соответствует разделу 5.2. В коде так и есть — и вместе с составом наследуются пробелы: у горизонтального события тот же механизм источника и индикаторов, что и у обычного, поэтому из пяти индикаторов информации о заказе выводится только комментарий (см. OQ5.2-4). Само размещение события по времени и продолжительности реализовано. \ features.fsd/order-calendar/ui/Events/HorizontalEvent.vue:341-346 (источник — тот же механизм), features.fsd/order-calendar/ui/composables/useHorizontal.ts (размещение по шкале)РазработкаЗакрытОтдельный тикет не нужен — правка по OQ5.2-4 закроет и этот пункт, если делать её в общем механизме индикаторов, а не в одном компоненте. При постановке задачи явно укажите оба компонента события — обычный и горизонтальный, — чтобы правку не сделали только в одном.Отдельного тикета не требует — закрывается правкой по OQ5.2-4. Решение по OQ5.2-4 («подключить все пять индикаторов») принято с условием делать правку в общем механизме индикаторов, а не в одном компоненте. При постановке задачи явно перечислить оба компонента события — обычный Event.vue и горизонтальный HorizontalEvent.vue, — чтобы правку не сделали только в одном. Размещение события по времени и продолжительности уже реализовано.
OQ5.2.2-7Код FR5.2.2-7Требование говорит: при загрузке показываются плейсхолдеры панели управления, календарной сетки, строк площадок и блоков событий. В коде скелетонов ровно два и они общие для всего календаря — панель и сетка; отдельных заглушек для строк площадок и блоков событий нет, как нет и отдельного скелетона под горизонтальный режим. \ pages/orders/calendar.vue:5-13 (два общих скелетона), shared.fsd/ui/skeletons/orders/ (в наборе нет заглушек строк и событий)РазработкаРешёнРешать вместе с OQ5.2-11 родительского раздела — там та же тема состояний загрузки. Отдельно уточните у дизайна, нужны ли настолько детальные заглушки: скелетон строк площадок имеет смысл, если сетка строится долго, а при быстром ответе он только мигает.Скелетоны — по макету. Состав и глубина заглушек (панель, сетка, строки площадок, блоки событий, отдельный скелетон горизонтального режима) определяются макетом дизайна: что нарисовано — то и делаем. Работа выполняется в рамках тикета по OQ5.2-11 (подключение скелетонов к действующему FSD-календарю); недостающие компоненты дорисовываются в shared.fsd/ui/skeletons/orders/. Перед постановкой запросить у дизайна макет состояния загрузки для горизонтального режима.
OQ5.2.2-8Код FR5.2.2-8Требование говорит: горизонтальное отображение адаптируется для desktop, laptop, tablet и mobile. В коде на мобильном горизонтальный вид не показывается вообще: он выводится только при условии «не мобильный экран», а на узких экранах вместо него подставляется отдельный мобильный недельный вид. То есть адаптация для mobile не «другая вёрстка», а отсутствие режима. \ features.fsd/order-calendar/ui/Core/Root.vue:51-52 (условие !isMobile && isHorizontal), features.fsd/order-calendar/ui/Views/MobileWeek.vue (что показывается вместо)БизнесРешён(А) Признать текущее поведение целевым (рекоменд.) и переписать FR5.2.2-8: на мобильном используется отдельный недельный вид, горизонтальный режим доступен от планшета и выше. Горизонтальная шкала времени на телефоне действительно почти нечитаема. (Б) Если горизонтальный режим нужен и на телефоне — это отдельная задача на адаптив со своим макетом. Ответ также закрывает вопрос OQ5.2.2-2 про заголовок мобильного экрана: если режима на мобильном нет, вопрос снимается.Горизонтальный режим нужен и на телефоне. Текущее поведение (условие !isMobile && isHorizontal, вместо режима подставляется MobileWeek.vue) признано неверным — FR5.2.2-8 остаётся в силе для всех четырёх размеров. Это отдельная задача на адаптив со своим макетом; в неё же входит вопрос заголовка мобильного экрана (OQ5.2.2-2). Тикет в Bitrix: макет дизайна + реализация горизонтального режима на mobile.
OQ5.2.2-9Код FR5.2.2-3, FR5.2.2-4, FR5.2.2-5Что подтверждено: горизонтальный календарь строит время по горизонтальной оси и дни по вертикальной, размещая события в строках дней; внутри дня для каждой выбранной площадки создаётся отдельная строка, а при одной выбранной площадке день остаётся одной строкой. Подпись выбора показывает название объекта и либо название единственной площадки, либо количество в формате «2 из 5 площадок». \ features.fsd/order-calendar/ui/Views/Horizontal.vue:5 и :61-65 (шкала времени и строки дней), features.fsd/order-calendar/ui/GridHorizontal/Row.vue и SubRow.vue (строки дней и площадок), components/UI/filters/FilterTreeMenu.vue:642 и :656 (подпись «N из M площадок»)—ПодтвержденоРасхождения нет.—

0 items under this folder.