Detaillierte Verwendung des Vue More Filter-Widgets

Detaillierte Verwendung des Vue More Filter-Widgets

In diesem Artikelbeispiel wird die Implementierungsmethode des Vue More Filter Item-Widgets zu Ihrer Information erläutert. Der spezifische Inhalt ist wie folgt

Wirkung:

Es handelt sich um einen einfachen kleinen Effekt. Wenn viele Filterbedingungen vorliegen, werden standardmäßig nur wenige Elemente angezeigt, sodass es sich nicht redundant anfühlt. Bei Bedarf können Sie klicken, um weitere Bedingungen zu erweitern und zu filtern. Außerdem kann es automatisch die Größe der Schnittstelle bestimmen und entscheiden, ob weitere Filterelemente benötigt werden. „Query und Reset“ sind direkt in die Komponente eingebaut, was die Implementierung von Komponentenstilen erleichtert und auch für Slots verwendet werden kann.

Normaler großer Bildschirm

Kleinere Auflösung

Sie können sehen, dass es weitere Filterschaltflächen gibt. Sie können auf das Dropdown-Menü klicken.

Spielautomaten

Code:

<Vorlage>
  <div :class="['colla-wrap']" ref="filter">
    <div Klasse = "colla-box" ref = "filterCont" :style = "maxBreite ? 'max-width:' + maxBreite: ''">
      <Steckplatz></Steckplatz>
    </div>
    <div Klasse="Strg">
      <div Klasse="deal-b" >
        <el-button size="mini" type="primary" icon="el-icon-search" @click="clickSearch">Suchen</el-button>
        <el-button size="mini" plain icon="el-icon-refresh-left" @click="clickReset">Zurücksetzen</el-button>
        <slot name="moreBtns"></slot>
        <div class="deal-b" @click="showCollapse" v-if="autoExpend.more">
          <i class="el-icon-arrow-down turnDown" v-if="!autoExpend.collapseVisible"></i>
          <i class="el-icon-arrow-up turnUp" v-if="autoExpend.collapseVisible"></i>
          <div v-if="!autoExpend.collapseVisible" class="more-words">Weitere Filterelemente</div>
          <div v-if="autoExpend.collapseVisible" class="more-words">Filter reduzieren</div>
        </div>
      </div>
    </div>
  </div>
</Vorlage>
<Skript>
Standard exportieren={
 Daten(){
  zurückkehren {
     Daten zusammenfassen: {
       Sichtbar reduzieren:false
     },
     //Automatisch einklappen, um mehr Filterelemente anzuzeigen autoExpend:{
       mehr:false,
       sichtbar reduzieren:false,
       hatTop:false,
       hatFilter:false
     },
  }
 },
 Requisiten: ['maxBreite'],
  montiert(){
    this.watchScrollHeight()
    window.addEventListener("Größe ändern", () => {
      this.watchScrollHeight()
    });
  },
  Methoden:{
    clickSearch(){
     dies.$emit('clickSearch')
   },
   klickReset(){
     dies.$emit('clickReset')
   },
   anzeigenCollapse(){
     diese.Methoden('showCollapse')
   },
   anzeigenCollapse(){
     this.autoExpend.collapseVisible = !this.autoExpend.collapseVisible
     dies.$refs.filterCont.style.height = dies.autoExpend.collapseVisible?'auto':'50px'
   }
 
   //Versuchen Sie, diese Höhe zu überwachenwatchScrollHeight(){
     lass filter = this.$refs.filter;
     if(filter){
       dies.$nextTick(() => {
         this.autoExpend.more = $(filter).find(".colla-box")[0].scrollHeight > 50;
       })
       
     }
     //Beurteilen Sie, ob sich darunter ein Elementknoten befindet, um zu bestimmen, ob dieser Slot angezeigt wird. //Beurteilen Sie den normalen Slot für die Position des Suchfelds, wenn (this.$refs.filterCont&&this.$refs.filterCont.childNodes.length) {
       this.autoExpend.hasFilter = true
     }
   }
  }
  
}
</Skript>
<style scoped lang="scss">
  .colla-wrap{
    Breite: 100 %;
    .colla-box{
      maximale Breite: berechnet (100 % – 400 Pixel);
      schweben: links;
      Box-Größe: Rahmenbox;
      Überlauf: versteckt;
      Höhe: 50px;
      >div,Schaltfläche{
        schweben: links;
        Rand rechts: 20px;
        Rand unten: 20px;
      }
    }
    .Strg{
      Anzeige: Flex;
      Elemente ausrichten: Flex-Start;
      Inhalt ausrichten: Flex-Start;
      Farbe: #409EFF;
      Taste{
        Rand rechts: 20px;
      }
      .deal-b{
        Anzeige: Flex;
        Elemente ausrichten: Flex-Start;
        Flex-Wrap: Nowrap;
        .deal-b{
          Rand rechts: 0;
          Rand unten: 0;
          Rand oben: 5px;
          Anzeige: Flex;
          Elemente ausrichten: zentrieren;
          Cursor: Zeiger;
          Farbe: #409EFF;
          .mehr-Wörter{
            Mindestbreite: 75px;
          }
          ich{
            Farbe: #409EFF;
            Rand rechts: 5px;
          }
        }
      }
    }
  }
