Vue Element-ui-Tabelle realisiert Baumstrukturtabelle

Vue Element-ui-Tabelle realisiert Baumstrukturtabelle

In diesem Artikel wird der spezifische Code der Element-ui-Tabelle zur Realisierung der Baumstrukturtabelle zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt

Frontend-Effektanzeige:

In el-table wird die Anzeige baumartiger Daten unterstützt. Wenn eine Zeile ein untergeordnetes Feld enthält, wird sie als Baumdaten betrachtet. Beim Rendern von Baumdaten müssen Sie den Zeilenschlüssel angeben. Unterstützt das asynchrone Laden von untergeordneten Knotendaten.

Sie können angeben, welche Zeilen untergeordnete Knoten enthalten, indem Sie das Feld „hasChildren“ in der Zeile angeben. Sowohl untergeordnete Elemente als auch hasChildren können über Tree-Props konfiguriert werden.

row-key="id" und :tree-props="{children: 'children', hasChildren: 'hasChildren'} sind erforderlich.

Unten ist der Tabellenbaum von Vue:

 <!--Tabelle-->  
       <el-Zeile>
            <el-table :data="tableData" style="width: 100%;" row-key="id" :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
                        <el-table-column prop="privilegeName" label="Berechtigungsname" >
                        </el-Tabellenspalte>
                        <el-table-column prop="privilegeCode" label="Berechtigungscode" >
                        </el-Tabellenspalte>
                        <el-table-column prop="privilegeType" label="Berechtigungskategorie" :formatter="formatPrivilegeType" >
                        </el-Tabellenspalte>
 
                        <el-table-column label="Vorgang">
                            <template slot-scope="Umfang">
                                
                                <el-button type="primary" size="mini" @click="toAdd(scope)">Hinzufügen</el-button>
                                <el-button type="primary" size="mini" @click="toEdit(scope)">Bearbeiten</el-button>
                            </Vorlage>
                        </el-Tabellenspalte>
                    </el-Tabelle>
                    <br>
                    <el-pagination
                        @size-change="Größenänderungsgriff"
                        @current-change="AktuelleÄnderung handhaben"
                        :aktuelle-seite="pagination.pageIndex"
                        :Seitengrößen="[5, 10, 20, 30, 40]"
                        :Seitengröße=Paginierung.Seitengröße
                        Layout = "Gesamt, Zurück, Pager, Weiter"
                        :total=pagination.total>
                    </el-pagination>
</el-row>

Backend-Code: SpringBoot+MyPlus+MySQL8 zur Implementierung der Datenstrukturabfrage

Alle Frontend-Codes:

<Stil>
</Stil>
<Vorlage>
  <div id="Berechtigungsmanager">
   <!--Obere Menüleiste-->
    <el-form :inline="true" class="demo-form-inline">
          <el-form-item>
            <el-Schaltfläche
              Klasse="el-icon-refresh"
              Typ="primär"
              @click="toAdd()">Hinzufügen</el-button>
          </el-form-item>
      </el-form>
      <!--Tabelle-->  
       <el-Zeile>
            <el-table :data="tableData" style="width: 100%;" row-key="id" :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
                        <el-table-column prop="privilegeName" label="Berechtigungsname" >
                        </el-Tabellenspalte>
                        <el-table-column prop="privilegeCode" label="Berechtigungscode" >
                        </el-Tabellenspalte>
                        <el-table-column prop="privilegeType" label="Berechtigungskategorie" :formatter="formatPrivilegeType" >
                        </el-Tabellenspalte>
 
                        <el-table-column label="Vorgang">
                            <template slot-scope="Umfang">
                                
                                <el-button type="primary" size="mini" @click="toAdd(scope)">Hinzufügen</el-button>
                                <el-button type="primary" size="mini" @click="toEdit(scope)">Bearbeiten</el-button>
                            </Vorlage>
                        </el-Tabellenspalte>
                    </el-Tabelle>
                    <br>
                    <el-pagination
                        @size-change="Größenänderungsgriff"
                        @current-change="AktuelleÄnderung handhaben"
                        :aktuelle-seite="pagination.pageIndex"
                        :Seitengrößen="[5, 10, 20, 30, 40]"
                        :Seitengröße=Paginierung.Seitengröße
                        Layout = "Gesamt, Zurück, Pager, Weiter"
                        :total=pagination.total>
                    </el-pagination>
        </el-row>
 
 
  </div>
</Vorlage>
 
