基于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 相关文章推荐
URL编码转换,escape() encodeURI() encodeURIComponent()
Dec 27 Javascript
js与运算符和或运算符的妙用
Feb 14 Javascript
使用CSS样式position:fixed水平滚动的方法
Feb 19 Javascript
jQuery实现仿Google首页拖动效果的方法
May 04 Javascript
基于jquery实现全屏滚动效果
Nov 26 Javascript
深入解析JavaScript中的arguments对象
Jun 12 Javascript
js事件驱动机制 浏览器兼容处理方法
Jul 23 Javascript
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
Sep 08 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
Dec 14 Javascript
vue实现压缩图片预览并上传功能(promise封装)
Jan 10 Javascript
简述pm2常用命令集合及配置文件说明
May 30 Javascript
vue实现移动端触屏拖拽功能
Aug 21 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 sprintf() 函数的应用(定义和用法)
2012/06/29 PHP
php实现保存周期为1天的购物车类
2017/07/07 PHP
php + ajax 实现的写入数据库操作简单示例
2020/05/16 PHP
javascript延时重复执行函数 lLoopRun.js
2007/06/29 Javascript
Javascript 各浏览器的 Javascript 效率对比
2008/01/23 Javascript
event.srcElement 用法笔记e.target
2009/12/18 Javascript
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
使用Post提交时须将空格转换成加号的解释
2013/01/14 Javascript
replace()方法查找字符使用示例
2013/10/28 Javascript
JS检测输入字符是否包含非法字符的示例代码
2014/02/11 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
babel基本使用详解
2017/02/17 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
echarts鼠标覆盖高亮显示节点及关系名称详解
2018/03/17 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
原生JS运动实现轮播图
2021/01/02 Javascript
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
给Python IDLE加上自动补全和历史功能
2014/11/30 Python
Python编程生成随机用户名及密码的方法示例
2017/05/05 Python
Python中多个数组行合并及列合并的方法总结
2018/04/12 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
pycharm创建一个python包方法图解
2019/04/10 Python
PyQt5笔记之弹出窗口大全
2019/06/20 Python
python适合人工智能的理由和优势
2019/06/28 Python
python在openstreetmap地图上绘制路线图的实现
2019/07/11 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
2014年关于两会精神的心得体会
2014/03/17 职场文书
机关节能减排实施方案
2014/03/17 职场文书
婚前协议书标准版
2014/10/19 职场文书
迎新晚会主持词开场白
2015/05/28 职场文书
儿子满月酒致辞
2015/07/29 职场文书
超市主管竞聘书
2015/09/15 职场文书
goland 设置project gopath的操作
2021/05/06 Golang
react 路由Link配置详解
2021/11/11 Javascript