84 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
| <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>
 | ||
| 	@import "../../libs/css/style.components.scss";
 | ||
| 	
 | ||
| 	.u-time-axis-item {
 | ||
| 		@include vue-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%);
 | ||
| 		@include vue-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>
 |