Der gesamte Prozess der Implementierung des Zusammenfassungs-Popup-Fensters mit Vue+Element UI

Der gesamte Prozess der Implementierung des Zusammenfassungs-Popup-Fensters mit Vue+Element UI

Szenario: Ein Prüfdokument hat n Prüfdetails und ein Prüfdetail hat n Prüfelemente.

Implementierungseffekt: Wenn die Maus auf das Zusammenfassungssymbol der Detailzeile bewegt wird, wird das Popup-Fenster der Inspektionsartikelkarte der aktuellen Zeile angezeigt und das Popup-Fenster wird geschlossen, wenn die Maus aus dem Popup-Fenster bewegt wird

Details des Prüfdokuments

Bildbeschreibung hier einfügen

Bewegen Sie die Maus über das Projektübersichtssymbol

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

Effektrealisierung

In Daten deklarierte Variablen

//Popup-Fenster umreißen outlineDialog: false,
//Standardzusammenfassung der aktuellen Zeile standSummary: [],
// Gliederung der Popup-Fensterpositionssteuerung outlineCard: {
    SeiteY: null,
    SeiteX: null,
    Anzeige: "keine"
}

1. Popup-Code

outlineDialog: Standardmäßig „false“, das Outline-Popup-Fenster zeigt das Logo an
outlineStyle: Dynamische Stileinstellung für Popup-Fenster, Überwachung der berechneten und bidirektionalen Datenbindungsanzeige
verlassen: Das Ereignis, wenn die Maus die Popup-Karte verlässt

<!-- Projektübersicht -->
<div class="summary-div" v-show="outlineDialog" ref="box-cardDiv" :style="outlineStyle" @mouseleave="verlassen">
    <div class="summary-title">Projektzusammenfassung</div>
    <ul Klasse="Zusammenfassung-ul">
        <li class="summary-li"><span>Standardname</span><span>Ist er erforderlich?</span><span>Wird er angezeigt?</span></li>
        <li v-for="(item, index) in standSummary" :key="index" class="summary-li"><span>{{item.inspectdetailName}}</span><span>{{item.isRequired ? 'Ja' : 'Nein'}}</span> <span>{{item.isDisplay ? 'Ja' : 'Nein'}}</span> </li>
    </ul>
</div>

2. Code im Popup-Fensterstil

<style lang="scss">
#box-cardDiv {
    Position: absolut;
}

.summary-div {
    Rand: durchgezogen 1px #eee;
    Hintergrundfarbe: #fff;
    Rahmenradius: 4px;
    Kastenschatten: 0 2px 12px 0 rgba(0, 0, 0, .1);
    Polsterung: 10px 10px 0 10px;
    Breite: 300px;
    Position: absolut;
    Schriftgröße: 13px;
}

.summary-ul {
    Listenstil: keiner;
    Polsterung links: 0;
    maximale Höhe: 350px;
    Überlauf-x: versteckt;
    Überlauf-y: automatisch;
}

.summary-li {
    Rand: 10px 10px 15px 10px;
    Breite: 250px;
    Textüberlauf: Auslassungspunkte;
    Überlauf: versteckt;
    /* Leerzeichen: nowrap; */
    Anzeige: Flex;

    Spanne {
        Rand: automatisch;
        Breite: 55px;
    }
}

.summary-li:erstes-Kind span:nicht(:erstes-Kind) {
    Rand links: 40px;
}

.summary-li:nicht(:erstes-Kind) span:ntes-Kind(1) {
    Breite: 90px;
}

.summary-li:nicht(:erstes-Kind) span:ntes-Kind(2) {
    Breite: 50px;
    Rand links: 45px;
}

.summary-li:nicht(:erstes-Kind) span:ntes-Kind(3) {
    Rand links: 60px;
}

.Zusammenfassungstitel {
    Farbe: #cccccc;
    Rand links: 10px;
}
</Stil>

3. Spaltencode der Artikelübersicht der detaillierten Tabelle

checkStandSunmmary: Das Ereignis, wenn die Maus zum Zusammenfassungssymbol bewegt wird
<el-table-column label="Projektübersicht" align="center" width="500">
    <template slot="header">
        <span>Projektübersicht</span>
        <span class="vertical"></span>
    </Vorlage>
    <template slot-scope="Umfang">
        <div Klasse="col-summmary-div">
            <span class="col-summmary-format"><span>{{scope.row.firstListItem}}</span></span>
            <span>&nbsp;{{scope.row.equInspectplanItemList.length}}&nbsp;Elemente</span>
            <i class="el-icon-arrow-down" @mouseenter="checkStandSunmmary(scope.row)"></i>
        </div>
    </Vorlage>
</el-Tabellenspalte>

4. OutlineStyle - Dynamische Stilsteuerung für Popup-Karten

