100 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Vue
		
	
	
	
		
		
			
		
	
	
			100 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Vue
		
	
	
	
|  | <template> | ||
|  | 	<view class="nav-wrap"> | ||
|  | 		<view class="nav-title"> | ||
|  | 			<image class="logo" src="https://cdn.uviewui.com/uview/common/logo.png" mode="widthFix"></image> | ||
|  | 			<view class="nav-info"> | ||
|  | 				<view class="nav-title__text"> | ||
|  | 					{{$t('common.title')}} | ||
|  | 				</view> | ||
|  | 				<view class="nav-slogan"> | ||
|  | 					 {{$t('common.intro')}} | ||
|  | 				</view> | ||
|  | 			</view> | ||
|  | 		</view> | ||
|  | 		<view class="nav-desc"> | ||
|  | 			{{desc}} | ||
|  | 		</view> | ||
|  | 		<view class="lang" @tap="switchLang"> | ||
|  | 			<u-icon size="46" color="warning" :name="lang"></u-icon> | ||
|  | 		</view> | ||
|  | 	</view> | ||
|  | </template> | ||
|  | 
 | ||
|  | <script> | ||
|  | 	export default { | ||
|  | 		props: { | ||
|  | 			desc: String, | ||
|  | 			title: String, | ||
|  | 		}, | ||
|  | 		computed: { | ||
|  | 			lang() { | ||
|  | 				return this.$i18n.locale == 'zh' ? 'zh' : 'en'; | ||
|  | 			} | ||
|  | 		}, | ||
|  | 		 | ||
|  | 		methods: { | ||
|  | 			switchLang() { | ||
|  | 				this.$i18n.locale = this.$i18n.locale == 'en' ? 'zh' : 'en'; | ||
|  | 				this.vuex_tabbar[0].text = this.$t('nav.components') | ||
|  | 				this.vuex_tabbar[1].text = this.$t('nav.js') | ||
|  | 				this.vuex_tabbar[2].text = this.$t('nav.template') | ||
|  | 				uni.setNavigationBarTitle({ | ||
|  | 					title: this.$t(this.title) | ||
|  | 				}); | ||
|  | 			} | ||
|  | 		} | ||
|  | 	} | ||
|  | </script> | ||
|  | 
 | ||
|  | <style lang="scss" scoped> | ||
|  | 	.nav-wrap { | ||
|  | 		padding: 15px; | ||
|  | 		position: relative; | ||
|  | 	} | ||
|  | 	 | ||
|  | 	.lang { | ||
|  | 		position: absolute; | ||
|  | 		top: 15px; | ||
|  | 		right: 15px; | ||
|  | 	} | ||
|  | 	 | ||
|  | 	.nav-title { | ||
|  | 		/* #ifndef APP-NVUE */ | ||
|  | 		display: flex; | ||
|  | 		/* #endif */ | ||
|  | 		flex-direction: row; | ||
|  | 		align-items: center; | ||
|  | 	} | ||
|  | 	 | ||
|  | 	.nav-info { | ||
|  | 		margin-left: 15px; | ||
|  | 	} | ||
|  | 	 | ||
|  | 	.nav-title__text { | ||
|  | 		/* #ifndef APP-NVUE */ | ||
|  | 		display: flex; | ||
|  | 		/* #endif */ | ||
|  | 		color: $u-main-color; | ||
|  | 		font-size: 25px; | ||
|  | 		font-weight: bold; | ||
|  | 	} | ||
|  | 	 | ||
|  | 	.logo { | ||
|  | 		width: 70px; | ||
|  | 		/* #ifndef APP-NVUE */ | ||
|  | 		height: auto; | ||
|  | 		/* #endif */ | ||
|  | 	} | ||
|  | 	 | ||
|  | 	.nav-slogan { | ||
|  | 		color: $u-tips-color; | ||
|  | 		font-size: 14px; | ||
|  | 	} | ||
|  | 	 | ||
|  | 	.nav-desc { | ||
|  | 		margin-top: 10px; | ||
|  | 		font-size: 14px; | ||
|  | 		color: $u-content-color; | ||
|  | 	} | ||
|  | </style> |