Направление работ: AdmLk Код раздела: 1.2 Раздел: Главная страница Статус: черновик Ответственный: Панкова Л.А. Версия: 0.1 Обновлено: 15.07.26


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

Раздел описывает главную страницу сервисного кабинета, которая открывается пользователю после успешного входа в сервисную зону.

Интерфейс должен показать стартовую страницу AdmLk, обозначить текущий раздел и дать пользователю доступ к быстрым ссылкам на рабочие ресурсы.

Сценарии входа, проверки учетных данных и настройки доступа к сервисной зоне описываются в соседних разделах.

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

Главная страница сервисного кабинета — стартовый экран AdmLk, который пользователь видит после успешного входа.

Сервисная зона — зона управления системой и глобальными настройками.

Блок быстрых ссылок — интерфейсная область на главной странице, в которой ссылки сгруппированы по рабочим ресурсам.

Быстрая ссылка — элемент блока быстрых ссылок с названием, описанием и переходом к связанному ресурсу.

3. Scope

Входит

S1. Открытие главной страницы сервисного кабинета после успешного входа.

S2. Просмотр главной страницы сервисного кабинета.

S3. Взаимодействие с блоком быстрых ссылок.

Не входит

  • AdmLk 1.1 — Авторизация > Вход.
  • Back 1.1.2 — Аккаунты и пользователи > Организация аккаунтов > Вход в систему.
  • Back 1.2 — Аккаунты и пользователи > Организация доступа к системе.
  • Back 8.1 — Администрирование > Настройка доступа к сервисной зоне.

4. BR

Указаны в пункте 4 разделов Back: 1.1.2 Аккаунты и пользователи > Организация аккаунтов > Вход в систему и Back: 1.2 Аккаунты и пользователи > Организация доступа к системе.

5. Функциональные требования

IDСценарийФункциональное требованиеBRВесСтатус
FR1.2-1S1. Пользователь успешно входит в сервисный кабинетИнтерфейс открывает главную страницу сервисного кабинета, если вход выполнен успешно и у пользователя есть доступ к сервисной зоне.1Частично \ #OQ1.2-2
FR1.2-2S2. Пользователь просматривает главную страницуИнтерфейс показывает заголовок «Главная», верхний хедер с аватаром аккаунта, логотип сервиса и область основного содержимого.1Частично \ #OQ1.2-5
FR1.2-3S2. Пользователь просматривает навигациюИнтерфейс показывает боковую навигацию по основным разделам сервисного кабинета и выделяет главную страницу как текущий раздел.1Частично \ #OQ1.2-6
FR1.2-4S3. Пользователь просматривает доступные ссылки на сторонние рабочие ресурсыИнтерфейс показывает доступные ссылки на сторонние рабочие ресурсы, сгруппированные по ресурсам «Битрикс 24», «Yandex Wiki», «Google» и «Продукты». Для каждой ссылки отображаются название ссылки, описание и иконка связанного ресурса; если в группе несколько ссылок, интерфейс показывает их в составе одной группы, включая компактное отображение нескольких ссылок в одной строке.1Не реализовано \ #OQ1.2-1 \ #OQ1.2-4
FR1.2-5S3. Пользователь выбирает быструю ссылкуИнтерфейс позволяет перейти по выбранной быстрой ссылке к связанному ресурсу.1Не реализовано \ #OQ1.2-1 \ #OQ1.2-3
FR1.2-6S3. Пользователь редактирует блок быстрых ссылокИнтерфейс позволяет перейти к редактированию блока быстрых ссылок с главной страницы (на будущую реализацию).3Не реализовано (по плану) \ #OQ1.2-1

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

