Trabalhando com as telas
Neste passo já temos artefatos suficientes para ver algum resultado sendo renderizado, vamos ver como trabalhar com eles agora
Last updated
Was this helpful?
Neste passo já temos artefatos suficientes para ver algum resultado sendo renderizado, vamos ver como trabalhar com eles agora
Last updated
Was this helpful?
Se acessarmos http://localhost:8080/#/dashboard/general/category
será possível ver a tela que exibe a table
da entidade Category
que criamos (imaginando que não foi feita nenhuma alteração no que vem por padrão de configuração no projeto). A seguir uma imagem do resultado que pode ser visto após abrir o link acima.
Como podemos ver, a tela ficou vazia e foi gerado um erro no console.
A tela está vazia porque o nosso campo ainda está visível na table
(além de não ter label
definido) e não temos uma API
para ser consumida. Veremos como melhorar isto nos tópicos a seguir.
É possível perceber que vários recursos já são criados por padrão, botões, campo de pesquisa e uma pesquisa avançada lateral vem por padrão quando criamos uma table
usando o componente que vem incorporado ao projeto. Mais abaixo veremos detalhes sobre eles. Caso ainda tenha dúvida vá até a sessão Conceitos.
schema
Os schemes
são estruturas que possuem diversos recursos para serem configurados, vamos configurar alguns a seguir. Para ver todas as configurações do schema
vá até a página do Schema.
Para carregar os textos dos campos, são usados arquivos isolados com as mensagens que serão escritas. Crie um arquivo com o nome pt-br.js
na pasta do domínio (src/domains/General/Category/pt-br.js
) com as mensagens básicas necessárias. Note que estamos utilizando uma propriedade chamada SCOPES
para definir algumas propriedades, veja mais sobre isto aqui.
Estamos usando esse nome por conta da configuração que está no .env
.
Depois de criar o arquivo precisamos registrar ele no arquivo de mensagens no diretório lang/
. Para isso podemos acessar src/lang/pt-br/domains.js
e adicionar o mesmo lá. O resultado será algo parecido com o trecho abaixo.
table
Como visto mais acima a tabela que lista os registros de Category está disponível na URL http://localhost:8080/#/dashboard/general/category
.
Para exibir um campo na table
podemos chamar o método fieldTableShow
.
Com a internacionalização definida e o campo configurado para ser visível podemos ver que a tela da aplicação agora mostra o campo "Nome".
A table possui uma área para pesquisa avançada, para colocar o campo para aparecer nesta área podemos usar o método fieldTableWhere
.
O resultado será algo como a imagem abaixo.
Para simular um conjunto de dados na table
podemos modificar o CategoryService
para gerar dados fake
. Abaixo um exemplo de como ficaria uma sobrescrita do método paginate
para gerar dados para mostrar dados falsos e popular a lista de registros. Num ambiente real é feita a adaptação do sistema de fetch records
para lidar com as repostas da API que é consumida.
Então agora podemos ver os dados sendo exibidos na tela.
Acesse a página Project Settings para saber mais sobre como configurar a parte de comunicação
form
O mesmo schema
que vimos que pode configurar a table
também será responsável pelas definições dos forms
. Podemos visualizar o form que cria um registro em http://localhost:8080/#/dashboard/general/category/add
.
O campo Nome está sendo exibido porque toda vez que usamos o addField
, diferentemente da table
o form
por padrão vai exibir o campo. Para ocultar o campo precisamos usar o método fieldFormHidden
. O campo de texto é exibido devido à este ser o componente padrão para um campo que é adicionado. O método fieldIsInput
é um método que é chamado implicitamente quando nenhum componente é definido.
É possível passar um argumento boolean
para o método fieldFormHidden
para determinar se ele será hidden
ou não, o padrão é verdadeiro. Seguindo com as possibilidades podemos definir que o campo deve receber o foco no carregamento, sua largura ou se ele é obrigatório ou não.
As mudanças acima farão com que o form fique dessa forma.
Dentre os detalhes temos que o parâmetro width
do método fieldFormWidth
corresponde à largura do campo na tela e pode receber valores entre 1 e 100 que correspondem a porcentagem da linha que será ocupada pelo campo. O padrão para essa propriedade é 100 e é por isto que na primeira vez que o form foi aberto o campo estava ocupando a linha toda e na imagem acima ocupa apenas metade dela. O método validationRequired
, por sua vez, torna o campo obrigatório. Se clicarmos no botão SALVAR, o resultado será a imagem a seguir.
A lib de validação base que é usada é o Vuelidate, logo todas as definições de validação disponíveis na lib estão disponíveis no schema.
Com o trecho acima conseguimos algo como o que pode ser visto abaixo.
Seguindo essa mesma dinâmica podemos adicionar mais campos e configurá-los usando os métodos disponíveis na classe Schema
ou simplesmente criando nossos próprios métodos.