批改状态:合格
老师批语:

v-if:根据条件是否进行渲染v-for:将数据循环渲染到页面中
<div class="box"><!-- 1. 全选按钮 --><div class="selectAll"><!-- 通过双向绑定v-model来制定全选按钮的状态 --><inputtype="checkbox"class="check-all"name="check-all"v-model="checkAll"/><label for="check-all">全选</label></div><!-- 2. 商品列表 --><ul class="list"><li><span>选择</span><span>品名</span><span>数量</span><span>单价</span><span>金额</span></li><!-- 通过v-for渲染数据到页面中 --><li v-for="(v,k) of shuju" :key="k"><input type="checkbox" v-model="v.zhuangtai" /><span class="content">{{v.name}}</span><input type="number" v-model="v.num" min="1" class="num" /><span class="price">{{v.price}}</span><!-- 商品单个的金额直接计算 --><span class="amount">{{v.num*v.price}}</span></li><li><span>总计:</span><span class="total-num">总数量:{{shuliang}}</span><span class="total-amount">总金额:{{zongjia}}</span></li></ul><!-- 3. 结算按钮 --><button class="account">结算</button></div>
//创建vue实例const app = Vue.createApp({data() {return {//数据列表 zhaungtai是按钮的状态为true是选中默认是falseshuju: [{name: "手机",price: 100,num: 1,zhuangtai: false,},{name: "电脑",price: 200,num: 1,zhuangtai: false,},{name: "相机",price: 300,num: 1,zhuangtai: false,},],};},//计算属性computed: {// 设置按钮选中状态checkAll: {get() {//将数据用filter返回满足条件的数组 这个数组的只用这个数组的长度let arr = this.shuju.filter((item) => item.zhuangtai === true);// console.log(arr);// console.log(arr.length);//当数组的长度等于数据列表的长度的时候返回true这时候全选按钮的状态为true否则就返回falseif (arr.length == this.shuju.length) {return true;} else {return false;}},set(e) {//e是当前全选按钮的状态// console.log(e);//如果全选按钮状态为trueif (e) {//将所有单选按钮的状态设置为truethis.shuju.map((item) => (item.zhuangtai = true));} else {//将所有单选按钮的状态设置为falsethis.shuju.forEach((item) => (item.zhuangtai = false));}},},//计算总金额zongjia() {//先定义一个变量接收结果let sum = 0;//遍历数据this.shuju.forEach((item) => {//判断状态是否为trueif (item.zhuangtai) {// 拿到状态为true的商品的数量和单价循环进行相加赋给sumsum += item.num * item.price;}});//将结果返回此时这个sum就是总金额return sum;},//计算总数量shuliang() {let lsum = 0;//遍历数据this.shuju.forEach((item) => {//根据状态拿到为true的数量循环相加赋值给lsumif (item.zhuangtai) {lsum += item.num;}});//返回lsum这个结果就是总数量return lsum;},},//生命周期页面创建自动初始化mounted() {//初始化商品数量,默认为1this.sjnum = 1;this.dnnum = 1;this.xjnum = 1;},//将实例挂载到挂载点}).mount(".box");
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号