一个简洁的vue实现购物车功能

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #box {
            width: 1200px;
            margin: 0 auto;
        }

        table {
            width: 1200px;
            margin: 0 auto;
            border: 1px solid #000;
            border-collapse: collapse;
            table-layout: fixed;
            text-align: center;
        }

        td {
            border: 1px solid #000;
        }

        img {
            width: 50px;
        }
    </style>
</head>

<body>
    <!-- shoppingTrolley -->
    <div id="box">
        <input @change="Allchecked" type="checkbox" v-model="isAll" />全选/全不选
        <table>
            <tr v-for="(obj,i) in arr">
                <td><input @change="Itemchecked" type="checkbox" v-model="checklist" :value="obj" /></td>
                <td>{{obj.id}}</td>
                <td><img :src="obj.src" /></td>
                <td>{{obj.name}}</td>
                <td>{{obj.price}}</td>
                <td>
                    <button @click="obj.count--" :disabled="obj.count==1">-</button>
                    {{obj.count}}
                    <button @click="obj.count++" :disabled="obj.count==obj.limit">+</button>
                </td>
                <td><button @click="deleteItem(i,obj.id)">删除</button></td>
            </tr>
        </table>
        <div>总金额:{{computedSum}}</div>
    </div>

    <script src="../vue.global.js"></script>
    <script>
        Vue.createApp({
            data() {
                return {
                    isAll: false,
                    checklist: [],
                    arr: [
                        { "id": 1001, "name": '可口可乐', "price": 2.5, "count": 1, "limit": 5, "src": "img/logo.png" },
                        { "id": 1003, "name": '百事可乐', "price": 2.5, "count": 1, "limit": 10, "src": "img/logo.png" },
                        { "id": 1011, "name": '非常可乐', "price": 2.3, "count": 1, "limit": 5, "src": "img/logo.png" },
                        { "id": 1012, "name": '天府可乐', "price": 2.3, "count": 1, "limit": 15, "src": "img/logo.png" },
                        { "id": 1013, "name": '地府可乐', "price": 2.3, "count": 1, "limit": 5, "src": "img/logo.png" },
                        { "id": 1014, "name": '阳间可乐', "price": 2.3, "count": 1, "limit": 20, "src": "img/logo.png" },
                        { "id": 1015, "name": '阴间可乐', "price": 2.3, "count": 1, "limit": 5, "src": "img/logo.png" },
                    ]
                }
            },
            methods: {
                Allchecked() {
                    if (this.isAll) {
                        this.checklist = this.arr;
                    } else {
                        this.checklist = [];
                    }
                },
                Itemchecked() {
                    if (this.checklist.length == this.arr.length) {
                        this.isAll = true;
                    } else {
                        this.isAll = false;
                    }
                },
                deleteItem(i, id) {
                    this.arr.splice(i, 1);

                    this.checklist = this.checklist.filter(item => item.id !== id);
                }
            },
            computed: {
                computedSum() {
                    var total = 0;

                    this.checklist.forEach(obj => {
                        total += obj.price * obj.count;
                    })

                    return total;
                },
            }
        }).mount("#box")
    </script>
</body>

</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
实现购物车功能需要结合Spring Boot和Vue框架,以下是一种可能的实现方案。 首先,在Spring Boot中创建商品和购物车相关的数据模型和数据库表结构。可以创建商品表、购物车表,以及中间表来建立商品和购物车之间的关系。通过JPA或者MyBatis等框架与数据库进行交互,实现增删改查等基本的数据操作。 接下来,使用Spring Boot创建商品和购物车相关的接口。可以创建商品的添加、删除、修改等接口,以及购物车的商品添加、删除、修改接口。在接口中,可以处理一些逻辑,比如商品添加到购物车时可以判断购物车是否已存在该商品,如果存在则数量增加,不存在则添加新的购物车项。 在Vue中,创建商品列表和购物车页面。可以使用axios等工具从后端获取商品列表,并展示给用户。用户在页面上可以点击“加入购物车”按钮,将选中的商品添加到购物车中。在购物车页面,展示当前用户已添加的购物车商品列表,并实现数量增减和删除的功能。每次数量改变或删除操作时,通过接口与后端进行数据交互,更新购物车中的商品信息。 在Vue中,还需要实现购物车商品总价的计算和结算功能。可以通过遍历购物车商品列表,计算每个商品的小计,再将所有小计相加得到总价。用户点击结算按钮时,可以将购物车商品列表传递给后端进行支付操作。 以上是基本的购物车功能实现方案。当然,具体实现过程中可能还会涉及到其他细节问题,比如商品详情展示、用户登录、权限控制等,需要根据实际需求进一步完善和实现
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值