Zum Hauptinhalt springen

Organigramm

Zweck

/organigramm rendert die Aufbau-Organisation des Mandanten als interaktives Canvas. Standardmaessig im View-Mode roles, der die Hierarchie über Rollen aufbaut. Filter erlauben das Eingrenzen auf eine Niederlassung, eine Abteilung und einen Suchbegriff (Mitarbeitername).

Voraussetzungen

- Berechtigungen `view:Branch`, `view:Department`, `view:Role`, `view:Employee`. - Mindestens ein Eintrag pro Ebene, sonst bleibt das Canvas leer.

Berechtigungen (CASL)

ActionSubjectWirkungKeycloak-Rolle
viewFE_OrganigrammSeite aufrufbar
viewBranch, Department, Role, EmployeeDatenquellen für die VisualisierungAPP_SPEAMCORE_VIEW_BRANCH, DEPARTMENT, ROLE, EMPLOYEE

Schritt-für-Schritt-Anleitung

  1. Organigramm (/organigramm) öffnen.
  2. View-Mode wählen (roles als Default; weitere Modi je nach Implementierung).
  3. Filter-Panel oben:
    • status — Default active. Auf inactive umschalten zeigt ausgeschiedene Mitarbeiter.
    • branchId — Filter auf eine Niederlassung.
    • departmentId — Filter auf eine Abteilung.
    • searchTerm — Volltext-Suche im Canvas.
  4. Canvas rendert Knoten und Verbindungen. Hover und Zoom interaktiv.

Listenansicht — organigramm

UI-Elemente

Komponente: OrganigrammFilterPanel

Filter-Header mit View-Switch, Status-Toggle, Niederlassungs-/Abteilungs-Selectors und Suchfeld.

Komponente: OrganigrammCanvas

Render-Komponente für den Hierarchie-Graph. Reagiert auf viewMode und searchTerm.

Hook: useOrganigrammData

Lädt aggregierte Daten (Branches + Departments + Roles + Employees) aus den API-Endpoints und transformiert sie für die Canvas.

Wiederverwendbare Konzepte

Verknuepfungen zu anderen Modulen

Häufige Fehler und Lösungen

FehlerLösung
Canvas leerFilter zu eng, oder Berechtigungen für Branches/Departments/Roles/Employees fehlen.
Mitarbeiter erscheint nichtstatus = active und passender branchId/departmentId-Filter aktiv.
Hierarchie wirkt umgekehrtView-Mode gewechselt. roles ist Default; andere Modi haben andere Wurzel-Definition.

API/Schnittstellen

Die Seite konsumiert mehrere Stamm-Listen über den Hook useOrganigrammData:

MethodeEndpointZweckCASL
GET/api/branchesNiederlassungenview Branch
GET/api/departmentsAbteilungenview Department
GET/api/rolesRollenview Role
GET/api/employeesMitarbeiterview Employee

Versionshinweise

  • 2026-04-30: Initiale Veroeffentlichung.