Уведомление об ИИ-переводе
Этот документ был переведён с помощью ИИ. Для получения точной информации обратитесь к английской версии.
JS Item
Введение
JS Item используется для «пользовательских элементов» (не привязанных к полям) в форме. Вы можете использовать JavaScript/JSX для рендеринга любого содержимого (например, подсказок, статистики, предварительного просмотра, кнопок и т. д.) и взаимодействия с формой и контекстом записи. Он подходит для таких сценариев, как предварительный просмотр в реальном времени, информационные подсказки и небольшие интерактивные компоненты.

API контекста выполнения (основные)
ctx.element: Контейнер DOM (ElementProxy) текущего элемента, поддерживающийinnerHTML,querySelector,addEventListenerи т. д.ctx.form: Экземпляр формы AntD, позволяющий выполнять такие операции, какgetFieldValue / getFieldsValue / setFieldsValue / validateFieldsи т. д.ctx.blockModel: Модель б лока формы, к которому он принадлежит, способная прослушиватьformValuesChangeдля реализации связывания.ctx.record/ctx.collection: Текущая запись и метаданные коллекции (доступно в некоторых сценариях).ctx.requireAsync(url): Асинхронная загрузка библиотеки AMD/UMD по URL.ctx.importAsync(url): Динамический импорт модуля ESM по URL.ctx.openView(viewUid, options): Открытие настроенного представления (выдвижная панель/диалоговое окно/страница).ctx.message/ctx.notification: Глобальные сообщения и уведомления.ctx.t()/ctx.i18n.t(): Интернационализация.ctx.onRefReady(ctx.ref, cb): Рендеринг после готовности контейнера.ctx.libs.React/ctx.libs.ReactDOM/ctx.libs.antd/ctx.libs.antdIcons/ctx.libs.dayjs/ctx.libs.lodash/ctx.libs.math/ctx.libs.formula: Встроенные библиотеки React / ReactDOM / Ant Design / Ant Design Icons / dayjs / lodash / math.js / formula.js и другие универсальные библиотеки для рендеринга JSX, обработки времени, манипулирования данными и математических вычислений. (ctx.React/ctx.ReactDOM/ctx.antdсохранены для совместимости.)ctx.render(vnode): Отображает элемент React/HTML/DOM в контейнере по умолчаниюctx.element. Многократный рендеринг будет повторно использовать Root и перезаписывать существующее содержимое контейнера.
Редактор и сниппеты
Snippets: Открывает список встроенных сниппетов кода, позволяя искать и вставлять их в текущую позицию курсора одним щелчком.Run: Непосредственно выполняет текущий код и выводит журналы выполнения на панельLogsвнизу. Поддерживаетconsole.log/info/warn/errorи подсветку ошибок.

- Может использоваться с AI-сотрудником для генерации/изменения скриптов: AI-сотрудник · Натан: Frontend-инженер
Распространенные сценарии использования (упрощенные примеры)
1) Предварительный просмотр в реальном времени (чтение значений формы)
2) Открытие представления (выдвижная панель)
3) Загрузка и рендеринг внешних библиотек
Примечания
- Для загрузки внешних библиотек рекомендуется использовать доверенные CDN, а в случае сбоя необходимо предусмотреть запасной вариант (например,
if (!lib) return;). - Для селекторов рекомендуется отдавать предпочтение
classили[name=...]и избегать использования фиксированныхid, чтобы предотвратить дублированиеidв нескольких блоках/всплывающих окнах. - Очистка событий: Частые изменения значений формы могут вызывать многократный рендеринг. Перед привязкой события его следует очистить или дедуплицировать (например, сначала
remove, затемadd, или использовать{ once: true }, или меткуdatasetдля предотвращения дублирования).