Wenn sich die Details unten auf der Seite befinden, wird die Karte zwar noch angezeigt, aber ein Teil davon wird verdeckt. Sie müssen die Position der Kartenöffnung dynamisch entsprechend der Position des Zusammenfassungssymbols berechnen. Wenn es unten ist, öffnen Sie die Karte nach oben.
berechnet: {
    Umrissstil() {
        sei h = 45 * this.standSummary.length;
        let browser = document.body.clientHeight - 50;
        let pageY = this.outlineCard.pageY - 50;
        let pageX = this.outlineCard.pageX – 280;
        if (SeiteY + h > Browser) {
            returniere `links: ${ pageX }px; oben: ${ (pageY-h) }px; Position: absolut; Anzeige: ${ this.outlineCard.display }`;
        } anders {
            returniere `links: ${ pageX }px; oben: ${ (pageY-60) }px; Position: absolut; Anzeige: ${ this.outlineCard.display }`;
        }
    }
},

5. Ereignis verlassen, wenn die Maus die Popup-Karte verlässt

Wenn die Maus aus der Karte herausbewegt wird, setzen Sie den display auf „keine“ und setzen Sie v-show auf „false“, damit das Popup-Fenster nicht angezeigt wird
/**
 * Mauszeiger verlassen Standardzusammenfassung */
verlassen() {
    this.outlineCard.display = "keine";
    this.outlineDialog = falsch;
},

6. checkStandSunmmary-Ereignis, wenn die Maus zum Zusammenfassungssymbol bewegt wird

Öffnen Sie die Popup-Karte und rufen Sie die Inspektionselemente der aktuellen Zeile ab. Rufen Sie die aktuelle Mausposition auf den X- und Y-Achsen des Browsers ab. Setzen Sie den Popup-Kartenstil dynamisch auf null (die Anzeige wird angezeigt, außer „none“, was bedeutet, dass sie nicht angezeigt wird).

/**
 * Aktuelle Zeilenstandardzusammenfassung */
checkStandSunmmary(Zeile) {
    this.outlineDialog = wahr;
    this.standSummary = Zeile.equInspectplanItemList;
    this.outlineCard.pageY = Fenster.Ereignis.ClientY;
    diese.outlineCard.pageX = Fenster.Ereignis.ClientX;
    this.outlineCard.display = null;
},

Zusammenfassen

Dies ist das Ende dieses Artikels über das Popup-Fenster mit der Zusammenfassung der Vue+Element-UI-Implementierung. Weitere relevante Inhalte zum Popup-Fenster der Vue+Element-UI finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Vue implementiert eine Tabellen-Popup-Komponente basierend auf Element-ui
  • Lösung für das Problem des wiederholten Auftauchens des Nachrichten-Popup-Fensters von Element
  • Schritte zum Kapseln von Element-UI-Popupkomponenten
  • Implementierung eines universellen Popup-Fensters von Vue+ElementUI (Hinzufügen+Bearbeiten)
  • Lösung für den Fehler beim Schließen des Dialog-Popup-Fensters in Element-UI
  • Detaillierte Erläuterung des Problems zwischen Popup-Fenstern mithilfe von Element-UI und E-Charts in Vue
  • Element ändert die Implementierung der Ebene der Popup-Fensterkomponenten

<<:  Das neueste grafische Tutorial zur Installation und Konfiguration von MySQL 5.7.23

>>:  Detaillierte Erklärung der nmcli-Verwendung in CentOS8

Artikel empfehlen

Detaillierte Erklärung zum Ein- und Aussteigen aus dem Docker-Container

1 Starten Sie den Docker-Dienst Zuerst müssen Sie...

So verwenden Sie Mixins in Vue

Inhaltsverzeichnis Vorwort Anwendung Zusammenfass...

Der Unterschied zwischen this.$router und this.$route in Vue und der push()-Methode

Im offiziellen Dokument heißt es: Durch Einfügen ...

So löschen Sie die Validierungsaufforderung bei der Elementformularvalidierung

Inhaltsverzeichnis Problemszenario: Lösung: 1. Üb...

HTML+CSS zum Erstellen eines Menüs in der oberen Navigationsleiste

Navigationsleiste erstellen: Technische Vorausset...

js realisiert den Lupeneffekt von Produkten auf Einkaufswebsites

In diesem Artikel wird der spezifische Code von j...

Analyse der Nutzungsszenarien und Konfigurationsmethoden von Nginx Rewrite

Nginx Rewrite-Nutzungsszenarien 1. Sprung der URL...

Der Unterschied zwischen HTML-Iframe und Frameset_PowerNode Java Academy

Einführung 1. <iframe>-Tag: Ein Iframe ist ...

XHTML-Tags sollten richtig verwendet werden

<br />In früheren Tutorials von 123WORDPRESS...

Beispielcode zur Implementierung der PC-Auflösungsanpassung in Vue

Inhaltsverzeichnis planen Abhängigkeiten installi...

Installieren Sie ein CentOS-System basierend auf WindowsX Hyper-V

Derzeit nutzen die meisten Linux-Benutzer entwede...

Detaillierte Erklärung der Funktionsweise von Nginx

So funktioniert Nginx Nginx besteht aus einem Ker...