forked from CITKParus/P8-Panels
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
85d5a5756c | ||
| 9e6739af52 |
331
README.md
331
README.md
@ -36,28 +36,28 @@
|
||||
|
||||
В фреймворк входят:
|
||||
|
||||
- [Библиотека расширения "P8-Panels-ParusOnlineExt.dll"](https://git.citpb.ru/CITKParus/P8-Panels-ParusOnlineExt) для сервера приложений "ПАРУС 8 Онлайн" - обеспечивает низкоуровневое взаимодействие разрабатываемых панелей с Системой
|
||||
- Хранимые объекты сервера БД Системы, обеспечивающие обмен данными между панелями и учётными регистрами Системы
|
||||
- API для высокоуровневого взаимодействия с сервером БД Системы
|
||||
- API для взаимодействия разрабатываемых панелей с WEB-приложением "ПАРУС 8 Онлайн"
|
||||
- WEB-приложение "Парус 8 - Панели мониторинга", являющееся "точкой входа" для подключения реализуемых панелей, включающее в себя:
|
||||
- Подключенные и настроенные библиотеки ["React"](https://react.dev/), ["React-Router"](https://reactrouter.com/), ["MUI"](https://mui.com/)
|
||||
- Настроенный транспайлер ["Babel"](https://babeljs.io/)
|
||||
- Настроенный сборщик WEB-приложений ["WebPack"](https://webpack.js.org/)
|
||||
- Настроенный статический анализатор кода ["ESLint"]()
|
||||
- Настройки среды разработки ["Visual Studio Code"](https://code.visualstudio.com/)
|
||||
- Готовый контекст React-приложения
|
||||
- Компоненты для отображения единого бокового меню подключенных панелей, галереи подключенных панелей, интеграции в рабочий стол WEB-приложения "ПАРУС 8 Онлайн"
|
||||
- Готовые панели мониторинга для ряда прикланых приложений Системы
|
||||
- [Библиотека расширения "P8-Panels-ParusOnlineExt.dll"](https://git.citpb.ru/CITKParus/P8-Panels-ParusOnlineExt) для сервера приложений "ПАРУС 8 Онлайн" - обеспечивает низкоуровневое взаимодействие разрабатываемых панелей с Системой
|
||||
- Хранимые объекты сервера БД Системы, обеспечивающие обмен данными между панелями и учётными регистрами Системы
|
||||
- API для высокоуровневого взаимодействия с сервером БД Системы
|
||||
- API для взаимодействия разрабатываемых панелей с WEB-приложением "ПАРУС 8 Онлайн"
|
||||
- WEB-приложение "Парус 8 - Панели мониторинга", являющееся "точкой входа" для подключения реализуемых панелей, включающее в себя:
|
||||
- Подключенные и настроенные библиотеки ["React"](https://react.dev/), ["React-Router"](https://reactrouter.com/), ["MUI5"](https://v5.mui.com/)
|
||||
- Настроенный транспайлер ["Babel"](https://babeljs.io/)
|
||||
- Настроенный сборщик WEB-приложений ["WebPack"](https://webpack.js.org/)
|
||||
- Настроенный статический анализатор кода ["ESLint"]()
|
||||
- Настройки среды разработки ["Visual Studio Code"](https://code.visualstudio.com/)
|
||||
- Готовый контекст React-приложения
|
||||
- Компоненты для отображения единого бокового меню подключенных панелей, галереи подключенных панелей, интеграции в рабочий стол WEB-приложения "ПАРУС 8 Онлайн"
|
||||
- Готовые панели мониторинга для ряда прикланых приложений Системы
|
||||
|
||||
## III. Требования к разработчику
|
||||
|
||||
Для успешной разработки собственных панелей с применением описываемого фреймворка, потребуются знания следующих технологий:
|
||||
|
||||
- HTML, CSS, JS, JSX
|
||||
- Разработка SPA WEB-приложений
|
||||
- Знакомство с основами работы перечисленных выше библиотек и системных средств (в первую очередь "React")
|
||||
- Знание архитектуры Системы, принципов работы и организации её серверной части
|
||||
- HTML, CSS, JS, JSX
|
||||
- Разработка SPA WEB-приложений
|
||||
- Знакомство с основами работы перечисленных выше библиотек и системных средств (в первую очередь "React")
|
||||
- Знание архитектуры Системы, принципов работы и организации её серверной части
|
||||
|
||||
На видеохостинге YouTube можно ознакомиться с уроками и обучающими курсами по большинству из перечисленных технологий. Например, с [этими](https://www.youtube.com/results?search_query=%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%B9+%D0%BA%D1%83%D1%80%D1%81+react).
|
||||
|
||||
@ -68,11 +68,11 @@
|
||||
|
||||
> **Внимание:**
|
||||
>
|
||||
> - **Проверьте версию "ПАРУС 8 Онлайн"**
|
||||
> - **Проверьте версию "ПАРУС 8 Онлайн"**
|
||||
>
|
||||
> Перед копированием расширения из репозитория убедитесь, что в [релизах расширения](https://git.citpb.ru/CITKParus/P8-Panels-ParusOnlineExt/releases) нет специальной сборки для Вашей версии "ПАРУС 8 Онлайн". **Если таковая есть - необходимо устанавливать именно её, а не актуальную сборку из основной ветки репозитория!**
|
||||
>
|
||||
> - **Для релиза "ПАРУС 8 Онлайн" от 30.08.2024**
|
||||
> - **Для релиза "ПАРУС 8 Онлайн" от 30.08.2024**
|
||||
>
|
||||
> Требуется [патч для "ПАРУС 8 Онлайн" до промежуточной сборки 02.09.2024](https://cloud.mail.ru/public/nEZb/y4oQa1N6D). Установка расширения на данный релиз не рекомендуется, по возможности - пропустите его.
|
||||
|
||||
@ -89,8 +89,8 @@
|
||||
|
||||
Где:
|
||||
|
||||
- `rootPath="c:\p8web20\Ext\"` - атрибут, указывающий на корневой каталог хранения расширений для сервера приложений "ПАРУС 8 Онлайн"
|
||||
- `path="P8-Panels-ParusOnlineExt\bin\P8-Panels-ParusOnlineExt.dll"` - атрибут, указывающий на каталог размещения библиотеки расширения "Панели" относительного коревого `rootPath`
|
||||
- `rootPath="c:\p8web20\Ext\"` - атрибут, указывающий на корневой каталог хранения расширений для сервера приложений "ПАРУС 8 Онлайн"
|
||||
- `path="P8-Panels-ParusOnlineExt\bin\P8-Panels-ParusOnlineExt.dll"` - атрибут, указывающий на каталог размещения библиотеки расширения "Панели" относительного коревого `rootPath`
|
||||
|
||||
4. Установите в файле конфигурации "PrecompiledApp.config" сервера приложений атрибут `updatable` в `true`:
|
||||
|
||||
@ -111,30 +111,25 @@ git clone https://git.citpb.ru/CITKParus/P8-Panels.git
|
||||
|
||||
При компиляции учитывайте следующее:
|
||||
|
||||
- объекты `PKG_P8PANELS`, `PKG_P8PANELS_BASE`, `PKG_P8PANELS_VISUAL` и `P8PNL_SELECTLIST` - обязательны к компиляции. **Это ядро серверной части расширения. Без этих объектов его работа невозможна. Все остальные, перечисленные ниже объекты серверной части - прикладные, не обязательны к компиляции и на функционирование непосредственно фреймворка влияния не оказывают.**
|
||||
- объекты `PKG_P8PANELS_SAMPLES`, `P8PNL_SMPL_CYCLOGRAM` и `P8PNL_SMPL_GANTT` - обеспечивают работу панели "Samples" ("Примеры для разработчиков"). Это абстрактный набор примеров применения фреймворка, не привязанный жестко к комплектации Системы. Должен откомпилироваться практически в любой комплектации Системы (единственное требование - наличие словаря "Контрагенты").
|
||||
- объекты `PKG_P8PANELS_PROJECTS`, `P8PNL_JB_JOBS`, `P8PNL_JB_JOBSPREV`, `P8PNL_JB_PERIODS`, `P8PNL_JB_PRJCTS` и `P8PNL_JB_PRMS` - могут быть откомпилированы в Системе, имеющей в комлектации приложения "Планирование и учёт в проектах" и "Управление закупками, складом и реализацией". Эти объекты отвечают за работу панелей группы "Планирование и учёт в проектах" ("PrjFin" - "Экономика проектов", "PrjJobs" - "Работы проектов", "PrjGraph" - "Графики проектов", "PrjInfo" - "Информация о проектах"). Компилируйте только если комлектация Системы включает указанные приложения.
|
||||
- объект `PKG_P8PANELS_CLNTTSKBRD` - может быть откомпилирован в Системе, имеющей в комлектации приложение "Управление деловыми процессами". Этот объект отвечает за работу панелей группы "Управление деловыми процессами" ("ClntTaskBoard" - "Доски задач"). Компилируйте только если комлектация Системы включает указанное приложение.
|
||||
- объект `PKG_P8PANELS_MECHREC` - может быть откомпилирован в Системе, имеющей в комлектации приложение "Планирование и учёт в дискретном производстве". Этот объект отвечает за работу панелей группы "Планирование и учёт в дискретном производстве" ("MechRecCostProdPlans" - "Производственная программа", "MechRecDeptCostProdPlans" - "Производственный план цеха", "MechRecCostJobsManage" - "Выдача сменного задания", "MechRecCostJobsManageMP" - "Выдача сменного задания на участок", "MechRecDeptCostJobs" - "Загрузка цеха", "MechRecAssemblyMon" - "Мониторинг сборки изделий"). Компилируйте только если комлектация Системы включает указанное приложение.
|
||||
- объект `PKG_P8PANELS_EQUIPSRV` - может быть откомпилирован в Системе, имеющей в комлектации приложение "Управление техническим обслуживанием и ремонтами". Этот объект отвечает за работу панелей группы "Управление техническим обслуживанием и ремонтами" ("EqsPrfrm" - "Выполнение работ по ТОиР"). Компилируйте только если комлектация Системы включает указанное приложение.
|
||||
- объект `PKG_P8PANELS_RRPCONFED` - может быть откомпилирован в Системе, имеющей в комлектации приложение "Сервис регламентированной и управленческой отчётности". Этот объект отвечает за работу панели "RrpConfEditor" ("Редактор настройки регламентированного отчёта"). Компилируйте только если комлектация Системы включает указанное приложение.
|
||||
- объекты `PKG_P8PANELS`, `PKG_P8PANELS_BASE`, `PKG_P8PANELS_VISUAL` и `P8PNL_SELECTLIST` - обязательны к компиляции. **Это ядро серверной части расширения. Без этих объектов его работа невозможна. Все остальные, перечисленные ниже объекты серверной части - прикладные, не обязательны к компиляции и на функционирование непосредственно фреймворка влияния не оказывают.**
|
||||
- объекты `PKG_P8PANELS_SAMPLES`, `P8PNL_SMPL_CYCLOGRAM` и `P8PNL_SMPL_GANTT` - обеспечивают работу панели "Samples" ("Примеры для разработчиков"). Это абстрактный набор примеров применения фреймворка, не привязанный жестко к комплектации Системы. Должен откомпилироваться практически в любой комплектации Системы (единственное требование - наличие словаря "Контрагенты").
|
||||
- объекты `PKG_P8PANELS_PROJECTS`, `P8PNL_JB_JOBS`, `P8PNL_JB_JOBSPREV`, `P8PNL_JB_PERIODS`, `P8PNL_JB_PRJCTS` и `P8PNL_JB_PRMS` - могут быть откомпилированы в Системе, имеющей в комлектации приложения "Планирование и учёт в проектах" и "Управление закупками, складом и реализацией". Эти объекты отвечают за работу панелей группы "Планирование и учёт в проектах" ("PrjFin" - "Экономика проектов", "PrjJobs" - "Работы проектов", "PrjGraph" - "Графики проектов", "PrjInfo" - "Информация о проектах"). Компилируйте только если комлектация Системы включает указанные приложения.
|
||||
- объект `PKG_P8PANELS_CLNTTSKBRD` - может быть откомпилирован в Системе, имеющей в комлектации приложение "Управление деловыми процессами". Этот объект отвечает за работу панелей группы "Управление деловыми процессами" ("ClntTaskBoard" - "Доски задач"). Компилируйте только если комлектация Системы включает указанное приложение.
|
||||
- объект `PKG_P8PANELS_MECHREC` - может быть откомпилирован в Системе, имеющей в комлектации приложение "Планирование и учёт в дискретном производстве". Этот объект отвечает за работу панелей группы "Планирование и учёт в дискретном производстве" ("MechRecCostProdPlans" - "Производственная программа", "MechRecDeptCostProdPlans" - "Производственный план цеха", "MechRecCostJobsManage" - "Выдача сменного задания", "MechRecCostJobsManageMP" - "Выдача сменного задания на участок", "MechRecDeptCostJobs" - "Загрузка цеха", "MechRecAssemblyMon" - "Мониторинг сборки изделий"). Компилируйте только если комлектация Системы включает указанное приложение.
|
||||
- объект `PKG_P8PANELS_EQUIPSRV` - может быть откомпилирован в Системе, имеющей в комлектации приложение "Управление техническим обслуживанием и ремонтами". Этот объект отвечает за работу панелей группы "Управление техническим обслуживанием и ремонтами" ("EqsPrfrm" - "Выполнение работ по ТОиР"). Компилируйте только если комлектация Системы включает указанное приложение.
|
||||
- объект `PKG_P8PANELS_RRPCONFED` - может быть откомпилирован в Системе, имеющей в комлектации приложение "Сервис регламентированной и управленческой отчётности". Этот объект отвечает за работу панели "RrpConfEditor" ("Редактор настройки регламентированного отчёта"). Компилируйте только если комлектация Системы включает указанное приложение.
|
||||
|
||||
7. Перезапустите сервер приложений "ПАРУС 8 Онлайн"
|
||||
|
||||
> **Внимание:** при установке учитывайте следующее:
|
||||
>
|
||||
> - **Для Linux/Unix**
|
||||
>
|
||||
> - Чувствительность к регистру - обращайте внимание на регистр в именах каталогов и файлов операционной системы и регистр в котором упоминаете их в конфигурационных файлах, несовпадение приводит к неработоспособности настроек
|
||||
> - Права доступа - файлы конфигурации и файлы дистрибутива фреймворка должны быть доступны процессу WEB-сервера
|
||||
>
|
||||
> - **Для Windows 7 и прочих устаревших версий Windows**
|
||||
>
|
||||
> - Версия IIS, доступная для этих ОС, зачастую не имеет автоматической поддержки шрифтов в формате "WOFF2", применяемых фреймворком. Это может вызывать некорректное отображение панелей, иконок, некоторых элементов пользовательского интерфейса. Добавте в файл "web.config", сервера приложений "ПАРУС 8 Онлайн", строку для определения формата: `<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />`. Путь для добавления данной настройки в файл "web.config": `configuration/system.webServer/staticContent/<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />`
|
||||
>
|
||||
> - **Для всех**
|
||||
>
|
||||
> - Если после установки фреймворка, при открытии панелей появляется ошибка `Internal server error` (HTTP-статус ответа сервера - 500), и Вы уверены, что перепроверили всё описанное выше в интрукции и не нашли ошибок установки, то: остановите сервер приложений "ПАРУС 8 Онлайн", сделайте резервную копию его каталога "bin" и удалите каталог, затем скачайте "web.zip" из дистрибутива Вашего релиза "ПАРУС 8 Онлайн" и восстановите удалённый каталог "bin", распаковав его из архива. Затем - запустите сервер приложений "ПАРУС 8 Онлайн".
|
||||
> - **Для Linux/Unix**
|
||||
> - Чувствительность к регистру - обращайте внимание на регистр в именах каталогов и файлов операционной системы и регистр в котором упоминаете их в конфигурационных файлах, несовпадение приводит к неработоспособности настроек
|
||||
> - Права доступа - файлы конфигурации и файлы дистрибутива фреймворка должны быть доступны процессу WEB-сервера
|
||||
> - **Для Windows 7 и прочих устаревших версий Windows**
|
||||
> - Версия IIS, доступная для этих ОС, зачастую не имеет автоматической поддержки шрифтов в формате "WOFF2", применяемых фреймворком. Это может вызывать некорректное отображение панелей, иконок, некоторых элементов пользовательского интерфейса. Добавте в файл "web.config", сервера приложений "ПАРУС 8 Онлайн", строку для определения формата: `<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />`. Путь для добавления данной настройки в файл "web.config": `configuration/system.webServer/staticContent/<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />`
|
||||
> - **Для всех**
|
||||
> - Если после установки фреймворка, при открытии панелей появляется ошибка `Internal server error` (HTTP-статус ответа сервера - 500), и Вы уверены, что перепроверили всё описанное выше в интрукции и не нашли ошибок установки, то: остановите сервер приложений "ПАРУС 8 Онлайн", сделайте резервную копию его каталога "bin" и удалите каталог, затем скачайте "web.zip" из дистрибутива Вашего релиза "ПАРУС 8 Онлайн" и восстановите удалённый каталог "bin", распаковав его из архива. Затем - запустите сервер приложений "ПАРУС 8 Онлайн".
|
||||
|
||||
## V. Подключение панелей
|
||||
|
||||
@ -180,29 +175,29 @@ git clone https://git.citpb.ru/CITKParus/P8-Panels.git
|
||||
|
||||
Настройки хранятся в формате XML. Корневым тэгом документа должен быть `CITK.P8Panels`. Дочерними для него могут быть две ветки конфигурации:
|
||||
|
||||
- `MenuItems` - настройка пунктов главного меню WEB-приложения "ПАРУС 8 Онлайн"
|
||||
- `Panels` - общий список панелей, подключаемых к приложению (не все панели обязательно выводить в виде пунктов меню)
|
||||
- `MenuItems` - настройка пунктов главного меню WEB-приложения "ПАРУС 8 Онлайн"
|
||||
- `Panels` - общий список панелей, подключаемых к приложению (не все панели обязательно выводить в виде пунктов меню)
|
||||
|
||||
`MenuItems` состоит из элементов `App`, каждый из которых определяет для какого из приложений Системы описываются пункты меню. `MenuItems` может содержать несколько элементов `App`. Каждый элемент `App` должен иметь обязательный атрибут `name`, определяющий код приложения Системы (см. колонку `APPCODE` в таблице `APPLIST`), в которое будут добавлены пункты меню. Дочерними для элемента `App` являются элементы `MenuItem`, каждый из которых описывает создаваемый расширением пункт меню. `App` может содержать несколько `MenuItem`. Каждый из `MenuItem` может иметь следующие атрибуты:
|
||||
|
||||
- `parent` - обязательный, содержит GUID родительского пункта меню, к которому будет добавлен описываемый дочерний пункт (см. `P_MENUS_CREATE_*_MENU`, где `*` - код приложения Системы)
|
||||
- `separator` - необязательный, принимает значения "true" или "false", если "true" - создаваемый пункт меню будет разделителем, остальные атрибуты, описанные ниже будут проигнорированы
|
||||
- `name` - необязательный для `separator="true"`, в прочих случаях - обязательный, уникальное имя пункта меню
|
||||
- `caption` - необязательный для `separator="true"`, в прочих случаях - обязательный, видимый текст пункта меню
|
||||
- `panelName` - необязательный для `separator="true"` или если указан атрибут `url`, в прочих случаях - обязательный, определяет код панели, открываемой при выборе данного пункта меню конечным пользователем (коды панелей объявляются в секции `Panels` данного файла конфигурации, описана ниже)
|
||||
- `url` - необязательный для `separator="true"` или если указан атрибут `panelName`, в прочих случаях - обязательный, определяет URL, который будет открыт в отдельной закладке "ПАРУС 8 Онлайн" при выборе данного пункта меню конечным пользователем (в приведённом примере, для пункта меню "ShowPrjPanelsRoot" открывает домашнюю страницу WEB-приложения "Парус 8 - Панели мониторинга", отображающую галерею доступных панелей, см. ниже описание атрибута `urlBase` элемента `Panels`)
|
||||
- `parent` - обязательный, содержит GUID родительского пункта меню, к которому будет добавлен описываемый дочерний пункт (см. `P_MENUS_CREATE_*_MENU`, где `*` - код приложения Системы)
|
||||
- `separator` - необязательный, принимает значения "true" или "false", если "true" - создаваемый пункт меню будет разделителем, остальные атрибуты, описанные ниже будут проигнорированы
|
||||
- `name` - необязательный для `separator="true"`, в прочих случаях - обязательный, уникальное имя пункта меню
|
||||
- `caption` - необязательный для `separator="true"`, в прочих случаях - обязательный, видимый текст пункта меню
|
||||
- `panelName` - необязательный для `separator="true"` или если указан атрибут `url`, в прочих случаях - обязательный, определяет код панели, открываемой при выборе данного пункта меню конечным пользователем (коды панелей объявляются в секции `Panels` данного файла конфигурации, описана ниже)
|
||||
- `url` - необязательный для `separator="true"` или если указан атрибут `panelName`, в прочих случаях - обязательный, определяет URL, который будет открыт в отдельной закладке "ПАРУС 8 Онлайн" при выборе данного пункта меню конечным пользователем (в приведённом примере, для пункта меню "ShowPrjPanelsRoot" открывает домашнюю страницу WEB-приложения "Парус 8 - Панели мониторинга", отображающую галерею доступных панелей, см. ниже описание атрибута `urlBase` элемента `Panels`)
|
||||
|
||||
`Panels` - содержит список элементов `Panel`, описывающих подключенные панели. Элемент `Panels` имеет атрибут `urlBase`, определяющий корневой URL WEB-приложения "Парус 8 - Панели мониторинга", относительно него формируются URL панелей. Значение `urlBase` определяется физическим расположением WEB-приложения "Парус 8 - Панели мониторинга" на диске сервера приложений (см. пункт 5 в главе "IV. Установка"). В данном примеры, файлы WEB-приложения распологаются в каталоге "Modules/p8-panels" сервера приложений. Каждый из элементов `Panel`, дочерних для `Panels`, описывает одну панель и имеет следующие атрибуты:
|
||||
|
||||
- `name` - обязательный, строка, указывается латиницей, определяет уникальное имя панели
|
||||
- `group` - необязательный, строка, указывается кириллицей, определяет имя группы, в которую входит панель (применяется при формировании галереи панелей, главного меню панелей и ссылок на рабочем столе)
|
||||
- `caption` - обязательный, строка, видимое наименование панели (применяется в галереи панелей, главном меню панелей, ссылках на рабочем столе, заголовках закладок)
|
||||
- `desc` - необязательный, строка,
|
||||
- `url` - обязательный, строка, указывается латиницей, относительй URL панели (по адресу `Panel.urlBase` + `Panel.Panels.url` сервер приложений "ПАРУС 8 Онлайн" будет выдавать HTML-страницу панели), для простоты навигации может повторять значение атрибута `path`
|
||||
- `path` - обязательный, строка, путь к исходному коду панели в структуре каталогов WEB-приложения "Парус 8 - Панели мониторинга" (панели должны размещаться в "app/panels", в данном атрибуте указыватся только имя каталога, созданного для панели в "app/panels")
|
||||
- `icon` - обязательный, строка, код иконки панели из символов шрифта [Google Material Icons](https://fonts.google.com/icons?icon.set=Material+Icons) (применяется при формировании галереи панелей, главного меню панелей и ссылок на рабочем столе)
|
||||
- `showInPanelsList` - обязательный, принимает значения "true" или "false", определяет отображение ссылки на панель в галереи панелей, главном меню панелей, виджете рабочего стола
|
||||
- `preview` - полный путь и имя файла из каталога "img" WEB-приложения "Парус 8 - Панели мониторинга" (в каталог могут быть добавлены пользовательские изображения), служит в качестве изображения панели в галерее панелей
|
||||
- `name` - обязательный, строка, указывается латиницей, определяет уникальное имя панели
|
||||
- `group` - необязательный, строка, указывается кириллицей, определяет имя группы, в которую входит панель (применяется при формировании галереи панелей, главного меню панелей и ссылок на рабочем столе)
|
||||
- `caption` - обязательный, строка, видимое наименование панели (применяется в галерее панелей, главном меню панелей, ссылках на рабочем столе, заголовках закладок)
|
||||
- `desc` - необязательный, строка,
|
||||
- `url` - обязательный, строка, указывается латиницей, относительй URL панели (по адресу `Panel.urlBase` + `Panel.Panels.url` сервер приложений "ПАРУС 8 Онлайн" будет выдавать HTML-страницу панели), для простоты навигации может повторять значение атрибута `path`
|
||||
- `path` - обязательный, строка, путь к исходному коду панели в структуре каталогов WEB-приложения "Парус 8 - Панели мониторинга" (панели должны размещаться в "app/panels", в данном атрибуте указыватся только имя каталога, созданного для панели в "app/panels")
|
||||
- `icon` - обязательный, строка, код иконки панели из символов шрифта [Google Material Icons](https://fonts.google.com/icons?icon.set=Material+Icons) (применяется при формировании галереи панелей, главного меню панелей и ссылок на рабочем столе)
|
||||
- `showInPanelsList` - обязательный, принимает значения "true" или "false", определяет отображение ссылки на панель в галерее панелей, главном меню панелей, виджете рабочего стола
|
||||
- `preview` - полный путь и имя файла из каталога "img" WEB-приложения "Парус 8 - Панели мониторинга" (в каталог могут быть добавлены пользовательские изображения), служит в качестве изображения панели в галерее панелей
|
||||
|
||||
На рисунках ниже проиллюстрировано применение атрибутов элемента `Panel`.
|
||||
|
||||
@ -229,9 +224,9 @@ WEB-приложение "ПАРУС 8 Онлайн" поддерживает в
|
||||
|
||||
Где:
|
||||
|
||||
- `Modules/p8-panels/#/` - путь к домашней странице WEB-приложения "Парус 8 - Панели мониторинга", указанный в атрибуте `Panels.urlBase` файла конфигурации "p8panels.config"
|
||||
- `mode=DESKTOP` - параметр вызова домашней страниы WEB-приложения "Парус 8 - Панели мониторинга", обязывающий сформировать меню панелей в специальном формате, для интеграции в рабочий стол
|
||||
- `group=ИМЯ_ГРУППЫ` - параметр вызова домашней страниы WEB-приложения "Парус 8 - Панели мониторинга", позволяющий ограничить набор формируемых ссылок на панели только одной их группой (см. выше описание атрибута `Panel.group` файла конфигурации "p8panels.config")
|
||||
- `Modules/p8-panels/#/` - путь к домашней странице WEB-приложения "Парус 8 - Панели мониторинга", указанный в атрибуте `Panels.urlBase` файла конфигурации "p8panels.config"
|
||||
- `mode=DESKTOP` - параметр вызова домашней страниы WEB-приложения "Парус 8 - Панели мониторинга", обязывающий сформировать меню панелей в специальном формате, для интеграции в рабочий стол
|
||||
- `group=ИМЯ_ГРУППЫ` - параметр вызова домашней страниы WEB-приложения "Парус 8 - Панели мониторинга", позволяющий ограничить набор формируемых ссылок на панели только одной их группой (см. выше описание атрибута `Panel.group` файла конфигурации "p8panels.config")
|
||||
|
||||
Место элемента `Frame` в структуре XML-конфигурации рабочего стола зависит от его текущего содержимого. Например, для рабочего стола по-умолчанию приложения "Планирование и учёт в проектах" это `Desktop\ContentContainer\Frame`:
|
||||
|
||||
@ -268,9 +263,9 @@ WEB-приложение "ПАРУС 8 Онлайн" поддерживает в
|
||||
|
||||
Панель может быть вызвана из действия раздела Системы (только для WEB-клиента). Для это необходимо зарегистрировать (здесь и далее - настройка выполняется в приложении "Контрусктор отраслевых расширений" для соответствующих классов Системы) в разделе метод с кодом "P8PANELS_OPEN", при этом метод обязательно должен иметь "Тип метода" - "Встроенный", а "Доступность" - "Клиентский". Для метода необходимо настроить параметры:
|
||||
|
||||
- `SPANEL` - строка, обязательный, уникальное имя (`name`) той панели из "p8panels.config", которая должна быть открыта действием
|
||||
- `SCAPTION` - строка, необязательный, заголовок вкладки WEB-приложения "ПАРУС 8 Онлайн", в которой будет открыта панель, если не задан - будет использовано видимое наименование панели (`caption`) из "p8panels.config"
|
||||
- `NIDENT` - число, необязательный, но требуется если предполагается, что панель должна работать со списком отмеченных документов, параметр следует привязать к контексту "Идентификатор отмеченных записей"
|
||||
- `SPANEL` - строка, обязательный, уникальное имя (`name`) той панели из "p8panels.config", которая должна быть открыта действием
|
||||
- `SCAPTION` - строка, необязательный, заголовок вкладки WEB-приложения "ПАРУС 8 Онлайн", в которой будет открыта панель, если не задан - будет использовано видимое наименование панели (`caption`) из "p8panels.config"
|
||||
- `NIDENT` - число, необязательный, но требуется если предполагается, что панель должна работать со списком отмеченных документов, параметр следует привязать к контексту "Идентификатор отмеченных записей"
|
||||
|
||||
Указанные параметры - зарезервированы и могут выполнять только указанную функцию. Тем не менее, метод может иметь произвольный набор прочих параметров, необходимых для работы панели. Все параметры (кроме `SPANEL` и `SCAPTION` - они системные и требуется непосредственно для корректного откытия панели, но не для её работы) будут переданы в панель в виде GET-запроса. Получить их значения в коде панели можно применив специальный API фреймворка, реализованный в `NavigationCtx`:
|
||||
|
||||
@ -298,9 +293,9 @@ const MyPanel = () => {
|
||||
|
||||
В настоящий момент в Системе можно зарегистрировать сколь угодно много методов с кодом "P8PANELS_OPEN", но не более одного в каждом разделе. Если есть необходимость открытия из одного раздела нескольких различных панелей, то рекомендуется:
|
||||
|
||||
- Реализовать дополнительную навигацию в открываемой панели
|
||||
- Реализовать в КОР-действии параметр с выпадающим списком (или иным интерфейсным элементом), позволяющим пользователю выбрать какую именно панель ему необходимо открыть сейчас
|
||||
- Определять значение параметра `SPANEL` КОР-метода "P8PANELS_OPEN" из контекста (документа, атрибута, каталога и т.п.), таким образом автоматически определяя открываемую панель
|
||||
- Реализовать дополнительную навигацию в открываемой панели
|
||||
- Реализовать в КОР-действии параметр с выпадающим списком (или иным интерфейсным элементом), позволяющим пользователю выбрать какую именно панель ему необходимо открыть сейчас
|
||||
- Определять значение параметра `SPANEL` КОР-метода "P8PANELS_OPEN" из контекста (документа, атрибута, каталога и т.п.), таким образом автоматически определяя открываемую панель
|
||||
|
||||
#### Настройка КОР-действия для вызова панели "Выдача сменного задания" из раздела "Сменные задания"
|
||||
|
||||
@ -312,10 +307,10 @@ const MyPanel = () => {
|
||||
2. В дереве классов выберите "Сменные задания", а в списке классов - класс с кодом "CostJobs"
|
||||
3. В спецификации "Методы", выбранного класса, зарегистрируйте новый метод со следующими атрибутами:
|
||||
|
||||
- `Мнемокод` - P8PANELS_OPEN
|
||||
- `Наименование` - P8PANELS_OPEN
|
||||
- `Тип метода` - Встроенный
|
||||
- `Доступность` - Клиентский
|
||||
- `Мнемокод` - P8PANELS_OPEN
|
||||
- `Наименование` - P8PANELS_OPEN
|
||||
- `Тип метода` - Встроенный
|
||||
- `Доступность` - Клиентский
|
||||
|
||||
4. Для добавленного метода `P8PANELS_OPEN` в спецификации "Параметры" зарегистрируйте следующий набор параметров:
|
||||
|
||||
@ -327,14 +322,14 @@ const MyPanel = () => {
|
||||
|
||||
5. В спецификации "Действия", выбранного класса, зарегистрируйте новое действие со следующими атрибутами:
|
||||
|
||||
- `Тип` - Нестандартное
|
||||
- `Код` - FCJOBS_OPEN_JOBS_MANAGE
|
||||
- `Наименование` - Открытие панели "Выдача сменного задания"
|
||||
- `Технология производства` - Конструктор
|
||||
- `Реализующий метод` - P8PANELS_OPEN
|
||||
- `Обработка записей` - Для одной текущей записи
|
||||
- `Завершение транзакции` - После каждого вызова действия
|
||||
- `Обновление выборки` - Не обновлять
|
||||
- `Тип` - Нестандартное
|
||||
- `Код` - FCJOBS_OPEN_JOBS_MANAGE
|
||||
- `Наименование` - Открытие панели "Выдача сменного задания"
|
||||
- `Технология производства` - Конструктор
|
||||
- `Реализующий метод` - P8PANELS_OPEN
|
||||
- `Обработка записей` - Для одной текущей записи
|
||||
- `Завершение транзакции` - После каждого вызова действия
|
||||
- `Обновление выборки` - Не обновлять
|
||||
|
||||
6. Для добавленного действия `FCJOBS_OPEN_JOBS_MANAGE` в спецификации "Параметры" зарегистрируйте следующий набор параметров:
|
||||
|
||||
@ -349,7 +344,7 @@ const MyPanel = () => {
|
||||
|
||||
В открывшемся редакторе формы перейдите в режим редактирования всплывающего меню заголовка (закладка "Таблицы", таблица "CostJobs", затем кнопка "Редактор источника", установить фокус на форме представления данных щелчком мыши, затем пункт "Всплывающее меню" в "Инспекторе объектов"). Найдите в меню пункт, созданный Системой для действия, зарегистрированного на шаге 5 (как правило имеет метку, совпадающую с наименованием действия). Расположите (перетаскиванием) этот пункт меню сразу после пункта "Отработать исполнение по штрих-кодам". Укажите для этого пункта следующие параметры в "Инспекторе объектов":
|
||||
|
||||
- `Заголовок` - Выдать сменное задание…
|
||||
- `Заголовок` - Выдать сменное задание…
|
||||
|
||||
Закройте окна редакторов с сохранением изменений.
|
||||
|
||||
@ -365,10 +360,10 @@ const MyPanel = () => {
|
||||
2. В дереве классов выберите "Сменные задания", а в списке классов - класс с кодом "CostJobs"
|
||||
3. В спецификации "Методы", выбранного класса, зарегистрируйте новый метод со следующими атрибутами:
|
||||
|
||||
- `Мнемокод` - P8PANELS_OPEN
|
||||
- `Наименование` - P8PANELS_OPEN
|
||||
- `Тип метода` - Встроенный
|
||||
- `Доступность` - Клиентский
|
||||
- `Мнемокод` - P8PANELS_OPEN
|
||||
- `Наименование` - P8PANELS_OPEN
|
||||
- `Тип метода` - Встроенный
|
||||
- `Доступность` - Клиентский
|
||||
|
||||
4. Для добавленного метода `P8PANELS_OPEN` в спецификации "Параметры" зарегистрируйте следующий набор параметров:
|
||||
|
||||
@ -380,14 +375,14 @@ const MyPanel = () => {
|
||||
|
||||
5. В спецификации "Действия", выбранного класса, зарегистрируйте новое действие со следующими атрибутами:
|
||||
|
||||
- `Тип` - Нестандартное
|
||||
- `Код` - FCJOBS_OPEN_JOBS_MANAGE_MP
|
||||
- `Наименование` - Открытие панели "Выдача сменного задания на участок"
|
||||
- `Технология производства` - Конструктор
|
||||
- `Реализующий метод` - P8PANELS_OPEN
|
||||
- `Обработка записей` - Для одной текущей записи
|
||||
- `Завершение транзакции` - После каждого вызова действия
|
||||
- `Обновление выборки` - Не обновлять
|
||||
- `Тип` - Нестандартное
|
||||
- `Код` - FCJOBS_OPEN_JOBS_MANAGE_MP
|
||||
- `Наименование` - Открытие панели "Выдача сменного задания на участок"
|
||||
- `Технология производства` - Конструктор
|
||||
- `Реализующий метод` - P8PANELS_OPEN
|
||||
- `Обработка записей` - Для одной текущей записи
|
||||
- `Завершение транзакции` - После каждого вызова действия
|
||||
- `Обновление выборки` - Не обновлять
|
||||
|
||||
6. Для добавленного действия `FCJOBS_OPEN_JOBS_MANAGE_MP` в спецификации "Параметры" зарегистрируйте следующий набор параметров:
|
||||
|
||||
@ -402,7 +397,7 @@ const MyPanel = () => {
|
||||
|
||||
В открывшемся редакторе формы перейдите в режим редактирования всплывающего меню заголовка (закладка "Таблицы", таблица "CostJobs", затем кнопка "Редактор источника", установить фокус на форме представления данных щелчком мыши, затем пункт "Всплывающее меню" в "Инспекторе объектов"). Найдите в меню пункт, созданный Системой для действия, зарегистрированного на шаге 5 (как правило имеет метку, совпадающую с наименованием действия). Расположите (перетаскиванием) этот пункт меню сразу после пункта "Отработать исполнение по штрих-кодам". Укажите для этого пункта следующие параметры в "Инспекторе объектов":
|
||||
|
||||
- `Заголовок` - Выдать сменное задание на участок…
|
||||
- `Заголовок` - Выдать сменное задание на участок…
|
||||
|
||||
Закройте окна редакторов с сохранением изменений.
|
||||
|
||||
@ -418,10 +413,10 @@ const MyPanel = () => {
|
||||
2. В дереве классов выберите "Планы и отчеты производства изделий (спецификация)", а в списке классов - класс с кодом "CostProductPlansSpecs"
|
||||
3. В спецификации "Методы", выбранного класса, зарегистрируйте новый метод со следующими атрибутами:
|
||||
|
||||
- `Мнемокод` - P8PANELS_OPEN
|
||||
- `Наименование` - P8PANELS_OPEN
|
||||
- `Тип метода` - Встроенный
|
||||
- `Доступность` - Клиентский
|
||||
- `Мнемокод` - P8PANELS_OPEN
|
||||
- `Наименование` - P8PANELS_OPEN
|
||||
- `Тип метода` - Встроенный
|
||||
- `Доступность` - Клиентский
|
||||
|
||||
4. Для добавленного метода `P8PANELS_OPEN` в спецификации "Параметры" зарегистрируйте следующий набор параметров:
|
||||
|
||||
@ -433,14 +428,14 @@ const MyPanel = () => {
|
||||
|
||||
5. В спецификации "Действия", выбранного класса, зарегистрируйте новое действие со следующими атрибутами:
|
||||
|
||||
- `Тип` - Нестандартное
|
||||
- `Код` - FCPRODPLANSP_OPEN_COST_PROD_PLANS
|
||||
- `Наименование` - Открытие панели "Производственная программа"
|
||||
- `Технология производства` - Конструктор
|
||||
- `Реализующий метод` - P8PANELS_OPEN
|
||||
- `Обработка записей` - Для одной текущей записи
|
||||
- `Завершение транзакции` - После каждого вызова действия
|
||||
- `Обновление выборки` - Не обновлять
|
||||
- `Тип` - Нестандартное
|
||||
- `Код` - FCPRODPLANSP_OPEN_COST_PROD_PLANS
|
||||
- `Наименование` - Открытие панели "Производственная программа"
|
||||
- `Технология производства` - Конструктор
|
||||
- `Реализующий метод` - P8PANELS_OPEN
|
||||
- `Обработка записей` - Для одной текущей записи
|
||||
- `Завершение транзакции` - После каждого вызова действия
|
||||
- `Обновление выборки` - Не обновлять
|
||||
|
||||
6. Для добавленного действия `FCPRODPLANSP_OPEN_COST_PROD_PLANS` в спецификации "Параметры" зарегистрируйте следующий набор параметров:
|
||||
|
||||
@ -455,8 +450,8 @@ const MyPanel = () => {
|
||||
|
||||
В открывшемся редакторе формы перейдите в режим редактирования всплывающего меню спецификации (закладка "Таблицы", таблица "CostProductPlansSpecs", затем кнопка "Редактор источника", установить фокус на форме представления данных щелчком мыши, затем пункт "Всплывающее меню" в "Инспекторе объектов"). Найдите в меню пункт, созданный Системой для действия, зарегистрированного на шаге 5 (как правило имеет метку, совпадающую с наименованием действия). Расположите (перетаскиванием) этот пункт меню сразу после пункта "Формирование". Укажите для этого пункта следующие параметры в "Инспекторе объектов":
|
||||
|
||||
- `Заголовок` - Открыть диаграмму…
|
||||
- `Правило доступности` - @nCATEGORY = 1 and @nSTATUS = 2
|
||||
- `Заголовок` - Открыть диаграмму…
|
||||
- `Правило доступности` - @nCATEGORY = 1 and @nSTATUS = 2
|
||||
|
||||
Закройте окна редакторов с сохранением изменений.
|
||||
|
||||
@ -478,9 +473,9 @@ const MyPanel = () => {
|
||||
|
||||
С точки зрения клиенсткой части, Панели представляют собой функциональные компоненты React, автоматически (благодаря описанному выше файлу конфигурации) встраиваемые в систему маршрутизации WEB-приложения "Парус 8 - Панели мониторинга" (далее "приложения" или "WEB-приложения", если контекст явно не указывает на иное). Каждая панель состоит из:
|
||||
|
||||
- Набора JS-объектов и функций, управляющих состоянием панели
|
||||
- Функций для обмена данными с сервером БД Системы и выполнения бизнес-процедур в ней
|
||||
- JSX разметки, отражающей смену состояния панели
|
||||
- Набора JS-объектов и функций, управляющих состоянием панели
|
||||
- Функций для обмена данными с сервером БД Системы и выполнения бизнес-процедур в ней
|
||||
- JSX разметки, отражающей смену состояния панели
|
||||
|
||||
Такая структура исходного кода панели продиктована архитектурными требованиями к функциональным React-компонентам. Каждая панель (и все необходимые для её функционирования JS-модули и вспомогательный файлы) размещается в отдельном каталоге (см. выше - "app/panels", здесь и далее каталоги указаны относительно корневого каталога размещения приложения, если явно не указано иное) WEB-приложения "Парус 8 - Панели мониторинга".
|
||||
|
||||
@ -524,15 +519,15 @@ c:\inetpub\p8web20\WebClient\Modules\P8-Panels>npm run build
|
||||
|
||||
В состав API входят:
|
||||
|
||||
- `SERV_DATA_TYPE_STR` - константа для типа данных "строка", при описании параметров исполняемых хранимых объектов
|
||||
- `SERV_DATA_TYPE_NUMB` - константа для типа данных "число", при описании параметров исполняемых хранимых объектов
|
||||
- `SERV_DATA_TYPE_DATE` - константа для типа данных "дата", при описании параметров исполняемых хранимых объектов
|
||||
- `SERV_DATA_TYPE_CLOB` - константа для типа данных "текст", при описании параметров исполняемых хранимых объектов
|
||||
- `isRespErr` - функция, проверка результата исполнения серверного объекта на наличие ошибок
|
||||
- `getRespErrMessage` - функция, получение ошибки исполнения серверного объекта
|
||||
- `getRespPayload` - функция, получение выходных значений, полученных после успешного исполнения
|
||||
- `executeStored` - функция, асинхронное исполнение хранимой процедуры/функции БД Системы
|
||||
- `getConfig` - функция, асинхронное считывание параметров конфигурации, определённых в "p8panels.config" (возвращает их JSON-представление)
|
||||
- `SERV_DATA_TYPE_STR` - константа для типа данных "строка", при описании параметров исполняемых хранимых объектов
|
||||
- `SERV_DATA_TYPE_NUMB` - константа для типа данных "число", при описании параметров исполняемых хранимых объектов
|
||||
- `SERV_DATA_TYPE_DATE` - константа для типа данных "дата", при описании параметров исполняемых хранимых объектов
|
||||
- `SERV_DATA_TYPE_CLOB` - константа для типа данных "текст", при описании параметров исполняемых хранимых объектов
|
||||
- `isRespErr` - функция, проверка результата исполнения серверного объекта на наличие ошибок
|
||||
- `getRespErrMessage` - функция, получение ошибки исполнения серверного объекта
|
||||
- `getRespPayload` - функция, получение выходных значений, полученных после успешного исполнения
|
||||
- `executeStored` - функция, асинхронное исполнение хранимой процедуры/функции БД Системы
|
||||
- `getConfig` - функция, асинхронное считывание параметров конфигурации, определённых в "p8panels.config" (возвращает их JSON-представление)
|
||||
|
||||
При формировании ответов, функции, получающие данные с сервера, возвращают типовые значения:
|
||||
|
||||
@ -552,9 +547,9 @@ c:\inetpub\p8web20\WebClient\Modules\P8-Panels>npm run build
|
||||
|
||||
Где:
|
||||
|
||||
- `SSTATUS` - строка, состояние исполнения (`"OK"` - успех или `"ERR"` - ошибка)
|
||||
- `XPAYLOAD` - объект, полезная нагрузка, данные полученные от серверного объекта (отсутствует, если `SSTATUS = "ERR"`)
|
||||
- `SMESSAGE` - строка, текст сообщения об ошибке (отсутствует, если `SSTATUS = "OK"`)
|
||||
- `SSTATUS` - строка, состояние исполнения (`"OK"` - успех или `"ERR"` - ошибка)
|
||||
- `XPAYLOAD` - объект, полезная нагрузка, данные полученные от серверного объекта (отсутствует, если `SSTATUS = "ERR"`)
|
||||
- `SMESSAGE` - строка, текст сообщения об ошибке (отсутствует, если `SSTATUS = "OK"`)
|
||||
|
||||
#### `boolean isRespErr(Object)`
|
||||
|
||||
@ -719,12 +714,12 @@ const MyPanel = () => {
|
||||
|
||||
В состав API входят:
|
||||
|
||||
- `pOnlineShowTab` - функция, отображение типовой закладки "ПАРУС 8 Онлайн"
|
||||
- `pOnlineShowUnit` - функция, отображение раздела "ПАРУС 8 Онлайн" в модальном режиме или на закладке
|
||||
- `pOnlineShowDocument` - функция, отображение раздела "ПАРУС 8 Онлайн" в модальном режиме (или на закладке) с позиционированием/отбором по документу
|
||||
- `pOnlineShowDictionary` - функция, отображение раздела "ПАРУС 8 Онлайн" в режиме словаря
|
||||
- `pOnlineUserProcedure` - функция, исполнение "Пользовательской процедуры"
|
||||
- `pOnlineUserReport` - функция, печать "Пользовательского отчёта"
|
||||
- `pOnlineShowTab` - функция, отображение типовой закладки "ПАРУС 8 Онлайн"
|
||||
- `pOnlineShowUnit` - функция, отображение раздела "ПАРУС 8 Онлайн" в модальном режиме или на закладке
|
||||
- `pOnlineShowDocument` - функция, отображение раздела "ПАРУС 8 Онлайн" в модальном режиме (или на закладке) с позиционированием/отбором по документу
|
||||
- `pOnlineShowDictionary` - функция, отображение раздела "ПАРУС 8 Онлайн" в режиме словаря
|
||||
- `pOnlineUserProcedure` - функция, исполнение "Пользовательской процедуры"
|
||||
- `pOnlineUserReport` - функция, печать "Пользовательского отчёта"
|
||||
|
||||
#### `String pOnlineShowTab(Object)`
|
||||
|
||||
@ -944,11 +939,11 @@ const P8Online = ({ title }) => {
|
||||
|
||||
##### Компоненты MUI
|
||||
|
||||
В состав фреймворка включена библиотека [MUI](https://mui.com/) версии 5. При разработке панелей могут быть использованы интерфейсные компоненты и разметка, поставляемые с ней.
|
||||
В состав фреймворка включена библиотека [MUI](https://v5.mui.com/) версии 5 (далее - `MUI5`). При разработке панелей могут быть использованы интерфейсные компоненты и разметка, поставляемые с ней.
|
||||
|
||||

|
||||
|
||||
Сочетая компоненты библиотеки [MUI](https://mui.com/) и описанный выше API для взаимодействия с Системой можно реализовать пользовательский интерфейс любой сложности. Для подключения компонента к панели достаточно импортировать его из модуля `"@mui/material"`.
|
||||
Сочетая компоненты библиотеки [MUI5](https://v5.mui.com/) и описанный выше API для взаимодействия с Системой можно реализовать пользовательский интерфейс любой сложности. Для подключения компонента к панели достаточно импортировать его из модуля `"@mui/material"`.
|
||||
|
||||

|
||||
|
||||
@ -1096,7 +1091,7 @@ const Mui = ({ title }) => {
|
||||
|
||||
```
|
||||
|
||||
Более подробно ознакомиться с исходным кодом примера можно в "app/panels/samples/mui.js". Документация по интерфейсным компонентам, включённым в [MUI](https://mui.com/) доступна на официальном сайте библиотеки.
|
||||
Более подробно ознакомиться с исходным кодом примера можно в "app/panels/samples/mui.js". Документация по интерфейсным компонентам, включённым в [MUI5](https://v5.mui.com/) доступна на официальном сайте библиотеки.
|
||||
|
||||
> **Обратите внимание:** описываемые далее высокоуровневые компоненты фреймворка "Панели" построены, в том числе, с применением интерфейсных примитивов MUI. Как правило, они имеют префикс `P8P*` в имени: `P8PAppMessage`, `P8PAppInlineMessage`, `P8PAppProgress`, `P8PDataGrid` и т.д.
|
||||
|
||||
@ -1346,8 +1341,8 @@ const Loader = ({ title }) => {
|
||||
|
||||
В отличие от рассмотренных выше, компоненты данного класса предназначены для решения специфических прикладных задач и, как правило:
|
||||
|
||||
- состоят из значительного числа интерфейсных примитивов
|
||||
- имеют специальный API на стороне сервера БД Системы для управления их содержимым
|
||||
- состоят из значительного числа интерфейсных примитивов
|
||||
- имеют специальный API на стороне сервера БД Системы для управления их содержимым
|
||||
|
||||
Необходимо понимать, что с одной стороны, наличие серверного API в БД значительно упрощает взаимодействие с компонентом, с другой стороны - ограничивает возможности его применения только теми прикладными задачами и функциональными возможностями, которые заложены в него. При этом "примитивы" HTML и MUI, хоть и сложнее в применении, но позволяют "собирать" практически любые интерфейсные решения на вкус разработчика.
|
||||
|
||||
@ -1355,13 +1350,13 @@ const Loader = ({ title }) => {
|
||||
|
||||
Предназначена для формирования табличных представлений данных с поддержкой:
|
||||
|
||||
- постраничного вывода данных
|
||||
- сортировки и отбора данных по колонкам на стороне сервера БД
|
||||
- сложных заголовков с возможностью отображения/сокрытия уровней
|
||||
- разворачивающихся строк (accordion)
|
||||
- группировки строк с возможностью отображения/сокрытия содержимого группы
|
||||
- фиксации заголовка
|
||||
- фиксацией колонок слева
|
||||
- постраничного вывода данных
|
||||
- сортировки и отбора данных по колонкам на стороне сервера БД
|
||||
- сложных заголовков с возможностью отображения/сокрытия уровней
|
||||
- разворачивающихся строк (accordion)
|
||||
- группировки строк с возможностью отображения/сокрытия содержимого группы
|
||||
- фиксации заголовка
|
||||
- фиксацией колонок слева
|
||||
|
||||

|
||||
|
||||
@ -2077,14 +2072,14 @@ const Chart = ({ title }) => {
|
||||
|
||||
Компонент предназначен для отображения данных в виде диаграммы Ганта. Основан на библиотеке [Frappe-Gantt](https://frappe.io/gantt). Поддерживается:
|
||||
|
||||
- Редактирование сроков задачи перетаскиванием
|
||||
- Отображение и редактирование прогресса задачи
|
||||
- Установка признаков "только для чтения" для всей диаграммы и отдельной задачи (для сроков и прогресса задачи - независимо)
|
||||
- Форматирование цвета заливки и текста задачи
|
||||
- Дополнение задачи произвольными учётными атрибутами
|
||||
- Диалоговый редактор задачи, отображающий её дополнительные атрибуты с возможностью настройки их форматирования
|
||||
- Отображение связей между задачами
|
||||
- Отображение произвольного пользовательского диалога в качестве карточки задачи/редактора задачи
|
||||
- Редактирование сроков задачи перетаскиванием
|
||||
- Отображение и редактирование прогресса задачи
|
||||
- Установка признаков "только для чтения" для всей диаграммы и отдельной задачи (для сроков и прогресса задачи - независимо)
|
||||
- Форматирование цвета заливки и текста задачи
|
||||
- Дополнение задачи произвольными учётными атрибутами
|
||||
- Диалоговый редактор задачи, отображающий её дополнительные атрибуты с возможностью настройки их форматирования
|
||||
- Отображение связей между задачами
|
||||
- Отображение произвольного пользовательского диалога в качестве карточки задачи/редактора задачи
|
||||
|
||||

|
||||

|
||||
@ -2434,9 +2429,9 @@ const Gantt = ({ title }) => {
|
||||
|
||||
Компонент предназначен для отображения изображений в формате SVG. Поддерживается:
|
||||
|
||||
- Режим галереи с зацикленным переключением между несколькими переданными компоненту изображениями
|
||||
- Обработка событий `onClick` для изображения в целом и `onItemClick` для отдельных замкнутых контуров и групп, имеющих атрибут `id`
|
||||
- Управление цветом и прозрачностью заливки отдельных замкнутых контуров и их групп
|
||||
- Режим галереи с зацикленным переключением между несколькими переданными компоненту изображениями
|
||||
- Обработка событий `onClick` для изображения в целом и `onItemClick` для отдельных замкнутых контуров и групп, имеющих атрибут `id`
|
||||
- Управление цветом и прозрачностью заливки отдельных замкнутых контуров и их групп
|
||||
|
||||

|
||||
|
||||
@ -2577,12 +2572,12 @@ const Svg = ({ title }) => {
|
||||
|
||||
Компонент предназначен для отображения данных в виде циклограммы. Поддерживается:
|
||||
|
||||
- Группировка задач с отображением описания группы при наведении
|
||||
- Форматирование цвета заливки задачи, текста задачи и цвета при наведении на задачу/группу
|
||||
- Дополнение задачи произвольными учётными атрибутами
|
||||
- Диалоговый редактор задачи, отображающий её дополнительные атрибуты с возможностью настройки их форматирования
|
||||
- Отображение произвольного пользовательского диалога в качестве карточки задачи/редактора задачи
|
||||
- Масштабирование визуального представления
|
||||
- Группировка задач с отображением описания группы при наведении
|
||||
- Форматирование цвета заливки задачи, текста задачи и цвета при наведении на задачу/группу
|
||||
- Дополнение задачи произвольными учётными атрибутами
|
||||
- Диалоговый редактор задачи, отображающий её дополнительные атрибуты с возможностью настройки их форматирования
|
||||
- Отображение произвольного пользовательского диалога в качестве карточки задачи/редактора задачи
|
||||
- Масштабирование визуального представления
|
||||
|
||||

|
||||

|
||||
@ -3081,12 +3076,12 @@ export { Cyclogram };
|
||||
|
||||
Компонент предназначен для отображения данных в виде индикатора. Поддерживается:
|
||||
|
||||
- Цветовая индикация предопределёнными цветами в зависимости от состояния (не определено, позитивное, негативное, пограничное)
|
||||
- Цветовая индикация пользовательскими цветами
|
||||
- Обработка нажатий
|
||||
- Отображение иконки
|
||||
- Упрвление внешним видом (парение, рамка)
|
||||
- Интерактивные подсказки
|
||||
- Цветовая индикация предопределёнными цветами в зависимости от состояния (не определено, позитивное, негативное, пограничное)
|
||||
- Цветовая индикация пользовательскими цветами
|
||||
- Обработка нажатий
|
||||
- Отображение иконки
|
||||
- Упрвление внешним видом (парение, рамка)
|
||||
- Интерактивные подсказки
|
||||
|
||||

|
||||
|
||||
@ -3165,9 +3160,9 @@ const MyPanel = () => {
|
||||
|
||||
Фреймворк позволяет реализовать любые пользовательские интерфейсы, вёрстка которых не противоречит возможностям современного HTML. Тем не менее, при разработке пользовательских интерфейсов панелей важно придерживаться предложенных ниже правил. Это позволит создавать их в едином ключе и упростит работу конечного пользователя при их освоении.
|
||||
|
||||
- Избегайте нестандартных реакций элементов пользовательского интерфейса на действия пользователя. Например, выпадающий список, при активации, должен отображать состав своих элементов, а не вызывать бизнес-функцию отработки документа.
|
||||
- Избегайте прямого применения HTML-тэгов. В библиотеке [MUI](https://mui.com/), включенной в состав фреймворка, есть всё необходимое для сборки интерфейса.
|
||||
- Старайтесь не применять `<div>` для всёрстки - для этого в [MUI](https://mui.com/) есть группа компонентов разметки ("Layout"), используйте их (`Grid`, `Box`, `Container`, `Stack`, `Paper` и пр.).
|
||||
- Старайтесь не использовать, без острой необходимости, атрибуты `sx` и `style` - всё необходимое для стилизации как правило есть в типовых атрибутах компонента [MUI](https://mui.com/), изучите его документацию. Если применение собственного стиля неизбежно - старайтесь выносить стили в единое место в коде, переиспользовать их, и импортировать там, где это необходимо.
|
||||
- Придерживайтесь единой цветовой гаммы при реализации всех панелей (в идеале) или, если не удаётся, панелей, отнесённых к одному прикладному участку (ПУДП, УЗСР, БУ, ПУП и т.п.).
|
||||
- Изучите и применяйте `ThemeProvider` из состава инструментов стилизации библиотеки [MUI](https://mui.com/) для придания индивидуальности панелям и их компонентам.
|
||||
- Избегайте нестандартных реакций элементов пользовательского интерфейса на действия пользователя. Например, выпадающий список, при активации, должен отображать состав своих элементов, а не вызывать бизнес-функцию отработки документа.
|
||||
- Избегайте прямого применения HTML-тэгов. В библиотеке [MUI5](https://v5.mui.com/), включенной в состав фреймворка, есть всё необходимое для сборки интерфейса.
|
||||
- Старайтесь не применять `<div>` для всёрстки - для этого в [MUI5](https://v5.mui.com/) есть группа компонентов разметки ("Layout"), используйте их (`Grid`, `Box`, `Container`, `Stack`, `Paper` и пр.).
|
||||
- Старайтесь не использовать, без острой необходимости, атрибуты `sx` и `style` - всё необходимое для стилизации как правило есть в типовых атрибутах компонента [MUI5](https://v5.mui.com/), изучите его документацию. Если применение собственного стиля неизбежно - старайтесь выносить стили в единое место в коде, переиспользовать их, и импортировать там, где это необходимо.
|
||||
- Придерживайтесь единой цветовой гаммы при реализации всех панелей (в идеале) или, если не удаётся, панелей, отнесённых к одному прикладному участку (ПУДП, УЗСР, БУ, ПУП и т.п.).
|
||||
- Изучите и применяйте `ThemeProvider` из состава инструментов стилизации библиотеки [MUI5](https://v5.mui.com/) для придания индивидуальности панелям и их компонентам.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user