logologo
Começar
Manual
Desenvolvimento
Plugins
API
Início
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Começar
Manual
Desenvolvimento
Plugins
API
Início
logologo
Visão geral do RunJS
Importando módulos
Renderização no contêiner

Variáveis globais

window
document
navigator

ctx

ctx.blockModel
ctx.collection
ctx.collectionField
ctx.dataSource
ctx.dataSourceManager
ctx.element
ctx.exit()
ctx.exitAll()
ctx.filterManager
ctx.form
ctx.getModel()
ctx.getValue()
ctx.getVar()
ctx.i18n
ctx.importAsync()
ctx.initResource()
ctx.libs
ctx.location
ctx.logger
ctx.makeResource()
ctx.message
ctx.modal
ctx.model
ctx.notification
ctx.off()
ctx.on()
ctx.openView()
ctx.render()
ctx.request()
ctx.requireAsync()
ctx.resource
ctx.route
ctx.router
ctx.setValue()
ctx.sql
ctx.t()
ctx.view
Previous Pagectx.message
Next Pagectx.model
Aviso de tradução por IA

Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.

#ctx.modal

Uma API de atalho baseada no Ant Design Modal, usada para abrir ativamente caixas modais (avisos de informação, pop-ups de confirmação, etc.) no RunJS. É implementada pelo ctx.viewer / sistema de visualização.

#Casos de Uso

CenárioDescrição
JSBlock / JSFieldExibir resultados de operações, avisos de erro ou confirmações secundárias após a interação do usuário.
Fluxo de trabalho / Eventos de açãoConfirmação em pop-up antes do envio; encerra as etapas subsequentes via ctx.exit() se o usuário cancelar.
Regras de ligaçãoAvisos em pop-up para o usuário quando a validação falha.

Nota: ctx.modal está disponível em ambientes RunJS com um contexto de visualização (como JSBlocks dentro de uma página, fluxos de trabalho, etc.); pode não existir no backend ou em contextos sem interface de usuário (UI). Recomenda-se usar o encadeamento opcional (ctx.modal?.confirm?.()) ao chamá-lo.

#Definição de Tipo

modal: {
  info: (config: ModalConfig) => Promise<void>;
  success: (config: ModalConfig) => Promise<void>;
  error: (config: ModalConfig) => Promise<void>;
  warning: (config: ModalConfig) => Promise<void>;
  confirm: (config: ModalConfig) => Promise<boolean>;  // Retorna true se o usuário clicar em OK, false se cancelar
};

ModalConfig é consistente com a configuração dos métodos estáticos do Modal do Ant Design.

#Métodos Comuns

MétodoValor de RetornoDescrição
info(config)Promise<void>Modal de aviso de informação
success(config)Promise<void>Modal de aviso de sucesso
error(config)Promise<void>Modal de aviso de erro
warning(config)Promise<void>Modal de aviso de atenção
confirm(config)Promise<boolean>Modal de confirmação; retorna true se o usuário clicar em OK, e false se cancelar

#Parâmetros de Configuração

Consistente com o Modal do Ant Design, os campos comuns incluem:

ParâmetroTipoDescrição
titleReactNodeTítulo
contentReactNodeConteúdo
okTextstringTexto do botão OK
cancelTextstringTexto do botão Cancelar (apenas para confirm)
onOk() => void | Promise<void>Executado ao clicar em OK
onCancel() => voidExecutado ao clicar em Cancelar

#Relação com ctx.message e ctx.openView

FinalidadeUso Recomendado
Aviso temporário levectx.message, desaparece automaticamente
Modal de Info/Sucesso/Erro/Avisoctx.modal.info / success / error / warning
Confirmação secundária (requer escolha do usuário)ctx.modal.confirm, usado com ctx.exit() para controlar o fluxo
Interações complexas como formulários ou listasctx.openView para abrir uma visualização personalizada (página/gaveta/modal)

#Exemplos

#Modal de Informação Simples

ctx.modal.info({
  title: 'Aviso',
  content: 'Operação concluída',
});

#Modal de Confirmação e Controle de Fluxo

const confirmed = await ctx.modal.confirm({
  title: 'Confirmar Exclusão',
  content: 'Tem certeza de que deseja excluir este registro?',
  okText: 'Confirmar',
  cancelText: 'Cancelar',
});
if (!confirmed) {
  ctx.exit();  // Encerra as etapas subsequentes se o usuário cancelar
  return;
}
await ctx.runAction('destroy', { filterByTk: ctx.record?.id });

#Modal de Confirmação com onOk

await ctx.modal.confirm({
  title: 'Confirmar Envio',
  content: 'As alterações não poderão ser modificadas após o envio. Deseja continuar?',
  async onOk() {
    await ctx.form.submit();
  },
});

#Aviso de Erro

try {
  await someOperation();
  ctx.modal.success({ title: 'Sucesso', content: 'Operação concluída' });
} catch (e) {
  ctx.modal.error({ title: 'Erro', content: e.message });
}

#Relacionado

  • ctx.message: Aviso temporário leve, desaparece automaticamente
  • ctx.exit(): Comumente usado como if (!confirmed) ctx.exit() para encerrar o fluxo quando um usuário cancela a confirmação
  • ctx.openView(): Abre uma visualização personalizada, adequado para interações complexas