vue 购物车模板功能实现 可直接使用

<template>

  <div>

    <!-- //v-model.lazy 失去焦点的一刻数据同步  .trim  不会出现空格 -->

    <div>

      <input type="checkbox" @change="handchange" v-model="isAllcheck">

    </div>

    <div v-for="(item,index) in list" :key='index'>

      <input type="checkbox" v-model="total" :value="item" @change="danchange">

      价钱: {{ item.price}}

      数量: {{item.number}}

      <button @click="item.number++">加</button>

      {{item.number}}

      <button @click="del(item)">减</button>

    </div>

    {{total}}

    <p>总金额:{{getsum()}}</p>

  </div>

</template>

<script>

  export default {

    name: 'shopping',

    data() {

      return {

        list: [{

            number: '3',

            name: '饮料',

            price: '5',

            id: '1'

          },

          {

            number: '7',

            name: '篮球',

            price: '100',

            id: '2'

          },

          {

            number: '6',

            name: '乒乓球',

            price: '7',

            id: '3'

          },

          {

            number: '100',

            name: 'nike',

            price: '1000',

            id: '4'

          },

        ],

        total: [],

        isAllcheck: false //全选绑定属性

      }

    },

    methods: {

      //计算总价

      getsum() {

        var prices = 0

        let totals = this.total

        totals.map(item => {

          return prices += item.number * item.price

        })

        return prices

      },

      //全选全不选

      handchange() {

        if (this.isAllcheck) {

          this.total = this.list

        } else {

          this.total = []

        }

      },

      //反选

      danchange() {

        if (this.total.length === this.list.length) {

          this.isAllcheck = true

        } else {

          this.isAllcheck = false

        }

      },

      // 商品--

      del(item) {

        let num = item.number--

        if (num === 1) {

          item.number = 1

        }

      }

    }

  }

</script>

<style lang="scss" scoped>

</style>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值