Vorwort: Ich habe das geschrieben, weil ich meinem Freund geholfen habe, einen Fehler in seinem Projekt zu beheben. Ideen:Wenn wir diese Anforderung von Anfang an betrachten, müssen wir wissen, wo wir Dinge schreiben müssen. 1. Tabelle Gerade noch rechtzeitig finden wir die offizielle Dokumentation von ElementUI Wir haben die API gefunden, die wir brauchen
Grundsätzlich können Sie mit der Nutzung der oben genannten Funktionen beginnen. erreichen:Basierend auf dem oben Gesagten können wir die HTML-Struktur schreiben <Vorlage> <div> <el-Tabelle ref="mehrereTabelle" :data="Tabellendaten" Stil = "Breite: 100 %; Rand unten: 20 Pixel" Zeilenschlüssel="id" Grenze Standardmäßig alles erweitern :Auswählen bei unbestimmtem Wert="true" :tree-props="{ Kinder: 'Kinder', hatKinder: 'hatKinder' }" @select="Zeilenauswahl" @select-all="Alles auswählen" > <el-table-column Typ="Auswahl" Breite="55"> </el-table-column> <el-table-column prop="date" label="Datum" width="180"> </el-table-column> <el-table-column prop="name" label="Tabelle" width="180"> </el-table-column> <el-table-column prop="address" label="Adresse"></el-table-column> </el-Tabelle> </div> </Vorlage> Die Mehrfachauswahl des Formulars kann in zwei Elemente unterteilt werden: 1 ist eine positive Auswahl, d. h. wenn der Checkout wahr ist, 2 ist eine umgekehrte Stornierung, d. h. wenn der Checkout falsch ist. Anschließend werde ich analysieren, wie diese positive Auswahl und umgekehrte Stornierung implementiert werden. 1. Positive Selektion Angenommen, ich habe Daten wie die folgenden: Nachdem wir nun eine klare Vorstellung davon haben, was wir wählen sollen, stellt sich die Frage: Wie setzen wir es um? Wenn ich auf einen untergeordneten Knoten klicke, muss ich den übergeordneten Knoten des untergeordneten Knotens bis hin zum Stammknoten aufzeichnen. Daher verwenden wir das Konzept von Tree Der folgende Code verwendet die Idee des Tree Backtracking. Die Pfadsuche verwendet Pre-Order Traversal, da Sie nicht sicher sind, auf welchem Teilbaum sich der angeklickte untergeordnete Knoten befindet. treeFindPath(Baum, Funktion, Pfad = []) { wenn (!Baum) return []; für (const Daten des Baums) { Pfad.push(Daten); wenn (func(data)) Rückgabepfad; wenn (Daten.Kinder) { const findChildren = this.treeFindPath(data.children, func, path); wenn (findChildren.length) returniere findChildren; } Pfad.pop(); } zurückkehren []; }, Wenn wir den obigen Code aufrufen und die Knoten-ID übergeben, wird ein Array zurückgegeben, das die Objekte auf seinem Pfad enthält. Auf diese Weise können wir das Array durchlaufen und die Methode „toggleRowSelection“ verwenden, um den Seitenstatusstil zu ändern. 2. Stornierung rückgängig machenDie umgekehrte Stornierung ist genau das Gegenteil der Auswahl. Wenn wir zum Abbrechen auf einen untergeordneten Knoten klicken, müssen wir feststellen, ob alle Knoten auf derselben Ebene abgebrochen wurden. Wenn alle Knoten abgebrochen wurden, müssen wir den übergeordneten Knoten dieses Knotens in den abgebrochenen Zustand ändern und dann prüfen, ob sich alle Knoten auf derselben Ebene seines übergeordneten Knotens im abgebrochenen Zustand befinden. Wenn immer noch ein abgebrochener Zustand vorliegt, suchen Sie weiter auf dieselbe Weise wie zuvor nach seinem übergeordneten Knoten, bis die Bedingung nicht mehr erfüllt ist, und verlassen Sie die Schleife. Ein einfaches schematisches Diagramm Wenn Sie auf Knoten 4 klicken, wird geprüft, ob sich die Knoten 5 und 6 auf derselben Ebene im abgebrochenen Zustand befinden. Wenn sie sich beide im abgebrochenen Zustand befinden, prüfen Sie ihren übergeordneten Knoten 2, ändern Sie 2 in „false“ und prüfen Sie dann, ob der Knoten 3 auf derselben Ebene von 2 abgebrochen ist. Wenn er abgebrochen ist, prüfen Sie 1 Unten sehen Sie den Code zum Deaktivieren Verwenden Sie weiterhin den Tree-Code und führen Sie eine reverse()-Operation für das erhaltene Array aus. Die erste Schleife beginnt mit dem Klicken auf den Knoten und durchsucht das Internet. Hier wird eine for-Schleife verwendet. Wenn diese nicht erfüllt ist, wird die nachfolgende Schleife direkt beendet. 3. Alles auswählen Ich habe das Gefühl, dass ich hier etwas zu viel schreibe. Nachfolgend finden Sie alle ausgewählten Codes /** * @describe alles auswählen*/ wähleAlles(Auswahl) { konsole.log(Auswahl); let isAllCheck = this.selectAllRecursion(this.tableData); // Ob aa falsch ist, zeigt an, ob es aktiviert ist oder nicht. this.checkoutAll(this.tableData, !isAllCheck); }, /** * @describe prüft rekursiv, ob isChecked wahr ist, false bedeutet, dass es nicht aktiviert ist*/ wähleAlleRekursion(arr) { sei isCheck = true; Funktion istRekursion(arr) { arr.fürEach((Artikel) => { wenn (!item.isChecked) { istCheck = falsch; wenn (Element.Kinder) { istRecursion(item.children); } } }); } istRekursion(arr); gibt isCheck zurück; }, /** * @describe Ändere alle Werte auf true oder false */ KasseAlle(arr, boole) { var _this = dies; Funktion allCheck(arr, boole) { arr.fürEach((Artikel) => { item.isChecked = boolesch; _this.$refs.multipleTable.toggleRowSelection(item, boolesches); wenn (Element.Kinder) { allCheck(item.children, boolesches); } }); } allCheck(arr, boolesches); }, ENDE: Der grundlegende Code ist wie oben, mit Ausnahme der Tabellen-Paging-Funktion Damit ist dieser Artikel über den Beispielcode zur Implementierung von Mehrfachauswahlen basierend auf verschachtelten Tabellen in ElementUI abgeschlossen. Weitere Informationen zu verschachtelten Mehrfachauswahlen in ElementUI-Tabellen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
>>: So erstellen, starten und stoppen Sie einen Docker-Container
In diesem Artikel wird der spezifische Code von V...
0. Systemanforderungen CPU I5-10400F oder höher S...
Vorwort Dieser Artikel beschreibt eine allgemeine...
Inhaltsverzeichnis Funktionen von etcd Es gibt dr...
Code: Code kopieren Der Code lautet wie folgt: <...
Ohne weitere Umschweife werde ich den Code direkt...
<br />Von der Geburt meiner ersten persönlic...
Das Internet ist bereits voll von Artikeln dieser...
HTML besteht aus Tags und Attributen, die zusamme...
Inhaltsverzeichnis Vorwort Installieren des Grafi...
Inhaltsverzeichnis Vorwort 1. Endpunkt 2. Verbind...
Inhaltsverzeichnis Vorwort Erster Blick auf React...
Schwebende Elemente führen dazu, dass ihre überge...
Inhaltsverzeichnis Überblick 1. Übersicht über Ei...
Wenn wir den Quellcode vieler Websites überprüfen...