Ergebnisse erzielenUrsprünglich wollte ich online nachsehen, ob es welche gibt, die auf Antdesign basieren, aber ich musste feststellen, dass es wirklich nur wenige sind! Und nun ohne weitere Umschweife die Bilder: Einführung in sortablejs Lernen wir zunächst dieses Plugin kennen: sortablejs Hier werde ich mich auf die von mir verwendete API konzentrieren.
put : put wird verwendet, um die Einstellungen zum Platzieren von Listenzellen in diesem Listencontainer zu definieren, true/false/['foo','bar']/Funktion;
2. Konkrete Umsetzung 1. Der erste Schritt besteht darin, <s-Tabelle ref="Tabelle" Größe="Standard" Klasse="linke-Tabelle" rowKey="Schlüssel" :columns="Spalten" :data="Daten laden"> </s-Tabelle> <s-Tabelle Klasse="Sortierungstabelle" ref="Tabelle2" Größe="Standard" Klasse="linke-Tabelle" rowKey="Schlüssel" :columns="Spalten" :data="Daten laden"> </s-Tabelle> Spezifisch Spalten und Auf loadData muss nicht näher eingegangen werden. JS -Code Sortable aus „sortablejs“ importieren Methoden:{ // Sortierbare Datei initialisieren um Drag zu implementieren initSortable () { var das = dies var el = this.$el.querySelector('.sort-table tbody') Sortable.create(el, { Griff: ".ant-table-row", Animation: 150, Gruppe: { Name: 'Name', Pull: True, Put: True }, beiUpdate: Funktion (evt) { }, // Wenn das Ziehen beginnt onStart: function (evt) { }, onAdd: Funktion (evt) { }, onRemove: Funktion (evt) { } }) }, initSortable1 () { var das = dies var el = this.$el.querySelector('.left-table tbody') Sortable.create(el, { Griff: ".ant-table-row", Animation: 150, Gruppe: { Name: 'Name', Pull: True, Put: True }, beiUpdate: Funktion (evt) { }, // Wenn das Ziehen beginnt onStart: function (evt) { }, onAdd: Funktion (evt) { }, onRemove: Funktion (evt) { } }) }, } Über Bisher zwei Der Drag-Effekt kann zwischen Tabellen erzielt werden, es handelt sich jedoch lediglich um einen Drag-Effekt . Die Sortierung ist für die Tabelle rechts von mir eindeutig, aber die Tabelle hier benötigt diese Sortierung nicht. Und wenn das Ziehen erfolgreich ist, warum wird dann trotzdem angezeigt, dass keine Daten vorhanden sind ? Schließlich kann
Unter Berücksichtigung des Leistungsverbrauchs habe ich mich für die zweite Variante entschieden: Daten(){ zurückkehren { unMatchedList: [], // nicht übereinstimmende Daten auf der linken Seite dataList: [], // übereinstimmende Daten auf der rechten Seite pullIndex: '', // der Index des ursprünglichen Arrays drag-Element} } 2) Aktualisieren Sie die Datenquelle jedes Mal, wenn // Wenn das Ziehen beginnt onStart: function (evt) { that.pullIndex = evt.oldIndex }, onAdd: Funktion (evt) { //evt.newIndex bewegt sich zum Index des neuen Arrays //pullIndex der Index des gezogenen Elements im ursprünglichen Array that.dataList.splice(evt.newIndex, 0, that.unMatchedList[that.pullIndex]) dass.dataList.forEach((item, index) => { Artikel.Sortieren = Index + 1 }) //Benachrichtigen Sie die Tabellenansicht, dies zu aktualisieren.$nextTick(() => { das.$refs.table2 und dies.$refs.table2.refresh(true) das.$refs.table und das.$refs.table.refresh(true) }) }, onRemove: Funktion (evt) { that.dataList.splice(evt.alterIndex, 1) dass.dataList.forEach((item, index) => { Artikel.Sortieren = Index + 1 }) das.$nextTick(() => { das.$refs.table2 und dies.$refs.table2.refresh(true) das.$refs.table und das.$refs.table.refresh(true) }) } }) 3) Implementieren Sie Drag & Drop-Sortierung in derselben Tabelle initSortable () { var das = dies var el = this.$el.querySelector('.sort-table tbody') Sortable.create(el, { Griff: ".ant-table-row", Animation: 150, Gruppe: { Name: 'Name', Pull: True, Put: True }, //Verwenden Sie hier nicht die Methode onEnd onUpdate: function (evt) { var o = evt.alterIndex var n = evt.neuerIndex wenn (o === n) { zurückkehren } das.sortListAndUpdate(das.dataList, o, n) }, }) }, // Daten sortieren, dabei ist o (alterIndex) und n (neuerIndex) erforderlich, um bei 0 zu beginnen sortList (Liste, o, n) { var neueTableData = JSON.parse(JSON.stringify(Liste)) var data = newTableData.splice(o, 1, null) newTableData.splice(o < n ? n + 1 : n, 0, Daten[0]) newTableData.splice(o > n ? o + 1 : o, 1) gibt neueTabellendaten zurück }, /** * Sortieren Sie die Daten und aktualisieren Sie die Tabelle. Dabei müssen o (alterIndex) und n (neuerIndex) bei 0 beginnen*/ sortListAndUpdate (Liste, o, n) { var neueTableData = this.sortList(Liste, o, n) newTableData.forEach((Element, Index) => { Artikel.Sortieren = Index + 1 }) dies.$nextTick(() => { this.dataList = neueTabellendaten das.$refs.table2 und dies.$refs.table2.refresh(true) }) }, Hier verwenden wir zum Sortieren die Methode Dies ist das Ende dieses Artikels über die Kombination von Antdesign-Vue mit SortableJS zur Realisierung der Funktion zum Ziehen und Sortieren von zwei Tabellen. Weitere relevante Inhalte zu Antdesign-Vue zur Realisierung von Ziehen und Sortieren finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
>>: Untersuchung der Wirkung der durch JS realisierten Seitenseitenleiste
Lösung zum Vergessen des MySQL-Passworts: [root@l...
Warum sind die von Ihnen geschriebenen SQL-Abfrag...
Dieser Artikel beschreibt den detaillierten Vorga...
Die Lösung für die Hintergrundkachelung oder Rahme...
In diesem Artikel finden Sie das Installations- u...
Detailliertes Download-, Installations- und Konfi...
Wenn Sie Ihr MySQL-Anmeldekennwort vergessen, ist...
Direkt codieren: Wählen Sie „bigint unsigned“ als...
Verständnis von Umfragen Tatsächlich liegt der Sc...
Laderegeln der Require-Methode Laden aus dem Cach...
Schritt 1: Stow installieren In diesem Beispiel v...
Es gibt zwei Installationsmethoden für MySQL: MSI...
Inhaltsverzeichnis Funktionale Komponenten So sch...
In diesem Artikel wird der spezifische JavaScript...
So schreiben Sie mithilfe von Filtern transparente...