logologo
Démarrer
Manuel
Développement
Plugins
API
Accueil
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Démarrer
Manuel
Développement
Plugins
API
Accueil
logologo
Présentation de RunJS
Importation de modules
Rendu dans le conteneur

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
Avis de traduction IA

Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.

#ctx.modal

Une API de raccourci basée sur Ant Design Modal, utilisée pour ouvrir activement des boîtes modales (invites d'information, fenêtres de confirmation, etc.) dans RunJS. Elle est implémentée par ctx.viewer / le système de vue.

#Scénarios d'utilisation

ScénarioDescription
JSBlock / JSFieldAfficher les résultats d'opération, les messages d'erreur ou les confirmations secondaires après l'interaction de l'utilisateur.
Flux de travail / Événements d'actionFenêtre de confirmation avant la soumission ; interrompre les étapes suivantes via ctx.exit() si l'utilisateur annule.
Règles de liaisonFenêtres d'invite pour l'utilisateur lorsque la validation échoue.

Remarque : ctx.modal est disponible dans les environnements RunJS disposant d'un contexte de vue (comme les JSBlocks dans une page, les flux de travail, etc.) ; il peut ne pas exister dans le backend ou les contextes sans interface utilisateur (UI). Il est recommandé d'utiliser le chaînage optionnel (ctx.modal?.confirm?.()) lors de l'appel.

#Définition des types

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>;  // Retourne true si l'utilisateur clique sur OK, false s'il annule
};

ModalConfig est conforme à la configuration des méthodes statiques de Modal d'Ant Design.

#Méthodes courantes

MéthodeValeur de retourDescription
info(config)Promise<void>Fenêtre modale d'information
success(config)Promise<void>Fenêtre modale de succès
error(config)Promise<void>Fenêtre modale d'erreur
warning(config)Promise<void>Fenêtre modale d'avertissement
confirm(config)Promise<boolean>Fenêtre de confirmation ; retourne true si l'utilisateur clique sur OK, et false s'il annule

#Paramètres de configuration

Conformément à Modal d'Ant Design, les champs courants incluent :

ParamètreTypeDescription
titleReactNodeTitre
contentReactNodeContenu
okTextstringTexte du bouton OK
cancelTextstringTexte du bouton Annuler (uniquement pour confirm)
onOk() => void | Promise<void>Exécuté lors du clic sur OK
onCancel() => voidExécuté lors du clic sur Annuler

#Relation avec ctx.message et ctx.openView

UsageUtilisation recommandée
Invite temporaire légèrectx.message, disparaît automatiquement
Modale d'info/succès/erreur/avertissementctx.modal.info / success / error / warning
Confirmation secondaire (nécessite un choix utilisateur)ctx.modal.confirm, utilisé avec ctx.exit() pour contrôler le flux
Interactions complexes (formulaires, listes, etc.)ctx.openView pour ouvrir une vue personnalisée (page/tiroir/modale)

#Exemples

#Fenêtre d'information simple

ctx.modal.info({
  title: 'Indication',
  content: 'Opération terminée',
});

#Fenêtre de confirmation et contrôle du flux

const confirmed = await ctx.modal.confirm({
  title: 'Confirmer la suppression',
  content: 'Êtes-vous sûr de vouloir supprimer cet enregistrement ?',
  okText: 'Confirmer',
  cancelText: 'Annuler',
});
if (!confirmed) {
  ctx.exit();  // Interrompt les étapes suivantes si l'utilisateur annule
  return;
}
await ctx.runAction('destroy', { filterByTk: ctx.record?.id });

#Fenêtre de confirmation avec onOk

await ctx.modal.confirm({
  title: 'Confirmer la soumission',
  content: 'Les modifications ne pourront plus être modifiées après la soumission. Voulez-vous continuer ?',
  async onOk() {
    await ctx.form.submit();
  },
});

#Affichage d'erreur

try {
  await someOperation();
  ctx.modal.success({ title: 'Succès', content: 'Opération terminée' });
} catch (e) {
  ctx.modal.error({ title: 'Erreur', content: e.message });
}

#Relatif

  • ctx.message : Invite temporaire légère, disparaît automatiquement
  • ctx.exit() : Couramment utilisé sous la forme if (!confirmed) ctx.exit() pour interrompre le flux lorsqu'un utilisateur annule une confirmation
  • ctx.openView() : Ouvre une vue personnalisée, adaptée aux interactions complexes