Skip to content
12:13

图鸟 UI vue3 uniapp 插件 - 签名板

该组件用于展示与时间相关的信息,如日志、签到记录等。

仓库地址

Github

npmjs

安装方式

bash
npm i tnuiv3p-tn-time-line
npm i tnuiv3p-tn-time-line
bash
pnpm add tnuiv3p-tn-time-line
pnpm add tnuiv3p-tn-time-line
bash
yarn i tnuiv3p-tn-time-line
yarn i tnuiv3p-tn-time-line

组件位置

typescript
import TnTimeLine from 'tnuiv3p-tn-time-line/time-line.vue'
import TnTimeLineItem from 'tnuiv3p-tn-time-line/time-line-item.vue'
import TnTimeLineData from 'tnuiv3p-tn-time-line/time-line-data.vue'
import TnTimeLine from 'tnuiv3p-tn-time-line/time-line.vue'
import TnTimeLineItem from 'tnuiv3p-tn-time-line/time-line-item.vue'
import TnTimeLineData from 'tnuiv3p-tn-time-line/time-line-data.vue'

平台差异说明

App(vue)H5微信小程序支付宝小程序...
适配中

基础使用

TnTimeLineData组件中自定义当前事件节点的内容,节点的内容放在默认的插槽中

使用TnTimeLineItem包裹TnTimeLineData组件,该组件可以设置大节点的标题信息,也可以通过slot="title"插槽自定义标题内容

使用TnTimeLine包裹着全部TnTimeLineItem节点

vue
<script setup lang="ts">
import TnTimeLine from 'tnuiv3p-tn-time-line/time-line.vue'
import TnTimeLineItem from 'tnuiv3p-tn-time-line/time-line-item.vue'
import TnTimeLineData from 'tnuiv3p-tn-time-line/time-line-data.vue'

interface TimeLineDataItem {
  date?: string
  version?: string
  content: string
}

interface TimeLineData {
  month: string
  icon?: string
  data: TimeLineDataItem[]
}

// 时间轴数据
const timeLineData: TimeLineData[] = [
  {
    month: '2023-07',
    icon: 'moments',
    data: [
      {
        date: '1',
        version: '1.0.0',
        content:
          '图鸟科技,图鸟UI vue3 uniapp版本全新发布,欢迎各位开发者进行使用',
      },
      {
        content:
          '图鸟科技,图鸟UI vue3 uniapp版本全新发布,欢迎各位开发者进行使用',
      },
    ],
  },
  {
    month: '2023-08',
    icon: 'creative',
    data: [
      {
        content:
          '图鸟科技,图鸟UI vue3 uniapp版本全新发布,欢迎各位开发者进行使用',
      },
      {
        date: '2',
        version: '1.0.0',
        content:
          '图鸟科技,图鸟UI vue3 uniapp版本全新发布,欢迎各位开发者进行使用',
      },
    ],
  },
]
</script>

<template>
  <view class="content">
    <TnTimeLine>
      <TnTimeLineItem
        v-for="(item, index) in timeLineData"
        :key="index"
        :title="item.month"
        :title-icon="item.icon !== undefined ? item.icon : ''"
      >
        <TnTimeLineData
          v-for="(dataItem, dataIndex) in item.data"
          :key="dataIndex"
        >
          <view
            v-if="dataItem?.date"
            class="time-line__title tn-flex justify-between items-center tn-gray-dark_text"
          >
            <view class="date">{{ dataItem?.date || '' }}</view>
            <view class="version">{{ dataItem?.version || '' }}</view>
          </view>
          <view class="time-line__data">
            {{ dataItem.content }}
          </view>
        </TnTimeLineData>
      </TnTimeLineItem>
    </TnTimeLine>
  </view>
</template>

<style lang="scss" scoped>
.content {
  position: relative;
  width: 100%;
  padding: 30rpx;

  .time-line {
    &__title {
      font-size: 32rpx;
      margin-bottom: 20rpx;
    }
  }
}
</style>
<script setup lang="ts">
import TnTimeLine from 'tnuiv3p-tn-time-line/time-line.vue'
import TnTimeLineItem from 'tnuiv3p-tn-time-line/time-line-item.vue'
import TnTimeLineData from 'tnuiv3p-tn-time-line/time-line-data.vue'

interface TimeLineDataItem {
  date?: string
  version?: string
  content: string
}

interface TimeLineData {
  month: string
  icon?: string
  data: TimeLineDataItem[]
}

// 时间轴数据
const timeLineData: TimeLineData[] = [
  {
    month: '2023-07',
    icon: 'moments',
    data: [
      {
        date: '1',
        version: '1.0.0',
        content:
          '图鸟科技,图鸟UI vue3 uniapp版本全新发布,欢迎各位开发者进行使用',
      },
      {
        content:
          '图鸟科技,图鸟UI vue3 uniapp版本全新发布,欢迎各位开发者进行使用',
      },
    ],
  },
  {
    month: '2023-08',
    icon: 'creative',
    data: [
      {
        content:
          '图鸟科技,图鸟UI vue3 uniapp版本全新发布,欢迎各位开发者进行使用',
      },
      {
        date: '2',
        version: '1.0.0',
        content:
          '图鸟科技,图鸟UI vue3 uniapp版本全新发布,欢迎各位开发者进行使用',
      },
    ],
  },
]
</script>

<template>
  <view class="content">
    <TnTimeLine>
      <TnTimeLineItem
        v-for="(item, index) in timeLineData"
        :key="index"
        :title="item.month"
        :title-icon="item.icon !== undefined ? item.icon : ''"
      >
        <TnTimeLineData
          v-for="(dataItem, dataIndex) in item.data"
          :key="dataIndex"
        >
          <view
            v-if="dataItem?.date"
            class="time-line__title tn-flex justify-between items-center tn-gray-dark_text"
          >
            <view class="date">{{ dataItem?.date || '' }}</view>
            <view class="version">{{ dataItem?.version || '' }}</view>
          </view>
          <view class="time-line__data">
            {{ dataItem.content }}
          </view>
        </TnTimeLineData>
      </TnTimeLineItem>
    </TnTimeLine>
  </view>
</template>

<style lang="scss" scoped>
.content {
  position: relative;
  width: 100%;
  padding: 30rpx;

  .time-line {
    &__title {
      font-size: 32rpx;
      margin-bottom: 20rpx;
    }
  }
}
</style>

API

TnTimeLine Props

属性名说明类型默认值可选值
show-line显示竖线Booleantruefalse

TnTimeLine Slots

插槽名说明子标签
default时间节点TnTimeLineItem

TnTimeLineItem Props

属性名说明类型默认值可选值
title标题String--
title-icon标题 iconString-图标有效值
dot-bg-color左边小点背景,可以使用图鸟内置的背景色、hex、rgb、rgbaString--
dot-text-color左边小点字体颜色,支持图鸟内置的颜色值、hex、rgb、rgbaString--

TnTimeLineItem Emits

事件名说明类型
clickitem 点击事件() => void

TnTimeLineItem Slots

插槽名说明子标签
default时间节点数据TnTimeLineData
title自定义标题数据-

TnTimeLineData Props

属性名说明类型默认值可选值
dot-icon节点图标Stringcircle-fill图标有效值
dot-color左边节点点颜色,支持图鸟内置的颜色值、hex、rgb、rgbaString--

TnTimeLineItem Emits

事件名说明类型
clickitemData 点击事件() => void

TnTimeLineItem Slots

插槽名说明
default时间节点数据内容

Tuniao UI