zoukankan      html  css  js  c++  java
  • 购物车实现单选全选,计算数量和价格

    <template>
      <div class="login">
        <div class="item" v-for="(item,index) in dataList" :key="index">
          <input @change="change(index,item.checked)" type="checkbox" :checked="item.checked" />
          {{item.name}},单价{{item.price}}个数{{item.num}}
        </div>
        <div class="item">
          <input type="checkbox" @change="changeAll" :checked="allChecked" />
          全选,总数量{{count}}总价格{{money}}
        </div>
      </div>
    </template>
    <script>
    export default {
      name: "login",
      data() {
        return {
          dataList: [
            { id: 1, name: "苹果", price: 4, num: 4 },
            { id: 2, name: "香蕉", price: 3, num: 2 },
            { id: 3, name: "梨", price: 3, num: 2 },
            { id: 4, name: "西红柿", price: 2, num: 11 },
          ],
          allChecked: false,
          count: 0,
          money: 0,
        };
      },
      methods: {
        changeAll() {
          this.count = 0;
          this.money = 0;
          for (var i = 0; i < this.dataList.length; i++) {
            this.$set(this.dataList[i], "checked", false);
          }
          if (this.allChecked) {
            this.allChecked = false;
            this.count = 0;
            this.money = 0;
          } else {
            this.allChecked = true;
            for (var j = 0; j < this.dataList.length; j++) {
              this.count += Number(this.dataList[j].num);
              this.money +=
                Number(this.dataList[j].num) * Number(this.dataList[j].price);
              this.$set(this.dataList[j], "checked", true);
            }
          }
        },
        change(index, checked) {
          this.count = 0;
          this.money = 0;
          console.log(checked,887)
          if (!checked) {
            this.$set(this.dataList[index], "checked", true);
          } else {
            this.$set(this.dataList[index], "checked", false);
          }
          this.$nextTick(() => {
            for (var j = 0; j < this.dataList.length; j++) {
              if (this.dataList[j].checked) {
                this.count += Number(this.dataList[j].num);
                this.money +=
                  Number(this.dataList[j].num) * Number(this.dataList[j].price);
              }
            }
            if (this.dataList.every((item) => item.checked == true)) {
              this.allChecked = true;
            } else {
              this.allChecked = false;
            }
          });
        },
      },
    };
    </script>
    <style lang="scss">
    .login {
      margin: 100px;
    }
    .item {
      display: flex;
    }
    </style>
  • 相关阅读:
    《深度解析Tomcat》 第一章 一个简单的Web服务器
    hello
    Python几周学习内容小结
    运用数据库来存储小信息
    运用SharedPreferences“偷取”输入的信息
    好多鱼 好多图片
    唉 调皮的ListView
    磨人的Fragment的转换
    论Activity的转换
    APP界面设计 大概总结
  • 原文地址:https://www.cnblogs.com/studyWeb/p/13432283.html
Copyright © 2011-2022 走看看