Timeline timeline component implemented by vue - modeled after elementui

  1. The style is as follows:
    insert image description here
    the code is as follows:
<template>
  <ul class="timeline" >
    <li class="timeline-item" v-for="item in activities" :key="item.index">
      <div class="item-tail"></div>
      <div class="item-node"></div>
      <div class="item-wrapper">
        <div class="item-content">系统通知,流程</div>
        <div class="item-time" ref="time">时间:{
    
    {
    
     item.timestamp }}</div>
        <div class="item-process">节点:{
    
    {
    
     item.process }}</div>
        <div class="item-result">结果:{
    
    {
    
     item.result }}</div>
      </div>
    </li>
  </ul>
</template>
<script>
import {
    
     reactive } from "vue";

export default {
    
    
  setup() {
    
    
    const activities = reactive([
      {
    
    
        content: "活动开始",
        timestamp: "2018-04-15",
        process: "已发送",
        result: "无",
      },
      {
    
    
        content: "通过审核",
        timestamp: "2018-04-13",
        process: "已审核",
        result: "无",
      },
      {
    
    
        content: "创建成功",
        timestamp: "2018-04-11",
        process: "结束",
        result: "无",
      },
    ]);

    return {
    
     activities };
  },
};
</script>

<style scoped lang='less'>
.timeline {
    
    
  margin: 0;
  font-size: 14px;
  list-style: none;
  background-color: #fff;
  margin: 20px;
  .timeline-item {
    
    
    position: relative;
    padding-bottom: 20px;
    .item-tail {
    
    
      position: absolute;
      left: 4px;
      height: 100%;
      border-left: 2px solid #e4e7ed;
    }
    .item-node {
    
    
      left: -2px;
      width: 10px;
      height: 10px;
      position: absolute;
      background-color: #fff;
    border: 2px solid #ccc;
      border-radius: 50%;
      display: flex;
      justify-content: center;
      align-items: center;
    }
    .item-wrapper {
    
    
      position: relative;
      padding-left: 28px;
      top: -3px;
      .item-content {
    
    
        color: #6395f8;
      }
      .item-time {
    
    
        margin-top: 8px;
        color: #909399;
        line-height: 1;
        font-size: 13px;
      }
      .item-process {
    
    
        margin-top: 8px;
      }
      .item-result {
    
    
        margin-top: 8px;
      }
    }
  }
}
</style>

Guess you like

Origin blog.csdn.net/qq_45234274/article/details/120670788