基于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 相关文章推荐
用Mootools获得操作索引的两种方法分享
Dec 12 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
Oct 25 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
Nov 22 Javascript
关于Jquery中的事件绑定总结
Oct 26 Javascript
实例解析jQuery中如何取消后续执行内容
Dec 01 Javascript
JS实现向iframe中表单传值的方法
Mar 24 Javascript
Vue2.0表单校验组件vee-validate的使用详解
May 02 Javascript
微信小程序自定义导航栏
Dec 31 Javascript
详解如何用webpack4从零开始构建react开发环境
Jan 27 Javascript
详解使用uni-app开发微信小程序之登录模块
May 09 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
Aug 21 Javascript
详解JavaScript原型与原型链
Nov 16 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
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
2012/12/10 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
2014/09/16 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
laravel5.6中的外键约束示例
2019/10/23 PHP
让焦点自动跳转
2006/07/01 Javascript
js DataSet数据源处理代码
2010/03/29 Javascript
js最简单的拖拽效果实现代码
2010/09/24 Javascript
jquery图片不完全按比例自动缩小的简单代码
2013/07/29 Javascript
提高NodeJS中SSL服务的性能
2014/07/15 NodeJs
javascript常用功能汇总
2015/07/05 Javascript
老生常谈原生JS执行环境与作用域
2016/11/22 Javascript
ES6新特性之字符串的扩展实例分析
2017/04/01 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
详解Node.js开发中的express-session
2017/05/19 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
angular2实现统一的http请求头方法
2018/08/13 Javascript
ios中视频的最后一桢问题解决
2019/05/14 Javascript
[00:27]DOTA2荣耀之路2:Patience from zhou!
2018/05/24 DOTA
[24:42]VP vs TNC Supermajor小组赛B组 BO3 第三场 6.2
2018/06/03 DOTA
Python yield 使用浅析
2015/05/28 Python
小小聊天室Python代码实现
2016/08/17 Python
你真的了解Python的random模块吗?
2017/12/12 Python
Django1.9 加载通过ImageField上传的图片方法
2018/05/25 Python
python批量修改图片大小的方法
2018/07/24 Python
使用python list 查找所有匹配元素的位置实例
2019/06/11 Python
Python + Requests + Unittest接口自动化测试实例分析
2019/12/12 Python
意大利制造的男鞋和女鞋:SCAROSSO
2018/03/07 全球购物
英国最大的天然和有机产品在线零售商之一:Big Green Smile
2020/05/06 全球购物
医学类导师推荐信范文
2013/11/19 职场文书
新年晚会主持词
2014/03/24 职场文书
公民授权委托书范本
2014/09/17 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
施工现场安全管理制度
2015/08/05 职场文书
执行力心得体会范文
2016/01/11 职场文书
MySQL高级进阶sql语句总结大全
2022/03/16 MySQL