vue简单实现购物车结算功能

 更新时间:2022年04月14日 07:50:32   作者:Amnesia�  
这篇文章主要为大家详细介绍了vue简单实现购物车结算功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了vue简单实现购物车结算的具体代码,供大家参考,具体内容如下

样式没有写

<template>
 <div class="about container">
   <button class="btn btn-default">
     <router-link to="/customers">返回主页</router-link>
   </button>
   <button>获取数据</button>
   <ul>
     <li v-for="(item,index) in this.list" :key="index">
       <div>
         <input type="checkbox" v-model="item.checked" />
         <span>{{item.title}}</span>
         <button class="btn btn-default" @click="reduce(index)">-</button>
         <span>{{item.num}}</span>
         <button class="btn btn-default" @click="add(index)">+</button>
         <span>价格:{{item.price}}</span>
         <button @click="del(index,item._id)" class="btn btn-default">删除</button>
       </div>
     </li>
   </ul>
   <input type="checkbox" v-model="allcheck" @click="checkall" />
   <button>合计:{{totalMoney}}</button>
 </div>
</template>

<script>
export default {
 name: "about",
 // 调用app.vue组件中的方法
 inject: ["reload"],
 data() {
   return {
     list: [],

     allcheck: false
   };
 },

 methods: {
   async getproduct() {
     const res = await this.$http.get("/goodslist");
     this.list = res.data;
     localStorage.setItem("shoppingcart", JSON.stringify(this.list));
     console.log(this.list);
   },
   add(i) {
     this.list[i].num++;
   },
   reduce(i) {
     if (this.list[i].num <= 1) {
       this.list[i].num = 0;
       return;
     }
     this.list[i].num--;
   },
   checkall() {
     //   console.log(this.allcheck);
     console.log(event.target.checked);
     this.list.forEach(item => {
       item.checked = event.target.checked;
       // console.log(item._id)
     });
   },
   async del(i, id) {
     const res = await this.$http.delete("/delfile/" + id);
     console.log(res);
     this.reload();
   }
 },
 computed: {
   totalMoney() {
     let allmoney = 0;
     let isAllCheck = true;
     for (let i in this.list) {
       if (this.list[i].checked) {
         allmoney += this.list[i].price * this.list[i].num;
       } else {
         isAllCheck = false;
       }
     }
     this.allcheck == isAllCheck;
     return allmoney;
   }
 },
 created() {
   this.getproduct();
 }
};
</script>

<style>
li {
 list-style: none;
}
</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Vue使用formData格式类型上传文件的示例

    Vue使用formData格式类型上传文件的示例

    这篇文章主要介绍了Vue使用formData格式类型上传文件的示例代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • 使用table做成树形结构的table

    使用table做成树形结构的table

    这篇文章主要介绍了使用table做成树形结构的table问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • vue3获取ref实例结合ts的InstanceType问题

    vue3获取ref实例结合ts的InstanceType问题

    这篇文章主要介绍了vue3获取ref实例结合ts的InstanceType问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Vue Router路由hash模式与history模式详细介绍

    Vue Router路由hash模式与history模式详细介绍

    Vue Router是Vue.js官方的路由管理器。它和Vue.js的核心深度集成,让构建单页面应用变得易如反掌。路由实际上就是可以理解为指向,就是我在页面上点击一个按钮需要跳转到对应的页面,这就是路由跳转
    2022-08-08
  • Vue中TypeScript和Pinia使用方法

    Vue中TypeScript和Pinia使用方法

    这篇文章主要介绍了Vue中TypeScript和Pinia使用方法,让我们来看一个简单的示例来演示TypeScript 和 Pinia的强大之处,需要的朋友可以参考下
    2023-07-07
  • Vue路由元信息与懒加载和模块拆分详细介绍

    Vue路由元信息与懒加载和模块拆分详细介绍

    有时,你可能希望将任意信息附加到路由上,如过渡名称、谁可以访问路由等。这些事情可以通过接收属性对象的meta属性来实现,并且它可以在路由地址和导航守卫上都被访问到
    2022-09-09
  • vue中window.onresize的使用解析

    vue中window.onresize的使用解析

    这篇文章主要介绍了vue中window.onresize的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vant主题定制如何修改颜色样式

    Vant主题定制如何修改颜色样式

    这篇文章主要介绍了Vant主题定制如何修改颜色样式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue3中如何使用component :is 加载组件

    Vue3中如何使用component :is 加载组件

    Monaco-editor,一个vs code 编辑器,需要将其集成到项目,这篇文章主要介绍了Vue3中如何使用component :is 加载组件,需要的朋友可以参考下
    2023-11-11
  • 详解使用vue实现tab 切换操作

    详解使用vue实现tab 切换操作

    这篇文章主要介绍了详解使用vue实现tab操作,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07

最新评论