Guia de Migração de v1 para v2 no Lado do Cliente
Este guia descreve como migrar o código do lado do cliente de um plugin de extensão de fluxo de trabalho de v1 para v2. A mudança principal no cliente v2 é a substituição das UIs de configuração declarativas com Formily Schema por uma abordagem de Loader + componentes puros React/antd.
Visão Geral
Principais Mudanças
- Mudanças nos caminhos de importação:
@nocobase/plugin-workflow/client→@nocobase/plugin-workflow/client-v2, classe base do plugin@nocobase/client→@nocobase/client-v2 - Mudanças no padrão de UI de configuração: De objetos Formily Schema (
fieldset) para componentes React carregados via Loader com lazy loading (FieldsetLoader) - Propriedades
scope/componentsremovidas: Não é mais necessário injetar objetos de escopo ou componentes no Schema; simplesmente importe e use-os diretamente nos componentes React
Mapeamento de caminhos de importação
Regras Gerais
Padrão Loader
O v2 usa propriedades do tipo LoaderOf para substituir o fieldset e outros objetos Formily Schema do v1. Um Loader é essencialmente uma função que retorna Promise<{ default: ComponentType }>, habilitando divisão de código e carregamento lazy via import() dinâmico:
Se você precisar apontar para uma exportação nomeada (em vez da exportação padrão), use .then() para remapear:
Sintaxe do componente de configuração
O componente carregado por um Loader é um componente funcional React padrão que usa o Form.Item do antd para construir formulários. Os caminhos dos campos usam consistentemente o formato de array aninhado ['config', 'fieldName']:
Migração de Gatilhos
Tabela de mapeamento de propriedades
Exemplo de migração
Sintaxe v1:
Sintaxe v2:
Registro do plugin
Migração de Nós
Tabela de mapeamento de propriedades
Exemplo de migração
Sintaxe v1:
Sintaxe v2:
Outras Observações
Partes inalteradas
As seguintes propriedades e métodos possuem essencialmente as mesmas assinaturas em v1 e v2, e podem ser mantidos como estão durante a migração:
useVariables(node/config, options)— Fornece opções de variáveisuseScopeVariables(node, options)— Fornece variáveis com escopo de ramificaçãoisAvailable(ctx)— Verificação de disponibilidade do nó (oNodeAvailableContextdo v2 adiciona uma nova propriedadeengine)
Novas propriedades no v2
getCreateModelMenuItem— Define a configuração para criar itens de menu de sub-modelo para nós/gatilhos no canvas v2useTempAssociationSource— Fornece informações de fonte de dados de associação temporáriavalidate(config)— Validação da configuração do gatilho (somente gatilhos)branching— Declara se o nó é um nó de ramificação (somente nós)end— Declara se o nó é um nó terminal (somente nós)testable— Declara se o nó suporta execuções de teste (somente nós)
Consistência semântica dos valores
Ao migrar, certifique-se de que os valores de formulário produzidos pelos componentes v2 sejam consistentes com os do v1, especialmente o formato do payload durante a execução manual. Por exemplo, se o formulário de execução manual do v1 armazena um objeto de registro completo, a versão v2 deve manter a mesma estrutura de valor em vez de armazenar apenas a chave primária.

