logologo
Empezar
Manual
Desarrollo
Plugins
API
Inicio
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Empezar
Manual
Desarrollo
Plugins
API
Inicio
logologo
Descripción general de RunJS
Importación de módulos
Renderizado en contenedor

Variables globales

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 traducción IA

Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.

#ctx.modal

Una API de acceso rápido basada en Ant Design Modal, utilizada para abrir activamente cuadros modales (avisos de información, ventanas emergentes de confirmación, etc.) en RunJS. Es implementada por ctx.viewer / el sistema de vistas.

#Escenarios de uso

EscenarioDescripción
JSBlock / JSFieldMostrar resultados de operaciones, avisos de error o confirmaciones secundarias tras la interacción del usuario.
Flujo de trabajo / Eventos de acciónVentana emergente de confirmación antes del envío; termina los pasos posteriores mediante ctx.exit() si el usuario cancela.
Reglas de enlaceAvisos emergentes para el usuario cuando falla la validación.

Nota: ctx.modal está disponible en entornos RunJS con un contexto de vista (como JSBlocks dentro de una página, flujos de trabajo, etc.); es posible que no exista en el backend o en contextos sin interfaz de usuario (UI). Se recomienda utilizar el encadenamiento opcional (ctx.modal?.confirm?.()) al llamarlo.

#Definición de tipos

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>;  // Devuelve true si el usuario hace clic en Aceptar, false si cancela
};

ModalConfig es consistente con la configuración de los métodos estáticos de Modal en Ant Design.

#Métodos comunes

MétodoValor de retornoDescripción
info(config)Promise<void>Modal de aviso de información
success(config)Promise<void>Modal de aviso de éxito
error(config)Promise<void>Modal de aviso de error
warning(config)Promise<void>Modal de aviso de advertencia
confirm(config)Promise<boolean>Modal de confirmación; devuelve true si el usuario hace clic en Aceptar y false si cancela

#Parámetros de configuración

Consistente con Modal de Ant Design, los campos comunes incluyen:

ParámetroTipoDescripción
titleReactNodeTítulo
contentReactNodeContenido
okTextstringTexto del botón de aceptar
cancelTextstringTexto del botón de cancelar (solo para confirm)
onOk() => void | Promise<void>Se ejecuta al hacer clic en Aceptar
onCancel() => voidSe ejecuta al hacer clic en Cancelar

#Relación con ctx.message y ctx.openView

UsoUso recomendado
Aviso temporal ligeroctx.message, desaparece automáticamente
Modal de información/éxito/error/advertenciactx.modal.info / success / error / warning
Confirmación secundaria (requiere elección del usuario)ctx.modal.confirm, usado con ctx.exit() para controlar el flujo
Interacciones complejas como formularios o listasctx.openView para abrir una vista personalizada (página/cajón/modal)

#Ejemplos

#Modal de información simple

ctx.modal.info({
  title: 'Aviso',
  content: 'Operación completada',
});

#Modal de confirmación y control de flujo

const confirmed = await ctx.modal.confirm({
  title: 'Confirmar eliminación',
  content: '¿Está seguro de que desea eliminar este registro?',
  okText: 'Confirmar',
  cancelText: 'Cancelar',
});
if (!confirmed) {
  ctx.exit();  // Termina los pasos posteriores si el usuario cancela
  return;
}
await ctx.runAction('destroy', { filterByTk: ctx.record?.id });

#Modal de confirmación con onOk

await ctx.modal.confirm({
  title: 'Confirmar envío',
  content: 'Los cambios no podrán modificarse después del envío. ¿Desea continuar?',
  async onOk() {
    await ctx.form.submit();
  },
});

#Aviso de error

try {
  await someOperation();
  ctx.modal.success({ title: 'Éxito', content: 'Operación completada' });
} catch (e) {
  ctx.modal.error({ title: 'Error', content: e.message });
}

#Relacionado

  • ctx.message: Aviso temporal ligero, desaparece automáticamente.
  • ctx.exit(): Comúnmente utilizado como if (!confirmed) ctx.exit() para terminar el flujo cuando un usuario cancela la confirmación.
  • ctx.openView(): Abre una vista personalizada, adecuada para interacciones complejas.