So fügen Sie eine Popup-Aktionsschaltfläche unten für „Select“ und „Cascader“ von Element-UI hinzu

So fügen Sie eine Popup-Aktionsschaltfläche unten für „Select“ und „Cascader“ von Element-UI hinzu

Wie in der folgenden Abbildung dargestellt, ist es eine gängige Entwurfsmethode, die Bedienschaltfläche unten in select Popup-Ebene zu platzieren

Aber leider stellt uns element-ui diesen Slot nicht zur Verfügung. Wenn wir diese Funktion implementieren möchten, können wir dann nur die Komponente neu schreiben oder auf offizielle Updates warten? Die Antwort ist natürlich nein!

Es hat eine Weile gedauert, diese Funktion durch eine Funktion zu implementieren, el-select und el-cascader unterstützt. Klicken Sie hier, um eine Vorschau des Effekts anzuzeigen

Tatsächlich ist die Logik ganz einfach. Fügen Sie einfach das folgende html an der angegebenen Position ein.

<ul class="el-cascader-menu__list" style="border-top: solid 1px #E4E7ED;padding:0">
  <li Klasse="el-cascader-node" Stil="Höhe:38px;Zeilenhöhe: 38px">
    <i class="el-icon-plus"></i>
    <span class="el-cascader-node__label">Neue Produktkategorien hinzufügen</span>
    <i Klasse="el-icon-arrow-right el-cascader-node__postfix"/>
  </li>
</ul>

Ich verwende hier direkt den el-cascader -Stil. Bei der tatsächlichen Verwendung kann dieses html entsprechend Ihren Anforderungen geändert werden.

Oben ist der Code, schreiben Sie diese Funktion in methods

/**
 * Fügen Sie eine Popup-Schaltfläche für die unteren Bedienelemente der Element-UI „Select“ und „Cascader“ hinzu * @param sichtbar
 * @param refName setzt den Ref-Namen * @param onClick Klick-Listener für die untere Bedienschaltfläche */
sichtbareÄnderung(sichtbar, refName, beiKlick) {
  wenn (sichtbar) {
    const ref = this.$refs[refName];
    Lassen Sie Popper = ref.$refs.popper;
    wenn (popper.$el) popper = popper.$el;
    wenn (!Array.from(popper.children).some(v => v.className === 'el-cascader-menu__list')) {
      const el = document.createElement('ul');
      el.className = "el-cascader-menu__list";
      el.style = 'border-top: durchgezogen 1px #E4E7ED; Polsterung: 0; Farbe: #606266;';
      el.innerHTML = `<li class="el-cascader-node" style="height:38px;line-height: 38px">
<i class="el-icon-menu"></i>
<span class="el-cascader-node__label">Produktklassifizierungsverwaltung</span>
<i Klasse="el-icon-arrow-right el-cascader-node__postfix"/>
</li>`;
      popper.appendChild(el);
      el.onclick = () => {
        // Die Logik, die Sie nach dem Klicken auf die untere Schaltfläche auslösen möchten, kann auch direkt hier geschrieben werden: onClick && onClick();

        // Der folgende Code implementiert das Ausblenden der Popup-Ebene nach dem Klicken. Dies ist nicht erforderlich und kann gelöscht werden, wenn (ref.toggleDropDownVisible) {
          ref.toggleDropDownVisible(false);
        } anders {
          ref.sichtbar = falsch;
        }
      };
    }
  }
},

Die Aufrufmethode von el-select ist dieselbe wie die von el-cascader . Hier nehmen wir el-cascader als Beispiel

<el-Kaskade
    :Optionen="Kaskadenoptionen"
    v-Modell="Kaskadenwert"
    @visible-change="v => sichtbareÄnderung(v, 'cascader', cascaderClick)"
    ref="Kaskaden"
/>

Tipp: Es kann später mit dem offiziellen Versions-Upgrade ungültig werden, also mit Vorsicht verwenden

Zusammenfassen

Oben habe ich Ihnen das Hinzufügen von Popup-Bedienungsschaltflächen für Select und Cascader von Element-UI vorgestellt. Ich hoffe, es wird Ihnen helfen!

<<:  Details zur Verwendung von Bimface in Vue

>>:  Detaillierte Erklärung, wo Docker Protokolldateien speichert

Artikel empfehlen

JavaScript zum Erzielen eines Fensteranzeigeeffekts

In diesem Artikel wird der spezifische JavaScript...

js-Datentypen und Beispiele für ihre Beurteilungsmethoden

js-Datentypen Grundlegende Datentypen: Zahl, Zeic...

Klassischer Beispielcode für JavaScript-Funktionsaufrufe

Inhaltsverzeichnis Klassisches Beispiel für einen...

So stellen Sie den Node.js-Dienst mithilfe von Dockerfile bereit

Dockerfile initialisieren Angenommen, unser Proje...

Mysql gibt die Methode zur Datumsbereichsextraktion an

Bei der Datenbankoperation ist der Umgang mit Dat...

MySQL fügt schnell 100 Millionen Testdaten ein

Inhaltsverzeichnis 1. Erstellen Sie eine Tabelle ...

Hyperlink-Tag für HTML-Webseiten

Lernprogramm zum Hyperlink-Tag einer HTML-Webseit...

Implementierung der Docker Compose-Mehrcontainerbereitstellung

Inhaltsverzeichnis 1. WordPress-Bereitstellung 1....

Detaillierte Erklärung des Lebenszyklus von Angular-Komponenten (Teil 2)

Inhaltsverzeichnis 1. Haken anzeigen 1. Was bei d...

Vue verwendet Drag & Drop, um einen Strukturbaum zu erstellen

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erläuterung der Linux-Textverarbeitungstools

1. Zählen Sie die Anzahl der Benutzer, deren Stan...