基于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 相关文章推荐
javascript操作cookie的文章(设置,删除cookies)
Apr 01 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
Sep 09 Javascript
基于jQuery实现最基本的淡入淡出效果实例
Feb 02 Javascript
jQuery前端分页示例分享
Feb 10 Javascript
使用jquery组件qrcode生成二维码及应用指南
Feb 22 Javascript
javascript RegExp 使用说明
May 21 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
Dec 27 Javascript
js仿iphone秒表功能 计算平均数
Jan 11 Javascript
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
May 12 Javascript
LayUI表格批量删除方法
Aug 15 Javascript
JS实现图片切换特效
Dec 23 Javascript
文章或博客自动生成章节目录索引(支持三级)的实现代码
May 10 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抓取页面的几种方法详解
2013/06/17 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
使用ajaxfileupload.js实现上传文件功能
2016/08/13 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
JS实现的简单图片切换功能示例【测试可用】
2017/02/14 Javascript
vee-validate vue 2.0自定义表单验证的实例
2018/08/28 Javascript
详解JavaScript 的变量
2019/03/08 Javascript
微信小程序配置服务器提示验证token失败的解决方法
2019/04/03 Javascript
JS利用prototype给类添加方法操作详解
2019/06/21 Javascript
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
vue 获取url里参数的两种方法小结
2020/11/12 Javascript
[48:53]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第一场
2014/05/26 DOTA
Python中的闭包实例详解
2014/08/29 Python
Python中decorator使用实例
2015/04/14 Python
python在新的图片窗口显示图片(图像)的方法
2019/07/11 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
Python库skimage绘制二值图像代码实例
2020/04/10 Python
Ellos丹麦:时尚和服装在线
2016/09/19 全球购物
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
语文教育专业推荐信范文
2013/11/25 职场文书
简历的个人自我评价范文
2014/01/03 职场文书
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
征兵宣传标语
2014/06/20 职场文书
总经理助理岗位职责
2015/01/31 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书
AI:如何训练机器学习的模型
2021/04/16 Python
如何避免mysql启动时错误及sock文件作用分析
2022/01/22 MySQL