mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 18:28:43 +08:00 
			
		
		
		
	初始化管理后台的 uniapp 版本
This commit is contained in:
		| @@ -0,0 +1,190 @@ | ||||
| <template> | ||||
| 	<view :class="[ 'uni-row', typeClass , justifyClass, alignClass, ]" :style="{ | ||||
| 		marginLeft:`${Number(marginValue)}rpx`, | ||||
| 		marginRight:`${Number(marginValue)}rpx`, | ||||
| 	}"> | ||||
| 		<slot></slot> | ||||
| 	</view> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| 	const ComponentClass = 'uni-row'; | ||||
| 	const modifierSeparator = '--'; | ||||
| 	/** | ||||
| 	 * Row	布局-行 | ||||
| 	 * @description	流式栅格系统,随着屏幕或视口分为 24 份,可以迅速简便地创建布局。 | ||||
| 	 * @tutorial	https://ext.dcloud.net.cn/plugin?id=3958 | ||||
| 	 * | ||||
| 	 * @property	{gutter} type = Number 栅格间隔 | ||||
| 	 * @property	{justify} type = String flex 布局下的水平排列方式 | ||||
| 	 * 						可选	start/end/center/space-around/space-between	start | ||||
| 	 * 						默认值	start | ||||
| 	 * @property	{align} type = String flex 布局下的垂直排列方式 | ||||
| 	 * 						可选	top/middle/bottom | ||||
| 	 * 						默认值	top | ||||
| 	 * @property	{width} type = String|Number nvue下需要自行配置宽度用于计算 | ||||
| 	 * 						默认值 750 | ||||
| 	 */ | ||||
|  | ||||
|  | ||||
| 	export default { | ||||
| 		name: 'uniRow', | ||||
| 		componentName: 'uniRow', | ||||
| 		// #ifdef MP-WEIXIN | ||||
| 		options: { | ||||
| 			virtualHost: true // 在微信小程序中将组件节点渲染为虚拟节点,更加接近Vue组件的表现,可使用flex布局 | ||||
| 		}, | ||||
| 		// #endif | ||||
| 		props: { | ||||
| 			type: String, | ||||
| 			gutter: Number, | ||||
| 			justify: { | ||||
| 				type: String, | ||||
| 				default: 'start' | ||||
| 			}, | ||||
| 			align: { | ||||
| 				type: String, | ||||
| 				default: 'top' | ||||
| 			}, | ||||
| 			// nvue如果使用span等属性,需要配置宽度 | ||||
| 			width: { | ||||
| 				type: [String, Number], | ||||
| 				default: 750 | ||||
| 			} | ||||
| 		}, | ||||
| 		created() { | ||||
| 			// #ifdef APP-NVUE | ||||
| 			this.type = 'flex'; | ||||
| 			// #endif | ||||
| 		}, | ||||
| 		computed: { | ||||
| 			marginValue() { | ||||
| 				// #ifndef APP-NVUE | ||||
| 				if (this.gutter) { | ||||
| 					return -(this.gutter / 2); | ||||
| 				} | ||||
| 				// #endif | ||||
| 				return 0; | ||||
| 			}, | ||||
| 			typeClass() { | ||||
| 				return this.type === 'flex' ? `${ComponentClass + modifierSeparator}flex` : ''; | ||||
| 			}, | ||||
| 			justifyClass() { | ||||
| 				return this.justify !== 'start' ? `${ComponentClass + modifierSeparator}flex-justify-${this.justify}` : '' | ||||
| 			}, | ||||
| 			alignClass() { | ||||
| 				return this.align !== 'top' ? `${ComponentClass + modifierSeparator}flex-align-${this.align}` : '' | ||||
| 			} | ||||
| 		} | ||||
| 	}; | ||||
| </script> | ||||
|  | ||||
| <style lang="scss"> | ||||
| 	$layout-namespace: ".uni-"; | ||||
| 	$row:$layout-namespace+"row"; | ||||
| 	$modifier-separator: "--"; | ||||
|  | ||||
| 	@mixin utils-clearfix { | ||||
| 		$selector: &; | ||||
|  | ||||
| 		@at-root { | ||||
|  | ||||
| 			/* #ifndef APP-NVUE */ | ||||
| 			#{$selector}::before, | ||||
| 			#{$selector}::after { | ||||
| 				display: table; | ||||
| 				content: ""; | ||||
| 			} | ||||
|  | ||||
| 			#{$selector}::after { | ||||
| 				clear: both; | ||||
| 			} | ||||
|  | ||||
| 			/* #endif */ | ||||
| 		} | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	@mixin utils-flex ($direction: row) { | ||||
| 		/* #ifndef APP-NVUE */ | ||||
| 		display: flex; | ||||
| 		/* #endif */ | ||||
| 		flex-direction: $direction; | ||||
| 	} | ||||
|  | ||||
| 	@mixin set-flex($state) { | ||||
| 		@at-root &-#{$state} { | ||||
| 			@content | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	#{$row} { | ||||
| 		position: relative; | ||||
| 		flex-direction: row; | ||||
|  | ||||
| 		/* #ifdef APP-NVUE */ | ||||
| 		flex: 1; | ||||
| 		/* #endif */ | ||||
|  | ||||
| 		/* #ifndef APP-NVUE */ | ||||
| 		box-sizing: border-box; | ||||
| 		/* #endif */ | ||||
|  | ||||
| 		// 非nvue使用float布局 | ||||
| 		@include utils-clearfix; | ||||
|  | ||||
| 		// 在QQ、字节、百度小程序平台,编译后使用shadow dom,不可使用flex布局,使用float | ||||
| 		@at-root { | ||||
|  | ||||
| 			/* #ifndef MP-QQ || MP-TOUTIAO || MP-BAIDU */ | ||||
| 			&#{$modifier-separator}flex { | ||||
| 				@include utils-flex; | ||||
| 				flex-wrap: wrap; | ||||
| 				flex: 1; | ||||
|  | ||||
| 				&:before, | ||||
| 				&:after { | ||||
| 					/* #ifndef APP-NVUE */ | ||||
| 					display: none; | ||||
| 					/* #endif */ | ||||
| 				} | ||||
|  | ||||
| 				@include set-flex(justify-center) { | ||||
| 					justify-content: center; | ||||
| 				} | ||||
|  | ||||
| 				@include set-flex(justify-end) { | ||||
| 					justify-content: flex-end; | ||||
| 				} | ||||
|  | ||||
| 				@include set-flex(justify-space-between) { | ||||
| 					justify-content: space-between; | ||||
| 				} | ||||
|  | ||||
| 				@include set-flex(justify-space-around) { | ||||
| 					justify-content: space-around; | ||||
| 				} | ||||
|  | ||||
| 				@include set-flex(align-middle) { | ||||
| 					align-items: center; | ||||
| 				} | ||||
|  | ||||
| 				@include set-flex(align-bottom) { | ||||
| 					align-items: flex-end; | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			/* #endif */ | ||||
| 		} | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	// 字节、QQ配置后不生效 | ||||
| 	// 此处用法无法使用 | ||||
| 	/* #ifdef MP-WEIXIN || MP-TOUTIAO || MP-QQ */ | ||||
| 	:host { | ||||
| 		display: block; | ||||
| 	} | ||||
|  | ||||
| 	/* #endif */ | ||||
| </style> | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV