Skip to content

Lightning Web Components

Matheus Freitas edited this page Jul 30, 2025 · 22 revisions

🧩 Lightning Web Components (LWC)

Esta seção documenta os componentes LWC personalizados desenvolvidos para o projeto System HelpDesk. Cada componente possui uma função específica dentro do ciclo de atendimento de chamados (Cases) no sistema.


🎯 viewerSla

📌 Propósito

Exibe visualmente o tempo restante de SLA de um chamado por meio de uma barra de progresso dinâmica.


🛠️ Funcionalidades

  • Barra de progresso com cores dinâmicas conforme o percentual restante:
    • 🟢 Verde: SLA dentro do prazo.
    • 🟡 Amarelo: SLA próximo do vencimento.
    • 🔴 Vermelho: SLA vencido.
  • Atualização dinâmica do SLA ao iniciar, pausar ou retomar o atendimento.

🧩 API Pública (@api)

Propriedade Tipo Descrição
recordId String Id do registro de Case utilizado no LWC

🔁 Fluxo de Estados

Estado Inicial Ação Novo Estado Botão Exibido
check = false Iniciar atendimento check = true Pause SLA
pause = false Pausar atendimento pause = true Resume Service
pause = true Retomar atendimento pause = false Pause SLA

🚫 Limitações Conhecidas

  • O componente depende dos campos personalizados Sla__c, StartService__c, Pause__c, DatePause__c, DateUnpause__c.
  • Não há cache de dados, todas as interações disparam leitura e escrita em tempo real.
  • A atualização do SLA exige que o usuário tenha permissão para editar o registro Case.

📷 Visualização

Barra de progresso

image

Chamado em pausa

image

📡 Fontes de Dados

Wire:

@wire(getRecord, { recordId: '$recordId', fields: [...] }){}

🎯 createCase

📌 Propósito

Permite que os usuários criem novos registros de chamados (Case) diretamente pela interface do Salesforce, com campos customizados e validações básicas.

🛠️ Funcionalidades

  • Formulário dinâmico para abertura de chamados.
  • Validação obrigatória de campos antes do envio.
  • Criação automática do registro Case via Apex.
  • Feedback visual após a criação (mensagem de sucesso ou erro).

🧩 API Pública (@api) - O componente não utiliza nenhuma @api

🔁 Fluxo de Ações

Estado Inicial Ação Novo Estado Botão Exibido
Formulário vazio Usuário preenche os campos obrigatórios Campos validados localmente Criar Chamado
Campos válidos Clicar em "Criar Chamado" Requisição enviada ao Apex Criar Chamado
Envio bem-sucedido Resposta de sucesso do Apex Formulário limpo + feedback visual
Erro no envio Resposta de erro do Apex Mensagem de erro exibida Criar Chamado

🚫 Limitações Conhecidas

  • Os campos visíveis estão fixos no código; não há flexibilidade via metadata.
  • Não possui tratamento para anexos ou relacionamentos complexos (ex: contatos).
  • Depende de permissões para criação de registros do objeto Case.

📷 Visualização

Criação de novo ticket

image

📡 Fontes de Dados

Apex:

@AuraEnabled
public static Case createCase(String subject, String description, ...) {
    // Lógica de criação do Case
}

🎯 editCase

📌 Propósito

Permite consultar e editar registros existentes do objeto Case com base no número do chamado, oferecendo uma interface para pesquisa, visualização e atualização dos dados.


🛠️ Funcionalidades

  • Busca por registros Case com base no CaseNumber digitado.
  • Exibição dos dados do chamado recuperado.
  • Edição em tempo real dos campos permitidos diretamente na interface.
  • Validação básica dos dados antes do envio.
  • Atualização dos dados via método Apex.
  • Feedback visual em caso de sucesso ou erro na atualização.
  • Possibilidade de iniciar nova busca após edição ou consulta.

🧩 API Pública (@api)

Propriedade Tipo Descrição
Nenhuma O componente não utiliza @api.

🔁 Fluxo de Ações

Estado Inicial Ação Novo Estado Botão Exibido
Formulário de busca vazio Usuário digita o número do caso Campo preenchido localmente Search case
Número preenchido Clicar em "Search case" Chamada ao Apex (getCasesInfo) Search case
Busca bem-sucedida Casos retornados com sucesso Dados exibidos + botões Edit/New Search Edit Case, New Search
Busca falha Erro na requisição Apex Mensagem de erro + sem dados exibidos Search case
Casos exibidos Clicar em "Edit Case" Formulário de edição exibido Salvar, Cancelar
Formulário de edição Campos preenchidos corretamente + clicar "Salvar" Chamada ao Apex para atualizar o caso
Campos inválidos Clicar "Salvar" Alerta de erro + formulário mantido Salvar, Cancelar
Edição salva com sucesso Apex atualiza o caso Mensagem de sucesso + tela limpa
Clicar "Cancelar" Cancelamento da edição Volta à visualização do caso Edit Case, New Search
Clicar "New Search" Reinicia o processo Formulário de busca limpo Search case

🚫 Limitações Conhecidas

  • O componente só funciona com o CaseNumber; não é possível buscar por outros campos.
  • Campos editáveis estão fixos no código (sem personalização via metadata).
  • Não há suporte a anexos, comentários ou relacionamentos.
  • Requer permissões de leitura e atualização no objeto Case.

📷 Visualização

Pesquisa de Caso

image

Visualização de dados do caso

image

Edição de caso

image

📡 Fontes de Dados

Apex:

@AuraEnabled
public static List<Case> getCasesInfo(String caseNumber) {
    // Retorna a lista de Cases com base no número informado
}

@AuraEnabled
public static void updateCase(Case caseObj) {
    // Atualiza o registro de Case com os dados informados
}