Aviso de tradução por IA
Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.
JS Column
Introdução
JS Column é usado para "colunas personalizadas" em tabelas, renderizando o conteúdo das células de cada linha via JavaScript. Não está vinculado a um campo específico, sendo adequado para cenários como colunas derivadas, exibições combinadas entre campos, emblemas de status, operações de botão, agregação de dados remotos, etc.

API de Contexto de Tempo de Execução
Ao renderizar cada célula, a JS Column pode usar as seguintes capacidades de contexto:
ctx.element: O contêiner DOM da célula atual (ElementProxy), suportandoinnerHTML,querySelector,addEventListener, etc.;ctx.record: O objeto de registro da linha atual (somente leitura);ctx.recordIndex: O índice da linha na página atual (começa em 0, pode ser afetado pela paginação);ctx.collection: Metainformações da coleção vinculada à tabela (somente leitura);ctx.requireAsync(url): Carrega bibliotecas AMD/UMD de forma assíncrona via URL;ctx.importAsync(url): Importa módulos ESM dinamicamente via URL;ctx.openView(options): Abre uma visualização configurada (janela modal/gaveta/página);ctx.i18n.t()/ctx.t(): Internacionalização;ctx.onRefReady(ctx.ref, cb): Renderiza após o contêiner estar pronto;ctx.libs.React/ctx.libs.ReactDOM/ctx.libs.antd/ctx.libs.antdIcons/ctx.libs.dayjs/ctx.libs.lodash/ctx.libs.math/ctx.libs.formula: Bibliotecas comuns integradas como React / ReactDOM / Ant Design / Ícones do Ant Design / dayjs / lodash / math.js / formula.js, usadas para renderização JSX, processamento de tempo, manipulação de dados e operações matemáticas. (ctx.React/ctx.ReactDOM/ctx.antdainda são mantidos para compatibilidade.)ctx.render(vnode): Renderiza elementos React/HTML/DOM no contêiner padrãoctx.element(célula atual). Múltiplas renderizações reutilizarão o Root e substituirão o conteúdo existente do contêiner.
Editor e Snippets
O editor de script da JS Column suporta realce de sintaxe, dicas de erro e trechos de código integrados (Snippets).
Snippets: Abre a lista de trechos de código integrados, permitindo pesquisar e inserir na posição atual do cursor com um clique.Run: Executa o código atual diretamente, com os logs de execução saindo no painelLogsna parte inferior, suportandoconsole.log/info/warn/errore localização de erros com realce.

Pode ser combinado com funcionários de IA para gerar código:
Usos Comuns
1) Renderização básica (leitura do registro da linha atual)
2) Usando JSX para renderizar componentes React
3) Abrindo janela modal/gaveta na célula (visualizar/editar)
4) Carregando bibliotecas de terceiros (AMD/UMD ou ESM)
Observações
- Sugere-se usar CDNs confiáveis para o carregamento de bibliotecas externas e preparar um fallback para cenários de falha (ex:
if (!lib) return;). - Recomenda-se priorizar o uso de seletores
classou[name=...], evitando o uso deidfixo para prevenir duplicidade deidem múltiplos blocos/janelas modais. - Limpeza de eventos: as linhas da tabela podem mudar dinamicamente com a paginação/atualização e as células serão renderizadas várias vezes. Você deve limpar ou remover duplicatas antes de vincular eventos para evitar disparos repetidos.
- Sugestão de desempenho: evite carregar repetidamente bibliotecas grandes em cada célula; você deve armazenar a biblioteca em cache no nível superior (como por meio de variáveis globais ou de nível de tabela) para reutilização.

