Проверка данных ЭУ
Данный раздел содержит описание примера проверки, изменения и отмены изменения состояния карточки. Подписаться на событие изменения состояния, провести проверку какого-нибудь поля и случае, если проверка не прошла, выдать предупреждающее сообщение и состояние не менять.
Ссылка на пример на GitHub: ValidateOnStateChanging.
Проект-расширение клиентской части Web-клиент. Содержит клиентский скрипт с функцией-обработчиком события validateOnStateChanging
, проверку данных ЭУ
при смене состояния.
Пример рассчитан на версию Web-клиента 6.1 или выше.
Сборка и установка
-
Откройте консоль в папке
ValidateOnStateChangingWebExtension
и выполните командуnpm install
, затемnpm update
и в концеnpm run build:prod
. -
Скопируйте каталог
SamplesOutput\Content\Modules\ValidateOnStateChangingWebExtension
в каталогПуть к сайту Web-клиента\Content\Modules
. -
Перезапустите dvwebclient.
Проверка примера
-
Запустите конструктор разметок.
-
Импортируйте решение из файла
ValidateOnStateChangingLayout.xml
. -
Сделайте решение
ValidateOnStateChangingLayout
активным для карточки типа Документ вида ДокументУД/Исходящий. -
На разметке расположен ЭУ
Текст
и кнопки операций (Start approving и др.) по изменению состояния карточки. -
Перезапустите dvwebclient.
-
Откройте новый документ ДокументУД\Исходящий и нажать кнопку редактировать. При этом должна открыться разметка с ЭУ
Текст
и кнопками изменения состояния. Часть кнопок будет неактивна, это зависит от настроек ролевой модели. -
Если в ЭУ
Текст
нет текста или длина текста превышает 100 символов, то при нажатии на кнопку изменения состояния возникает сообщение об ошибке и состояние не изменяется. -
В случае, если ЭУ
Текст
проходит валидацию, то состояние карточки меняется. Например при выполнении операцииStart approving
с состоянияDrafting
на состояниеIs approving
. -
При этом кнопки перехода исчезают, т.к. в состоянии
Is approving
операцииStart approving
и др. не доступны.
Данный пример демонстрирует только доступ к элементу разметки. При реализации расширений рекомендуется использовать экспорт разметок в виде Решения. |