Verwendung von DHTMLX Gantt-Eigenschaften in VueGantt
Diese Seite dokumentiert die öffentliche Vue-Wrapperschicht für @dhtmlx/trial-vue-gantt und @dhx/vue-gantt.
Verwenden Sie sie als Referenz nach der Übersicht oder dem Schnellstart.
Verfügbare Eigenschaften (Props)
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
| tasks | Task[] | Sammlung von Aufgaben, die im Diagramm/Gitter gerendert werden. |
| links | Link[] | Abhängigkeits-Sammlung. |
| resources | any[] | null | Ressourcen-Datensatz für Ressourcen-Layouts und ressourcenbezogene API-Methoden. |
| resourceAssignments | any[] | null | Datensatz der Ressourcenzuordnung. |
| baselines | any[] | null | Baseline-Datensatz. |
| markers | Marker[] | null | Vertikale Timeline-Marker. |
| calendars | (WrapperCalendar | CalendarConfig)[] | null | Definitionen der Arbeitskalender (Wrapper-Format oder native Gantt-Konfiguration). |
| data | VueGanttDataConfig | null | Daten-Übertragungs-Callbacks: load, save, batchSave. |
| config | Partial<GanttConfigOptions> | In gantt.config zusammengeführt. |
| plugins | GanttPlugins | Gantt-Erweiterungen zum Aktivieren (z. B. auto_scheduling). |
| templates | Partial<GanttTemplates> | Merged into gantt.templates. |
| locale | string | Record<string, any> | Sprach-Name oder Sprachobjekt. |
| theme | string | Skin-Name. |
| filter | ((task: Task) => boolean) | null | Aufgaben-Filter-Prädikat. |
| resourceFilter | ((resource: any) => boolean) | null | Ressourcen-Filter-Prädikat. |
| modals | GanttModals | null | Überschreibt integrierte Bestätigungsdialoge beim Löschen. |
| groupTasks | any | Gruppierungs-Konfiguration, die an gantt.groupBy übergeben wird. |
| inlineEditors | Record<string, Component> | Zuordnungen von Inline-Editor-Typenamen zu Vue-Komponenten. |
| customLightbox | Component | null | Benutzerdefinierte Vue-Komponente für den Aufgaben-Editor. |
| events | VueGanttEvents | Zuordnungen von Ereignisnamen zu Handlern. |
| htmlTemplatePolicy | HtmlTemplatePolicy | Steuert, wie Zeichenfolgen, die von Template-Funktionen zurückgegeben werden, gerendert werden. "basic-sanitize" (Standard) erlaubt das Saubermachen des zurückgegebenen HTMLs: Sicheres Formatieren, Klassen, eingeschränkte Inline-Stile, data-* Attribute und img bleiben erhalten, während Skripte, Ereignishandler und gefährliche URLs entfernt werden. "escape" rendert die Zeichenfolge als Text; "unsafe-html" rendert die rohe Zeichenfolge (Vor-V10-Verhalten); ein benutzerdefiniertes Sanitizer-Objekt (mode: "sanitize" mit einer sanitize(html)-Funktion) ermöglicht das Einbinden einer Bibliothek wie DOMPurify. Für die Steuerung pro Vorlage, umhüllen Sie einzelne Template-Funktionen mit dem exportierten Hilfsprogramm allowRawHTML().See Migration notes. |
Daten-Sammlungen und Synchronisierung
Verwenden Sie diese Props, wenn der Vue-Zustand Ihre einzige Quelle der Wahrheit ist:
tasks,links- optionale erweiterte Datensätze:
resources,resourceAssignments,baselines
<VueGantt
:tasks="tasks"
:links="links"
:resources="resources"
:resourceAssignments="resourceAssignments"
:baselines="baselines"
/>
Synchronisierungs-Verhalten zusammengefasst:
- Aktualisierungen von Aufgaben/Links erfolgen üblicherweise diff-basiert
- Der Wrapper kann bei großen Änderungen auf Reset/Neu-Parsen umschalten
- Erweiterte Datensätze werden durch ihre Datenspeicher erneut geparst
Für Modell-Auswahl und Callback-Strategie siehe Datenbindung und Zustand-Verwaltung Grundlagen.
Konfiguration, Vorlagen, Plugins, Theme, Locale
Verwenden Sie diese Props für die tägliche Diagramm-Konfiguration ohne imperative API-Aufrufe.
<script setup lang="ts">
const config = {
scales: [
{ unit: "year", step: 1, format: "%Y" },
{ unit: "month", step: 1, format: "%F" }
],
columns: [
{ name: "text", tree: true, width: "*" },
{ name: "start_date", align: "center" },
{ name: "duration", align: "center" },
{ name: "add", width: 44 }
]
};
const templates = {
task_text: (_start, _end, task) => `#${task.id}: ${task.text}`
};
</script>
<template>
<VueGantt
:config="config"
:templates="templates"
:plugins="{ auto_scheduling: true }"
theme="terrace"
locale="en"
/>
</template>
Ereignisse, Lebenszyklus und Instanzzugriff
events
Verwenden Sie eine einzige events-Zuordnung statt wrapper-spezifischer Props für jedes Gantt-Ereignis:
const events = {
onTaskCreated: task => {
console.log(task);
return true;
},
onBeforeLightbox: id => {
console.log(id);
return true;
}
};
Die Zuordnung ist typisiert als VueGanttEvents. Der Wrapper deklariert die folgenden bekannten Events mit vollständigen Signaturen; jeder andere Gantt-Event-Name wird ebenfalls akzeptiert (benutzerdefinierte Events sind als string-gezogene Handler typisiert).
| Event | Signatur | Hinweise |
|---|---|---|
onBeforeLightbox | (taskId: string | number) => boolean | void | Gib false zurück, um die integrierte Lightbox zu unterdrücken (z. B. um zu einem externen Editor zu routen). |
onTaskCreated | (task: Task) => boolean | void | Gib false zurück, um die Aufgabenerstellung abzubrechen. |
onAfterTaskAdd | (id: string | number, task: Task) => void | Wird ausgelöst, nachdem eine Aufgabe hinzugefügt wurde. |
onAfterTaskUpdate | (id: string | number, task: Task) => void | Wird ausgelöst, nachdem eine Aufgabe aktualisiert wurde. |
onAfterTaskDelete | (id: string | number, task: Task) => void | Wird ausgelöst, nachdem eine Aufgabe gelöscht wurde. |
onAfterLinkAdd | (id: string | number, link: Link) => void | Wird ausgelöst, nachdem ein Abhängigkeits-Link hinzugefügt wurde. |
onAfterLinkUpdate | (id: string | number, link: Link) => void | Wird ausgelöst, nachdem ein Abhängigkeits-Link aktualisiert wurde. |
onAfterLinkDelete | (id: string | number, link: Link) => void | Wird ausgelöst, nachdem ein Abhängigkeits-Link gelöscht wurde. |
Für die vollständige Liste der Gantt-Ereignisse (einschließlich der oben nicht aufgeführten Ereignisse) siehe die Gantt-Ereignisse-Übersicht. Verwenden Sie defineGanttEvents(...), um die Zuordnung mit Autovervollständigung für diese bekannten Ereignisse zu erstellen.
@ready
ready(instance) feuert einmal nach der Initialisierung und der ersten Synchronisierung:
<VueGantt :events="events" @ready="onReady" />