购物车

作者: 一叶扁舟丶 | 来源:发表于2018-10-18 19:22 被阅读40次

    index.html:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>购物车示例</title>
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
    
    
        <div id="app" v-cloak>
            <template v-if="list.length">
                <thead>
                    <tr>
                        <th></th>
                        <th>商品名称</th>
                        <th>购买单价</th>
                        <th>购买数量</th>
                        <th>操作</th>
                    </tr>
                </thead>
                <tbody>
                    <tr v-for="(item, index) in list">
                        <td>{{ index + 1 }}</td>
                        <td>{{ item.name }}</td>
                        <td>{{ item.price }}</td>
                        <td>
                            <button
                                @click="handleReduce(index)"
                                :disabled="item.count === 1">-</button>
                            {{ item.count }}
                            <button @click="handleAdd(index)">+</button>
                        </td>
                        <td>
                            <button @click="handleReduce(index)">移除</button>
                        </td>
                    </tr>
                </tbody>
                <div>总价: $ {{ totalPrice }}</div>
            </template>
            <div v-else>购物车为空</div>
        </div>
    
        <script src="https://unpkg.com/vue/dist/vue.min.js"></script>
        <script src="index.js"></script>
    
    </body>
    </html>
    

    index.js:

    var app = new Vue ({
        el: '#app',
        data: {
            list: [
                {
                    id: 1,
                    name: 'iPhone x',
                    price: 6799,
                    count: 1
                },
                {
                    id: 2,
                    name: 'iPad Pro',
                    price: 9999,
                    count: 1
                },
                {
                    id: 3,
                    name: 'MacBkko Pro',
                    price: 25999,
                    count: 1
                }
            ],
            a: 5
        },
    
        computed: {
            totalPrice: function () {
                var total = 0;
                for (var i = 0; i < this.list.length; i++) {
                    var item = this.list[i];
                    total += item.price * item.count;
                }
    
                return total.toString().replace(/\B(?=(\d{3})+$)/g,',');
            }
        },
        methods: {
            handleReduce: function (index) {
                if (this.list[index].count === 1) return;
                this.list[index].count--;
    
            },
            handleAdd: function (index) {
                this.list[index].count++;
            },
            handleRemove: function () {
                this.list.splice(index, 1);
            }
        }
    
    })
    

    style.css:

    [v-cloak] {
        disPlay: none;
    }
    table {
        border: 1px solid #e9e9e9;
        border-collapse: collapse;
        border-spacing: 0;
        empty-cells: show;
    }
    th,td {
        padding: 8px 16px;
        border: 1px solid #e9e9e9;
        text-align: left;
    }
    th {
        background: #f7f7f7;
        color: #5c6b77;
        font-weight: 600;
        white-space: nowrap;
    }
    

    相关文章

      网友评论

        本文标题:购物车

        本文链接:https://www.haomeiwen.com/subject/djwszftx.html