Vue simuliert die Warenkorb-Abrechnungsfunktion

Vue simuliert die Warenkorb-Abrechnungsfunktion

In diesem Artikelbeispiel wird der spezifische Code von Vue zur Realisierung der Warenkorbabwicklungsfunktion zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt

<!DOCTYPE html>
<html lang="de">
<Kopf>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-kompatibel" content="IE=edge">
    <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0">
    <title>Dokument</title>
    <script src="js/vue.js" type="text/javascript"></script>
    <script src="js/jquery-3.6.0.js" type="text/javascript"></script>
    <style type="text/css">
        * {
            Polsterung: 0;
            Marge: 0
        }
        
        A {
            Textdekoration: keine;
        }
        .container {
            Breite: 500px;
            Rand: 10px automatisch;
        }
        
        .Titel {
            Breite: 500px;
            Höhe: 50px;
            Textausrichtung: zentriert;
            Zeilenhöhe: 50px;
            Schriftgröße: 20px;
            Hintergrundfarbe: blasses Türkis;
        }
        
        .Artikel {
            Position: relativ;
            Höhe: 50px;
            Rahmen unten: 1px durchgehend blasses Türkis;
        }
        
        .item img {
            schweben: links;
            Breite: 100px;
            Höhe: 50px;
        }
        
        .Artikel .Preis {
            Position: absolut;
            schweben: links;
            Breite: 120px;
            Rand links: 10px;
            oben: 15px;
            links: 100px;
        }
        
        .Artikel .Ändern {
            Position: absolut;
            links: 220px;
            oben: 15px;
            schweben: links;
            Breite: 200px;
        }
        
        .ändere ein {
            schweben: links;
            Anzeige: Block;
            Breite: 20px;
            Höhe: 20px;
            Schriftgröße: 18px;
            Textausrichtung: zentriert;
            Zeilenhöhe: 20px;
            Hintergrundfarbe: #ccc;
        }
        
        .Eingabe ändern {
            schweben: links;
            Breite: 50px;
            Rand: 0,5px;
        }
        
        .item .del {
            Position: absolut;
            oben: 8px;
            links: 420px;
            Farbe: rot;
            Schriftgröße: 24px;
        }
        
        .item .del:hover {
            oben: 0;
            Höhe: 50px;
            Hintergrundfarbe: blau;
        }
        
        .gesamt {
            Position: relativ;
            Breite: 500px;
            Höhe: 50px;
            Hintergrundfarbe: Kornblumenblau;
        }
        
        .total span {
            Position: absolut;
            oben: 14px;
            links: 250px;
        }
        
        .total span em {
            Farbe: rot;
            Schriftstil: normal;
            Schriftgröße: 20px;
        }
        
        .total-Schaltfläche {
            Position: absolut;
            oben: 8px;
            links: 400px;
            Breite: 50px;
            Höhe: 35px;
            Randradius: 25 %;
            Rand: keiner;
            Gliederung: keine;
            Hintergrundfarbe: Tomate;
        }
    </Stil>
 
