基于vue.js实现购物车


Posted in Javascript onJanuary 15, 2020

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

基于vue.js实现购物车

template

<template>
<div class="all">
<div class="head">
<span>购物车</span>
</div>
<ul class="menu">
<li class="li">
<input type="checkbox" id="all" v-model="checkedAll" @change="checkedAllChange()">
<label for="all"></label>
全选
</li>
<li class="li">商品代码</li>
<li class="li">商品名称</li>
<li class="li">商品单价</li>
<li class="li">商品数量</li>
<li class="li">商品库存</li>
<li class="li">商品小计</li>
</ul>
<div>
<ul v-for="data in data" :key="data.code" class="menu">
<li class="li">
<input type="checkbox" name="commodity" v-model="checked" :value="data" @change="changeAll()" >
</li>
<li class="li">{{data.code}}</li>
<li class="li">{{data.name}}</li>
<li class="li">¥{{data.price}}</li>
<li class="li">
<div @click="SubNum(data)">-</div>
<input type="number" v-model.lazy="data.number" @change="numberChange(data)" >
<div @click="AddNum(data)">+</div>
</li>
<li class="li">{{data.stock}}</li>
<li class="li">¥{{data.number*data.price}}</li>
</ul>
</div>
<div class="info">
<p>{{commodityNumber}}件商品</p>
<p>总计:<span>¥{{numberAll}}</span></p>
</div>
</div>
</template>

script

<script>
export default {
data() {
return {
checkedAll: false,
checked: [],
totalPrice: 0,
data: {
one: {
code: 10001,
name: "商品一",
price: 26,
number: 1,
stock: 6
},
two: {
code: 10002,
name: "商品二",
price: 34,
number: 1,
stock: 14
},
three: {
code: 10003,
name: "商品三",
price: 48,
number: 1,
stock: 2
},
four: {
code: 10004,
name: "商品四",
price: 63,
number: 1,
stock: 12
},
five: {
code: 10005,
name: "商品五",
price: 50,
number: 1,
stock: 92
}
}
};
},
mounted() {},
methods: {
//判断全选事件
checkedAllChange() {
if (this.checkedAll) {
for (let i in this.data) {
this.checked.push(this.data[i]);
}
} else {
this.checked = [];
}
},
changeAll() {
if (this.checked.length == Object.keys(this.data).length) {
this.checkedAll = true;
} else {
this.checkedAll = false;
}
},
// 加减
SubNum(data) {
data.number--;
if (data.number < 1) {
data.number = 1;
}
},
AddNum(data) {
data.number++;
if (data.number > data.stock) {
data.number = data.stock;
}
},
//输入
numberChange(data) {
if (data.number > data.stock) {
data.number = data.stock;
}
}
},
computed: {
//商品数量
commodityNumber() {
return this.checked.length;
},
//总价
numberAll() {
var numberAll = 0;
for (let i in this.checked) {
numberAll += this.checked[i].number * this.checked[i].price;
}
return numberAll;
}
}
};
</script>

css

<style lang="scss" scoped type="text/css">
ul,
li {
list-style: none;
}
.all {
width: 800px;
height: 500px;
background: #fff;
border: 1px solid #177ecb;
margin-left: 300px;
.head {
background: #177ecb;
height: 36px;
line-height: 36px;
color: #fff;
padding-left: 15px;
}
.menu {
height: 32px;
width: 100%;
border-bottom: 1px solid #d4d4d4;
padding: 0 15px;
display: flex;
.li {
line-height: 32px;
flex: 1;
border-right: 1px solid #d4d4d4;
text-align: center;
input[type="number"] {
width: 40px;
display: inline-block;
height: 20px;
}
div {
width: 20px;
height: 20px;
padding: 0;
display: inline-block;
background: #333;
color: #fff;
line-height: 20px;
text-align: center;
cursor: pointer;
}
div:active {
background: #999;
}
}
.li:nth-of-type(3) {
flex: 2;
}
.li:last-child {
border: 0;
}
}
.menu + div {
height: 350px;
margin-bottom: 20px;
border-bottom: 1px solid #177ecb;
}
.info {
text-align: right;
margin-right: 20px;
span {
color: #f00;
font-size: 20px;
font-weight: 900;
}
}
}
</style>

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

Javascript 相关文章推荐
比较简单的异步加载JS文件的代码
Jul 18 Javascript
javascript数组去掉重复
May 12 Javascript
批量下载对路网图片并生成html的实现方法
Jun 07 Javascript
浅谈Web页面向后台提交数据的方式和选择
Sep 23 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
Jan 16 Javascript
jQuery制作input提示内容(兼容IE8以上)
Jul 05 jQuery
js 取消页面可以选中文字的功能方法
Jan 02 Javascript
JS中双击和单击事件冲突的解决方法
Apr 09 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
Apr 17 Javascript
Vue中使用Lodop插件实现打印功能的简单方法
Dec 19 Javascript
JavaScript适配器模式原理与用法实例详解
Mar 09 Javascript
介绍一下28个JS常用数组方法
May 06 Javascript
原生js+css调节音量滑块
Jan 15 #Javascript
Vue 图片压缩并上传至服务器功能
Jan 15 #Javascript
JS函数进阶之继承用法实例分析
Jan 15 #Javascript
JS函数进阶之prototy用法实例分析
Jan 15 #Javascript
JS函数基本定义与用法示例
Jan 15 #Javascript
JS几个常用的函数和对象定义与用法示例
Jan 15 #Javascript
JS自定义对象创建与简单使用方法示例
Jan 15 #Javascript
You might like
PHP制作图型计数器的例子
2006/10/09 PHP
上传多个文件的PHP脚本
2006/11/26 PHP
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
php实现统计IP数及在线人数的示例代码
2020/07/22 PHP
让复选框只能选择一项的方法
2013/10/08 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
使用jquery操作session方法分享
2015/01/22 Javascript
JavaScript中的cacheStorage使用详解
2015/07/29 Javascript
jQuery实现仿百度帖吧头部固定导航效果
2015/08/07 Javascript
javascript中的3种继承实现方法
2016/01/27 Javascript
JavaScript 对象详细整理总结
2016/09/29 Javascript
纯js实现手风琴效果代码
2020/04/17 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
js实现彩色条纹滚动条效果
2017/03/15 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
nodejs中方法和模块用法示例
2018/12/24 NodeJs
详解vue3.0 的 Composition API 的一种使用方法
2020/10/26 Javascript
[03:56]显微镜下的DOTA2第十一期——鬼畜的死亡先知播音员
2014/06/23 DOTA
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python操作ie登陆土豆网的方法
2015/05/09 Python
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
Python3.遍历某文件夹提取特定文件名的实例
2018/04/26 Python
关于Pytorch MaxUnpool2d中size操作方式
2020/01/03 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
Python restful框架接口开发实现
2020/04/13 Python
一款纯css3实现的鼠标悬停动画按钮
2014/12/29 HTML / CSS
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
程序员机试试题汇总
2012/03/07 面试题
在校生自我鉴定
2014/01/23 职场文书
陈胜吴广起义口号
2014/06/20 职场文书
2014县政府领导班子对照检查材料思想汇报
2014/09/25 职场文书
创业计划书之o2o水果店
2019/08/30 职场文书
励志语录:你若不勇敢,谁替你坚强
2019/11/08 职场文书
Android自定义双向滑动控件
2022/04/19 Java/Android