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 Bewegen Sie die Maus über das Projektübersichtssymbol EffektrealisierungIn 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 <!-- 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> {{scope.row.equInspectplanItemList.length}} 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 /** * 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; }, ZusammenfassenDies 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:
|
<<: Das neueste grafische Tutorial zur Installation und Konfiguration von MySQL 5.7.23
>>: Detaillierte Erklärung der nmcli-Verwendung in CentOS8
Beinhaltet den Prozess der Initialisierung des Ro...
beschreiben Beim Aufruf dieser Schnittstelle müss...
Inhaltsverzeichnis Hintergrund Problemort Weitere...
Was ist eine Richtlinie? Sowohl Angular als auch ...
Ich habe kürzlich den Aushöhlungseffekt untersuch...
Inhaltsverzeichnis Frage verlängern Lösung des Pr...
Daten initialisieren Tabelle löschen, wenn `test_...
<div id="Wurzel"> <h2>Mach ...
1. Laden Sie mysql-8.0.15 herunter, installieren ...
1. Funktionseinführung sed (Stream EDitor) ist ei...
Als ich kürzlich kazam in Ubuntu 20.04 zur Aufzei...
Inhaltsverzeichnis Variablenbereich Das Konzept d...
Das Problem ist folgendes: Ich habe den Befehl my...
Der Code kann noch weiter optimiert werden. Aus Z...
Inhaltsverzeichnis 1. Array.at() 2. Array.copyWit...