IDИсточникВопросКомуСтатусРекомендацииИтоговое решение
#OQ1.2-1Код FR1.2-4, FR1.2-5, FR1.2-6Требование говорит: блок быстрых ссылок — у каждой ссылки название, описание, иконка; переход к ресурсу; редактирование блока. В коде данные захардкожены в конфиге и заглушечные: у всех ссылок название «Ссылка», описание «Описание», URL нет — реальных ресурсов и адресов не заведено. Источник контента (хардкод vs бэкенд/редактируемый) не определён. \ features/home-links/model/homeLinksConfig.ts:11-40Бизнес (Герман)OpenКорневой вопрос блока: откуда берётся контент. От ответа зависят сразу три FR (включая FR1.2-6 «редактирование»). (А, рекоменд.) вынести ссылки в редактируемый источник (бэкенд-настройка) — это же закрывает FR1.2-6; (Б) оставить хардкод-конфиг, но заполнить реальными названиями/описаниями/URL и принять, что «редактирование» = правка кода при деплое. Связать с OQ1.2-3 (переход не реализован).Артем: если ссылки не будут меняться, то можно оставить их на фронте
#OQ1.2-2Код FR1.2-1Требование говорит: главная открывается, если вход успешен и у пользователя есть доступ к сервисной зоне. В коде фронт проверяет только наличие auth_token в куках; понятия «доступ к сервисной зоне»/роли на фронте нет (в аккаунте — только партнёрские зоны owned/allowed). Кто ограничивает вход — бэкенд или фронт-гейт — не зафиксировано. \ middleware/auth.ts:35-37; entities/account/store/account.session.ts:21-27,30-42Бизнес/РазработкаOpenТребование веса 1: половина условия («есть доступ») на фронте не проверяется. Согласовать с Back: 1.2 / 8.1. (А, рекоменд.) подтвердить контрактом, что бэкенд пускает во вход//api/auth только аккаунты с доступом к сервисной зоне (тогда фронт-проверки по токену достаточно); (Б) добавить на фронте явную проверку доступа и состояние «нет доступа к сервисной зоне» с редиректом на вход. Тот же узел, что AdmLk 1.1/OQ1.1-2 (экран «Отсутствует доступ») — решать вместе.Артем: нужна доработка на бэке. Текущая реализация черновая
#OQ1.2-3Код FR1.2-5Проблема: ссылка — это <button type="button"> без @click/href/навигации: клик ничего не делает. Кнопка-стрелка «Открыть раздел» на карточке тоже без обработчика. Переход не реализован. \ features/home-links/ui/HomeLinksGrid.vue:11-21РазработкаЗакрывает PMFR1.2-5 (вес 1) заблокирован, продуктового выбора нет. Закрываю сам (приоритет): сделать элемент ссылки <a :href> / NuxtLink с реальным URL из конфига (для внешних ресурсов — target="_blank" rel="noopener"), навесить переход на карточку и стрелку → тикет в Bitrix. Работает только после появления URL — связать с OQ1.2-1.Артем: для реализации нужны требования по ссылкам
#OQ1.2-4Код FR1.2-4Требование говорит: для каждой ссылки — иконка связанного ресурса; при нескольких ссылках — компактное отображение нескольких в одной строке. В коде иконка задана только на уровне группы (карточки), у отдельных ссылок иконки нет; ссылки рендерятся колонкой по одной в строке — компактного вывода нет. \ features/home-links/ui/HomeLinksGrid.vue:6-21,120-124Бизнес (Герман)OpenРасхождение по раскладке — нужна фиксация ожидаемого вида. (А) уточнить BRD: иконка на группу, а не на каждую ссылку — тогда текущее поведение верно; (Б) добавить per-link иконку и режим компактного отображения нескольких ссылок в одной строке. Решает продукт/дизайн по макету.Артем: для реализации нужны требования по ссылкам
#OQ1.2-5Код FR1.2-2Требование говорит: верхний хедер с аватаром аккаунта и логотипом сервиса. В коде оба элемента хедера — статические логотипы (logo-left.svg / logo-right.svg) через UiAvatar; данные аккаунта / аватар пользователя не отображаются. Заголовок «Главная» и область основного содержимого присутствуют. \ widgets/app-header/ui/AppHeader.vue:4-12,27-28Бизнес/РазработкаOpen«Аватар аккаунта» подменён статическим логотипом. (А, рекоменд.) добавить в правый кластер хедера аватар/меню аккаунта на данных сессии (getAccountFullName/инициалы); (Б) если продукт отказывается от аватара аккаунта — скорректировать формулировку FR1.2-2.Артем: реализую после решения бизнеса
#OQ1.2-6Код FR1.2-3Требование говорит: боковая навигация по разделам + выделение главной как текущего раздела. В коде навигация есть (Главная/Настройки/Управление/Отчёты), но подсветка активного раздела работает только в свёрнутом (rail) режиме — в развёрнутом её нет. Плюс сайдбар полностью скрыт при ширине < 640px. \ features/sidebar-navigation/model/menuItems.ts:4-49; SidebarNavigationItemRail.vue:107-120; SidebarNavigationItemExpanded.vue:54-68; SidebarNavigation.vue:53-55РазработкаЗакрывает PMТребование однозначно («выделяет текущий раздел»), продуктового выбора нет. Закрываю сам: перенести вычисление isActive в родительский пункт и применять класс .active в обоих режимах → тикет в Bitrix. Отдельно: поведение навигации при ширине < 640px не описано в BRD (сейчас разделы на мобильном недоступны) — при необходимости уточнить у продукта.Артем: уже поправил. По мобильной версии - требования к этому изначально не было. В сервисном кабинете все реализуется только для десктопных версий

Вопросы по сверке с кодом

BRD 1.2 v0.1 · musbooking.weblk.adminpanel · commit c376579/main · 2026-07-10 · якорь pages/index.vuewidgets/home-dashboardfeatures/home-links; layouts/default.vuewidgets/app-header (features/header-breadcrumbs, header-shell) + widgets/app-sidebarfeatures/sidebar-navigation Сводка: вопросов 6 (бизнесовых 2 / программных 4) · подтверждено без вопросов 1 (FR1.2-6 — редактирование корректно не реализовано как «на будущую реализацию»; смежно с Б1 по источнику данных) · отрезано находок обратного прохода 2 (rail-режим / всплывающие подменю / бейджи-счётчики сайдбара; кнопка «Назад» на самой главной) Под особым вниманием: FR1.2-4 и FR1.2-5 (вес 1) — быстрые ссылки заглушечные и некликабельные; FR1.2-1 (вес 1) — доступ к сервисной зоне на фронте не проверяется.

