11<template >
22 <div class =" recommend" >
33 <scroll class =" recommend-content" :data =" discList" ref =" scroll" >
4- <!-- 轮播 -->
5- <!-- v-if: 确保slider中数据加载了,再执行slider组件mounted中dom操作 -->
6- <div v-if =" recommends.length" class =" slider-wrapper" >
7- <Slider >
8- <div v-for =" (item, index) in recommends" :key =index >
9- <a href =" javascript:;" >
10- <!-- fastclick和scroll点击事件冲突:加类css属性 -->
11- <img :src =" item.picUrl" @load =" loadImage" class =" needsclick" />
12- </a >
13- </div >
14- </Slider >
15- </div >
16- <!-- 歌单列表 -->
17- <div class =" recommend-list" >
18- <h1 class =" list-title" >热门歌单推荐</h1 >
19- <ul >
20- <li v-for =" (item, index) in discList" :key =index class =" item" >
21- <div class =" icon" >
22- <img v-lazy =" item.imgurl" alt =" img" width =" 60" height =" 60" />
23- </div >
24- <div class =" text" >
25- <h2 class =" name" v-html =" item.creator.name" ></h2 >
26- <p class =" desc" >{{item.dissname}}</p >
4+ <!-- div标签:解决列表挤到顶部无法调整位置 -->
5+ <div >
6+ <!-- 轮播 -->
7+ <!-- v-if: 确保slider中数据加载了,再执行slider组件mounted中dom操作 -->
8+ <div v-if =" recommends.length" class =" slider-wrapper" >
9+ <Slider >
10+ <div v-for =" (item, index) in recommends" :key =index >
11+ <a href =" javascript:;" >
12+ <!-- fastclick和scroll点击事件冲突:加类css属性 -->
13+ <img :src =" item.picUrl" @load =" loadImage" class =" needsclick" />
14+ </a >
2715 </div >
28- </li >
29- </ul >
16+ </Slider >
17+ </div >
18+ <!-- 歌单列表 -->
19+ <div class =" recommend-list" >
20+ <h1 class =" list-title" >热门歌单推荐</h1 >
21+ <ul >
22+ <li v-for =" (item, index) in discList" :key =index class =" item" >
23+ <div class =" icon" >
24+ <img v-lazy =" item.imgurl" alt =" img" width =" 60" height =" 60" />
25+ </div >
26+ <div class =" text" >
27+ <h2 class =" name" v-html =" item.creator.name" ></h2 >
28+ <p class =" desc" >{{item.dissname}}</p >
29+ </div >
30+ </li >
31+ </ul >
32+ </div >
33+ </div >
34+ <div class =" loading-container" v-show =" !discList.length" >
35+ <loading ></loading >
3036 </div >
3137 </scroll >
38+
3239 </div >
3340</template >
3441
@@ -37,12 +44,14 @@ import { getRecommend, getDiscList } from 'api/recommend'
3744import { ERR_OK } from ' api/config'
3845import Slider from ' base/slider/slider'
3946import Scroll from ' base/scroll/scroll'
47+ import Loading from ' base/loading/loading'
4048
4149export default {
4250 name: ' Recommend' ,
4351 components: {
4452 Slider,
45- Scroll
53+ Scroll,
54+ Loading
4655 },
4756 data () {
4857 return {
@@ -127,4 +136,9 @@ export default {
127136 color $color-text
128137 .desc
129138 color $color-text-d
139+ .loading-container
140+ position absolute
141+ width 100%
142+ top 50%
143+ transform translateY (- 50% )
130144 </style >
0 commit comments