Единое окно и навигация¶
Пользовательский интерфейс модуля лояльности (loyalty-ui) реализован как микрофронтенд и встраивается в общий хост Core UI — единое окно платформы CM Ocean. Оператор работает в привычном интерфейсе платформы: модуль лояльности подключается как удалённый модуль (remote) и предоставляет хосту собственный набор разделов и внутренних маршрутов.
Способы запуска¶
Интерфейс рассчитан на работу в составе хоста Core UI, но поддерживает и автономный режим для разработки и демонстрации.
| Режим | Где монтируется | Базовый путь |
|---|---|---|
| Встроенный (embedded) | Внутри Core UI как remote-модуль | <корень хоста>/loyalty |
| Автономный (standalone) | Самостоятельная оболочка приложения | корень / |
Прозрачность для оператора
В обоих режимах разделы и переходы между ними одни и те же; небольшие отличия меню описаны в разделе «Состав разделов». Базовый путь подставляется автоматически, поэтому пользователю не нужно различать режимы запуска.
Состав разделов¶
Хост Core UI строит левое меню по навигационному манифесту модуля. Модуль публикует восемь разделов верхнего уровня; «Администрирование» — раскрывающийся пункт с подпунктами (см. ниже):
| Раздел | Назначение | Маршрут | Право на открытие |
|---|---|---|---|
| Акции | Каталог акций: список, мастер создания/редактирования, карточка акции | /loyalty/promotions |
LOYALTY_PROMOTION_READ |
| Клиенты | Каталог клиентов: список, карточка, импорт | /loyalty/customers |
LOYALTY_CUSTOMER_READ |
| Ручные операции | Мастер начисления, корректировки, перевода уровня, добавления и снятия тегов по списку клиентов или файлу | /loyalty/operations |
Любое из прав операций экрана: LOYALTY_ACCRUAL_WRITE, LOYALTY_REDEMPTION_WRITE, LOYALTY_TIER_WRITE, LOYALTY_CUSTOMER_TAG_WRITE |
| Конфигурации программы | Каталог конфигураций программы лояльности (уровни, акции программы и уровней, правила списания), мастер создания, карточка конфигурации, история активаций | /loyalty/program-configs |
LOYALTY_PROGRAM_CONFIG_READ |
| Настройка ПЛ | Ограничения на списание баллов, лимиты по разрезам, глобальная механика | /loyalty/settings |
Проверяется в каждом блоке экрана |
| Мониторинг | Сводная панель наблюдения за операциями модуля | /loyalty/monitoring |
LOYALTY_MONITORING_READ |
| Отчёты | Отчёты за период — вкладки «Обзор», «Баллы», «Уровни», «Акции», «Рефералы» | /loyalty/reports |
LOYALTY_MONITORING_READ |
| Администрирование | Справочники (НСИ), настройка профиля клиента и параметров уровня, партнёрские предложения, очередь приёма, журнал аудита, субсчета, валюты, достижения, настройка акции | /loyalty/admin |
Проверяется в каждом подразделе |
Отдельного раздела «Уровни» нет: набор уровней настраивается в составе конфигурации программы (раздел «Конфигурации программы»), а уровень конкретного клиента виден в его карточке.
В едином окне (встроенный режим) состав пунктов меню статичен — все восемь пунктов и все подпункты
«Администрирования» видны всегда, независимо от ролей пользователя. Пункт без нужного права не
скрывается, а открывается: экран отвечает «Нет доступа к разделу» и перечисляет недостающие роли. В
автономном режиме скрываются только пункты «Ручные операции» (нет права ни на одну операцию экрана)
и «Конфигурации программы» (нет LOYALTY_PROGRAM_CONFIG_READ); остальные пункты видны всегда.
При входе в модуль без указания конкретного раздела, а также при обращении к неизвестному внутреннему адресу пользователь автоматически перенаправляется в раздел «Акции» — это стартовый экран модуля.
Профиль клиента
Карточка/профиль клиента открывается из каталога клиентов (/loyalty/customers/:externalId) и
не вынесена отдельным пунктом верхнего меню.
Структура навигации¶
flowchart LR
Host["Core UI (единое окно-хост)"] --> Loyalty["Модуль лояльности /loyalty"]
Loyalty --> Promo["Акции /promotions"]
Loyalty --> Cust["Клиенты /customers"]
Loyalty --> Ops["Ручные операции /operations"]
Loyalty --> Configs["Конфигурации программы /program-configs"]
Loyalty --> Settings["Настройка ПЛ /settings"]
Loyalty --> Mon["Мониторинг /monitoring"]
Loyalty --> Reports["Отчёты /reports"]
Loyalty --> Admin["Администрирование /admin"]
Cust --> CustList["Каталог клиентов"]
Cust --> CustCard["Карточка клиента"]
Promo --> PromoList["Список акций"]
Promo --> PromoWizard["Мастер создания/редактирования"]
Promo --> PromoCard["Карточка акции"]
Configs --> ConfigList["Каталог конфигураций"]
Configs --> ConfigWizard["Мастер создания"]
Configs --> ConfigCard["Карточка конфигурации"]
Admin --> Dict["Справочники"]
Admin --> ClientProfile["Профиль клиента"]
Admin --> TierProfile["Параметры уровня"]
Admin --> PartnerOffers["Партнёрские предложения"]
Admin --> Intake["Очередь приёма"]
Admin --> Audit["Журнал аудита"]
Admin --> Subaccounts["Субсчета баллов"]
Admin --> Currencies["Валюты"]
Admin --> Achievements["Достижения"]
Admin --> PromoSetup["Настройка акции"]
Dict --> DictOwn["Теги клиентов / Метки акций / Сегменты клиентов"]
Разделы «Акции», «Клиенты», «Конфигурации программы», «Отчёты» и «Администрирование» имеют вложенную навигацию (собственные подэкраны или вкладки); разделы «Ручные операции», «Настройка ПЛ» и «Мониторинг» открываются единым экраном.
Подразделы «Администрирования»¶
«Администрирование» — раскрывающийся пункт меню без собственного экрана. Его разделы — подпункты левого меню: в Core UI это подменю хоста, в автономном режиме — подменю оболочки. Своей полосы вкладок у экрана нет: раздел выбирается только в меню.
| Подпункт меню | Экран | Маршрут (сегмент) |
|---|---|---|
| Справочники | Справочники (НСИ) — реестр справочников; вложенно открывает собственные экраны «Теги клиентов», «Метки акций», «Сегменты клиентов» | dictionaries |
| Профиль клиента | Настройка карточки клиента: версии настройки карточки клиента и конфигуратор версии | client-profile |
| Параметры уровня | Настройка параметров уровня — кастомные поля карточки уровня | tier-profile |
| Партнёрские предложения | Партнёрские предложения | partner-offers |
| Очередь приёма | Очередь приёма — разбор застрявших асинхронных команд | intake |
| Журнал аудита | Журнал аудита — кто/что/когда, обращения к персональным данным | audit |
| Субсчета баллов | Субсчета баллов — целевые счета внутри карты клиента | subaccounts |
| Валюты | Справочник валют — вкладки «Валюты» и «Обмен валют» | currencies |
| Достижения | Достижения и бейджи — правила «условие — бейдж» | achievements |
| Настройка акции | Настройка акции — реестр условий акции: коробочные и добавленные условия, «Показывать в акции», порядок условий на вкладке «Условия» формы акции | promotion-setup |
В автономном режиме подпункты подписаны заголовками своих экранов — например, «Настройка профиля клиента» и «Настройка параметров уровня» вместо «Профиль клиента» и «Параметры уровня».
Адрес /loyalty/admin без раздела открывает «Справочники». Обращение к неизвестному сегменту внутри
«Администрирования» (например, устаревшая ссылка) тоже возвращает в «Справочники».
Переходы между разделами¶
- Левое меню хоста. Переключение между разделами верхнего уровня и подразделами «Администрирования» выполняется через пункты левого меню Core UI, построенного по манифесту модуля.
- Внутренние переходы. Внутри разделов с вложенной навигацией («Клиенты», «Акции», «Конфигурации программы», «Отчёты», «Справочники») переходы между подэкранами выполняются по действиям на экранах (открытие карточки, вкладки раздела, строка реестра справочников).
- Адресные ссылки. Каждому экрану соответствует собственный адрес (например,
/loyalty/admin/intake,/loyalty/admin/audit), поэтому на конкретный раздел или вкладку можно сослаться напрямую или открыть её по сохранённой ссылке. - Возврат к стартовому экрану. Обращение к корню модуля или к неизвестному внутреннему адресу возвращает пользователя в раздел «Акции».
Единая авторизация
Доступ к разделам и действиям определяется ролями платформы. В едином окне пункт меню без нужной роли не скрывается — экран раздела сообщает «Нет доступа к разделу» при открытии (см. «Состав разделов» выше про различие с автономным режимом). У «Настройки ПЛ» и подразделов «Администрирования» общей проверки на входе нет: права проверяются блоками и действиями экрана. Действия внутри экранов (кнопки, массовые операции) без нужной роли обычно скрыты или неактивны. Полный перечень ролей — в разделе «Ролевая модель».