基于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 相关文章推荐
CLASS_CONFUSION JS混淆 全源码
Dec 12 Javascript
ajax 缓存 问题 requestheader
Aug 01 Javascript
一起来写段JS drag拖动代码
Dec 09 Javascript
读jQuery之十三 添加事件和删除事件的核心方法
Aug 23 Javascript
火狐textarea输入法的bug的触发及解决
Jul 24 Javascript
JS 有趣的eval优化输入验证实例代码
Sep 22 Javascript
JS定时器实例详细分析
Oct 11 Javascript
js键盘事件的keyCode
Jul 29 Javascript
jQuery获取DOM节点实例分析(2种方式)
Dec 15 Javascript
轻松实现jquery手风琴效果
Jan 14 Javascript
浅谈JavaScript对象与继承
Jul 10 Javascript
BootStrap 模态框实现刷新网页并关闭功能
Jan 04 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
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
php去除HTML标签实例
2013/11/06 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
php去除头尾空格的2种方法
2015/03/16 PHP
PHP版QQ互联OAuth示例代码分享
2015/07/05 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
海量经典的jQuery插件集合
2010/01/12 Javascript
jquery ajax例子返回值详解
2012/09/11 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
鼠标悬停小图标显示大图标
2016/01/22 Javascript
无法获取隐藏元素宽度和高度的解决方案
2017/03/07 Javascript
layui分页效果实现代码
2017/05/19 Javascript
基于vue2.0实现的级联选择器
2017/06/09 Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
2017/08/16 jQuery
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
利用express启动一个server服务的方法
2017/09/17 Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
2019/02/01 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
[01:04:48]VGJ.S vs TNC Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python zip文件 压缩
2008/12/24 Python
Python实现的一个简单LRU cache
2014/09/26 Python
python解决方案:WindowsError: [Error 2]
2016/08/28 Python
Python pymongo模块常用操作分析
2018/09/01 Python
python解析xml简单示例
2019/06/21 Python
python打包成so文件过程解析
2019/09/28 Python
Python List列表对象内置方法实例详解
2019/10/22 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
2020/03/31 Python
Python 必须了解的5种高级特征
2020/09/10 Python
基于python判断字符串括号是否闭合{}[]()
2020/09/21 Python
HTML5 Web 存储详解
2016/09/16 HTML / CSS
学校安全工作制度
2014/01/19 职场文书
机械专业求职信
2014/05/25 职场文书
会计专业求职信
2014/08/10 职场文书
2016关于读书活动的心得体会
2016/01/14 职场文书
Fluentd搭建日志收集服务
2022/09/23 Servers