🧩 Componentes - ecosif-angular

šŸ“‹ VisĆ£o Geral

Este documento lista e descreve os principais componentes da aplicação ecosif-angular.


šŸ“Š EstatĆ­sticas de Componentes


šŸ—ļø Estrutura de Componentes

1. Componentes de PƔginas (Pages)

Localização: src/app/pages/

Cadastros

Componente Rota Descrição
CompanydetailsComponent /company_detail Lista de empresas
CompanydetailFormComponent /company_detail/:id FormulƔrio de empresa
BranchdetailsComponent /company_branch_detail Lista de filiais
BranchdetailFormComponent /company_branch_detail/:id FormulƔrio de filial
ChartOfAccountsComponent /chart_of_accounts Plano de contas
ChartOfAccountFormComponent /chart_of_accounts/:id FormulƔrio de conta

MovimentaƧƵes

Componente Rota Descrição
CreateEntriesComponent /create-entries Criar lanƧamentos
BatchEntriesComponent /batchentry Lotes contƔbeis
ConsolidationComponent /consolidation Consolidação
MonthOpeningComponent /monthopening Abertura de mĆŖs

Consultas

Componente Rota Descrição
BalanceInquiryComponent /balanceinformation Consulta saldo/razão
ListagemLancamentosComponent /listagemlancamentos Listagem de lanƧamentos

Relatórios

Componente Rota Descrição
BalancetemensalComponent /balancetemensal Balancete mensal
BalancetediarioComponent /balancetediario Balancete diƔrio
RelatorioRazaoComponent /relatoriorazao Razão contÔbil
Relatorio4010Module /relatorio4010 Relatório 4010/16

Administração

Componente Rota Descrição
UsersComponent /users Gestão de usuÔrios
GroupsComponent /groups Gestão de grupos
RoutineComponent /routine Rotinas do sistema

2. Layout Components

Localização: src/app/containers/

Componente Descrição
DefaultLayoutComponent Layout principal da aplicação
DefaultHeaderComponent CabeƧalho
DefaultFooterComponent RodapƩ
DefaultSidebarComponent Menu lateral

3. Shared Components

Localização: src/app/shared/components/

Componente Descrição
LoadingSpinnerComponent Indicador de carregamento
MensagemDialogComponent DiƔlogo de mensagens

4. Feature Components

Compliance

Localização: src/app/features/compliance/

Componente Rota Descrição
ComplianceComponent /compliance Container de compliance
RulesComponent /compliance/rules Regras de compliance

5. Views Components

Dashboard

Localização: src/app/views/dashboard/

Componente Descrição
DashboardComponent Dashboard executivo

Base

Localização: src/app/views/base/

Componente Descrição
AccordionsComponent Accordion
BreadcrumbsComponent Breadcrumbs
CardsComponent Cards
TablesComponent Tabelas
TooltipsComponent Tooltips

šŸŽØ Estrutura de um Componente

Exemplo: CompanydetailsComponent

// companydetails.component.ts
@Component({
  selector: 'app-companydetails',
  templateUrl: './companydetails.component.html',
  styleUrls: ['./companydetails.component.scss']
})
export class CompanydetailsComponent implements OnInit {
  companies: Company[] = [];

  constructor(
    private companyService: CompanyService,
    private router: Router
  ) {}

  ngOnInit(): void {
    this.loadCompanies();
  }

  loadCompanies(): void {
    this.companyService.getCompanies().subscribe(
      data => this.companies = data,
      error => console.error(error)
    );
  }
}

Template HTML

<!-- companydetails.component.html -->
<div class="row">
  <div class="col-12">
    <c-card>
      <c-card-header>
        <h3>Empresas</h3>
      </c-card-header>
      <c-card-body>
        <table>
          <tr *ngFor="let company of companies">
            <td>{{ company.name }}</td>
          </tr>
        </table>
      </c-card-body>
    </c-card>
  </div>
</div>

šŸ”„ Comunicação entre Componentes

1. Parent → Child (@Input)

// Parent
<app-child [data]="parentData"></app-child>

// Child
@Input() data: any;

2. Child → Parent (@Output)

// Child
@Output() dataChange = new EventEmitter();

// Parent
<app-child (dataChange)="onDataChange($event)"></app-child>

3. Via Service (Comunicação Cross-Component)

// Service compartilhado
@Injectable({ providedIn: 'root' })
export class SharedService {
  private dataSubject = new BehaviorSubject<any>(null);
  data$ = this.dataSubject.asObservable();
}

// Component A
this.sharedService.dataSubject.next(newData);

// Component B
this.sharedService.data$.subscribe(data => ...);

šŸ“Š Resumo de Componentes por Categoria

Categoria Quantidade
PƔginas Funcionais ~87
Layout Components ~5
Shared Components ~15
Feature Components ~10
Views Components ~20
Total ~137 componentes principais

Última Atualização: 2025-12-01