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

mysql: [FEHLER] unbekannte Option '--skip-grant-tables'

MySQL-Datenbank meldet FEHLER 1045 (28000): Zugri...

Die Rolle der neuen Feature-Window-Funktionen von MySQL 8

Zu den neuen Funktionen in MySQL 8.0 gehören: Vol...

JS ES neue Funktionen Vorlagenzeichenfolge

Inhaltsverzeichnis 1. Was ist eine Vorlagenzeiche...

So legen Sie einen gepunkteten Rahmen in HTML fest

Verwenden Sie CSS-Stile und HTML-Tag-Elemente Um ...

Tutorial zur Installation und Konfiguration von MySQL 5.7 unter CentOS7 (YUM)

Installationsumgebung: CentOS7 64-Bit, MySQL5.7 1...

Parameter, um Iframe transparent zu machen

<iframe src="./ads_top_tian.html" all...

Beispielcode für die Konvertierung von MySQL-Zeilen und -Spalten

1. Nachfrage Wir haben drei Tabellen. Wir müssen ...

Warum wird in React nicht empfohlen, einen Index als Schlüssel zu verwenden?

1. Vergleichen Sie den alten virtuellen DOM mit d...

Starten Sie eine lokale Kubernetes-Umgebung mit Kind und Docker

einführen Haben Sie schon einmal einen ganzen Tag...

Detailliertes Installationstutorial für MySQL 5.7 unter CentOS 6 und 7

Für die Entwicklung benötigen Sie immer Daten. Al...

CSS, um horizontale Linien auf beiden Seiten des mittleren Textes zu erreichen

1. Die Eigenschaft „vertical-align“ erzielt folge...