Detaillierter Vue-Code zur Implementierung der Shuttle-Box-Funktion

Detaillierter Vue-Code zur Implementierung der Shuttle-Box-Funktion

Vue - Implementierung der Shuttle-Box-Funktion. Das Effektdiagramm ist wie folgt:

CSS

.überweisen{
    Anzeige: Flex;
    Inhalt ausrichten: zentriert;
    Elemente ausrichten: zentrieren;
}
.transfer>.list {
    Breite: 200px;
    Höhe: 300px;
    Rand: 1px durchgezogen #000;
    Listenstil: keiner;
}
.Inhalt{
    Schriftgröße: 30px;
    Rand: 0 20px;
}
.list>li{
    Polsterung: 5px;
    Box-Größe: Rahmenbox;
}

HTML

<div Klasse="Übertragung" >
    <!-- Linker Rahmen -->
    <ul class="Liste links">
        <template v-for="(Element, Index) in Info">
            <li :Schlüssel="index">
                <input type="checkbox" :id=`checkbox${item.id}` name="checkbox" :geprüft="item.select" @click="item.select=!item.select" />
                <label :for=`checkbox${item.id}` >{{ item.name }} </label>
            </li>
        </Vorlage>
    </ul>

    <!-- Hinzufügen/Entfernen -->
    <div Klasse="Inhalt">
        <p Klasse="drücken" @click='drücken' >>>></p>
        <p class="del" @click='del' ><<<</p>
    </div>

    <!-- Rechter Rahmen -->
    <ul Klasse="Liste rechts">
        <template v-for="(item, index) in new_info">
            <li :Schlüssel="Index" >
                <input type="checkbox" :id=`neueCheckbox${item.id}` name="neueCheckbox" :checked="item.select" @click="item.select=!item.select" />
                <label :for=`newcheckbox${item.id}`>{{ item.name }} </label>
            </li>
        </Vorlage>
    </ul>
</div>

js

Daten(){
    zurückkehren {
        // Originaldaten, Dateninfo für linken Frame:[
            {id:'1',name:'Xiao Ming'},
            {id:'2',name:'Xiaohong'},
            {id:'3',name:'Huhn'},
            {id:'4',name:'Hahahaha'},
            {id:'5',name:'Ahhhhh'},
            {id:'6',name:'dddd'},
            {id:'7',name:'qwert'},
        ],
        new_info: [], // Neue Daten, Daten des rechten Frames}
},
Methoden: {// Daten hinzufügen push(){
        lass das = dies;
        let info = JSON.parse(JSON.stringify(that.info)); // Originaldaten kopieren, tiefe Kopie info.forEach((item, index )=>{
            // Daten ausführen, bei denen select true ist, wenn (item.select){
                that.new_info = that.new_info.concat(item).sort((a,b)=>{ return a.id - b.id }); // Zum neuen Datenrahmen hinzufügen, sortieren delete info[index]; // Daten löschen item.select = false; 
            }
        })
        info = info.filter(function (val) { return val }); // Filter undefiniert 
        that.info = info; // Originaldaten aktualisieren\
    },
    // Daten entfernen del(){
        lass das = dies;
        let info = JSON.parse(JSON.stringify(that.new_info)); // Originaldaten kopieren, tiefe Kopie info.forEach((item, index )=>{
            // Daten ausführen, bei denen select true ist, wenn (item.select){
                that.info = that.info.concat(item).sort((a,b)=>{ return a.id - b.id }); // Zum neuen Datenrahmen hinzufügen, sortieren delete info[index]; // Daten löschen item.select = false;
            }
        })
        info = info.filter(function (val) { return val }); // Filter undefiniert 
        that.new_info = info; // Originaldaten aktualisieren},
},

montiert(){
    lass das = dies;
    // Fügen Sie den Originaldaten ein Auswahlfeld hinzu, um zu bestimmen, ob sie ausgewählt sind that.info.map((val,key)=>{ that.$set(val,'select',false) });
}

************************************************************************************************************************************************************

Bei der Verwendung von Splice zum Löschen von Daten treten hier Probleme auf: this.info.splice(index,1); Wenn mehrere Elemente ausgewählt sind, werden Sie feststellen, dass nur einige der Elemente gelöscht werden und einige der ausgewählten Elemente noch vorhanden sind, da sich beim Löschen eines Elements der Index des Arrays ändert und dadurch ein Programmfehler auftritt. Daher wird „Löschen“ verwendet, um die Daten zu löschen und dann „undefiniert“ zu filtern. Die allgemeine Idee ist: Fügen Sie den Daten ein Auswahlfeld hinzu, binden Sie es an das aktivierte Feld des Multiple-Choice-Felds und wenn Sie darauf klicken, wird das Feld invertiert. Beim Übertragen von Daten werden nur die Daten mit „Select“ als „true“ ausgeführt, dem neuen Datenrahmen hinzugefügt und dann der ursprüngliche gelöscht.

Dies ist das Ende dieses Artikels über den detaillierten Code von Vue zur Implementierung der Shuttlebox-Funktion. Weitere verwandte Inhalte zur Vue-Shuttlebox 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 Shuttle-Box ermöglicht Auf- und Abbewegung
  • Implementierungsbeispiel einer Vue3+TypeScript-Shuttlebox
  • Detaillierte Erklärung zur Verwendung des Shuttle-Frames in VUE Element-ui
  • Vue realisiert den Shuttle-Box-Effekt
  • Vue führt den Shuttle-Frame für Element-Transfer auf Anfrage ein

<<:  Eine kurze Erläuterung des CSS-Überlaufmechanismus

>>:  Detaillierte Analyse der Unterschiede zwischen break und last in Nginx

Artikel empfehlen

Anweisungen zum Erlernen von Vue

Inhaltsverzeichnis 1. v-Text (v-Befehlsname = „Va...

MySQL Master-Slave-Prinzip und Konfigurationsdetails

MySQL Master-Slave-Konfiguration und Prinzip, zu ...

MySQL 5.7.12 Installations- und Konfigurations-Tutorial unter Mac OS 10.11

So installieren und konfigurieren Sie MySQL auf M...

Docker startet im Status „Beendet“

Nach dem Docker-Lauf ist der Status immer „Beende...

So prüfen Sie, ob Daten vorhanden sind, bevor Sie sie in MySQL einfügen

Geschäftsszenario: Der Besuchsstatus des Besucher...

So handhaben Sie Bilder in Vue-Formularen

Frage: Ich habe in Vue ein Formular zum Hochladen...

Detaillierte Erklärung des Json-Formats

Inhaltsverzeichnis Ein JSON basiert auf zwei Stru...

Einführung in semantische XHTML-Tags

Der erste Punkt ist, dass Menschen die Semantik vo...

Lösung für den Fehler bei der Installation von Docker auf der CentOS-Version

1. Versionsinformationen # Katze /etc/system-rele...

Grafisches Tutorial zur Installation von MySQL 5.5 unter Win7

Die MySQL-Installation ist relativ einfach. Norma...

Ursachen und Lösungen für den MySQL-Fehler „zu viele Verbindungen“

Inhaltsverzeichnis Kurzzusammenfassung Heute Mitt...

Einführung in die Anwendung der HTML-Tags superscript sup und subscript sub

HTML-Tag: hochgestellt In HTML definiert das <s...

Detaillierte Erklärung der MySQL-Alter-Ignore-Syntax

Als ich heute bei der Arbeit war, wurde mir von d...