Iteration 3: Risikoanalyse + Menü-Trennung + Prozesskategorie
- Risiko-Modul (SPEC §4.2): Risk/RiskAsset-Schema mit RLS, laufende Nummer je Mandant (R-001), Brutto-/Rest-Bewertung (5×5), Behandlung, Status, Owner- und Prozess-Bezug, n:m betroffene Assets - /risks im Mockup-Layout: 5×5-Heatmap (Farb-Bänder + R-Chips, Legende, Achsen) und Risikoregister mit Score-Pillen, Behandlungs-Tags, Status - Risiko-Popups nach App-Muster: Read-only-Detail (Bewertungs-Band Brutto vs. Rest, betroffene Assets, Maßnahmen-Platzhalter für Iteration 4), Bearbeiten im Popup (Bewertung, Assets verknüpfen, Löschen), Anlegen; Server-Actions mit Zod, RBAC und Audit-Log - Menü aufgetrennt: eigene Punkte "Asset-Inventar", "Business Impact Analyse" und "Risikoanalyse" (Modul-Tabs entfernt) - Prozesskategorie (Kernprozess/Managementprozess/Unterstützender Prozess): Schema-Feld, Formulare, Listen-Spalte, Popup-Tag - Asset-Detail-Popup optisch ans Prozess-Popup angeglichen (Stammdaten- Karte mit violettem Rand, Abhängigkeiten-Tabelle, Risiken-Band) - "Zugeordnete Risiken" jetzt echt: im Asset-Popup (verknüpfte Risiken) und im Prozess-Popup (direkt + über Assets aggregiert); Dashboard-KPI "Offene Risiken" mit echten Zahlen; Seed mit 4 Beispiel-Risiken Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
/** Score-Bänder der 5×5-Matrix (Farben/Stufen aus dem Mockup). */
|
||||
|
||||
export type RiskLevelKey = "low" | "medium" | "elevated" | "high" | "critical";
|
||||
|
||||
export function riskLevel(score: number): RiskLevelKey {
|
||||
if (score >= 20) return "critical";
|
||||
if (score >= 15) return "high";
|
||||
if (score >= 10) return "elevated";
|
||||
if (score >= 5) return "medium";
|
||||
return "low";
|
||||
}
|
||||
|
||||
/** Zellen-Hintergrund der Heatmap (Mockup-Legende). */
|
||||
export const RISK_CELL_COLORS: Record<RiskLevelKey, string> = {
|
||||
low: "#dff3e5",
|
||||
medium: "#fdf0cf",
|
||||
elevated: "#fbdcc0",
|
||||
high: "#f6c3c1",
|
||||
critical: "#ef9a98",
|
||||
};
|
||||
|
||||
/** Pillen-Ton je Stufe (mockup-ui Pill). */
|
||||
export const RISK_PILL_TONE: Record<RiskLevelKey, "ok" | "info" | "warn" | "risk"> = {
|
||||
low: "ok",
|
||||
medium: "info",
|
||||
elevated: "warn",
|
||||
high: "risk",
|
||||
critical: "risk",
|
||||
};
|
||||
|
||||
export function riskRef(refNo: number): string {
|
||||
return `R-${String(refNo).padStart(3, "0")}`;
|
||||
}
|
||||
Reference in New Issue
Block a user