基于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保留两位小数,多位小数的示例代码
Jan 07 Javascript
Javascript中的getUTCHours()方法使用详解
Jun 10 Javascript
js+css实现超简洁的二级下拉菜单效果代码
Sep 07 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
Feb 13 Javascript
从零学习node.js之express入门(六)
Feb 25 Javascript
JS实现简单的天数计算器完整实例
Apr 28 Javascript
javascript深拷贝、浅拷贝和循环引用深入理解
May 27 Javascript
Vue-component全局注册实例
Sep 06 Javascript
原生JS实现前端本地文件上传
Sep 08 Javascript
layui实现左侧菜单点击右侧内容区显示
Jul 26 Javascript
微信小程序如何播放腾讯视频的实现
Sep 20 Javascript
JavaScript find()方法及返回数据实例
Apr 30 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 Header用于页面跳转要注意的几个问题总结
2008/10/03 PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
推荐25款php中非常有用的类库
2014/09/29 PHP
typecho插件编写教程(二):写一个新插件
2015/05/28 PHP
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
jquery 操作DOM案例代码分享
2012/04/05 Javascript
javascript jscroll模拟html元素滚动条
2012/12/18 Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
2014/08/18 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
jQuery.datatables.js插件用法及api实例详解
2016/10/28 Javascript
div实现自适应高度的textarea实现angular双向绑定
2017/01/08 Javascript
对称加密与非对称加密优缺点详解
2017/02/06 Javascript
Java与JavaScript中判断两字符串是否相等的区别
2017/03/13 Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
2018/03/29 Javascript
Vuex的各个模块封装的实现
2020/06/05 Javascript
Python制作CSDN免积分下载器
2015/03/10 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
详解Python使用tensorflow入门指南
2018/02/09 Python
python生成lmdb格式的文件实例
2018/11/08 Python
Django 静态文件配置过程详解
2019/07/23 Python
python中matplotlib条件背景颜色的实现
2019/09/02 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
Python IDE环境之 新版Pycharm安装详细教程
2020/03/05 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
最新的小工具和卓越的产品设计:Oh That Tech!
2019/08/07 全球购物
社区科普工作方案
2014/06/03 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
教师党员学习十八届四中全会思想汇报
2014/11/03 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
Redis 报错 error:NOAUTH Authentication required
2022/05/15 Redis
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android