| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276 | <template>	<view class="container">		<uni-card is-full :is-shadow="false">			<text class="uni-h6">弹出层组件用于弹出一个覆盖到页面上的内容,使用场景如:底部弹出分享弹窗、页面插屏广告等。</text>		</uni-card>		<uni-section title="基本示例" type="line">			<view class="example-body box">				<button class="button" type="primary" @click="toggle('top')"><text class="button-text">顶部</text></button>				<button class="button" type="primary" @click="toggle('bottom')"><text class="button-text">底部</text></button>				<button class="button" type="primary" @click="toggle('center')"><text class="button-text">居中</text></button>				<button class="button" type="primary" @click="toggle('left')"><text class="button-text">左侧</text></button>				<button class="button" type="primary" @click="toggle('right')"><text class="button-text">右侧</text></button>			</view>		</uni-section>		<uni-section title="提示消息" type="line">			<view class="example-body box">				<button class="button popup-success" @click="messageToggle('success')"><text						class="button-text success-text">成功</text></button>				<button class="button popup-error" @click="messageToggle('error')"><text						class="button-text error-text">失败</text></button>				<button class="button popup-warn" @click="messageToggle('warn')"><text						class="button-text warn-text">警告</text></button>				<button class="button popup-info" @click="messageToggle('info')"><text						class="button-text info-text">信息</text></button>			</view>		</uni-section>		<uni-section title="对话框示例" type="line" class="hideOnPc">			<view class="example-body box">				<button class="button popup-success" @click="dialogToggle('success')"><text						class="button-text success-text">成功</text></button>				<button class="button popup-error" @click="dialogToggle('error')"><text						class="button-text error-text">失败</text></button>				<button class="button popup-warn" @click="dialogToggle('warn')"><text						class="button-text warn-text">警告</text></button>				<button class="button popup-info" @click="dialogToggle('info')"><text						class="button-text info-text">信息</text></button>			</view>		</uni-section>		<uni-section title="输入框示例" type="line" padding>			<view class="dialog-box">				<text class="dialog-text">输入内容:{{ value }}</text>			</view>			<button class="button" type="primary" @click="inputDialogToggle"><text					class="button-text">输入对话框</text></button>		</uni-section>		<uni-section title="底部分享示例" type="line" padding>			<button class="button" type="primary" @click="shareToggle"><text class="button-text">分享模版示例</text></button>		</uni-section>		<view>			<!-- 普通弹窗 -->			<uni-popup ref="popup" background-color="#fff" @change="change">				<view class="popup-content" :class="{ 'popup-height': type === 'left' || type === 'right' }"><text						class="text">popup 内容</text></view>			</uni-popup>		</view>		<view>			<!-- 提示信息弹窗 -->			<uni-popup ref="message" type="message">				<uni-popup-message :type="msgType" :message="messageText" :duration="2000"></uni-popup-message>			</uni-popup>		</view>		<view>			<!-- 提示窗示例 -->			<uni-popup ref="alertDialog" type="dialog">				<uni-popup-dialog :type="msgType" title="通知" content="欢迎使用 uni-popup!" @confirm="dialogConfirm"					@close="dialogClose"></uni-popup-dialog>			</uni-popup>		</view>		<view>			<!-- 输入框示例 -->			<uni-popup ref="inputDialog" type="dialog">				<uni-popup-dialog ref="inputClose" mode="input" title="输入内容" value="对话框预置提示内容!"					placeholder="请输入内容" @confirm="dialogInputConfirm"></uni-popup-dialog>			</uni-popup>		</view>		<view>			<!-- 分享示例 -->			<uni-popup ref="share" type="share">				<uni-popup-share></uni-popup-share>			</uni-popup>		</view>	</view></template><script>	export default {		data() {			return {				type: 'center',				msgType: 'success',				messageText: '这是一条成功提示',				value: ''			}		},		onReady() {},		methods: {			change(e) {				console.log('当前模式:' + e.type + ',状态:' + e.show);			},			toggle(type) {				this.type = type				// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性				this.$refs.popup.open(type)			},			messageToggle(type) {				this.msgType = type				this.messageText = `这是一条${type}消息提示`				this.$refs.message.open()			},			dialogToggle(type) {				this.msgType = type				this.$refs.alertDialog.open()			},			dialogConfirm() {				console.log('点击确认')				this.messageText = `点击确认了 ${this.msgType} 窗口`				this.$refs.message.open()			},			inputDialogToggle() {				this.$refs.inputDialog.open()			},			dialogClose() {				console.log('点击关闭')			},			dialogInputConfirm(val) {				uni.showLoading({					title: '3秒后会关闭'				})				setTimeout(() => {					uni.hideLoading()					console.log(val)					this.value = val					// 关闭窗口后,恢复默认内容					this.$refs.inputDialog.close()				}, 3000)			},			shareToggle() {				this.$refs.share.open()			}		}	}</script><style lang="scss">	@mixin flex {		/* #ifndef APP-NVUE */		display: flex;		/* #endif */		flex-direction: row;	}	@mixin height {		/* #ifndef APP-NVUE */		height: 100%;		/* #endif */		/* #ifdef APP-NVUE */		flex: 1;		/* #endif */	}	.box {		@include flex;	}	.button {		@include flex;		align-items: center;		justify-content: center;		flex: 1;		height: 35px;		margin: 0 5px;		border-radius: 5px;	}	.example-body {		background-color: #fff;		padding: 10px 0;	}	.button-text {		color: #fff;		font-size: 12px;	}	.popup-content {		@include flex;		align-items: center;		justify-content: center;		padding: 15px;		height: 50px;		background-color: #fff;	}	.popup-height {		@include height;		width: 200px;	}	.text {		font-size: 12px;		color: #333;	}	.popup-success {		color: #fff;		background-color: #e1f3d8;	}	.popup-warn {		color: #fff;		background-color: #faecd8;	}	.popup-error {		color: #fff;		background-color: #fde2e2;	}	.popup-info {		color: #fff;		background-color: #f2f6fc;	}	.success-text {		color: #09bb07;	}	.warn-text {		color: #e6a23c;	}	.error-text {		color: #f56c6c;	}	.info-text {		color: #909399;	}	.dialog,	.share {		/* #ifndef APP-NVUE */		display: flex;		/* #endif */		flex-direction: column;	}	.dialog-box {		padding: 10px;	}	.dialog .button,	.share .button {		/* #ifndef APP-NVUE */		width: 100%;		/* #endif */		margin: 0;		margin-top: 10px;		padding: 3px 0;		flex: 1;	}	.dialog-text {		font-size: 14px;		color: #333;	}</style>
 |