el-timeline时间线中一个item显示多行文字

480 阅读2分钟

在 Element UI 的 el-timeline 组件中,你可以通过自定义每个 el-timeline-item 的内容来显示多行文字。使用适当的 HTML 和 CSS,可以轻松实现这一点。

示例代码

以下是一个示例,展示如何在 el-timeline 中的 el-timeline-item 显示多行文字:

html
复制代码
<template>
  <div>
    <el-timeline>
      <el-timeline-item
        v-for="(item, index) in timelineData"
        :key="index"
        :timestamp="item.timestamp"
        :color="item.color"
      >
        <div class="timeline-item-content">
          <h3>{{ item.title }}</h3>
          <p>{{ item.description1 }}</p>
          <p>{{ item.description2 }}</p>
          <p>{{ item.description3 }}</p>
        </div>
      </el-timeline-item>
    </el-timeline>
  </div>
</template>

<script>
export default {
  data() {
    return {
      timelineData: [
        {
          timestamp: '2022-01-01',
          color: 'primary',
          title: '事件标题1',
          description1: '事件描述1的第一行。',
          description2: '事件描述1的第二行。',
          description3: '事件描述1的第三行。',
        },
        {
          timestamp: '2022-02-01',
          color: 'success',
          title: '事件标题2',
          description1: '事件描述2的第一行。',
          description2: '事件描述2的第二行。',
          description3: '事件描述2的第三行。',
        },
        // 你可以继续添加更多的时间线项
      ],
    };
  },
};
</script>

<style>
.timeline-item-content {
  margin: 10px 0;
}

.timeline-item-content h3 {
  margin: 0;
  font-size: 16px;
  font-weight: bold;
}

.timeline-item-content p {
  margin: 5px 0;
}
</style>

解释

  1. 数据驱动的时间线

    • data 中定义一个 timelineData 数组,其中包含每个时间线项的详细信息,如时间戳、颜色、标题和多行描述。
  2. 动态生成时间线项

    • 使用 v-for 指令遍历 timelineData 数组,并为每个项生成一个 el-timeline-item
    • 使用 :timestamp:color 属性绑定时间戳和颜色。
  3. 自定义内容

    • 在每个 el-timeline-item 内部,使用一个 div 容器包裹内容,并为其添加 timeline-item-content 类。
    • 使用 h3 标签显示标题,并使用多个 p 标签显示多行描述。
  4. 样式

    • timeline-item-content 类用于设置内容容器的样式。
    • h3 标签用于标题,设置了无边距和适当的字体样式。
    • p 标签用于描述,设置了上下间距以使内容更具可读性。

总结

通过自定义 el-timeline-item 的内容和样式,可以在 Element UI 的时间线组件中轻松实现多行文字显示。这种方法利用了 Vue 的数据绑定和循环指令,确保代码简洁且易于维护。