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

So erstellen, starten und stoppen Sie einen Docker-Container

1. Ein Container ist eine unabhängig laufende Anw...

So ermitteln Sie die Ausführungszeit eines Befehls oder Prozesses in Linux

Auf Unix-ähnlichen Systemen wissen Sie möglicherw...

Detaillierte Analyse jeder Phase der HTTP-Anforderungsverarbeitung von Nginx

Beim Schreiben des HTTP-Moduls von nginx müssen d...

JavaScript implementiert den Farbänderungseffekt durch Klicken mit neun Rastern

In diesem Artikel wird der spezifische JavaScript...

Beschreibung des MySQL-Optimierungsparameters query_cache_limit

query_cache_limit query_cache_limit gibt die Puff...

Tiefgreifendes Verständnis des Ereignisausführungsmechanismus von JavaScript

Inhaltsverzeichnis Vorwort Das Prinzip der asynch...

Lösung für das zu langsame Herunterladen des Docker-Images

Der Download des Docker-Images hängt oder ist zu ...