vue+axios按店铺排列的购物车功能

vue实现按店铺排列的购物车及相关功能

新手小白,日常记录,第一篇:购物车功能记录,此购物车包含了按店铺排列商品,数量、金额统计,单选商品,全选商品,店铺选择商品,多选删除,移入收藏夹,店铺优惠券展示及领取。

效果图:

在这里插入图片描述

页面代码:

前端vue代码:因为一开始想的很简单,商品遍历就直接用的el-table组件

<div class="shangpin">
                 <div class="shop" v-for="(val,k) in goodsList" :key="k">
               <input type="checkbox" name="selected"  @click="shopcheck(val.shoplist,k)">
                <span>店铺:{
   {
   val.shopname}}</span>

             <el-dropdown @command="changeCommand" trigger="click" placement="bottom-start" @click.native="loadData(k)">
                   <span class="el-dropdown-link" style="border:2px dashed red;border-radius:5px;margin-left:55px;color:red">
                    优惠券
                  <i class="el-icon-arrow-down el-icon--right" style="border-right:2px dashed red;border-radius:5px;color:red"></i>
                   </span>
            <el-dropdown-menu   slot="dropdown" class="menul">
                  <div  style="float:left;width:100%;margin-bottom:5px;" v-for="(item,id) in projectOption" :key="id" :command="item.id">
                   <span> {
   {
   item.name}}  {
   {
   item.desc}}减¥{
   {
   item.discount}}
                   </span>
                  <div style="float:right"  @click="coupon(id,item)">
                    <span v-if="acquirerArr.indexOf(item)==-1" style="border:1px solid gray;width:30px;padding:3px;" >领取</span>
                    <span v-if="acquirerArr.indexOf(item)>-1" style="font-color:lightgray;background-color:lightgray">领取成功</span>
                  </div>
                  </div>
              </el-dropdown-menu>
            </el-dropdown>

               <el-table ref="multipleTable" @selection-change="handleSelectionChange" :data="val.shoplist"  style="width: 100%; overflow:visible;" >
               <el-table-column  type="selection"  width="100" ></el-table-column>
                <el-table-column align="center"  label="图片">
                <template slot-scope="scope">
               <img :src="scope.row.picUrl" width="50" height="50px;" alt=''/>
               </template>
             </el-table-column>

               <el-table-column  prop="goodsName"  label="标题"  width="450"> </el-table-column>
               <el-table-column label="数量" width="200" style="align:center">
                <template slot-scope="scope" >
                    <el-input-number class="number" size="mini" :min="1"  v-model="scope.row.number" @change="handleChange"></el-input-number>
                </template>
            </el-table-column>
             <el-table-column prop="price" label="价格" > </el-table-column>
               <el-table-column label="金额">
                 <template slot-scope="scope" >
                    {
   {
   scope.row.number*scope.row.price}}
                </template>
               </el-table-column>
             </el-table>
          </div>
       </div>

因为后端查询返回了的只是一条条购物车内商品数据,并没有相关的对按店铺分类的处理所以就先得进行下数据的处理:
data需要的数据的结构
在这里插入图片描述

数据处理

             //购物车列表
        getCartDetail: function(){
   
          console.log(sessionStorage.getItem('token'),"tokentoekn")
          if(sessionStorage.getItem('token') == null|| sessionStorage.getItem('token') == undefined){
   
         this.$router.push({
   path:'/Login'});
      
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值