</Kopf>
<Text>
    <div id="app">
 
  <div>
    <div Klasse="Container">
        <mein-Warenkorb></mein-Warenkorb>
    </div>
  </div>
  
    </div>
    <Skripttyp="text/javascript">
   // Drei Unterkomponenten var CartTitle = {
            Requisiten: ['uname'],
            Vorlage: `<div class="title">{{uname}}'s Produkte</div>`
        }
        var Warenkorbliste = {
            Requisiten: ['Liste'],
            Vorlage: ` <div Klasse="Liste">
                    <div class="item" :key="item.id" v-for="Artikel in Liste">
                        <img :src="item.img" alt="">
                        <div class="Preis">{{item.price}}¥/Stück</div>
                        <div Klasse="ändern">
                            <a href="" @click.prevent=" sub(item.id)">-</a>
                            <Eingabetyp="Text" Klasse="Nummer" :Wert="Artikel.Nummer" @blur="Änderungsnummer(Artikel.ID,$Event)">
                            <a href="" @click.prevent=" hinzufügen(item.id)">+</a>
                        </div>
                        <div class="del" @click="del(item.id)">×</div>
                    </div>
                </div>
                    `,
            Methoden: {
                // Übergebe die zu löschende ID an die übergeordnete Komponente
                del: Funktion(id) {
                    // konsole.log(id);
                    dies.$emit("del-cart", id);
                },
                // Anzahl der Formulareingaben ändern changenum: function(id, event) {
                    //Konsole.log(ID, Ereignis.Ziel.Wert);
                    // An die übergeordnete Komponente übergeben und dann die Menge ändern this.$emit('change-num', {
                        Ich würde: Ich würde,
                        Num: Ereignis.Ziel.Wert
                    })
                },
                // Klicken Sie auf die Minus-Schaltfläche sub: function(id) {
                    dies.$emit('Unternummer', ID);
                },
                //Klicken Sie auf die Plus-Schaltfläche. add: function(id) {
                    dies.$emit('add-num', id);
                }
            }
        }
        var Warenkorbgesamt = {
                Requisiten: ['Liste'],
                Vorlage: `<div class="total">
                    <span>Gesamtpreis: <em>{{total}}</em>¥</span>
                    <button>Zur Kasse</button>
                </div>`,
                berechnet: {
                    insgesamt: Funktion() {
                        var Summe = 0;
                        diese.Liste.fürJeden(Element => {
                            Summe += Artikelpreis * Artikelnummer;
                        });
                        Rücklaufsumme;
                    }
                }
            }
            // Definieren Sie die übergeordnete Komponente Vue.component('my-cart', {
            Daten: Funktion() {
                zurückkehren {
                    uname: 'Ich',
                    Liste: [{
                        ID: 1,
                        Name: 'Anta Schuhe',
                        Preis: 260,
                        Zahl: 1,
                        img: 'img/a.jpg'
                    }, {
                        ID: 2,
                        Name: 'Haier Warmwasserbereiter',
                        Preis: 2000,
                        Zahl: 1,
                        img: 'img/hai.jpg'
                    }, {
                        ID: 3,
                        Name: "iPhone",
                        Preis: 7000,
                        Zahl: 1,
                        img: 'img/iphone.jpg'
                    }, {
                        ID: 4,
                        Name: „Huawei-Handy“,
                        Preis: 4500,
                        Zahl: 1,
                        img: 'img/h.jpg'
                    }]
                }
            },
            Vorlage: `<div class="mycart">
                <cart-title :uname="uname"></cart-title>
                <cart-list :list="Liste" @del-cart="delcart($event)" @change-num="changeNum($event)" @sub-num="subnum($event)" @add-num="addnum($event)"></cart-list>
                <cart-total :list="Liste"></cart-total>
                </div>`,
            Komponenten:
                'Warenkorb-Titel': Warenkorbtitel,
                'Warenkorbliste': Warenkorbliste,
                'Warenkorb-Gesamt': WarenkorbGesamt,
            },
            Methoden: {
                delcart: Funktion(ID) {
                    // Lösche die entsprechenden Daten in der Liste entsprechend der ID // 1. Finde den Index der Daten, die der ID entsprechen var index = this.list.findIndex(item => {
                        gibt item.id == id zurück;
                    });
                    // 2. Löschen Sie die entsprechenden Daten entsprechend dem Index this.list.splice(index, 1);
                },
                //Ändere die Nummer num in der Liste entsprechend der ID
                Änderungsnummer: Funktion(Wert) {
                    //Konsole.log(Wert);
                    diese.Liste.einige(Element => {
                        wenn (item.id == val.id) {
                            Artikelnummer = Wertnummer;
                        }
                    })
                },
                //Minuszeichen zur Reduzierung der Zahl
                Unternummer: Funktion (Ereignis) {
                    // console.log(event); event ist die angeklickte ID-Nummer this.list.some(item => {
                        wenn (item.id == event && item.num > 0) {
                            Artikelnummer--;
                        }
                    })
                },
                // Pluszeichen erhöht die Zahl
                Zusatznummer: Funktion(Ereignis) {
                    diese.Liste.einige(Element => {
                        wenn (item.id == event) {
                            Artikel.num++;
                        }
                    })
                }
            }
        });
        var vm = neuer Vue({
            el: "#app",
            Daten: {
 
            }
        });
 
    
    </Skript>
    
</body>
</html>

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 implementiert Warenkorb-Abrechnungsfunktion
  • Vue realisiert die Berechnung des Gesamtpreises des Einkaufswagens

<<:  Beispiele für die Erstellung und Verwendung von MySQL-Triggern

>>:  Detaillierte Erklärung der MySQL-Datumsadditions- und -subtraktionsfunktionen

Artikel empfehlen

Analyse des MySQL-Warnprotokolls zu abgebrochenen Verbindungen

Vorwort: Manchmal wird die mit MySQL verbundene S...

Detaillierte Erläuterung des Lese-Commits der MySQL-Transaktionsisolationsebene

MySQL-Transaktionsisolationsebene anzeigen mysql&...

Detailliertes Tutorial zum Konfigurieren der lokalen Yum-Quelle in CentOS8

Die Centos8-Distribution wird über die BaseOS- un...

Reagieren Sie mit Beispielcode zur Implementierung des Anmeldeformulars

Als Vue-Benutzer ist es an der Zeit, React zu erw...

Tutorial zur Docker-Installation in einer Linux-Umgebung

1. Installationsumgebung Docker unterstützt die f...

Einfache Schritte zum Erstellen eines MySQL-Containers mit Docker

Vorwort Wir haben Docker bereits installiert und ...

Detaillierte Erklärung der Speicher-Engine in MySQL

Übersicht über die MySQL-Speicher-Engine Was ist ...

Ein kurzer Vortrag über den Diff-Algorithmus in Vue

Inhaltsverzeichnis Überblick Virtueller Dom Prinz...

Tutorial zur kostenlosen Konfiguration der MySQL 5.7.18-Installationsversion

Installations-Tutorial zur kostenlosen Installati...

Der gesamte Prozessbericht der Vue-Exportfunktion für Excel

Inhaltsverzeichnis 1. Front-End-Führungsprozess: ...

Mysql5.7.14 Linux-Version Passwort vergessen perfekte Lösung

Fügen Sie in der Datei /etc/my.conf unter [mysqld...