mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 10:18:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			172 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			172 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | ||
| 	<view class="uni-title__box" :style="{'align-items':textAlign}">
 | ||
| 		<text class="uni-title__base" :class="['uni-'+type]" :style="{'color':color}">{{title}}</text>
 | ||
| 	</view>
 | ||
| </template>
 | ||
| 
 | ||
| <script>
 | ||
| 	/**
 | ||
| 	 * Title 标题
 | ||
| 	 * @description 标题,通常用于记录页面标题,使用当前组件,uni-app 如果开启统计,将会自动统计页面标题
 | ||
| 	 * @tutorial https://ext.dcloud.net.cn/plugin?id=1066
 | ||
| 	 * @property {String} type = [h1|h2|h3|h4|h5] 标题类型
 | ||
| 	 * 	@value h1 一级标题
 | ||
| 	 * 	@value h2 二级标题
 | ||
| 	 * 	@value h3 三级标题
 | ||
| 	 * 	@value h4 四级标题
 | ||
| 	 * 	@value h5 五级标题
 | ||
| 	 * @property {String} title 标题内容
 | ||
| 	 * @property {String} align = [left|center|right] 对齐方式
 | ||
| 	 * 	@value left 做对齐
 | ||
| 	 * 	@value center 居中对齐
 | ||
| 	 * 	@value right 右对齐
 | ||
| 	 * @property {String} color 字体颜色
 | ||
| 	 * @property {Boolean} stat = [true|false] 是否开启统计功能呢,如不填写type值,默认为开启,填写 type 属性,默认为关闭
 | ||
| 	 */
 | ||
| 	export default {
 | ||
| 		name:"UniTitle",
 | ||
| 		props: {
 | ||
| 			type: {
 | ||
| 				type: String,
 | ||
| 				default: ''
 | ||
| 			},
 | ||
| 			title: {
 | ||
| 				type: String,
 | ||
| 				default: ''
 | ||
| 			},
 | ||
| 			align: {
 | ||
| 				type: String,
 | ||
| 				default: 'left'
 | ||
| 			},
 | ||
| 			color: {
 | ||
| 				type: String,
 | ||
| 				default: '#333333'
 | ||
| 			},
 | ||
| 			stat: {
 | ||
| 				type: [Boolean, String],
 | ||
| 				default: ''
 | ||
| 			}
 | ||
| 		},
 | ||
| 		data() {
 | ||
| 			return {
 | ||
| 
 | ||
| 			};
 | ||
| 		},
 | ||
| 		computed: {
 | ||
| 			textAlign() {
 | ||
| 				let align = 'center';
 | ||
| 				switch (this.align) {
 | ||
| 					case 'left':
 | ||
| 						align = 'flex-start'
 | ||
| 						break;
 | ||
| 					case 'center':
 | ||
| 						align = 'center'
 | ||
| 						break;
 | ||
| 					case 'right':
 | ||
| 						align = 'flex-end'
 | ||
| 						break;
 | ||
| 				}
 | ||
| 				return align
 | ||
| 			}
 | ||
| 		},
 | ||
| 		watch: {
 | ||
| 			title(newVal) {
 | ||
| 				if (this.isOpenStat()) {
 | ||
| 					// 上报数据
 | ||
| 					if (uni.report) {
 | ||
| 						uni.report('title', this.title)
 | ||
| 					}
 | ||
| 				}
 | ||
| 			}
 | ||
| 		},
 | ||
| 		mounted() {
 | ||
| 			if (this.isOpenStat()) {
 | ||
| 				// 上报数据
 | ||
| 				if (uni.report) {
 | ||
| 					uni.report('title', this.title)
 | ||
| 				}
 | ||
| 			}
 | ||
| 		},
 | ||
| 		methods: {
 | ||
| 			isOpenStat() {
 | ||
| 				if (this.stat === '') {
 | ||
| 					this.isStat = false
 | ||
| 				}
 | ||
| 				let stat_type = (typeof(this.stat) === 'boolean' && this.stat) || (typeof(this.stat) === 'string' && this.stat !==
 | ||
| 					'')
 | ||
| 				if (this.type === "") {
 | ||
| 					this.isStat = true
 | ||
| 					if (this.stat.toString() === 'false') {
 | ||
| 						this.isStat = false
 | ||
| 					}
 | ||
| 				}
 | ||
| 
 | ||
| 				if (this.type !== '') {
 | ||
| 					this.isStat = true
 | ||
| 					if (stat_type) {
 | ||
| 						this.isStat = true
 | ||
| 					} else {
 | ||
| 						this.isStat = false
 | ||
| 					}
 | ||
| 				}
 | ||
| 				return this.isStat
 | ||
| 			}
 | ||
| 		}
 | ||
| 	}
 | ||
| </script>
 | ||
| 
 | ||
| <style>
 | ||
| 	/* .uni-title {
 | ||
| 
 | ||
| 	} */
 | ||
| 	.uni-title__box {
 | ||
| 		/* #ifndef APP-NVUE */
 | ||
| 		display: flex;
 | ||
| 		/* #endif */
 | ||
| 		flex-direction: column;
 | ||
| 		align-items: flex-start;
 | ||
| 		justify-content: center;
 | ||
| 		padding: 8px 0;
 | ||
| 		flex: 1;
 | ||
| 	}
 | ||
| 
 | ||
| 	.uni-title__base {
 | ||
| 		font-size: 15px;
 | ||
| 		color: #333;
 | ||
| 		font-weight: 500;
 | ||
| 	}
 | ||
| 
 | ||
| 	.uni-h1 {
 | ||
| 		font-size: 20px;
 | ||
| 		color: #333;
 | ||
| 		font-weight: bold;
 | ||
| 	}
 | ||
| 
 | ||
| 	.uni-h2 {
 | ||
| 		font-size: 18px;
 | ||
| 		color: #333;
 | ||
| 		font-weight: bold;
 | ||
| 	}
 | ||
| 
 | ||
| 	.uni-h3 {
 | ||
| 		font-size: 16px;
 | ||
| 		color: #333;
 | ||
| 		font-weight: bold;
 | ||
| 		/* font-weight: 400; */
 | ||
| 	}
 | ||
| 
 | ||
| 	.uni-h4 {
 | ||
| 		font-size: 14px;
 | ||
| 		color: #333;
 | ||
| 		font-weight: bold;
 | ||
| 		/* font-weight: 300; */
 | ||
| 	}
 | ||
| 
 | ||
| 	.uni-h5 {
 | ||
| 		font-size: 12px;
 | ||
| 		color: #333;
 | ||
| 		font-weight: bold;
 | ||
| 		/* font-weight: 200; */
 | ||
| 	}
 | ||
| </style>
 | 
