引入buyCart组件
回到shop.vue组件中,将buyCart.vue引入这个组件中,传入相关数据,以及要实现的监听小球是否进入购物车事件。
|
|
底部购物车结算
展示购物车商品数量和总价,同时购物车商品的数量和总价会随着购物车中的商品增加或减少改变而改变。计算购物车里的商品总数量。
|
|
同时购物车商品数量有值时改变class的状态,绑定class,data中定义totalPrice
表示总价。
|
|
当购物车商品有数量时,显示购物车商品总数量。
|
|
展示总价和配送费
|
|
还差多少元起送,在computed钩子中计算差价。
|
|
当差价小于0时高亮去结算按钮的样式,绑定class :class="{goToPay_activity: minimumOrderAmount < 0}">
|
|
监听购物车中商铺列表的变化,当length为0时将列表隐藏。
|
|
效果如图:
购物车展示商品列表
点击购物车小图标,展示购物车中的商品列表。
|
|
当然先要判断购物车里是否有商品v-show="showCartList&&cartFoodList.length"
。如果有商品遍历它们依次展示商品详情,代码如下:
|
|
购物车减少和增加按钮事件
对购物车商品的增加和减少图标绑定事件动态的控制。removeOutCart()
减少事件,addToCart()
增加事件。
依次添加所需要的参数,分别是商铺id,食品分类id,食品id,食品规格id,食品名字,食品价格,食品规格。
|
|
清空购物车列表
|
|
评价
当点击评价时显示评价页v-show="changeShowType == 'rating'"
获取评价总体分数数据
shop.js
|
|
data中定义ratingScores
表示评价总分数。
shop.vue
|
|
设置综合评价
|
|
设置服务态度
|
|
设置菜品评价
|
|
设置送达时间
|
|
效果如下:
获取评价分类
shop.js
|
|
data中定义ratingTagsList
表示评价分类列表。
shop.vue
|
|
遍历ratingTagsList
,设置默认当前评价分类的index
|
|
效果如图:
获取商铺评价列表
shop.js
|
|
data中定义ratingList
表示评价列表。
shop.vue
|
|
遍历ratingList:<li v-for="(item, index) in ratingList" :key="index" class="rating_list_li">
设置头像:<img :src="getImgPath(item.avatar)" class="user_avatar">
设置用户名称:<p class="username"></p>
设置星级和日期:
|
|
设置商品图片,图片有多个需要做遍历:
|
|
设置商品名称,和图片一样也需要做遍历:
|
|
效果如图:
初始化数据
页面初始化时会获取到从本地缓存购物车数据,重新获取购物车改变过的数据。初始化数据同样我也通过vuex管理。
mutations.js
|
|
shop.vue
|
|
监听购物车列表的变化
|
|
具体代码见:
https://github.com/kakajing/vue-elmm
如有什么疑问或者不懂之处,可以加这个群交流:
QQ群:157028081