#vue# 纯手写“页面数据为空时,显示空状态图片”

需求:在我们的页面,没有显示任何数据时,显示图片以及提示语

效果:

 

 后端接口数据

思路:

(1)只需要在页面里面加入一个div,当页面里面的数据为0时,就用v-show展示出来(就是当页面没有数据的时候,就显示这个图片)

(注意,这个空状态的div需要放在具体呈现的位置进行排版)

//(2)设置一个变量,例如totalNum ,在js的data板块先把变量totalNum设置为0,就是先不展示出来

(3)最后一步,就是让我们的变量totalNum 全等于 0(就是没有数据的时候)才显示出来,那么就将我们这个变量等于我们的数据接口里面的length(长度)就可以了,如果后端接口里面是有数据的,那么就说明length是有长度的那么就不会显示我们的空状态图片

注:由于我们这个后端接口里面,没有条数这个参数,所以在设置时,让变量等于length就可以了
在平时的话,就优先先考虑看看有没有条数(total_number)

demo代码如下:

<template>
    <div>
       <el-button class="state-text"
            @click="getLiveBack(item.id)"
            type="primary">
           <span>回放设置</span>
      </el-button>
      <el-drawer
          title="回放列表"
          :visible.sync="drawer"
          :direction="direction"
          :with-header="true">
          <aliyun-upload @file-success = "handleFileSuccess">
          <button class="edu-submit-btn upload-btn">+上传回放</button>
        </aliyun-upload>

//(1)下面这个类名为nodata的div 就是当页面没有数据的时候,就显示这个图片
自己设置一个变量totalNum ,使用v-show进行显示及隐藏

          <div class="nodata" v-show="totalNum === 0">  
            <img src="@/assets/img/empty.png">
            <p>暂无回放!</p>
          </div>

      <backplay-item v-for="videos in liveBackVideos" :key="videos.id"
           :item-title = "videos.title"
           :item-duration = "videos.duration | getTimeText"
           :start-time = "videos.start_time"
           :end-time = "videos.end_time"
           :can-download = 'true'
           :video-id = "videos.video_id"
           @del-item = "delItem"
           @show-item = "showVideo(videos.video_id)">
        </backplay-item>
    </el-drawer>
</template>
<script>
     data () {
        return {
            totalNum:0 //(2)先把变量totalNum设置为0,就是先不展示出来
        }
    },
    methods:{
        getLiveBack(liveId) {
            //回放列表
            recordList({
                live_id:liveId
            }).then(res => {
                this.liveBackVideos = res.data;
                this.totalNum = res.data.length; 
//(3)最后一步,就是让我们的变量totalNum 全等于 0(就是没有数据的时候)才显示出来,那么就将
我们这个变量等于我们的数据接口里面的length(长度)就可以了,如果后端接口里面是有数据的,那么就说明length是有长度的那么就不会显示我们的空状态图片

注:由于我们这个后端接口里面,没有条数这个参数,所以在设置时,让变量等于length就可以了
在平时的话,就优先先考虑看看有没有条数(total_number)

                this.drawer = true;
                this.liveId = liveId
            })
        }
      }
</script>
<style>
    
.state-btn .state-text {
    display: inline-block;
    height: .24rem;
    line-height: .24rem;
    font-size: .16rem;
    font-family: SourceHanSansSC-Regular, SourceHanSansSC;
    font-weight: 400;
    @extend .edu-active-color;
    padding: .11rem .24rem 0 .04rem;
    background-color: transparent;
    border: 0 solid transparent;
    outline: none;

}
.state-btn .state-text span {
    color: #2158C7;
}
    
.nodata {
    width: 2.88rem;
    height:2.11rem;
    margin: 1rem auto;
}

.nodata img {
    width: 100%;
    height: 100%;
}
.nodata p {
    font-size: .14rem;
    color: #666666;
    text-align: center;
    padding-top: .1rem;
    font-family: SourceHanSansSC-Bold, SourceHanSansSC;
    font-weight: 400;
}

</style>
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值