购物车66

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8" />

    <meta http-equiv="X-UA-Compatible" content="IE=edge" />

    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <link rel="stylesheet" href="./css/inputnumber.css" />

    <link rel="stylesheet" href="./css/index.css" />

      <title>购物车</title>

</head>



 

<body>

      <div class="app-container" id="app">

            <!-- 顶部banner -->

            <div class="banner-box"><img src="http://autumnfish.cn/static/fruit.jpg" alt="" /></div>

            <!-- 面包屑 -->

            <div class="breadcrumb">

                  <span>🏠</span>

                  /

                  <span>购物车</span>

                </div>

            <!-- 购物车主体 -->

            <div class="main" v-if="fruitList.length > 1">

                  <div class="table">

                        <!-- 头部 -->

                        <div class="thead">

                              <div class="tr">

                                    <div class="th">选中</div>

                                    <div class="th th-pic">图片</div>

                                    <div class="th">单价</div>

                                    <div class="th num-th">个数</div>

                                    <div class="th">小计</div>

                                    <div class="th">操作</div>

                                  </div>

                            </div>

                        <!-- 身体 -->

                        <div class="tbody">

                              <div class="tr" :class="{active:item.isChecked}" v-for="(item,index) in fruitList"

                        :key="item.id">

                                    <div class="td"><input type="checkbox" v-model="item.isChecked" /></div>

                                    <div class="td"><img :src="item.icon" alt="" /></div>

                                    <div class="td">{{item.price}}</div>

                                    <div class="td">

                                          <div class="my-input-number">

                                                <button :disabled="item.num <= 1" class="decrease"

                                    @click="jian(item.id)"> - </button>

                                                <span class="my-input__inner">{{item.num}}</span>

                                                <button class="increase" @click="add(item.id)"> + </button>

                                              </div>

                                        </div>

                                    <div class="td">{{ item.num *item.price }}</div>

                                    <div class="td"><button @click="del(item.id)">删除</button></div>

                                  </div>

                            </div>

                      </div>

                  <!-- 底部 -->

                  <div class="bottom">

                        <!-- 全选 -->

                        <label class="check-all">

                              <input type="checkbox" v-model="isAll" />

                              全选

                            </label>

                        <div class="right-box">

                              <!-- 所有商品总价 -->

                              <span class="price-box">总价&nbsp;&nbsp;:&nbsp;&nbsp;¥&nbsp;<span

                            class="price">{{totalPrice}}</span></span>

                              <!-- 结算按钮 -->

                              <button class="pay">结算( {{totalNum}} )</button>

                            </div>

                      </div>

                </div>

            <!-- 空车 -->

            <div class="empty" v-else=''>🛒空空如也</div>

          </div>

     

    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>

     

    <script>

        const app = new Vue({

            el: '#app',

            data: {

                // 水果列表

                fruitList: [

                    {

                        id: 1,

                        icon: 'http://autumnfish.cn/static/火龙果.png',

                        isChecked: true,  /* 选中状态 */

                        num: 2,

                        price: 6,

                    },

                    {

                        id: 2,

                        icon: 'http://autumnfish.cn/static/荔枝.png',

                        isChecked: false,

                        num: 7,

                        price: 20,

                    },

                    {

                        id: 3,

                        icon: 'http://autumnfish.cn/static/榴莲.png',

                        isChecked: false,

                        num: 3,

                        price: 40,

                    },

                    {

                        id: 4,

                        icon: 'http://autumnfish.cn/static/鸭梨.png',

                        isChecked: true,

                        num: 10,

                        price: 3,

                    },

                    {

                        id: 5,

                        icon: 'http://autumnfish.cn/static/樱桃.png',

                        isChecked: false,

                        num: 20,

                        price: 34,

                    },

                ],



 

            },

            methods: {

                del(id) {

                    this.fruitList = this.fruitList.filter(item => item.id != id)

                },

                add(id) {

                    /* 根据 id找到 数组的对应项 ->find方法 */

                    const fruit = this.fruitList.find(item => item.id === id)

                    /* 操作数组里的num */

                    fruit.num++

                },

                jian(id) {

                    const fruit = this.fruitList.find(item => item.id === id)

                    fruit.num--

                }

            },

            computed: {

                isAll: {

                    get() {/* 必须所有的都选中才会全选 */

                        let allChoice = this.fruitList.every(item => item.isChecked === true)

                        return allChoice

                    },

                    set(value) {

                        /* 基于拿到的布尔值,要让所有小选框 同步状态 */

                        let notALL = this.fruitList.forEach(item => item.isChecked = value)

                        return notALL

                    }

                },

                totalNum() {

                    let num = this.fruitList.reduce((sum, item) => sum + item.num, 0)

                    return num

                },

                totalPrice() {

                    let price = this.fruitList.reduce((sum, item) => sum + item.num * item.price, 0)

                    return price

                }


 

            },

            watch:{

                fruitList:{

                    deep:true,

                    handler (newValue){

                     /* 需要将变化后的 newValue 存入本地  (如果newValue是复杂类型,先转JSON) */

                     

                     /* JSON:JS对象表示法。 只要符合key:value格式的数据 都可以叫做JSON数据 */

                     

                     /* JS中的JSON数据,对象,数组,JSON字符串 */

                     /* JSON:ES5中新增的对象 parse方法将字符串(必须得符合JSON格式)转为对象  stringify方法将对象转成字符串 */

                     localStorage.setItem(' list ',JSON.stringify(newValue))   /* localStorage.setItem( 键 : 值 )   键这里是自定义的名字   值如果是对象 记得 转字符串*/  

/* 此时删除后刷新页面 发现没有存档成功 */

                    }

                }

            }

        })

    </script>

</body>



 

</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理的内容越多,也需要更多的人来对数据进行整理,并且数据的汇总查询方面效率也是极其的低下,并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点,在互联网时代都可以得到有效的补充。结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。本次开发的医院后台管理系统实现了病房管理、病例管理、处方管理、字典管理、公告信息管理、患者管理、药品管理、医生管理、预约医生管理、住院管理、管理员管理等功能。系统用到了关系型数据库中王者MySql作为系统的数据库,有效的对数据进行安全的存储,有效的备份,对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能,使得操作性还是安全性都大大提高,让医院后台管理系统更能从理念走到现实,确确实实的让人们提升信息处理效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值