<template> <view class="u-time-axis-item"> <slot name="content" /> <view class="u-time-axis-node" :style="[nodeStyle]"> <slot name="node"><view class="u-dot"></view></slot> </view> </view> </template> <script> /** * timeLineItem 时间轴Item * @description 时间轴组件一般用于物流信息展示,各种跟时间相关的记录等场景。(搭配u-time-line使用) * @tutorial https://www.uviewui.com/components/timeLine.html * @property {String} bg-color 左边节点的背景颜色,一般通过slot内容自定义背景颜色即可(默认#ffffff) * @property {String Number} node-top 节点左边图标绝对定位的top值,单位rpx * @example <u-time-line-item node-top="2">...</u-time-line-item> */ export default { name: 'u-time-line-item', props: { // 节点的背景颜色 bgColor: { type: String, default: '#ffffff', }, // 节点左边图标绝对定位的top值 nodeTop: { type: [String, Number], default: '', }, }, data() { return {}; }, computed: { nodeStyle() { let style = { backgroundColor: this.bgColor, }; if (this.nodeTop != '') style.top = this.nodeTop + 'rpx'; return style; }, }, }; </script> <style lang="scss" scoped> .u-time-axis-item { display: flex; flex-direction: column; width: 100%; position: relative; margin-bottom: 32rpx; } .u-time-axis-node { position: absolute; top: 12rpx; left: -40rpx; transform-origin: 0; transform: translateX(-50%); display: flex; align-items: center; justify-content: center; z-index: 1; font-size: 24rpx; } .u-dot { height: 16rpx; width: 16rpx; border-radius: 100rpx; background: #ddd; } </style>