vue+vant+js实现购物车原理小demo(基础版)

摘要:
对于电子商务毕业设计中的购物车演示,仅需使用vue+vant编写12行核心计算代码。

电商毕业设计里的一个购物车demo,拿vue+vant需要写的核心计算代码只有12行。效果图:

vue+vant+js实现购物车原理小demo(基础版)第1张

 main.js:

Vue.use(Stepper);

 .vue文件

<template>
  <div class="box">
    <div class="flex-left tit">
      <span v-for="(i,inx) in tit" :key="inx" class="flex-around">{{i}}</span>
    </div>
    <div v-for="(item,s) in arr" :key="s" class="flex-around">
      <span>{{item.id}}</span>
      <span>{{item.name}}</span>
      <span>{{item.price}}</span>
      <van-stepper v-model="item.value" @change='change(item.value,s)'/>
      <input type="text" v-model='item.smallCount'>元
    </div>
    <p>共计:一共{{allValue}}件,共<input type="text" v-model="allCount">元</p>
  </div>
</template>
<script>
export default {
    name: "push",
    data(){
        return{
           tit:['序号','名称','单价','数量','小计'],
           arr:[],             //购物车
           allCount:0,         //价格总计
           allValue:0          //数量总计
        }
    },
    components:{
    },
    created:function(){
      this.jsfun()
    },
    methods:{
      jsfun(){
        let arr = []
        let obj1={
          id:1,
          name:'足球',
          price:10,
          value:1
        }
        let obj2={
          id:2,
          name:'篮球',
          price:20,
          value:1
        }
        let obj3={
          id:3,
          name:'水球',
          price:50,
          value:1
        }
        arr.push(obj1)
        arr.push(obj2)
        arr.push(obj3)
        arr.forEach(element => {
          element.smallCount = element.price*element.value
          this.allCount += element.price
        });
        console.log(arr)
        this.arr = arr                            //先在页面加载时生成两条购物车数据
        this.allValue = this.arr.length           //先在页面加载时生成购物车内商品数量 
      },
      change(value,s){
         console.log(value,s)                     //value是当前购物车已选择的值,s是当前购物车下标
         let allCount = 0
         let allValue = 0
         let arr = this.arr
         for(let i=0;i<arr.length;i++){
           arr[s].smallCount = arr[s].price*arr[s].value
           allCount += arr[i].smallCount
           allValue += arr[i].value
         }
         this.allCount = allCount
         this.allValue = allValue
      },
    } 
}
</script>
<style lang="less" scoped>
.box{
  font-size: 12px;
  background: white;
  padding: 10px 0;
  p{
   margin-top: 10px;
  }
}
.tit{
  margin-bottom: 10px;
  :nth-child(1){
     7%;
  }
  :nth-child(2){
     7%;
  }
  :nth-child(3){
     9%;
  }
  :nth-child(4){
     27%;
  }
  :nth-child(5){
     44%;
  }
}
.van-stepper {
    font-size: 0;
    user-select: none;
    display: flex;
}
</style>

免责声明:文章转载自《vue+vant+js实现购物车原理小demo(基础版)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇git如何移除某文件夹的版本控制Xrdp下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

小程序实现单选多选功能

applet的单选组件和复选框组件的样式只提供了变化的颜色,这显然不足以满足实际的项目需求,因此您可以自己模拟。脚注:小程序不支持dom1的操作。多个框的模拟实现:实现思路:想法非常简单。使用选中的属性绑定每个选项。类型为布尔型。单击以反转!...

Element-ui tabs标签标题添加自定义图标

关键点:slot="label"{{item.label}}˂iclass="el-icon-questi...

Systemd简介与使用

Systemd在并行启动中采用了比Upstart更激进的方案。图2显示了systemd的并行启动模式。它允许所有配置的服务同时启动。事实上,大多数使用systemd的现代发行版都与此类似。系统通过配置这些单元来切换和管理服务。...

ESXi挂载NFS共享存储

使用万兆交换机,ESXi使用NFS协议连接存储。本文介绍的是通过NFS协议挂载共享存储上的VS01卷,共享存储上已经赋予ESXi主机访问该卷的权限。...

JavaScript算法学习:获取字符串最后一位方法及判断是否以指定字符串开始或结尾

Str.substr,其中start是必需的参数,表示坐标的起始位置。正值在正方向计数,负值在反方向计数,长度是可选参数,表示从起始位置开始计数的数字。...

Vue跨层级传递slot的方法

但是我需要通过插槽在父组件中指定一个模板,而B组件引用C组件。组件C的部分模板需要在组件A中配置。模板引用A组件:{{node.text}}&lt;模板引用B组件:spanslot=“nodeMenu”slot scope=“{node}”&gt;node=“node”&gt;/span&gt;/div&gt;2.2如...