⟨/⟩ Ntr/65_Ui/Pages/MainPage.cs

141 строк · в начало

using Rugrid.Sdaid.Notation.Documents;

namespace Rugrid.Sdaid.Epas.Ntr.Ui.Pages
{
    /// <summary>
    /// Перенесено дословно из ntr-01/ui/main-page.md.
    /// </summary>
    public class DOC_MainPage : IPageDocument, IHasStructuralLinks, IFolder<NtrUiFolder>
    {
        public SdaidLink[] Links => new[]
        {
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Domain.BuildingModel.DOC_Building>(),
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Domain.OrgObjectModel.DOC_OrgObject>(),
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Ui.Componetns.DOC_ActualConsumptionTab>(),
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Ui.Componetns.DOC_ColorBadge>(),
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Ui.Componetns.DOC_ConsumptionModelRegistryTab>(),
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Ui.Componetns.DOC_EnergyProfileCollectionTaskRegistryTab>(),
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Ui.Componetns.DOC_EnergyProfileRegistryTab>(),
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Ui.Componetns.DOC_NavObjectCard>(),
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Ui.Componetns.DOC_ReportsRegistryTab>(),
            Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Ui.Pages.DOC_EnergyProfileCard>(),
        };

        public static string _refName = "Главная страница";

        public string Name => "Главная страница";

        public string Description => "Алиасы: Главная страница. parents: [ui].";

        public string Version => "1.1";
        public string Status => "changed";

        public string[] Comments => new[]
        {
            "2026-09-22: в состав вкладок формы объекта добавлены «Расход ЭЭ» и «Расход ТЭ» "
            + "(эпик «Учёт фактического потребления ТЭР»).",
        };

        /// <summary>Макет экрана: страница прототипа Сервиса.</summary>
        public static string Wireframe = $""""
## Макет

{SdaidHtml.IframeOf<DOC_MainPage>("main-page.html", 620)}

{SdaidHtml.LinkTo<DOC_MainPage>("main-page.html", "Открыть макет в отдельной вкладке")}
"""";

        public static string Body = """"
## Главная страница

Главная страница включает блоки:

**Элементы:**

- 1. [[#Главное меню]];
- 2. [[#Блок навигации]] - для отображения иерархической структуры орг. объектов и их зданий;
- 3. [[#Рабочая область]] - область справа  от блока навигации со статичной "Информационная страница" (пока не выбран объект в блоке навигации).

### Главное меню

**Размещение:** полоска с верху страницы по ширине всей страницы.

**Элементы:**

- Наименование сервиса: "ЭНЗС"
- Пункты меню:
	- Администрирование:
		- Интеграция;
		- Пакетный расчёт моделей потребления;
	- Документация;
	- Пользователь.

**Поведение:**
- Наименование сервиса - переход на главную страницу, в блоке навигации ничего не выбрано - в рабочей области "Информационная страница".
- Администрирование - выпадающее меню:
	- Справочники - переход на страницу "Справочники";
- Документация - переход на страницу "Документация"
- Пользователь - выпадающее меню:
	- Мой профиль - переход на страницу "Мой профиль";
	- Выйти.

#### Пакетный расчёт моделей потребления

Операция массового запуска расчёта по выборке моделей потребления. Фильтрация выборки по параметрам:

- Организационный объект - корневой организационный объект, по умолчанию Компания;
- Базовая модель: Да; Нет; Не выбрано, если не выбрано - не фильтруется по параметру;
- Вид расчёта: список с множественным выбором, по умолчанию не выбрано ничего, если не выбрано - не фильтруется по параметру.

### Блок навигации

В блоке навигации отображается дерево иерархической структуры [[../ntr-01/domain/org-object-model/org-object-model|Организационных объектов]] компании ПАО «Россети» и [[../ntr-01/domain/building-model/building-diaram|Здания]] во владении организационных объектов.

**Элементы:**

1. Заголовок "Навигация"
2. Поле поиска для быстрого нахождения объектов в дереве
3. Дерево организационной структуры с возможностью раскрытия/свертки узлов
4. Иконка pin, определяющая режим отображения блока навигации (показывать всегда/скрывать если не в фокусе указателя).

**Поведение:**

- По умолчанию детали скрыты
- Раскрытие/свертка узлов: клик на иконке раскрытия (▼/▶) слева от узла
- Выбор объекта: клик на названии объекта:
	- Выделение выбранного объекта;
	- Выбор объекта в блоке (организационного объекта или здания) → вывод в рабочей области формы "[[#Сведения об объекте и составе подчинённых объектов]]" по выбранному объекту. 

### Рабочая область

Область страницы справа от блока навигации, в область выводится:

- "" - если объект выбран в блоке навигации;
- Статичная "Информационная страница" - если объект не выбран.

#### Сведения об объекте и составе подчинённых объектов


Форма содержит сведения о выбранном в блоке навигации объекте (об организационном объекте или здании) и составе подчинённых объектов (моделей потребления, профилей  потребления и т.д.). 

**Состав формы**:

- Путь к объекту начиная с главной страницы: Главная / Компания / ....
- Вкладки: 
	- [[nav-object-card|Вкладка "Сведения"]]; 
	- [[consumption-model-registry-tab|Вкладка "Реестр моделей потребления"]]; 
	- [[energy-profile-registry-tab|Вкладка «Реестр энергопрофилей»]]; 
	- [[energy-profile-collection-task-registry-tab|Вкладка «Реестр заданий на сбор энергопрофилей»]];
	- [[actual-consumption-tab|Вкладка «Расход ЭЭ»]];
	- [[actual-consumption-tab|Вкладка «Расход ТЭ»]];
	- [[reports-registry-tab|Вкладка «Отчёты»]]





**Связи**:
"""";
    }
}