using Rugrid.Sdaid.Notation.Documents;
using Rugrid.Sdaid.Epas.Nts.Domain;
namespace Rugrid.Sdaid.Epas.Nts.Ui
{
/// <summary>
/// Главная страница ЭНТС — точка входа в модуль: навигация по орг. объектам,
/// сведения о модуле и выбранном объекте, главное меню.
/// </summary>
public class DOC_NtsMainPage : IPageDocument, IHasStructuralLinks, IFolder<NtsUiFolder>
{
public SdaidLink[] Links => new[]
{
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Vision.DOC_NtsVision>(),
Rel.Uses<DOC_NtsReferenceRegistry>(),
Rel.Uses<DOC_NtsAisImportPage>(),
Rel.Uses<DOC_NtsDocumentation>(),
Rel.Uses<DOC_VehicleRegistry>(),
Rel.Uses<DOC_VehicleCard>(),
Rel.Uses<DOC_VehicleSummaryWidget>(),
Rel.Uses<Rugrid.Sdaid.Epas.Ntr.Ui.Componetns.DOC_NavObjectCard>(),
Rel.Uses<DOC_WinterAllowance>(),
Rel.Uses<Rugrid.Sdaid.Epas.Nts.Backend.Calc.DOC_NtsCalcErrors>(),
};
public static string _refName = "Главная страница ЭНТС";
public string Name => "Главная страница ЭНТС";
public string Description =>
@"Точка входа в модуль ЭНТС: навигация по организационным объектам, сведения о модуле и выбранном объекте, главное меню.";
public string Version => "0.1";
public string Status => "draft";
public string[] Comments => new string[0];
/// <summary>Макет экрана: страница прототипа модуля, назначение и состав разделов.</summary>
public static string Wireframe = $""""
## Макет
{SdaidHtml.IframeOf<DOC_NtsMainPage>("main-page.html", 620)}
{SdaidHtml.LinkTo<DOC_NtsMainPage>("main-page.html", "Открыть макет в отдельной вкладке")}
"""";
public static string Structure = $""""
## Структура экрана
Главная страница — точка входа в модуль ЭНТС. Сверху расположена строка главного меню,
под ней — строка контекста, слева — блок навигации по организационной структуре,
справа — рабочая область.
### Главное меню
В строке главного меню выводятся только пункты меню и меню пользователя. Заголовки страниц
в ней не дублируются. Под строкой меню расположена отдельная строка контекста —
навигационная цепочка от «Главной» до выбранного организационного объекта, раздела
или объекта учёта.
| Пункт меню | Поведение |
|---|---|
| Главная | Возврат на главную страницу модуля |
| Справочники | Переход на страницу «Справочники» |
| Импорт | Переход на страницу «Импорт данных из АИС ОИА ПЭО» |
| Документация | Переход на страницу документации по использованию модуля |
| Пользователь | Выпадающее меню: «Профиль» — профиль пользователя ОПЭС; «Выйти» — завершение сеанса |
Переключатель модулей (ЭНТР, МВЭР, ЭНТС) относится к уровню ОПЭС и в меню ЭНТС не входит.
### Блок навигации
В блоке навигации отображается иерархическое дерево организационной структуры:
компания, МЭС и ПМЭС. ТС числятся за МЭС и ПМЭС. Поле поиска фильтрует объекты
по подстроке наименования: родительские узлы совпадений остаются видимыми, дерево
раскрывается до найденного объекта.
Выбор организационного объекта открывает рабочую область с вкладками.
### Рабочая область
Пока организационный объект не выбран, в рабочей области отображаются общие сведения о модуле ЭНТС:
полное наименование, условное обозначение, назначение и цель создания, перечень возможностей,
и плашки {SdaidAnchors.RefTo<DOC_VehicleSummaryWidget>()} по всему реестру ТС (без фильтра по
организационному объекту). Текст соответствует разделам «Общие сведения» и «Назначение и цель
создания» видения ЭНТС; перечень пунктов меню и разделов здесь не дублируется.
После выбора объекта в рабочей области открывается набор вкладок:
- **Сведения** — наименование, область, город, под ними — плашки
{SdaidAnchors.RefTo<DOC_VehicleSummaryWidget>()}, отфильтрованные по выбранному объекту
(с подчинёнными объектами). Остальные сведения об объекте загружаются из АИС ОИА ПЭО.
Группа «Зимняя надбавка»: субъект РФ, выбираемый из {SdaidAnchors.RefTo<DOC_Subject>()}, и
найденная для него запись справочника {SdaidAnchors.RefTo<DOC_WinterAllowance>()} — срок
действия, количество месяцев действия, предельная величина надбавки, %. Если субъект не
выбран или для него нет записи в справочнике — вместо значений показывается текст ошибки
классификатора ({SdaidAnchors.RefTo<Rugrid.Sdaid.Epas.Nts.Backend.Calc.DOC_NtsCalcErrors>()},
секция `fuel.cf_climate_region`): «Субъект РФ эксплуатации не определён — неизвестна
зимняя надбавка».
- **Реестр ТС** — реестр транспортных средств выбранного объекта; переключатели
«С потомками / Без потомков» и «Все / Действующие» управляют составом списка.
«Действующие» — ТС без даты окончания эксплуатации.
- Ряд вкладок расширяемый: при появлении отчётов и других сведений об объекте они
добавляются в этот же ряд.
### Поведение
- Ввод подстроки в поиске фильтрует дерево по наименованию организационных объектов.
- «Главная» возвращает на главную страницу модуля с любого экрана.
- Выбор организационного объекта открывает рабочую область с вкладками; по умолчанию
активна вкладка «Сведения».
- «Справочники» открывает реестр справочников модуля.
- «Импорт» открывает страницу импорта данных из АИС ОИА ПЭО.
- «Документация» открывает инструкцию по использованию модуля.
- «Профиль» открывает профиль пользователя ОПЭС; «Выйти» завершает сеанс.
- Организационная структура и характеристики ТС, загруженные из АИС, в модуле не
редактируются. Характеристики, которых в АИС нет, и субъект РФ на вкладке «Сведения»
ведутся в ЭНТС.
"""";
}
}