<Skript>
Standard exportieren{
    Name: "Berechtigungsmanager",
    Daten () {
     zurückkehren {
        Tabellendaten: [],
        dialogFormEdit: false,
        dialogFormAdd:false,
        Privileg:
          Ausweis: '',
          Berechtigungsname: '',
          Berechtigungscode: '',
          Berechtigungstyp: '',
          pid: "0"
        },
        Pagination:
            Seitenindex: 1,
            Seitengröße: 10,
            gesamt: 0,
        }
      }
    },
    Methoden:{
         init () {
        var selbst = dies
         dies.$axios({
            Methode: 'post',
            URL: „/api/baoan/privilege/getPage“,
            Daten: {"Seite": dieser.pagination.pageIndex, "Limit": diese.pagination.pageSize, "pid": dieses.privilege.pid},
            Überschriften:{
                'Content-Type':'application/json;charset=utf-8' //Einfach hier ändern}
        }).dann(res => {
           konsole.log(res);
           selbst.pagination.total = res.data.datas.data.total;
           self.tableData = res.data.datas.data.records;
        })
          .catch(Funktion (Fehler) {
            console.log(Fehler)
          })
        },
        handleSizeChange(Wert) {
                console.log(`${val} Elemente pro Seite`);
                this.pagination.pageSize = Wert;
                diese.pagination.pageIndex = 1;
                dies.init();
        },
        handleCurrentChange(Wert) {
                 console.log(`Aktuelle Seite: ${val}`);
                this.pagination.pageIndex = Wert;
                dies.init();
        },
        //Konvertierung des Berechtigungstyps formatPrivilegeType: function( row, column) {
                 wenn(Zeile.PrivilegeType === '1'){
                     returniere 'Verzeichnis'
                 } sonst wenn(row.privilegeType === '2') {
                     'Menü' zurückgeben
                 } sonst wenn (row.privilegeType === '3') {
                     Zurück-Schaltfläche
                 } anders {
                     zurückkehren ''
                 }
        }
    },
    montiert: Funktion () {
      dies.init()
  }
 
 
}
</Skript>

Zusammenfassen:

1. Beachten Sie, dass in der Front-End-Tabelle Folgendes geändert werden muss:

2. Die wichtigsten Änderungen am Backend sind:

(1) Fügen Sie der Ansichtsebene ein Ansichtsebenensammlungsattribut hinzu. Beachten Sie, dass es als untergeordnete Elemente bezeichnet werden muss, damit das Frontend es in einer Baumstruktur rendern kann.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Vue implementiert Baumtabelle durch Elementbaumsteuerung
  • Detaillierte Erklärung zum Hinzufügen gepunkteter Linien zu Vue-Elementbaum-Steuerelementen
  • Tutorial zur Implementierung von Tabellenladebaumdaten in der Vue-Komponentenbibliothek ElementUI
  • Vue+Element-UI realisiert Baumtabelle
  • Vue+Element UI-Baumsteuerung integriert Dropdown-Funktionsmenü (Baum + Dropdown + Eingabe)
  • Vue Element-ui implementiert Baumsteuerungsknoten und fügt Symbole hinzu, detaillierte Erläuterung

<<:  Analyse des Unterschieds zwischen „Platzieren auf“ und „Wo“ in MySQL-Abfragebedingungen

>>:  Windows verwendet VMware, um eine virtuelle Linux-Maschine zu erstellen und das Betriebssystem CentOS7.2 zu installieren

Artikel empfehlen

Detailliertes Tutorial zum Ersetzen von mysql8.0.17 in Windows 10

In diesem Artikel werden die spezifischen Schritt...

Beispiel einer datenbankübergreifenden Abfrage in MySQL

Vorwort In MySQL werden datenbankübergreifende Ab...

Detaillierte Beschreibung von Shallow Copy und Deep Copy in js

Inhaltsverzeichnis 1. js-Speicher 2. Abtretung 3....

JS tiefe und flache Kopierdetails

Inhaltsverzeichnis 1. Was bedeutet „Shallow Copy“...

Detaillierte Erklärung der Linux-Less-Befehlsbeispiele

weniger Dateiname Datei anzeigen kleiner Dateinam...

Mysql-Fehler: Lösung für zu viele Verbindungen

Zu viele Verbindungen zur MySQL-Datenbank Dieser ...

Installation von mysql-community-server.5.7.18-1.el6 unter centos 6.5

Verwenden Sie den folgenden Befehl, um zu überprü...

So erstellen Sie ein stilvolles Webseiten-Design (Grafik-Tutorial)

„Großartig“ sind wahrscheinlich die beiden Worte, ...

Sechs Möglichkeiten, die Größe von Docker-Images zu reduzieren

Seitdem ich 2017 mit der Arbeit an Vulhub begonne...

So richten Sie eine automatische tägliche Datenbanksicherung in Linux ein

Dieser Artikel verwendet das Centos7.6-System und...

Detaillierte Erklärung der Funktion und Verwendung der DOCTYPE-Deklaration

1. Browser-Rendering-Modus und Doctype Einige Web...

Drei Möglichkeiten zum Löschen einer Tabelle in MySQL (Zusammenfassung)

Drop-Tabelle Drop löscht Tabelleninformationen di...