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 相关文章推荐
javascript 操作Word和Excel的实现代码
Oct 26 Javascript
JavaScript 全角转半角部分
Oct 28 Javascript
jquery 扑捉回车键事件代码
Apr 24 Javascript
node.js中的console.assert方法使用说明
Dec 10 Javascript
Javascript使用post方法提交数据实例
Aug 03 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
Sep 04 Javascript
深入理解javascript函数参数与闭包
Dec 12 Javascript
详解node单线程实现高并发原理与node异步I/O
Sep 21 Javascript
Node.js搭建小程序后台服务
Jan 03 Javascript
vue 开发一个按钮组件的示例代码
Mar 27 Javascript
javascript+css实现俄罗斯方块小游戏
Jun 28 Javascript
js基础语法与maven项目配置教程案例
Jul 15 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
php数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
七款最流行的PHP本地服务器分享
2013/02/19 PHP
解析php dirname()与__FILE__常量的应用
2013/06/24 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
Thinkphp5.0框架视图view的循环标签用法示例
2019/10/12 PHP
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
javascript 定义初始化数组函数
2009/09/07 Javascript
提交表单时执行func方法实现代码
2013/03/17 Javascript
jquery绑定事件不生效的解决方法
2014/02/11 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
2014/12/20 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
JavaScript数据结构之二叉树的计数算法示例
2017/04/13 Javascript
Vue2.0权限树组件实现代码
2017/08/29 Javascript
js中getter和setter用法实例分析
2018/08/14 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】
2020/03/06 Javascript
typescript配置alias的详细步骤
2020/08/12 Javascript
使用Python下载Bing图片(代码)
2013/11/07 Python
python实现给数组按片赋值的方法
2015/07/28 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
使用EduBlock轻松学习Python编程
2018/10/08 Python
DHC美国官网:日本通信销售第一的化妆品品牌
2017/11/12 全球购物
高中毕业自我鉴定
2013/12/13 职场文书
战友聚会邀请函
2014/01/18 职场文书
经典婚礼主持词
2014/03/13 职场文书
中介业务员岗位职责
2014/04/09 职场文书
竞选班干部演讲稿300字
2014/08/20 职场文书
教师民族团结演讲稿
2014/08/27 职场文书
警察正风肃纪剖析材料
2014/10/16 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
慈善募捐倡议书
2015/04/27 职场文书
《百分数的认识》教学反思
2016/02/19 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
Python合并pdf文件的工具
2021/07/01 Python
IDEA 2022 Translation 未知错误 翻译文档失败
2022/04/24 Java/Android