美文网首页
简单购物车

简单购物车

作者: sweetBoy_9126 | 来源:发表于2019-06-02 23:40 被阅读0次
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>简单购物车</title>
  <script src="https://cdn.bootcss.com/vue/2.6.8/vue.min.js"></script>
  <style>
    ul,li{
      list-style: none;
    }
  </style>
</head>
<body>
<div id="app">
  <ul>
    <li v-for="list in shopLists">
      <input type="checkbox" v-model="list.checked" @click="checkList(list)">
      {{list.name}}
      <span>¥{{list.prize}}</span>
      <span @click="add(index)">+</span>
    <input type="text" v-model="list.count" style="width: 40px;">
    <span @click="reduce(index)">-</span>
    </li>
  </ul>
  <div>
    全选
    <input type="checkbox" v-model="isAllChecked" @click="checkAllList">
    <span>
      总价{{total}}
    </span>
  </div>
</div>
 
  <script>
    new Vue({
      el: '#app',
      data: {
        shopLists: [
          {id: 1, name: '小姐姐1', prize: 20, count: 1, checked: false},
          {id: 2, name: '小姐姐2', prize: 30, count: 2, checked: false},
          {id: 3, name: '小姐姐3', prize: 40, count: 3, checked: false}
        ],
        isAllChecked: false,
        checkedListData: []
      },
      computed: {
        isSelctedShop() {
          let newArr = this.shopLists.filter(item => {
            return item.checked === true
          })
          if(newArr.length > 0) {
            return true
          }else{
            return false
          }
        },
          total() {
            return this.checkedListData.reduce((prve, current) => {
                return prve + current.prize * current.count
            },0)
          }
      },
      methods: {
          checkList(list) {
            list.checked = !list.checked
            if (list.checked) {
                this.checkedListData.push(list)
            } else {
                this.checkedListData = this.checkedListData.filter(list1 => {
                    return list1.id !== list.id
                })
            }
            this.isAllChecked = this.shopLists.every(list => {
                return list.checked
            })
          },
          checkAllList() {
              this.isAllChecked = !this.isAllChecked
              if (this.isAllChecked) {
                  this.checkedListData = this.shopLists
              } else {
                  this.checkedListData = []
              }
              this.shopLists.forEach(list => {
                  list.checked = this.isAllChecked
              })
          }
      },
    })
  </script>
</body>
</html>

相关文章

网友评论

      本文标题:简单购物车

      本文链接:https://www.haomeiwen.com/subject/wwafxctx.html