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
1. Die Rolle des Index In allgemeinen Anwendungss...
MySQL ist ein relationales Datenbankverwaltungssy...
Softwareversion Windows: Windows 10 MySQL: mysql-...
Der automatische Bildlaufeffekt der Seite kann du...
1. Mechanismus des Linux-Kernel-Treibermoduls Sta...
Angenommen, ein Knoten im Drei-Knoten-MGR ist abn...
1. Hintergrund Obwohl ich viele Blogs und Artikel...
Inhaltsverzeichnis Was sind Refs 1. Referenzen vo...
Die Festlegung einer Begrenzung der Anzahl von Be...
Hier ist ein Beispielcode für die Verwendung regu...
Die bedingten Kommentare des Internet Explorers s...
Einfach ausgedrückt bedeutet src „Ich möchte dies...
Herunterladen und installieren. Prüfen Sie zunäch...
Ich habe vor kurzem angefangen, MySQL zu lernen. ...
1. Löschen Sie das gepunktete Feld, wenn die Scha...