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 Erreichen einer festen Seitenleiste

Verwenden Sie Javascript, um eine feste Seitenlei...

Analyse der HTTP-Dienstschritte auf einer virtuellen VMware-Maschine

1. Verwenden Sie xshell, um eine Verbindung mit d...

Gruselige Halloween-Linux-Befehle

Auch wenn nicht Halloween ist, lohnt es sich, sic...

Einführung in die UFW-Firewall unter Linux

Werfen wir einen Blick auf ufw (Uncomplicated Fir...

CSS3-Animation – Erläuterung der Funktion „Steps“

Als ich mir in letzter Zeit einige CSS3-Animation...

Beispielcode für die Batchbereitstellung von Nginx mit Ansible

1.1 Kopieren Sie das Nginx-Installationspaket und...

Lösung für „Spezialisierter Schlüssel war zu lang“ in MySQL

Inhaltsverzeichnis Lösung 1 Lösung 2 Beim Erstell...

Lösung für die Nichterreichbarkeit des Tencent Cloud Server Tomcat-Ports

Ich habe vor Kurzem einen Server mit Tencent Clou...

Tutorial zur MySQL-Optimierung: Große Paging-Abfrage

Inhaltsverzeichnis Hintergrund LIMIT-Optimierung ...