Zum Hauptinhalt springen

Schnellstart mit Vue Gantt

Hinweis

Diese Anleitung behandelt den Vue-Wrapper, der in den Commercial, Enterprise und Ultimate-Editionen von DHTMLX Gantt enthalten ist. Wenn Sie die kostenlose Community-Edition (v10+) verwenden, eine Legacy GPL-Edition (v9.x und älter) oder die Individual-Edition, folgen Sie der alternativen Anleitung: Wie man mit Vue beginnt.

Die Vue Gantt-Komponente ist der offizielle Wrapper für DHTMLX Gantt. Diese Anleitung führt Sie durch die Erstellung einer kleinen Vue 3 + Vite-Anwendung und das Rendern eines grundlegenden Gantt-Diagramms mit dem Evaluierungspaket.

Wenn Sie neu bei Vue sind, beginnen Sie mit der offiziellen Vue-Dokumentation.

Überprüfen Sie ein vollständiges funktionsfähiges Projekt, das dieser Anleitung folgt auf GitHub.

Voraussetzungen

  • Node.js installiert
  • npm oder Yarn
  • Vue 3-Projekt (diese Seite zeigt, wie man eines mit Vite erstellt)
  • Zugriff auf das Vue Gantt-Paket (Evaluierung oder Professional)

1. Erstellen Sie ein Vue 3-Projekt

npm create vite@latest vue-gantt-quick-start -- --template vue-ts
cd vue-gantt-quick-start
npm install

Wenn Sie Yarn bevorzugen, ersetzen Sie den Installationsschritt durch yarn.

2. Installieren Sie Vue Gantt

Installieren Sie Vue Gantt wie im Vue Gantt Installationsleitfaden.

In diesem Tutorial verwenden wir das Evaluierungspaket:

npm install @dhtmlx/trial-vue-gantt

oder

yarn add @dhtmlx/trial-vue-gantt

Wenn Sie bereits das Professional-Paket verwenden, ersetzen Sie @dhtmlx/trial-vue-gantt in den Befehlen und Imports durch @dhx/vue-gantt.

3. Demo-Daten hinzufügen

Erstellen Sie src/demoData.ts (für extern verwaltete Daten im Vue-Zustand, bevorzugen Sie SerializedTask / SerializedLink):

src/demoData.ts
import type { SerializedLink, SerializedTask } from "@dhtmlx/trial-vue-gantt";

export const tasks: SerializedTask[] = [
{
id: 1,
text: "Office itinerancy",
type: "project",
start_date: new Date(2026, 0, 5),
duration: 10,
progress: 0.4,
open: true,
parent: 0
},
{
id: 2,
text: "Planning",
start_date: new Date(2026, 0, 5),
duration: 4,
progress: 0.6,
parent: 1
}
];

export const links: SerializedLink[] = [{ id: 1, source: 1, target: 2, type: "0" }];

4. Eine Gantt-Komponente erstellen

Erstellen Sie src/components/GanttChart.vue:

src/components/GanttChart.vue
<script setup lang="ts">
import { ref } from "vue";
import VueGantt, {
type SerializedLink,
type SerializedTask,
type VueGanttDataConfig
} from "@dhtmlx/trial-vue-gantt";
import "@dhtmlx/trial-vue-gantt/dist/vue-gantt.css";

import { links as initialLinks, tasks as initialTasks } from "../demoData";

const tasks = ref<SerializedTask[]>(initialTasks);
const links = ref<SerializedLink[]>(initialLinks);

const data: VueGanttDataConfig = {
save: (entity, action, item, id) => {
console.log("save", { entity, action, item, id });
}
};
</script>

<template>
<div style={{height: '100%', width: '100%'}}>
<VueGantt :tasks="tasks" :links="links" :data="data" />
</div>
</template>

Wenn Sie das Professional-Paket verwenden, ersetzen Sie beide Imports:

  • @dhtmlx/trial-vue-gantt -> @dhx/vue-gantt
  • @dhtmlx/trial-vue-gantt/dist/vue-gantt.css -> @dhx/vue-gantt/dist/vue-gantt.css

5. Gantt in die App-Shell rendern

Ersetzen Sie src/App.vue:

src/App.vue
<script setup lang="ts">
import GanttChart from "./components/GanttChart.vue";
</script>

<template>
<div style={{height: '100vh', width: '100vw'}}>
<GanttChart />
</div>
</template>

6. Starten Sie die App

npm run dev

Öffnen Sie die lokale Vite-URL. Sie sollten ein funktionsfähiges Gantt-Diagramm sehen und Konsolenprotokolle, wenn Sie Aufgaben oder Links bearbeiten.

Wenn Sie Gantt zu einer bestehenden Anwendung hinzufügen, behalten Sie das aktuelle App.vue-Layout bei und rendern <GanttChart /> in der Zielseite/-Komponente. Stellen Sie sicher, dass das übergeordnete Layout eine Höhe für den Gantt-Bereich bereitstellt.

7. (Optional) Logging durch lokales Speichern-Handling ersetzen

Verwenden Sie dies, wenn der Vue-Zustand bei Diagrammbearbeitungen synchron bleiben soll, bevor Sie ein Backend oder einen Store hinzufügen. Aktualisieren Sie src/components/GanttChart.vue.

const data: VueGanttDataConfig = {
save: (entity, action, item, id) => {
if (entity === "task") {
if (action === "create") tasks.value = [...tasks.value, item as SerializedTask];
if (action === "update") tasks.value = tasks.value.map(t => String(t.id) === String(id) ? item as SerializedTask : t);
if (action === "delete") tasks.value = tasks.value.filter(t => String(t.id) !== String(id));
}

if (entity === "link") {
if (action === "create") links.value = [...links.value, item as SerializedLink];
if (action === "update") links.value = links.value.map(l => String(l.id) === String(id) ? item as SerializedLink : l);
if (action === "delete") links.value = links.value.filter(l => String(l.id) !== String(id));
}
}
};

Für Mehrfachänderungen (z. B. automatische Terminplanung) bevorzugen Sie data.batchSave.

Ergebnis

Sie haben jetzt eine Vue 3-Anwendung, die den offiziellen Vue Gantt-Wrapper rendert mit:

  • reaktiven Props tasks und links
  • importierter Wrapper-CSS
  • Verkabelung des data.save-Callbacks für Benutzereingaben

Dies ist dasselbe minimale Beispiel, das im GitHub-Demoprojekt verwendet wird.

GitHub-Demorepository

Ein vollständiges funktionsfähiges Projekt, das dieser Anleitung folgt, befindet sich auf GitHub.

Was als Nächstes gelesen werden sollte

Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.