跳转到内容

时间线 timeline

数据展示组件。三层同源:无头内核给出解剖与状态机,Vue 组件与自定义元素只是它的两层外壳,行为完全一致。

示例

基础用法

一条竖向的事件流:每条一个圆点,圆点之间连一截线,末条的线自动收掉

  1. 订单已创建
    下单来源:网页端
  2. 已发货
    承运商已揽收
  3. 已签收
    本人签收

逐条语气

tone 写在条目上,只给这一条的圆点上色;不写 tone 的条目是中性圆点

  1. 收到请求
    队列长度 3
  2. 开始构建
    拉取依赖
  3. 两条依赖有告警
    已按锁文件继续
  4. 单元测试失败
    3 个用例未通过
  5. 重跑后通过
    产物已上传

内容在哪一侧

placement 决定内容落在线的哪一侧;alternate 是逐条交替,线走中间

默认(内容在结束侧)
  1. 立项
    需求评审通过
  2. 开发
    三个迭代
  3. 上线
    灰度两周
start(内容在起始侧)
  1. 立项
    需求评审通过
  2. 开发
    三个迭代
  3. 上线
    灰度两周
alternate(逐条交替)
  1. 立项
    需求评审通过
  2. 开发
    三个迭代
  3. 上线
    灰度两周

横排

orientation="horizontal" 把事件从左往右摆,连线随之转成横的一条

  1. 内测
  2. 公测
  3. 商业化
  4. 海外版

尺寸

size 换的是圆点直径、条目间距与字号,不传 size 即默认档

  1. 提交
    12 个文件
  2. 合并
    两条评审意见
默认
  1. 提交
    12 个文件
  2. 合并
    两条评审意见
  1. 提交
    12 个文件
  2. 合并
    两条评审意见

产物

自定义元素<xh-timeline>
Vue 组件XhTimelineConnector XhTimelineContent XhTimelineDescription XhTimelineIndicator XhTimelineItem XhTimelineRoot XhTimelineTime XhTimelineTitle
状态机无,connect 直接由 props 算属性
皮肤@xihan-ui/styles/timeline.css

解剖

部件名即 data-part 属性值,也是皮肤的选择器。加粗的是必备部件,不渲染它组件不工作(Web Components 适配器会在诊断通道上报 wc.missing-part)。

data-scope="timeline"root · item · indicator · connector · content · title · description · time

Props

属性类型必填说明
orientationOrientation事件排列方向:vertical 自上而下、horizontal 自起点向终点,缺省 vertical。
placementTimelinePlacement内容在线的哪一侧:start / end / alternate,不写则内容落在结束侧。
sizeSize尺寸:sm / md / lg,决定圆点直径、条目间距与字号。

connect API

connect 产出的对象。getXxxProps() 铺到对应部件的宿主元素上,其余是可读状态与操作入口。

成员类型说明
getRootProps() => T['element']
getItemProps() => T['element']
getIndicatorProps(props: TimelineItemProps) => T['element']圆点的语气取自它所属的条目。
getConnectorProps() => T['element']
getContentProps() => T['element']
getTitleProps() => T['element']
getDescriptionProps() => T['element']
getTimeProps() => T['element']

键盘

规格出处:W3C APG

无键盘交互(不接收焦点,或焦点行为完全由原生元素提供)。

Released under The MIT License