<template>
	<view>
		<u-navbar
			title="弹窗"
			@leftClick="navigateBack"
			safeAreaInsetTop
			fixed
			placeholder
		></u-navbar>
		<u-gap
			height="20"
			bgColor="#fff"
		></u-gap>
		<u-cell-group>
			<u-cell
				:titleStyle="{fontWeight: 500}"
				@click="openPopup(item.popupData)"
				:title="item.title"
				v-for="(item, index) in list"
				:key="index"
				isLink
			>
				<image
					slot="icon"
					class="u-cell-icon"
					:src="item.iconUrl"
					mode="widthFix"
				></image>
			</u-cell>
		</u-cell-group>
		<u-popup
			:safeAreaInsetBottom="true"
			:safeAreaInsetTop="true"
			:mode="popupData.mode"
			:show="show"
			:round="popupData.round"
			:overlay="popupData.overlay"
			:borderRadius="popupData.borderRadius"
			:closeable="popupData.closeable"
			:closeOnClickOverlay="popupData.closeOnClickOverlay"
			@close="close"
			@open="open"
		>
			<view
				class="u-popup-slot"
				:style="{
					width: ['bottom', 'top'].includes(popupData.mode) ? '750rpx' : '200px',
					marginTop: ['left', 'right'].includes(popupData.mode) ? '480rpx' : '0',
				}"
			>
				<u-button
					type="success"
					text="点我关闭"
					customStyle="width: 200rpx"
					@click="show = !show"
				></u-button>
			</view>
		</u-popup>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				show: false,
				popupData: {
					overlay: true,
					mode: 'bottom',
					borderRadius: '',
					closeable: true,
					closeOnClickOverlay: true
				},
				list: [{
						popupData: {
							overlay: true,
							mode: 'top',
							closeOnClickOverlay: true
						},
						title: '顶部弹出',
						iconUrl: 'https://cdn.uviewui.com/uview/demo/popup/modeTop.png'
					},
					{
						popupData: {
							overlay: true,
							mode: 'right',
							closeOnClickOverlay: true
						},
						title: '右侧弹出',
						iconUrl: 'https://cdn.uviewui.com/uview/demo/popup/modeRight.png'
					},
					{
						popupData: {
							overlay: true,
							mode: 'bottom',
							closeOnClickOverlay: true
						},
						title: '底部弹出',
						iconUrl: 'https://cdn.uviewui.com/uview/demo/popup/modeBottom.png'
					},
					{
						popupData: {
							overlay: true,
							mode: 'left',
							closeOnClickOverlay: true
						},
						title: '左侧弹出',
						iconUrl: 'https://cdn.uviewui.com/uview/demo/popup/modeLeft.png'
					},
					{
						popupData: {
							overlay: true,
							mode: 'center',
							round: 10,
							closeOnClickOverlay: true
						},
						title: '居中弹出',
						iconUrl: 'https://cdn.uviewui.com/uview/demo/popup/modeCenter.png'
					},
					{
						popupData: {
							overlay: true,
							mode: 'bottom',
							round: 10,
							closeOnClickOverlay: true
						},
						title: '显示圆角',
						iconUrl: 'https://cdn.uviewui.com/uview/demo/popup/showRadis.png'
					},
					{
						popupData: {
							overlay: true,
							mode: 'bottom',
							closeable: false,
							closeOnClickOverlay: false
						},
						title: '禁止点击遮罩关闭',
						iconUrl: 'https://cdn.uviewui.com/uview/demo/popup/noClose.png'
					},
					{
						popupData: {
							overlay: true,
							mode: 'bottom',
							closeable: true,
							closeOnClickOverlay: true
						},
						title: '显示关闭按钮',
						iconUrl: 'https://cdn.uviewui.com/uview/demo/popup/showCloseBtn.png'
					}
				]
			}
		},
		methods: {
			openPopup(popupData) {
				this.popupData = popupData
				uni.$u.sleep().then(() => {
					this.show = !this.show
				})
			},
			navigateBack() {
				uni.navigateBack()
			},
			open() {
				// console.log('open');
			},
			close() {
				this.show = false
				// console.log('close');
			}
		}
	}
</script>

<style lang="scss">
	.u-popup-slot {
		width: 200px;
		height: 150px;
		@include flex;
		justify-content: center;
		align-items: center;
	}
</style>