1 Star 0 Fork 0

谢起森/tempzy

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
侦听.html 2.53 KB
一键复制 编辑 原始数据 按行查看 历史
谢起森 提交于 2023-10-12 18:00 . S
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>vue学习</title>
<script src="./js/vue.js"></script>
<style>
li {
list-style-type: none;
}
</style>
</head>
<body>
<div id="app">
<input type="checkbox" v-model="all" />全选
<hr />
<ul>
<li v-for="item in carts" :key="item.id">
<span>
<input type="checkbox" :value="item.id" v-model="selectedUser" />
</span>
<span>商品名称:{{item.name}}</span>
<span>
<button @click="addNum(item,-1)">---</button>
商品数量:{{item.num}}
<button @click="addNum(item,1)">+++</button>
</span>
<span>商品单价:{{item.price}}</span>
</li>
</ul>
<hr>
<h3>合计:{{total}}</h3>
</div>
<script>
new Vue({
el: '#app',
data: {
all: false,
selectedUser: [],
carts: [
{ id: 1, name: 'aaa', price: 1, num: 1 },
{ id: 2, name: 'bbb', price: 1, num: 2 },
{ id: 3, name: 'ccc', price: 1, num: 3 }
],
title: ''
},
methods: {
addNum(item, num) {
item.num += num
if (item.num <= 1) item.num = 1
if (item.num >= 3) item.num = 3
}
},
computed: {
total() {
let selectedCarts = this.carts.filter(item => this.selectedUser.includes(item.id))
return selectedCarts.reduce((prev, { price, num }) => {
prev += price * num
return prev
}, 0)
}
},
watch: {
all(value) {
if (value) {
this.selectedUser = this.carts.map(item => item.id)
} else {
this.selectedUser =
this.selectedUser.length === this.carts.length ? [] : this.selectedUser
}
},
selectedUser(value) {
this.all = value.length === this.carts.length
}
}
})
</script>
</body>
</html>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/xie-qisen/tempzy.git
git@gitee.com:xie-qisen/tempzy.git
xie-qisen
tempzy
tempzy
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385