CRUDComponentBase
Abstração para páginas de CRUD
Este abstração possui todos os métodos necessárias para uma página de CRUD, utilizando todo o potencial do Cat UI.
C (CREATE)
Para a parte de criação existe a opção padrão que é utilizando Dialog, ou, caso queira, poderá abrir uma Janela Lateral ou navegar para uma nova página.
Para abrir um dialog com seu formulário utilize o método openFormDialog.
import { CatCRUDComponentBase } from "@catrx/ui/common";
@Component({...})
export class PageExempleComponent extends CatCRUDComponentBase {
...
openDialog(data?: any) {
this.openFormDialog(
this.formService
.build<Cat>(data)
.text('Raça', 'race', (builder) =>
builder.grid(6).setRequired().generate()
)
.select('Sexo', 'sex', (builder) =>
builder
.setOptions(CatSexSelectOptions)
.grid(6)
.setRequired()
.generate()
)
.url('URL da Foto', 'photo', (builder) =>
builder.setRequired().generate()
)
.onSubmit((cat) => this.service.save(cat, data?.id))
.generate(),
!!data,
{ title: 'Gato' }
);
}
}R (READ)
Para a parte de leitura, teremos aqui a utilização do componente de Datatable, onde teremos que configurar o mesmo, passando as colunas que serão exibidas, habilitando seletores, botões de ação e filtro.
A parte de leitura também existe a possibilidade de exportação em .csv ou .xlsx, e para isso, utilizaremos o método exportByService presente na abstração de Serviços HTTP.
U (UPDATE)
Terá a mesma implementação do Create, porém, precisará informar o objeto que deseja editar, para que após a abertura do formulário, o mesmo seja automaticamente preenchido e um comando de PUT seja enviado após o submit.
D (DELETE)
O componente de Datatable, possui em suas configurações, a opção de habilitar seletores ou incluir botões de ação. Aproveitando este recurso, iremos implementar a ação de DELETE por meio de seletores na lista.
Neste caso, todo a implementação para delete já está pronta para uso, bastando chamar pelo método deleteSelected por meio do click do botão.
Overview
Implementação Completa
1. Implementando serviço HTTP
2. Implementando componente de foto
3. Implementando componente de página
4. Implementando módulo
5. Configurando xlsx
Last updated
Was this helpful?