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 UrlDecode函数代码
Jan 09 Javascript
FileUpload上传图片(图片不变形)
Aug 05 Javascript
JavaScript中的this关键字介绍与使用实例
Jun 21 Javascript
EasyUi datagrid 实现表格分页
Feb 10 Javascript
angular2使用简单介绍
Mar 01 Javascript
bootstrap下拉列表与输入框组结合的样式调整
Oct 08 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
Oct 28 Javascript
Bootstrap源码解读网格系统(3)
Dec 22 Javascript
浅谈Javascript事件对象
Feb 05 Javascript
vue中动态添加class类名的方法
Sep 05 Javascript
angularjs1.5 组件内用函数向外传值的实例
Sep 30 Javascript
vue和better-scroll实现列表左右联动效果详解
Apr 29 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文本操作类
2006/11/25 PHP
php简单静态页生成过程
2008/03/27 PHP
php+resumablejs实现的分块上传 断点续传功能示例
2017/04/18 PHP
JQuery 学习笔记 选择器之五
2009/07/23 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
2013/12/05 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
关于img的href和src取变量及赋值的方法
2014/04/28 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
2015/03/05 Javascript
Javascript 一些需要注意的细节(必看篇)
2017/07/08 Javascript
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
jQuery实现动态控制页面元素的方法分析
2017/12/20 jQuery
微信小程序实现评论功能
2018/11/28 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
JavaScript快速调试的两个技巧
2020/11/04 Javascript
详解Python操作RabbitMQ服务器消息队列的远程结果返回
2016/06/30 Python
Django渲染Markdown文章目录的方法示例
2019/01/02 Python
HTML5 embed 标签使用方法介绍
2013/08/13 HTML / CSS
世界上最好的帽子:Tilley
2016/11/27 全球购物
Melijoe美国官网:法国奢侈童装购物网站
2017/04/19 全球购物
中国一家专注拼团的社交购物网站:拼多多
2018/06/13 全球购物
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
家长会演讲稿范文
2014/01/10 职场文书
运动会口号16字
2014/06/07 职场文书
大学专科自荐信
2014/06/17 职场文书
医院营销工作计划
2015/01/16 职场文书
2016年教师政治思想表现评语
2015/12/02 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL
python 对图片进行简单的处理
2021/06/23 Python
MySQL开启事务的方式
2021/06/26 MySQL
用JS写一个发布订阅模式
2021/11/07 Javascript
Python与C++中梯度方向直方图的实现
2022/03/17 Python
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android