<template>
	<view class="u-page">
		<u-navbar
			title="模态框"
			@leftClick="navigateBack"
			safeAreaInsetTop
			fixed
			placeholder
		></u-navbar>
		<u-gap
			height="20"
			bgColor="#fff"
		></u-gap>
		<u-cell-group>
			<u-cell
				@click="showModal(index)"
				: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-modal
			:content="content"
			title="标题"
			:show="show1"
			@confirm="() => show1 = false"
		></u-modal>
		<u-modal
			:content="content"
			:show="show2"
			@confirm="() => show2 = false"
		></u-modal>
		<u-modal
			:content="content"
			:show="show3"
			showCancelButton
			closeOnClickOverlay
			@confirm="confirm"
			@cancel="cancel"
			@close="close"
		></u-modal>
		<u-modal
			:content="content"
			:show="show4"
			showCancelButton
			asyncClose
			@confirm="confirm4"
			@cancel="() => show4 = false"
		></u-modal>
		<u-modal
			:content="content"
			:show="show5"
			showCancelButton
			buttonReverse
			@confirm="() => show5 = false"
			@cancel="() => show5 = false"
		></u-modal>
		<u-modal
			:content="content"
			title="标题"
			:show="show6"
			closeOnClickOverlay
			@confirm="() => show6 = false"
			@close="() => show6 = false"
		></u-modal>
		<u-modal
			title="利剑出鞘,一统江湖"
			:show="show7"
			closeOnClickOverlay
			@confirm="() => show7 = false"
		>
			<image
				style="width: 80px;height: 80px;"
				src="/static/uview/common/logo.png"
			></image>
		</u-modal>
		<u-modal
			title="标题"
			:show="show8"
			:content="content"
			closeOnClickOverlay
			showCancelButton
		>
			<u-button
				slot="confirmButton"
				text="确定"
				type="success"
				shape="circle"
				@click="show8 = false"
			></u-button>
		</u-modal>
		<u-modal
			:content="content"
			title="标题"
			:show="show9"
			:zoom="false"
			@confirm="() => show9 = false"
		></u-modal>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				content: '模态框,常用于消息提示、消息确认、在当前页面内完成特定的交互操作',
				show1: false,
				show2: false,
				show3: false,
				show4: false,
				show5: false,
				show6: false,
				show7: false,
				show8: false,
				show9: false,
				list: [{
						title: '基础使用',
						iconUrl: 'https://cdn.uviewui.com/uview/demo/modal/4.png'
					},
					{
						title: '无标题',
						iconUrl: 'https://cdn.uviewui.com/uview/demo/modal/5.png'
					},
					{
						title: '带取消按钮',
						iconUrl: 'https://cdn.uviewui.com/uview/demo/modal/2.png'
					},
					{
						title: '异步关闭',
						iconUrl: 'https://cdn.uviewui.com/uview/demo/modal/6.png'
					},
					{
						title: '对调取消和确认按钮',
						iconUrl: 'https://cdn.uviewui.com/uview/demo/modal/3.png'
					},
					{
						title: '允许点击遮罩关闭',
						iconUrl: 'https://cdn.uviewui.com/uview/demo/modal/7.png'
					},
					{
						title: '传入slot',
						iconUrl: 'https://cdn.uviewui.com/uview/demo/modal/1.png'
					},
					{
						title: '自定义按钮',
						iconUrl: 'https://cdn.uviewui.com/uview/demo/modal/8.png'
					},
					{
						title: '淡入淡出动画',
						iconUrl: 'https://cdn.uviewui.com/uview/demo/modal/9.png'
					}
				]
			}
		},
		methods: {
			showModal(index) {
				this[`show${index + 1}`] = true
			},
			navigateBack() {
				uni.navigateBack()
			},
			confirm4() {
				setTimeout(() => {
					this.show4 = false
				}, 2000)
			},
			confirm() {
				this.show3 = false
				console.log('confirm');
			},
			cancel() {
				this.show3 = false
				console.log('cancel');
			},
			close() {
				this.show3 = false
				console.log('close');
			}
		}
	}
</script>

<style lang="scss">
	.u-page {
		padding: 0;
	}
</style>