• vue 入门 ------简单购物车功能实现(全选,数量加减,价格加减)


    简易购物车功能(无任何布局 主要是功能)
    • 数量的加减
    • 商品的总价钱
    • 全选与全不选
    • 删除(全选、价格 受影响)
    
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    
        <div id="box">
            全选:<input type="checkbox" @click="handleAllChecked($event)" v-model="isAllChecked"/>
            <ul>
              <li v-for="data,index in list" :key="data.id" style="overflow: hidden;">
                <input type="checkbox" :value="data" v-model="checkgroup" style="float: left;"
                @change="handleItemChange()"/>
                <div style="float: left;">
                  <div>{{data.name}}</div>
                  <div>价格:{{data.price}}</div>
                  <!-- <div>数量:{{data.number}}</div> -->
                </div>
    
                <div style="float: left;margin-left: 20px;">
                  <button @click="handleDel(data)">-</button>
                  {{data.number}}
                  <button @click="data.number++">+</button>
                </div>
    
                <div style="float: right;">
                  <button @click='handleRemove(index,data.id)'>remove</button>
                </div>
              </li>
            </ul>
           
            {{checkgroup}}
    
            <p>总金额:{{ getSum() }}</p>
        </div>
        
        <script type="text/javascript">
           var vm =  new Vue({
              el:"#box",
              data:{
                name:"kerwin",
                checkgroup:[],
                isAllChecked:false,
                list:[
                    {
                          name:"商品1",
                          price:10,
                          number:1,
                          id:"1",
                    },
                        {
                          name:"商品2",
                          price:20,
                          number:2,
                          id:"2",
                        },
                        {
                          name:"商品3",
                          price:30,
                          number:3,
                          id:"3",
                        }
                  ]
              },
              methods: {
                // 每个chekcbox 改变触发, 判读数组的长度与list长度
                handleItemChange(){
                  console.log(this.checkgroup.length)
                  if(this.checkgroup.length===this.list.length && this.list.length !== 0 ){
                    //全选chekcbox勾上
                    this.isAllChecked = true
                  }else{
                    // 取消checkbox勾选
                    this.isAllChecked = false
                  }
                },
    
                //全选按钮处理
                handleAllChecked(evt){
                 
                  if(evt.target.checked){
                    //全选中
                    this.checkgroup = this.list
                  }else{
                    //全不选中
                    this.checkgroup = []
                  }
                },
                //商品减少
                handleDel(data){
                  data.number--
                  if(data.number===0){
                    data.number =1
                  }
                },
             
                //计算总金额
                getSum(){
                  var sum = 0;
                  for(var i in this.checkgroup){
                    sum += this.checkgroup[i].price*this.checkgroup[i].number
                  }
                  return sum
                },
                //删除数据       
                handleRemove(index,id) {
                  //list
                  this.list.splice(index,1)
                  //checkgroup
                  this.checkgroup =this.checkgroup.filter(item => item.id !== id)
    
                  this.handleItemChange()         
                }
              },
            })
        </script>
    
  • 相关阅读:
    [jQuery学习系列六]6-jQuery实际操作小案例
    [Java拾遗一] XML的书写规范与解析.
    [数据库操作]Java中的JDBC的使用方法.
    [Java拾遗二]Tomact及Http 部分总结.
    [Java拾遗三]JavaWeb基础之Servlet
    [Java拾遗四]JavaWeb基础之Servlet_Request&&Response
    [Java拾遗五]使用Session防止表单重复提交
    [数据库连接池] Java数据库连接池--DBCP浅析.
    [开发工具]Java开发常用的在线工具
    [数据库连接池二]Java数据库连接池--C3P0和JDNI.
  • 原文地址:https://www.cnblogs.com/zhaoxinran997/p/12305474.html
Copyright © 2020-2023  润新知