You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					188 lines
				
				3.8 KiB
			
		
		
			
		
	
	
					188 lines
				
				3.8 KiB
			| 
											1 year ago
										 | <template> | ||
|  | 	<view class="uni-popup-share"> | ||
|  | 		<view class="uni-share-title"><text class="uni-share-title-text">{{shareTitleText}}</text></view> | ||
|  | 		<view class="uni-share-content"> | ||
|  | 			<view class="uni-share-content-box"> | ||
|  | 				<view class="uni-share-content-item" v-for="(item,index) in bottomData" :key="index" @click.stop="select(item,index)"> | ||
|  | 					<image class="uni-share-image" :src="item.icon" mode="aspectFill"></image> | ||
|  | 					<text class="uni-share-text">{{item.text}}</text> | ||
|  | 				</view> | ||
|  | 
 | ||
|  | 			</view> | ||
|  | 		</view> | ||
|  | 		<view class="uni-share-button-box"> | ||
|  | 			<button class="uni-share-button" @click="close">{{cancelText}}</button> | ||
|  | 		</view> | ||
|  | 	</view> | ||
|  | </template> | ||
|  | 
 | ||
|  | <script> | ||
|  | 	import popup from '../uni-popup/popup.js' | ||
|  | 	import { | ||
|  | 	initVueI18n | ||
|  | 	} from '@dcloudio/uni-i18n' | ||
|  | 	import messages from '../uni-popup/i18n/index.js' | ||
|  | 	const {	t	} = initVueI18n(messages) | ||
|  | 	export default { | ||
|  | 		name: 'UniPopupShare', | ||
|  | 		mixins:[popup], | ||
|  | 		emits:['select'], | ||
|  | 		props: { | ||
|  | 			title: { | ||
|  | 				type: String, | ||
|  | 				default: '' | ||
|  | 			}, | ||
|  | 			beforeClose: { | ||
|  | 				type: Boolean, | ||
|  | 				default: false | ||
|  | 			} | ||
|  | 		}, | ||
|  | 		data() { | ||
|  | 			return { | ||
|  | 				bottomData: [{ | ||
|  | 						text: '微信', | ||
|  | 						icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/c2b17470-50be-11eb-b680-7980c8a877b8.png', | ||
|  | 						name: 'wx' | ||
|  | 					}, | ||
|  | 					{ | ||
|  | 						text: '支付宝', | ||
|  | 						icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/d684ae40-50be-11eb-8ff1-d5dcf8779628.png', | ||
|  | 						name: 'ali' | ||
|  | 					}, | ||
|  | 					{ | ||
|  | 						text: 'QQ', | ||
|  | 						icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/e7a79520-50be-11eb-b997-9918a5dda011.png', | ||
|  | 						name: 'qq' | ||
|  | 					}, | ||
|  | 					{ | ||
|  | 						text: '新浪', | ||
|  | 						icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/0dacdbe0-50bf-11eb-8ff1-d5dcf8779628.png', | ||
|  | 						name: 'sina' | ||
|  | 					}, | ||
|  | 					// {
 | ||
|  | 					// 	text: '百度',
 | ||
|  | 					// 	icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/1ec6e920-50bf-11eb-8a36-ebb87efcf8c0.png',
 | ||
|  | 					// 	name: 'copy'
 | ||
|  | 					// },
 | ||
|  | 					// {
 | ||
|  | 					// 	text: '其他',
 | ||
|  | 					// 	icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/2e0fdfe0-50bf-11eb-b997-9918a5dda011.png',
 | ||
|  | 					// 	name: 'more'
 | ||
|  | 					// }
 | ||
|  | 				] | ||
|  | 			} | ||
|  | 		}, | ||
|  | 		created() {}, | ||
|  | 		computed: { | ||
|  | 			cancelText() { | ||
|  | 				return t("uni-popup.cancel") | ||
|  | 			}, | ||
|  | 		shareTitleText() { | ||
|  | 				return this.title || t("uni-popup.shareTitle") | ||
|  | 			} | ||
|  | 		}, | ||
|  | 		methods: { | ||
|  | 			/** | ||
|  | 			 * 选择内容 | ||
|  | 			 */ | ||
|  | 			select(item, index) { | ||
|  | 				this.$emit('select', { | ||
|  | 					item, | ||
|  | 					index | ||
|  | 				}) | ||
|  | 				this.close() | ||
|  | 
 | ||
|  | 			}, | ||
|  | 			/** | ||
|  | 			 * 关闭窗口 | ||
|  | 			 */ | ||
|  | 			close() { | ||
|  | 				if(this.beforeClose) return | ||
|  | 				this.popup.close() | ||
|  | 			} | ||
|  | 		} | ||
|  | 	} | ||
|  | </script> | ||
|  | <style lang="scss" > | ||
|  | 	.uni-popup-share { | ||
|  | 		background-color: #fff; | ||
|  | 		border-top-left-radius: 11px; | ||
|  | 		border-top-right-radius: 11px; | ||
|  | 	} | ||
|  | 	.uni-share-title { | ||
|  | 		/* #ifndef APP-NVUE */ | ||
|  | 		display: flex; | ||
|  | 		/* #endif */ | ||
|  | 		flex-direction: row; | ||
|  | 		align-items: center; | ||
|  | 		justify-content: center; | ||
|  | 		height: 40px; | ||
|  | 	} | ||
|  | 	.uni-share-title-text { | ||
|  | 		font-size: 14px; | ||
|  | 		color: #666; | ||
|  | 	} | ||
|  | 	.uni-share-content { | ||
|  | 		/* #ifndef APP-NVUE */ | ||
|  | 		display: flex; | ||
|  | 		/* #endif */ | ||
|  | 		flex-direction: row; | ||
|  | 		justify-content: center; | ||
|  | 		padding-top: 10px; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.uni-share-content-box { | ||
|  | 		/* #ifndef APP-NVUE */ | ||
|  | 		display: flex; | ||
|  | 		/* #endif */ | ||
|  | 		flex-direction: row; | ||
|  | 		flex-wrap: wrap; | ||
|  | 		width: 360px; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.uni-share-content-item { | ||
|  | 		width: 90px; | ||
|  | 		/* #ifndef APP-NVUE */ | ||
|  | 		display: flex; | ||
|  | 		/* #endif */ | ||
|  | 		flex-direction: column; | ||
|  | 		justify-content: center; | ||
|  | 		padding: 10px 0; | ||
|  | 		align-items: center; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.uni-share-content-item:active { | ||
|  | 		background-color: #f5f5f5; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.uni-share-image { | ||
|  | 		width: 30px; | ||
|  | 		height: 30px; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.uni-share-text { | ||
|  | 		margin-top: 10px; | ||
|  | 		font-size: 14px; | ||
|  | 		color: #3B4144; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.uni-share-button-box { | ||
|  | 		/* #ifndef APP-NVUE */ | ||
|  | 		display: flex; | ||
|  | 		/* #endif */ | ||
|  | 		flex-direction: row; | ||
|  | 		padding: 10px 15px; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.uni-share-button { | ||
|  | 		flex: 1; | ||
|  | 		border-radius: 50px; | ||
|  | 		color: #666; | ||
|  | 		font-size: 16px; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.uni-share-button::after { | ||
|  | 		border-radius: 50px; | ||
|  | 	} | ||
|  | </style> |