vue上下标示时间线

2019-04-26  本文已影响0人  猿分让我们相遇

效果


时间线.png

上下标示时间线(sb需求),保证时间线的标识,根据数据的长度定义宽度,超出为横向滚动条

<div class="zdy">
  <div :style="{width: forwidth +'px'}" class="secondbox">
    <div class="line firstline">无效</div>
    <div class="dib" style="margin-left: 100px">
      <div class="dib" v-for="(val,ind) in dayRuleData" :key="ind">
        <div class="dian"></div>
        <div class="line normalline">正常</div>
        <div class="dian"></div>
        <div class="line">
          <span v-if="(dayRuleData.length-1)!==ind">迟到</span>
          <span v-else>无效</span>
        </div>
        <div class="time-all">
          <span class="start-time">{{val.dayStartTime}}</span>
          <span class="end-time">{{val.dayEndTime}}</span>
          <div class="time-name">{{val.dayRuleName}}</div>
        </div>
      </div>
    </div>
  </div>
</div>
data(){
  return{
    forwidth:850,//默认宽度
    dayRuleData:[],
  }
},
methors:{
//获取后台数据
  getDayRuleList(){
        requestServices.dayRuleList({groupId:this.$route.query.groupId}).then((res) => {
          this.dayRuleData=res.resultData.datas;
          this.forwidth=this.dayRuleData.length*184+100;//根据数据的长度定义宽度
        })
      },
}
<style>
  .zdy{
    height: 66px;
    width: 95%;
    font-size: 11px;
    color: #C0C4CC;
    margin: 0 auto;
    overflow-x: auto;
    overflow-y:hidden ;
  }
  .dian{
    width: 12px;
    height: 12px;
    background-color: #409EFF;
    border-radius: 50%;
    display: inline-block;
    position: relative;
    top: 10px;
  }
  .line{
    width: 100px;
    border-bottom: 2px solid #C0C4CC;
    color: #C0C4CC;
    font-size: 11px;
    text-align: center;
    display: inline-block;
  }
  .normalline{
    width: 50px;
    border-bottom: 2px solid #409EFF;
  }
  .time-all{
    margin-top: 10px;
  }
  .start-time{
    /*margin-left: 100px;*/
  }
  .end-time{
    margin-left: 30px;
  }
  .time-name{
    margin:8px 0 0 8px;
  }
  .firstline{
    position: absolute;
  }
  .secondbox{
    margin: auto;
  }
</style>
上一篇下一篇

猜你喜欢

热点阅读