• vue购物车功能


    demo功能需求

    1.   购物车
      1. 商品可增减数量  该商品总金额自动增减   总金额随之改变
    2.   搜索商品
    3. 排序
      1. 点击按钮随单品金额排序
    <div id="example">
            <div class="box">
                搜索 <input type="text" v-model="input">
                <br>
                <button @click="orderType=1">点我单价升序</button>
                <button @click="orderType=2">点我单价降序</button>
                <button @click="orderType=0">原来单价顺序</button>
                <div class="container">
                    <br>
                    <div class="item">
                        <span>
                            商品名
                        </span>
                        <span>
                            商品数量
                        </span>
                        <span>
                            商品金额
                        </span>
                        <span>
                            商品总价
                        </span>
                    </div>
                    <div class="item" v-for="(item,index) in searchData" :key="index">
                        <span>
                            {{item.name}}
                        </span>
                        <button @click="item.count++">+</button>
                        <span>
                            {{item.count}}
                        </span>
                        <button @click="item.count--" :disabled="item.count<1">-</button>
                        <span>
                            {{item.price | tofixed(2)}}
                        </span>
                        <span>
                            {{item.price*item.count | tofixed(2)}}
                        </span>
                    </div>
                </div>
                <br>
                所有商品总价 <span>{{count  | tofixed(2)}}</span>
            </div>
        </div>

    js

     new Vue({
                el: '#example',
                data: {
                    //数据
                    items: [{
                        name: '苹果',
                        price: 10,
                        count: 10
                    }, {
                        name: '车厘子',
                        price: 109.6,
                        count: 15
                    }, {
                        name: '火龙果',
                        price: 19.6,
                        count: 3
                    }, {
                        name: '百香果',
                        price: 9.4,
                        count: 30
                    }, {
                        name: '橘子',
                        price: 9.4,
                        count: 30
                    }],
                    input: '',
                    orderType: 0,
                },
    
                computed: {
                    count() {
                        return this.searchData.reduce(function (prev, current) {
                            return prev + current.price * current.count;
                        }, 0)
                    },
                    searchData() {
                        let that = this;
                        if (!this.input) return this.items;
                        let data = this.items.filter((item) => {
                            if (item.name.indexOf(that.input) != -1) {
                                return item;
                            }
                        })
    
                        if (!that.orderType !== 0) {
                            data.sort((a, b) => {
                                if (that.orderType == 1) {
                                    return a.price - b.price;
                                } else {
                                    return b.price - a.price;
                                }
                            })
                        }
                        return data;
                    }
                },
                filters: {
                    tofixed(data, n) {
                        return data.toFixed(n);
                    }
                }
            })

    ...

  • 相关阅读:
    富人和穷人的区别(转)
    asp.net主题的几种应用
    asp.net主题的几种应用
    富人和穷人的区别(转)
    SQL SERVER中一些常见性能问题的总结
    SQL SERVER中一些常见性能问题的总结
    Bind和Eval的区别详解
    优酷去广告代码
    使用jquery框架导致js功能失效解决办法
    absolute定位问题
  • 原文地址:https://www.cnblogs.com/wxyblog/p/14487009.html
Copyright © 2020-2023  润新知