Entendendo um ciclo de vida do componente de tabela
O kit de ferramentas do desenvolvedor fornece esquemas Angulares que podem criar componentes de tabela para você usar em seu aplicativo. Aprenda sobre a estrutura do componente para entender como as tabelas são implementadas e configuradas
Visão Geral do Componente de Tabela
- Cabeçalho da tabela
- O cabeçalho da tabela é um literal de cadeia (convertido) ou uma referência de modelo (nos casos em que o cabeçalho envolve estilo customizado)
- Cabeçalhos da coluna da tabela..
- As sequências de cabeçalho da coluna da tabela juntamente com outras propriedades, como
sortableousorted - Ações da barra de ferramentas da tabela
- As ações a serem mostradas na barra de ferramentas da tabela Cada ação é geralmente associada a um retorno de chamada para chamar quando selecionado.
- Conteúdo da barra de ferramentas da tabela
- O conteúdo a ser mostrado na barra de ferramentas da tabela. Cada conteúdo é geralmente associado a uma referência de modelo (ícone) e um retorno de chamada para chamar quando selecionado.
- Ações do menu overflow
- O menu overflow é exibido na última coluna de cada linha.
- Define o componente de tabela em um arquivo de configuração (buc-table-config.json).
- Converte cabeçalhos e literais de ação
- Opcionalmente, ativa ou desativa colunas com base nas configurações do administrador do Locatário
- Opcionalmente, ativa ou desativa ações da barra de ferramentas, conteúdo ou ações do menu overflow com base em linhas selecionadas.
- Permite que os usuários configurem as colunas da tabela
- Chama uma ou mais APIs para preencher a tabela. Os dados retornados pela API são correspondidos usando o nome da coluna.
buc-table-config.json). A estrutura carrega a configuração de tabela e inicializa a tabela. O componente de aplicativo implementa a lógica de negócios, como buscar os dados da tabela e implementar ações.- O arquivo JSON customizado para uma rota específica: <module>/packages/<route>/src-custom/assets/custom/buc-table-config.json
- As configurações de tabela específicas do aplicativo padrão de <module>/packages/<module-short-name>-shared/assets/<module>/buc-table-config.json
- Configuração de tabela específica de componentes comuns do <module>/node_modules/@buc/common-components/assets/common-components/buc-table-config.json
Implementação de tabela
A estrutura fornece uma classe base BaseTableComponent para todos os componentes que contêm uma tabela.. Essa classe inicializa a configuração da tabela BucTableConfiguration com base no nome da tabela especificado pelo componente.
BaseTableComponent inclui os métodos chave a seguir:- initializeTable(tableName, templateMapping)
- Inicializa a configuração de tabela com base nos arquivos buc-table-config.json definidos Após a inicialização, a subclasse (componente) pode remover qualquer cabeçalho de coluna com base em substituições de nível de locatário. As substituições de nível de locatário referem-se a Configurações> Configurações de Exibição> Campos de dados que os administradores podem modificar
- disableTableFieldConfiguration
- Por padrão, o
BaseTableComponentativa a configuração de tabela É possível desativar a configuração de tabela chamando esse método para que os usuários não possam alterar as colunas de dentro da IU - applyUserPreference
- Após a inicialização da tabela, o subcomponente chama esse método para carregar as preferências de coluna do usuário. Por padrão, esse método aciona a tabela a ser carregada Se desejar atrasar o carregamento da tabela, transmita
falsecomo um parâmetro para este método - loadTable
- Carrega a tabela com os dados Esse método delega para o método
fetchTableDatapara permitir que as subclasses implementem a lógica de negócios para buscar os dados Em seguida, esse método chama o métodogetDataForColumnpara permitir que as subclasses preparem os dados para cada coluna no cabeçalho da tabela - fetchTableData
- Esse método abstrato deve ser implementado por subclasses para buscar uma matriz de dados para preencher a tabela
- getDataForColumn
- Dependendo do cenário, será necessário usar getDataForColumn ou getDataForCustomColumn.
Este método abstrato deve ser implementado por subclasses para criar os dados para a coluna
Se você estiver incluindo uma nova tabela ou incluindo colunas em uma tabela no arquivo buc-table-config.json padrão: se uma coluna não incluir a propriedade
dataBinding,getDataForColumnserá chamado. - getDataForCustomColumn
- Dependendo do cenário, será necessário usar getDataForCustomColumn ou getDataForColumn.
Este método abstrato deve ser implementado por subclasses para criar os dados para a coluna
Se você estiver incluindo uma nova tabela ou incluindo colunas em uma tabela existente usando o arquivo buc-table-config.json customizado: se uma coluna não incluir a propriedade
dataBinding,getDataForCustomColumnserá chamado. - updateSortCriteria
- Esse método é chamado na subclasse para manipular os critérios de classificação para a tabela Todos os cabeçalhos que incluem a propriedade classificada são fornecidos para a subclasse para decidir a preferência de classificação final Por padrão, a classificação de várias colunas está indisponível A primeira coluna que tiver
sortedconfigurado como true é usada para classificação - setActionResourceIds
- Esse método configura os IDs de recurso para ações que incluem uma propriedade resourceId
- onToolbarActionClicked
- Este método é chamado na subclasse para permitir que a subclasse manipule um evento de clique de ação da barra de ferramentas
- onToolbarContentClicked
- Este método é chamado na subclasse para permitir que a subclasse manipule um evento de clique de conteúdo de barra de ferramentas.
- onOverflowMenuActionSelected
- Esse método é chamado na subclasse para permitir que a subclasse manipule um evento de clique do menu overflow.
- onTableLoadComplete
- Esse método permite que o subcomponente finalize depois que os dados da tabela estiverem prontos
BucTableConfiguration contém a configuração da tabela. Ele permite que as subclasses ativem ou desativem dinamicamente cabeçalhos, ações e conteúdo. A classe mantém duas versões dos dados:- A configuração estática que é obtida da mesclagem da configuração da tabela base e dos arquivos JSON de configuração customizada. A configuração estática é influenciada por vários fatores que dependem do tipo da configuração
- Substituições de nível de locatário em colunas da tabela: Um componente pode decidir desativar (remover) determinadas colunas com base em substituições de nível de Locatário.. Por exemplo, UOM ou classe de Produto Essas substituições devem ser feitas pelo componente de aplicativo antes da aplicação das preferências do usuário.
- IDs de recurso para ações da barra de ferramentas: Se um componente suportar várias tabelas com base na mesma configuração (por exemplo, ordens de entrada versus ordens de saída), os IDs de recursos de ação poderão ser diferentes com base no tipo de tabela. Essas substituições podem ser aplicadas chamando o método
setActionResourceIds.. - Ações do menu overflow: o componente pode optar por remover determinadas ações do menu overflow com base em substituições no nível do locatário...
- A configuração ativa, que o componente de aplicativo altera dinamicamente se necessário. A configuração ativa é gerenciada por métodos que possuem
Activeem seu nome Com base no tipo de configuração, a configuração ativa é influenciada por vários fatores:- Preferência do usuário: quando applyUserPreference é chamado, o componente base aplica a preferência do usuário armazenada (se houver) aos cabeçalhos e escolhe apenas os cabeçalhos que estão disponíveis no momento.
- Ações no menu da barra de ferramentas ou no menu overflow: o componente pode precisar controlar dinamicamente essas ações com base na linha selecionada. Nesses casos, o componente pode escolher configurar as ações ativas com base no evento de seleção de linha. O componente também pode substituir o ID do recurso da ação com base na linha selecionada. No entanto, se as ações não forem baseadas na seleção de linhas, as ações ativas serão iguais à configuração estática.
Preferências de classificação da tabela
Por padrão, a classificação de várias colunas está indisponível na tabela e uma única coluna padrão como classificada. Os desenvolvedores podem introduzir novas colunas classificadas atualizando o arquivo buc-table-config.json e configurando o parâmetro de coluna "sorted":
true também Nos casos em que várias colunas incluem o parâmetro "sorted": true , a primeira coluna na sequência com o parâmetro é usada como a coluna de classificação