</Stil>

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.js implementiert Tabellenfunktionen für die Filterung, Suche, Sortierung und Paginierung mehrerer Bedingungen
  • Einfaches Beispiel für die Vue-Klassifizierungsfiltermethode
  • Vuejs verwendet filterBy und orderBy, um Suchfilterung und absteigende Sortierung von Daten zu implementieren
  • Verwenden Sie vue-router beforeEach, um die Funktion zur Beurteilung der Benutzeranmeldungs-Sprungroutenfilterung zu implementieren
  • Detaillierte Erläuterung der auf Vue basierenden Filterfunktion mit mehreren Bedingungen (ähnlich den Funktionen von JD.com und Taobao)
  • VUE implementiert eine mobile Listenfilterfunktion
  • Der Selektor in Ant-Design-Vue filtert den Eingabewert
  • Vue-Eingabe Eingabefeld Schlüsselwortfilter Abrufliste Datenanzeige
  • Vue implementiert die Multi-Condition-Filterung von Front-End-Listen
  • Vue filtert Daten nach Eingabe

<<:  CentOS 6 Kompilieren und installieren Sie ZLMediaKit-Analyse

>>:  Das automatische Porterkennungsskript von Zabbix Redis gibt das JSON-Format zurück

Artikel empfehlen

Eine Liste der Fallstricke beim regulären JS-Matching

Ich habe vor Kurzem eine Falle bei der regulären ...

Verwenden Sie CSS, um einen 3D-Fotowandeffekt zu erstellen

Verwenden Sie CSS, um eine 3D-Fotowand zu erstell...

vue + springboot realisiert die Login-Funktion

In diesem Artikelbeispiel wird der spezifische Co...

C# implementiert MySQL-Befehlszeilensicherung und -wiederherstellung

Es gibt viele Tools zum Sichern von MySQL-Datenba...

Nginx' praktische Methode zur Lösung domänenübergreifender Probleme

Trennen Sie Front- und Backend und lösen Sie domä...

Vue verwendet dynamische Komponenten, um einen TAB-Umschalteffekt zu erzielen

Inhaltsverzeichnis Problembeschreibung Was ist di...

Praktische Methode zum Upgrade von PHP auf 5.6 unter Linux

1: Überprüfen Sie die PHP-Version nach dem Aufruf...

MySQL 5.7-Clusterkonfigurationsschritte

Inhaltsverzeichnis 1. Ändern Sie die Datei my.cnf...

Lösung für den Fehler bei der Verbindung mit MySQL in Docker

Szenario: Nach der Installation der neuesten Vers...

Detaillierte Erläuterung der erweiterten Konstruktionseigenschaften von Vue

Inhaltsverzeichnis 1. Richtlinie Zollrichtlinie 2...

Sammlung einer Zusammenfassung der HTML-Iframe-Nutzung

Detaillierte Analyse der Iframe-Nutzung <iframe...

Einige gängige CSS-Layouts (Zusammenfassung)

Zusammenfassung In diesem Artikel werden die folg...