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 变量命名规则
Sep 23 Javascript
js中onload与onunload的使用示例
Aug 25 Javascript
javascript实现的一个随机点名功能
Aug 26 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
Apr 16 Javascript
详解jQuery选择器
Dec 21 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
Jan 19 Javascript
javascript 中Cookie读、写与删除操作
Mar 29 Javascript
原生JS实现自定义滚动条效果
Oct 27 Javascript
JS简单获取并修改input文本框内容的方法示例
Apr 08 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
Jan 18 jQuery
简谈创建React Component的几种方式
Jun 15 Javascript
javascript设计模式 ? 原型模式原理与应用实例分析
Apr 10 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
PHPlet在Windows下的安装
2006/10/09 PHP
php ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
php设计模式 Strategy(策略模式)
2011/06/26 PHP
PHP获取ip对应地区和使用网络类型的方法
2015/03/11 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
2018/05/30 PHP
Laravel实现通过blade模板引擎渲染视图
2019/10/25 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
推荐20家国外的脚本下载网站
2011/04/28 Javascript
jq实现酷炫的鼠标经过图片翻滚效果
2014/03/12 Javascript
js实现三张图(文)片一起切换的banner焦点图
2015/08/25 Javascript
JS实现的自定义右键菜单实例二则
2015/09/01 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
AngularJs bootstrap搭载前台框架——基础页面
2016/09/01 Javascript
angular分页指令操作
2017/01/09 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
jQuery取得元素标签名称小结(附代码)
2017/08/16 jQuery
js提取中文拼音首字母的封装工具类
2018/03/12 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
2014/10/23 Python
优化Python代码使其加快作用域内的查找
2015/03/30 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
采购员岗位职责
2013/11/15 职场文书
喜之郎果冻广告词
2014/03/20 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
关于安全演讲稿
2014/05/09 职场文书
防灾减灾宣传标语
2014/10/07 职场文书
MySQL令人咋舌的隐式转换
2021/04/05 MySQL
通过T-SQL语句创建游标与实现数据库加解密功能
2022/03/16 SQL Server
vue route新窗口跳转页面并且携带与接收参数
2022/04/10 Vue.js