Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.
Abre programaticamente uma visualização especificada (gaveta, diálogo, página incorporada, etc.). Fornecido pelo FlowModelContext, é usado para abrir visualizações ChildPage ou PopupAction configuradas em cenários como JSBlock, células de tabela e fluxos de trabalho.
| Cenário | Descrição |
|---|---|
| JSBlock | Abre um diálogo de detalhe/edição após o clique em um botão, passando o filterByTk da linha atual. |
| Célula de tabela | Renderiza um botão dentro de uma célula que abre um diálogo de detalhes da linha ao ser clicado. |
| Fluxo de trabalho / JSAction | Abre a próxima visualização ou um diálogo após uma operação bem-sucedida. |
| Campo de associação | Abre um diálogo de seleção/edição via ctx.runAction('openView', params). |
Nota:
ctx.openViewestá disponível em um ambiente RunJS onde existe um contextoFlowModel. Se o modelo correspondente aouidnão existir, umPopupActionModelserá criado automaticamente e persistido.
O identificador único do modelo de visualização. Se não existir, será criado e salvo automaticamente. Recomenda-se usar um UID estável, como ${ctx.model.uid}-detail, para que a configuração possa ser reutilizada ao abrir o mesmo diálogo várias vezes.
| Campo | Tipo | Descrição |
|---|---|---|
mode | drawer / dialog / embed | Modo de abertura: gaveta (drawer), diálogo (dialog) ou incorporado (embed). O padrão é drawer. |
size | small / medium / large | Tamanho do diálogo ou gaveta. O padrão é medium. |
title | string | Título da visualização. |
params | Record<string, any> | Parâmetros arbitrários passados para a visualização. |
filterByTk | any | Valor da chave primária, usado para cenários de detalhe/edição de um único registro. |
sourceId | string | ID do registro de origem, usado em cenários de associação. |
dataSourceKey | string | Fonte de dados. |
collectionName | string | Nome da coleção. |
associationName | string | Nome do campo de associação. |
navigation | boolean | Se deve usar navegação por rota. Se defineProperties ou defineMethods forem fornecidos, isso é forçado para false. |
preventClose | boolean | Se deve impedir o fechamento. |
defineProperties | Record<string, PropertyOptions> | Injeta propriedades dinamicamente no modelo dentro da visualização. |
defineMethods | Record<string, Function> | Injeta métodos dinamicamente no modelo dentro da visualização. |
Quando um modelo está configurado com uma ação openView (como campos de associação ou campos clicáveis), você pode chamar:
| Finalidade | Uso recomendado |
|---|---|
| Abrir uma visualização de fluxo configurada | ctx.openView(uid, options) |
| Abrir conteúdo personalizado (sem fluxo) | ctx.viewer.dialog() / ctx.viewer.drawer() |
| Operar na visualização aberta no momento | ctx.view.close(), ctx.view.inputArgs |
ctx.openView abre uma FlowPage (ChildPageModel), que renderiza uma página de fluxo completa internamente; ctx.viewer abre qualquer conteúdo React.
uid ao ctx.model.uid (ex: ${ctx.model.uid}-xxx) para evitar conflitos entre múltiplos blocos.defineProperties ou defineMethods são passados, navigation é forçado para false para evitar a perda de contexto após uma atualização.ctx.view refere-se à instância da visualização atual, e ctx.view.inputArgs pode ser usado para ler os parâmetros passados durante a abertura.