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
Overlay-Netzwerkanalyse Die integrierte netzwerkü...
Inhaltsverzeichnis 1. Detaillierte Syntax der Met...
SQL-Anweisung /* Einige Methoden zum Eliminieren ...
1 Herunterladen Die Adresse lautet: https://dev.m...
Inhaltsverzeichnis 1. Verpackungsbefehl hinzufüge...
Die wesentlichen Inhalte dieses Artikels sind wie...
Grundaufbau: Code kopieren Der Code lautet wie fol...
In diesem Artikel finden Sie den spezifischen Cod...
Dieser Artikel erläutert anhand von Beispielen da...
Inhaltsverzeichnis Datenverarbeitungslösung auf M...
Die Benutzerorganisation verfügt über zwei Window...
Heute stelle ich zwei HTML-Tags vor, die ich nich...
Aus verschiedenen Gründen (einschließlich Neugier...
Das Installationstutorial zur dekomprimierten Win...
Vorwort In der täglichen Entwicklung stoßen wir h...