diff --git a/README.md b/README.md index 73c70bc..c076574 100644 --- a/README.md +++ b/README.md @@ -647,8 +647,8 @@ const MyPanel = () => { В состав API входят: - `pOnlineShowTab` - функция, отображение типовой закладки "ПАРУС 8 Онлайн" -- `pOnlineShowUnit` - функция, отображение раздела "ПАРУС 8 Онлайн" в модальном режиме -- `pOnlineShowDocument` - функция, отображение раздела "ПАРУС 8 Онлайн" в модальном режиме с позиционированием/отбором по документу +- `pOnlineShowUnit` - функция, отображение раздела "ПАРУС 8 Онлайн" в модальном режиме или на закладке +- `pOnlineShowDocument` - функция, отображение раздела "ПАРУС 8 Онлайн" в модальном режиме (или на закладке) с позиционированием/отбором по документу - `pOnlineShowDictionary` - функция, отображение раздела "ПАРУС 8 Онлайн" в режиме словаря - `pOnlineUserProcedure` - функция, исполнение "Пользовательской процедуры" - `pOnlineUserReport` - функция, печать "Пользовательского отчёта" @@ -684,13 +684,15 @@ const MyPanel = () => { { unitCode, showMethod = "main", - inputParameters + inputParameters, + modal = true } ``` `unitCode` - обязательный, строка, код раздела Системы\ `showMethod` - необязательный, строка, метод вызова раздела Системы (если не указан - будет использован метод вызова "main")\ -`inputParameters` - необязательный, массив объектов вида `[{name: ИМЯ_ПАРАМЕТРА, value: ЗНАЧЕНИЕ_ПАРАМЕТРА},...]`, параметры метода вызова раздела Системы +`inputParameters` - необязательный, массив объектов вида `[{name: ИМЯ_ПАРАМЕТРА, value: ЗНАЧЕНИЕ_ПАРАМЕТРА},...]`, параметры метода вызова раздела Системы\ +`modal` - необязательный, логический, true (по умолчанию) - открыть в модальном окне, false - открыть в закладке (если закладка ранее была открыта с таким же набором параметров - она будет активирована), поддерживается для "ПАРУС 8 Онлайн" с версии 26.12.2024 **Результат:** функция не возвращает значимого результата @@ -705,14 +707,16 @@ const MyPanel = () => { unitCode, document, showMethod = "main", - inRnParameter = "in_RN" + inRnParameter = "in_RN", + modal = true } ``` `unitCode` - обязательный, строка, код раздела Системы\ `document` - обязательный, число, регистрационный номер документа или иной его идентификатор `showMethod` - необязательный, строка, метод вызова раздела Системы (если не указан - будет использован метод вызова "main")\ -`inRnParameter` - необязательный, строка, имя параметра метода вызова для позиционирования/отбора (если не указан, будет применён параметр метода вызова с именем "in_RN") +`inRnParameter` - необязательный, строка, имя параметра метода вызова для позиционирования/отбора (если не указан, будет применён параметр метода вызова с именем "in_RN")\ +`modal` - необязательный, логический, true (по умолчанию) - открыть в модальном окне, false - открыть в закладке (если закладка ранее была открыта с таким же набором параметров - она будет активирована), поддерживается для "ПАРУС 8 Онлайн" с версии 26.12.2024 **Результат:** функция не возвращает значимого результата diff --git a/app.text.js b/app.text.js index 131baf9..f6e8b7c 100644 --- a/app.text.js +++ b/app.text.js @@ -53,6 +53,7 @@ export const CAPTIONS = { export const ERRORS = { UNDER_CONSTRUCTION: "Панель в разработке", P8O_API_UNAVAILABLE: '"ПАРУС 8 Онлайн" недоступен', + P8O_API_UNSUPPORTED: 'Функция "ПАРУС 8 Онлайн" не поддерживается', DEFAULT: "Неожиданная ошибка" }; diff --git a/app/context/application.js b/app/context/application.js index d613fcc..6ff8919 100644 --- a/app/context/application.js +++ b/app/context/application.js @@ -22,7 +22,8 @@ const P8O_API = window.top?.parus?.clientApi; //Структура объекта с описанием ошибок const APPLICATION_CONTEXT_ERRORS_SHAPE = PropTypes.shape({ - P8O_API_UNAVAILABLE: PropTypes.string.isRequired + P8O_API_UNAVAILABLE: PropTypes.string.isRequired, + P8O_API_UNSUPPORTED: PropTypes.string.isRequired }); //---------------- @@ -72,21 +73,38 @@ export const ApplicationContext = ({ errors, displaySizeGetter, guidGenerator, c //Отображение раздела "ПАРУС 8 Онлайн" const pOnlineShowUnit = useCallback( - ({ unitCode, showMethod = "main", inputParameters }) => { - if (P8O_API) P8O_API.fn.openDocumentModal({ unitcode: unitCode, method: showMethod, inputParameters }); + ({ unitCode, showMethod = "main", inputParameters, modal = true }) => { + if (P8O_API) + modal + ? P8O_API.fn.openDocumentModal({ unitcode: unitCode, method: showMethod, inputParameters }) + : P8O_API.fn.openDocument + ? P8O_API.fn.openDocument({ unitcode: unitCode, method: showMethod, inputParameters }) + : showMsgErr(errors.P8O_API_UNSUPPORTED); else showMsgErr(errors.P8O_API_UNAVAILABLE); }, - [showMsgErr, errors.P8O_API_UNAVAILABLE] + [showMsgErr, errors.P8O_API_UNAVAILABLE, errors.P8O_API_UNSUPPORTED] ); //Отображение документа "ПАРУС 8 Онлайн" const pOnlineShowDocument = useCallback( - ({ unitCode, document, showMethod = "main", inRnParameter = "in_RN" }) => { + ({ unitCode, document, showMethod = "main", inRnParameter = "in_RN", modal = true }) => { if (P8O_API) - P8O_API.fn.openDocumentModal({ unitcode: unitCode, method: showMethod, inputParameters: [{ name: inRnParameter, value: document }] }); + modal + ? P8O_API.fn.openDocumentModal({ + unitcode: unitCode, + method: showMethod, + inputParameters: [{ name: inRnParameter, value: document }] + }) + : P8O_API.fn.openDocument + ? P8O_API.fn.openDocument({ + unitcode: unitCode, + method: showMethod, + inputParameters: [{ name: inRnParameter, value: document }] + }) + : showMsgErr(errors.P8O_API_UNSUPPORTED); else showMsgErr(errors.P8O_API_UNAVAILABLE); }, - [showMsgErr, errors.P8O_API_UNAVAILABLE] + [showMsgErr, errors.P8O_API_UNAVAILABLE, errors.P8O_API_UNSUPPORTED] ); //Отображение словаря "ПАРУС 8 Онлайн"