vue实现购物车选择功能


Posted in Javascript onJanuary 10, 2020

使用vue制作一个购物车功能,只是一个测试版本,注重的是功能实现,界面并没有做好,数据也是模拟数据等

vue实现购物车选择功能

不说那么多,直接上代码

<template>
 <div id="app">
 
 全选<input type="checkbox" v-model="checkall" @change="check_all()">
 <div v-for="(item,index) in mylist" :key="index">
  <span>{{item.oname}}</span><input type="checkbox" v-model="item.this_all" @change="check_list(index)">
  <p v-for="(goods,nindex) in item.newlist" :key="nindex">
  <input type="checkbox" v-model="goods.check_one" @change="click_input(index,nindex)">{{goods.newname}}--{{goods.price}}元
  </p>
  
 </div>
 <p>总价:{{allprice}}</p>
 <button @click="btn()">提交订单</button>
 
 </div>
</template>
 
<script>
export default {
 name: 'App',
 data(){
  return{
   mylist:[
    {oname:"第一个",this_all:true,newlist:[{newname:"篮球",check_one:true,price:600},{newname:"足球",check_one:true,price:200},{newname:"滑雪",check_one:true,price:150}]},
    {oname:"第二个",this_all:true,newlist:[{newname:"西瓜",check_one:true,price:35},{newname:"桃子",check_one:true,price:20}]},
    {oname:"第三个",this_all:true,newlist:[{newname:"英雄联盟",check_one:true,price:200}]},
 
   ],
   checkall:true,
   allprice:0,
   cpmylist:[]
  }
 },
 mounted:function(){
  this.money();
 },
 
 methods: {
 money:function(){
 var that = this;
 this.allprice=0;
 that.mylist.forEach(item1 =>{
  item1.newlist.forEach(item2 =>{
  if(item2.check_one==true){
   that.allprice+=item2.price;
  }
  })
 })
 
 },
 check_all:function(){
 var that = this;
 that.mylist.forEach(item1 => {
  item1.this_all=that.checkall
  item1.newlist.forEach(item2 => {
  item2.check_one=that.checkall
  })
 });
 that.money();
 },
 
 abc:function(){
 var that = this;
  var aaa = that.mylist.filter(item2 =>{
  return item2.this_all==true
 })
 aaa.length==that.mylist.length ? that.checkall = true : that.checkall = false
 that.money();
 },
 
 check_list:function(i){
 var that = this;
 that.mylist[i].newlist.forEach(item1 =>{
  item1.check_one=that.mylist[i].this_all
 })
 that.abc();
 
 },
 
 click_input:function(i,j){
 var that = this;
 var checklist = that.mylist[i].newlist.filter(item1 =>{
  return item1.check_one==true
 })
 
 checklist.length==that.mylist[i].newlist.length ? that.mylist[i].this_all = true : that.mylist[i].this_all = false
 that.abc();
 
 },
 
 btn:function(){
 var that = this; 
 
 
 that.cpmylist=JSON.parse(JSON.stringify(that.mylist));
 that.cpmylist.filter(item1 =>{
  item1.newlist = item1.newlist.filter(item2 =>{
  return item2.check_one==true
  })
 })
 that.cpmylist=that.cpmylist.filter(item3 =>{
  return item3.newlist.length!=0
 })
 
 if(that.cpmylist.length==0){
  alert("请选择商品哦!")
 }else{
 
  console.log("★★★您购买的商品是:");
  that.cpmylist.forEach(item4 =>{
  console.log("----------"+item4.oname+"店铺----------");
  item4.newlist.forEach(item5 =>{
   console.log("——>:"+item5.newname);
  })
  })
 }
 }
 },
 
}
</script>
 
<style>
#app {
 font-family: 'Avenir', Helvetica, Arial, sans-serif;
 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
 text-align: center;
 color: #2c3e50;
 margin-top: 60px;
}
</style>

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

Javascript 相关文章推荐
[原创]图片分页查看
Aug 28 Javascript
javascript中检测变量的类型的代码
Dec 28 Javascript
基于JQuery的一句话搞定手风琴菜单
Sep 14 Javascript
angularjs 处理多个异步请求方法汇总
Jan 06 Javascript
jQuery鼠标事件总结
Oct 13 Javascript
js实现选项卡内容切换以及折叠和展开效果【推荐】
Jan 08 Javascript
深入理解React高阶组件
Sep 28 Javascript
Vue 去除路径中的#号
Apr 19 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
May 16 Javascript
layui问题之模拟select点击事件的实例讲解
Aug 15 Javascript
详解js中Array的方法及技巧
Sep 12 Javascript
微信小程序实现下拉框功能
Jul 16 Javascript
webpack proxy 使用(代理的使用)
Jan 10 #Javascript
基于vue-draggable 实现三级拖动排序效果
Jan 10 #Javascript
bootstrap实现嵌套模态框的实例代码
Jan 10 #Javascript
jQuery操作动画完整实例分析
Jan 10 #jQuery
基于JavaScript判断两个对象内容是否相等
Jan 10 #Javascript
jQuery操作事件完整实例分析
Jan 10 #jQuery
jQuery操作元素追加内容示例
Jan 10 #jQuery
You might like
定制404错误页面,并发信给管理员的程序
2006/10/09 PHP
怎样在php中使用PDF文档功能
2006/10/09 PHP
MYSQL数据库初学者使用指南
2006/11/16 PHP
WindowsXP中快速配置Apache+PHP5+Mysql
2008/06/05 PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
2013/06/27 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
laravel框架 laravel-admin上传图片到oss的方法
2019/10/13 PHP
jquery ready()的几种实现方法小结
2010/06/18 Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
2013/11/13 Javascript
基于JavaScript实现添加到购物车效果附源码下载
2016/08/22 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
JS实现中国公民身份证号码有效性验证
2017/02/20 Javascript
@ResponseBody 和 @RequestBody 注解的区别
2017/03/08 Javascript
Angularjs单选框相关的示例代码
2017/08/17 Javascript
vue 每次渲染完页面后div的滚动条保持在最底部的方法
2018/03/17 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
jQuery实现穿梭框效果
2021/01/19 jQuery
Python简单遍历字典及删除元素的方法
2016/09/18 Python
Python 中 list 的各项操作技巧
2017/04/13 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
使用python绘制二元函数图像的实例
2019/02/12 Python
video下autoplay属性无效的解决方法(添加muted属性)
2020/05/19 HTML / CSS
英国领先的维生素和营养补充剂直接供应商:Healthspan
2019/04/22 全球购物
世界上最大的冷却器制造商:Igloo Coolers
2019/07/23 全球购物
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
优秀医生事迹材料
2014/02/12 职场文书
校园安全演讲稿
2014/05/09 职场文书
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
2015年大学社团工作总结
2015/04/09 职场文书
莫言获奖感言(全文)
2015/07/31 职场文书
SQLServer权限之只开启创建表权限
2022/04/12 SQL Server