• vue购物列表小例子


      1 <!DOCTYPE html>
      2 <html>
      3     <head>
      4         <meta charset="utf-8">
      5         <title>购物车</title>
      6         <style>
      7             .content{
      8                 height: 500px;
      9                 margin: 50px 30px;
     10                 border: 1px solid #e3e3e3;
     11                 border-top: 2px solid #0078E7;
     12             }
     13             h3{
     14                 color: #0078E7;
     15                 padding-left: 20px;
     16             }
     17             .title{
     18                 height: 50px;
     19                 border-bottom: 1px solid #e3e3e3;
     20                 background: #f7f7f7;
     21                 text-align: center;
     22             }
     23             td{
     24                 text-align: center;
     25             }
     26             td div{
     27                 display: inline-block;
     28             }
     29             .wid200{
     30                     width: 168px;
     31                     text-align: center;
     32                     /* background: yellow; */
     33             }
     34             .goods-logo{
     35                 display: inline-block;
     36                 height: 100px;
     37                 width: 100px;
     38                 border: 1px solid #ccc;
     39             }
     40             .goods-logo img{
     41                 display: inline-block;
     42                 height: 100%;
     43                 width: 100%;
     44             }
     45             .goods-instr{
     46                 font-size: 12px;
     47                 text-align: left;
     48                 padding-left: 0.625rem;
     49             }
     50             .goods-countout{
     51                 border: 1px solid #f7f7f7;
     52             }
     53             .goods-countout span{
     54                 display: inline-block;
     55                 width: 40px;
     56                 height: 1.875rem;
     57                 text-align: center;
     58             }
     59             .goods-count{
     60                 background: #f7f7f7;
     61             }
     62             .footer{
     63                 width: 100%;
     64                 height: 50px;
     65                 line-height: 50px;
     66             }
     67             .footer div{
     68                 display: inline-block;
     69                 text-align: center;
     70             }
     71             .delete-all{
     72                 width: 6.25rem;
     73                 height: 100%;
     74                 padding-left: 20px;
     75             }
     76             .going-buy{
     77                 margin-left: 20px;
     78             }
     79             .goods-price{
     80                 float: right;
     81             }
     82             .orange{
     83                 color: #ff7700;
     84             }
     85             .out-buy{
     86                 float: right;
     87                 width: 100px;
     88                 background: #ff7700;
     89                 font-size: 18px;
     90                 margin-left: 25px;
     91             }
     92             .active{
     93                 background: #ff7700;
     94             }
     95             .delect:hover{
     96                 height: 50px;
     97                 line-height: 50px;
     98                 display: inline-block;
     99                 background: #ff7700;
    100                 padding-left: 10px;
    101                 padding-right: 10px;
    102             }
    103             .checke{
    104                 display: inline-block;
    105                 height: 1.25rem;
    106                 width: 1.25rem;
    107                 border: 1px solid #ff7700;
    108                 border-radius: 50%;
    109                 margin-right: 6px;
    110                 vertical-align: middle;
    111             }
    112             
    113         </style>
    114     </head>
    115     <body>
    116         <div class="content" id="app1">
    117             <h3>购物清单</h3>
    118             <table style="100%;">
    119                 <tr class="title">
    120                     <td class="wid200"><a class="checke" :class="{active:allchekdflag}" @click="allcheck"></a><span>全选</span></td>
    121                     <td style=" 400px;">商品</td>
    122                     <td class="wid200">数量</td>
    123                     <td class="wid200">单价(元)</td>
    124                     <td class="wid200">金额(元)</td>
    125                     <td class="wid200">操作</td>
    126                 </tr>
    127             </table>
    128             <!-- 商品购买详情 -->
    129             <div >
    130                 <table style="100%;">
    131                     <tr v-for="(item,index) in productList">
    132                      <td><a @click="checkfun(index)" class="checke" :class="{active:item.checkedflag}"></a></td>
    133                      <td style=" 400px;">
    134                         <div class="goods-logo">
    135                             <img class v-bind:src="item.pro_img">
    136                         </div>
    137                         <div class="goods-instr">
    138                             <p>{{item.pro_name}}</p>
    139                             <p>{{item.pro_place}}</p>
    140                             <p>{{item.pro_purity}}|{{item.pro_min}}</p>
    141                             <p>配送仓储:{{item.pro_depot}}</p>
    142                         </div>
    143                      </td>
    144                      <td class="wid200">
    145                         <div class="goods-countout">
    146                             <span class="down goods-count" @click="item.pro_num>0?item.pro_num--:0" :class="{'active':curIndex===index+'0'}">-</span>
    147                             <span class="count">{{item.pro_num}}</span>
    148                             <span class="up goods-count" @click="item.pro_num++" :class="{'active':curIndex===index+'1'}"> + </span>
    149                         </div>
    150                      </td>
    151                      <td class="wid200 orange"><span>{{item.pro_price}}</span></td>
    152                      <td class="wid200 orange"><span>{{item.pro_price*item.pro_num}}</span></td>
    153                      <td class="wid200"><span class="delect" @click="delect(index)">删除</span></td>
    154                 </tr></table>
    155             </div>
    156             <!-- 结算 -->
    157             <div class="footer goods-count">
    158                 <div class="delete-all delect" @click="deleteActive"><span>删除所选产品</span></div>
    159                 <div class="going-buy"><span>继续购物</span></div>
    160                 <div class="out-buy">去结算</div>
    161                 <div class="goods-price">
    162                     <span class="orange">{{getTotle.totleCount}}</span>件商品总计(不含运费):¥
    163                     <span class="orange">{{getTotle.totlePrice}}</span>
    164                 </div>
    165                 
    166             </div>
    167         </div>
    168         <script src="vue.js"></script>
    169         <script>
    170             new Vue({
    171                 el:"#app1",
    172                 data:{
    173                     productList:[{
    174                         'pro_name':'【斯文】甘油|丙三醇1',//产品名称
    175                         'pro_brand':'skc',//产品品牌
    176                         'pro_place':'韩国',//产地
    177                         'pro_purity':'99.7%',//规格
    178                         'pro_min':'215千克',//最小起订量
    179                         'pro_depot':'上海沧海仓库',//所在仓库
    180                         'pro_num':3,//数量
    181                         'pro_img':'../build/logo.png',//图片
    182                         'pro_price':800//单价
    183                     },{
    184                         'pro_name':'【斯文】甘油|丙三醇2',//产品名称
    185                         'pro_brand':'skc',//产品品牌
    186                         'pro_place':'韩国',//产地
    187                         'pro_purity':'99.7%',//规格
    188                         'pro_min':'215千克',//最小起订量
    189                         'pro_depot':'上海沧海仓库',//所在仓库
    190                         'pro_num':1,//数量
    191                         'pro_img':'../build/logo.png',//图片
    192                         'pro_price':800//单价
    193                     }],
    194                     curIndex:'',
    195                     checkedflag:false,
    196                     allchekdflag:false,
    197                 },
    198                 methods:{
    199                     // countDown(index){//数量减少
    200                     //     this.curIndex=index+'0';
    201                     //     var num = this.productList[index].pro_num;
    202                     //     if(num>0){
    203                     //         this.productList[index].pro_num = this.productList[index].pro_num-1;
    204                     //         if(this.productList[index].pro_num==0){
    205                     //             this.curIndex='';
    206                     //         }
    207                     //         console.log(this.childTotal);
    208                     //         this.childTotal = this.productList[index].pro_num*this.productList[index].pro_price;
    209                     //     }else{
    210                     //         this.curIndex='';
    211                     //     }
    212                     // },
    213                     // countUp(index){//数量增加
    214                     //     this.curIndex=index+'1';
    215                     //     var num = this.productList[index].pro_num;
    216                     //     this.productList[index].pro_num = this.productList[index].pro_num+1;
    217                     // },
    218                     delect(index){
    219                         // 删除指定列表
    220                         this.productList.splice(index,1);
    221                     },
    222                     deleteActive(){//删除已选择列表
    223                         var productList = this.productList;
    224                         if(this.allchekdflag){
    225                             this.productList=[];
    226                             this.allchekdflag  = false;
    227                         }else{
    228                             this.productList = productList.filter(function(value){
    229                                 return !value.checkedflag;
    230                             });
    231                         }
    232                     },
    233                     checkfun(index){//单选
    234                        // Vue.set实时更新视图数据
    235                          Vue.set(this.productList[index],'checkedflag',!this.productList[index].checkedflag);
    236                          if(!this.productList[index].checkedflag){
    237                              this.allchekdflag  =false;
    238                          }
    239                     },
    240                     allcheck(){//全选
    241                         this.allchekdflag = !this.allchekdflag;
    242                         for(var i=0;i<this.productList.length;i++){
    243                             Vue.set(this.productList[i],'checkedflag',this.allchekdflag)
    244                             // this.productList[i].checkedflag = this.allchekdflag;
    245                         }
    246                     }
    247                 },
    248                 computed:{
    249                     getTotle(){ //对下面两个写法的简单写法
    250                         var totlePrice = 0,productList = this.productList;
    251                         var _productList = this.productList.filter(function(value){
    252                             return value.checkedflag;
    253                         })
    254                         for(var i=0;i<_productList.length;i++){
    255                               totlePrice+=_productList[i].pro_num*_productList[i].pro_price;
    256                         }
    257                         return {'totlePrice':totlePrice,'totleCount':_productList.length};
    258                     },
    259                     // total(){//总价格
    260                     //     var allcount = 0,productList = this.productList;
    261                     //     var _productList = this.productList.filter(function(value){
    262                     //         return value.checkedflag;
    263                     //     })
    264                     //     for(var i=0;i<_productList.length;i++){
    265                     //           allcount+=_productList[i].pro_num*_productList[i].pro_price;
    266                     //     }
    267                     //     return allcount;
    268                     // },
    269                     // buyscounts(){//购买的总数
    270                     //    var count=0,productList = this.productList;
    271                     //    for(var i=0;i<productList.length;i++){
    272                     //          productList[i].checkedflag&&count++;
    273                     //    }
    274                     //     return count;
    275                     // }
    276                 }
    277             })
    278         </script>
    279     </body>
    280 </html>

  • 相关阅读:
    手机游戏怎么独占世界手游鳌头
    游戏开发商是如何做到每日进帐410万美元的?
    [手游新项目历程]-48-svn分支开发与主干合并
    三国武将所带兵种
    Supercell:靠两款手游如何做到30亿美金市值?
    理财投资这需要知道的50个真相
    [手游新项目历程]-49-性能分析
    [手游新项目历程]-50-Mysql的大字段问题(数据库执行错误: Error=1118, Reason=Row size too large (> 8126))
    三国杀
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/changyuqing/p/10956492.html
Copyright © 2020-2023  润新知