1. YCLIENTS
  2. Маркетплейс интеграций
  3. Плагинизация
  4. Руководство по созданию Frontend плагина
  5. Событийная модель
  6. Список возможных событий

Список возможных событий


В экосистеме YCLIENTS взаимодействие между основным приложением (хостом) и фронтенд-плагинами построено на событийной модели. Хост-приложение генерирует специализированные события, которые информируют плагины о текущем состоянии системы, изменениях данных и необходимости выполнить определенные действия.

Плагины, в свою очередь, подписываются на эти события и могут реагировать на них, выполняя логику расширения функциональности, а также отправлять собственные события обратно хосту для передачи данных или запроса на выполнение действий.

Данная статья подробно описывает ключевые события ERP, которые отправляет продукт.

Реализованные события ERP

Когда отправляется

Пример события

При открытии данных о клиенте в визите, в журнале записи.

document.dispatchEvent(
  new CustomEvent('host:erp-visit-modal-client-card-sidebar:ready', {
    detail: {
      area: 'erp-visit-modal-client-card-sidebar',
      containerId: 'erp-visit-modal-client-card-sidebar',
      payload: null,
    },
  }),
);

При нажатии на контрол продажи товаров в журнале записи.

document.dispatchEvent(
  new CustomEvent('host:erp-timetable-controls-goods-sale:ready', {
    detail: {
      area: 'erp-timetable-controls-goods-sale',
      containerId: 'erp-timetable-controls-goods-sale',
      payload: null,
    },
  }),
);

При открытии любой страницы ERP.

document.dispatchEvent(
  new CustomEvent('host:nav-menu-item:ready', {
    detail: {
      area: 'nav-menu-item',
      containerId: 'nav-menu-item',
      payload: null,
    },
  }),
);

При открытии данных о клиенте в визите, в журнале записи.

document.dispatchEvent(
  new CustomEvent('host:erp-visit-modal-client-card-info:ready', {
    detail: {
      area: 'erp-visit-modal-client-card-info',
      containerId: 'erp-visit-modal-client-card-info',
      payload: null,
    },
  }),
);

При открытии данных о клиенте в визите, в журнале записи.

document.dispatchEvent(
  new CustomEvent('host:erp-visit-modal-client-card-details:ready', {
    detail: {
      area: 'erp-visit-modal-client-details',
      containerId: 'erp-visit-modal-client-details',
      payload: null,
    },
  }),
);

При открытии журнала записи, после загрузки каждой записи в журнале.

document.dispatchEvent(
  new CustomEvent('host:erp-timetable-record-client-name:ready', {
    detail: {
      area: 'erp-timetable-record-client-name',
      containerId: 'erp-timetable-record-client-name',
      payload: {
          clientName: 'Иван',
          clientSurname: 'Иванов',
          clientPatronymic: 'Иванович',
      },
    },
  }),
);

События виджета онлайн-записи

Когда отправляется

Пример события

При инициализации виджета.

document.dispatchEvent(
  new CustomEvent('host:root:ready', {
    detail: {
      area: 'root',
      containerId: 'root',
      payload: null,
    },
  }),
);
Предыдущая статья Коммуникация между хост-приложением и плагином
Следующая статья EventEmitter