Бизнесовые

Связано сЧто в BRDЧто в кодеГде в коде
Б1FR1.2-4, FR1.2-5, FR1.2-6Блок быстрых ссылок: для каждой ссылки название, описание, иконка; переход к ресурсу; редактирование блокаДанные захардкожены в конфиге и заглушечные: у всех ссылок название «Ссылка», описание «Описание», URL нет — реальных ресурсов и адресов не заведено. Источник контента (хардкод vs бэкенд/редактируемый) не определён — нужно решениеfeatures/home-links/model/homeLinksConfig.ts:11-40
Б2FR1.2-1Главная открывается, если вход успешен И у пользователя есть доступ к сервисной зонеФронт проверяет только наличие auth_token в куках; понятия «доступ к сервисной зоне»/роли на фронте нет (в аккаунте — только партнёрские зоны owned/allowed). Кто ограничивает вход — бэкенд или фронт-гейт — не зафиксировано; нужно решениеmiddleware/auth.ts:35-37; entities/account/store/account.session.ts:21-27,30-42

Рекомендация / варианты решения

  • Источник данных быстрых ссылок (Б1) — сейчас статичная заглушка без URL, реального контента нет. Вариант А (рекоменд.): вынести ссылки в редактируемый источник (бэкенд-настройка) — это же закрывает FR1.2-6 (редактирование блока). Вариант Б: оставить хардкод-конфиг, но заполнить реальными названиями/описаниями/URL и принять, что «редактирование» = правка кода при деплое.
  • Гейт доступа к сервисной зоне (Б2) — Вариант А (рекоменд.): подтвердить контрактом, что бэкенд пускает во вход//api/auth только аккаунты с доступом к сервисной зоне (тогда фронт-проверки по токену достаточно). Вариант Б: добавить на фронте явную проверку доступа и состояние «нет доступа к сервисной зоне» с редиректом на вход.

Программные

Связано сЧто в BRDЧто в кодеГде в коде
П1FR1.2-5Интерфейс позволяет перейти по выбранной быстрой ссылке к связанному ресурсуСсылка — <button type="button"> без @click/href/навигации: клик ничего не делает. Кнопка-стрелка «Открыть раздел» на карточке тоже без обработчика. Переход не реализованfeatures/home-links/ui/HomeLinksGrid.vue:11-21
П2FR1.2-4Для каждой ссылки — иконка связанного ресурса; при нескольких ссылках компактное отображение нескольких в одной строкеИконка задана только на уровне группы (карточки); у отдельных ссылок иконки нет. Ссылки рендерятся колонкой по одной в строке (flex-direction: column) — компактного вывода нескольких ссылок в одну строку нетfeatures/home-links/ui/HomeLinksGrid.vue:6-21,120-124
П3FR1.2-2Верхний хедер с аватаром аккаунта и логотипом сервисаОба элемента хедера — статические логотипы (logo-left.svg / logo-right.svg) через UiAvatar; данные аккаунта / аватар пользователя не отображаются. Заголовок «Главная» (через хлебные крошки из route.meta.title) и область основного содержимого — присутствуютwidgets/app-header/ui/AppHeader.vue:4-12,27-28
П4FR1.2-3Боковая навигация по основным разделам + выделение главной как текущего разделаНавигация есть (Главная/Настройки/Управление/Отчёты). Подсветка active реализована только в свёрнутом (rail) режиме; в развёрнутом режиме подсветки текущего раздела нет. Сайдбар полностью скрыт при ширине < 640pxfeatures/sidebar-navigation/model/menuItems.ts:4-49; ui/SidebarNavigationItemRail.vue:107-120; ui/SidebarNavigationItemExpanded.vue:54-68; ui/SidebarNavigation.vue:53-55

Рекомендация / варианты решения

  • Некликабельные ссылки (П1) — сделать элемент ссылки <a :href> / NuxtLink с реальным URL из конфига (для внешних ресурсов — target="_blank" rel="noopener"), навесить переход на карточку/стрелку. Блокирует FR1.2-5 (вес 1) — приоритетно.
  • Иконка на ссылку и компактный ряд (П2) — либо уточнить BRD (иконка на группу, а не на каждую ссылку — тогда текущее поведение верно), либо добавить per-link иконку и режим компактного отображения нескольких ссылок в одной строке. Нужна фиксация ожидаемой раскладки.
  • Аватар аккаунта (П3) — добавить в правый кластер хедера аватар/меню аккаунта на данных сессии (getAccountFullName/инициалы); либо, если продукт отказывается от аватара аккаунта, скорректировать формулировку FR1.2-2.
  • Подсветка текущего раздела в развёрнутом меню (П4) — перенести вычисление isActive в родительский пункт (SidebarNavigationItem) и применять класс .active в обоих режимах; определить поведение навигации при ширине < 640px (сейчас разделы на мобильном недоступны).

0 items under this folder.