<template>
	<view class="u-demo">
		<view class="u-demo-wrap">
			<view class="u-demo-title">演示效果</view>
			<view class="u-demo-area">
				<u-toast ref="uToast"></u-toast>
				<view class="container u-skeleton">
					<view class="userinfo">
						<block>
							<!--u-skeleton-circle 绘制圆形-->
							<image class="userinfo-avatar u-skeleton-circle" :src="userInfo.avatarUrl"></image>
							<!--u-skeleton-fillet 绘制圆角矩形-->
							<text class="u-skeleton-fillet">{{userInfo.nickName}}</text>
						</block>
					</view>
					<view style="margin: 20px 0">
						<!--u-skeleton-rect 绘制矩形-->
						<view class="u-skeleton-rect lists" v-for="(item,index) in lists" :key="index">
							<text>{{item}}</text>
						</view>
					</view>
				</view>
				<!--引用组件-->
				<u-skeleton bg-color="rgb(250, 250, 250)" :loading="loading" :animation="animation" 
				:el-color="elColor" :border-radius="borderRadius"></u-skeleton>
			</view>
		</view>
		<view class="u-config-wrap">
			<view class="u-config-title u-border-bottom">
				参数配置
			</view>
			<view class="u-config-item">
				<view class="u-item-title">加载状态</view>
				<u-subsection :current="current" :list="['请求中', '请求结束']" @change="loadingChange"></u-subsection>
			</view>
			<view class="u-config-item">
				<view class="u-item-title">骨架动画</view>
				<u-subsection current="1" :list="['是', '否']" @change="animationChange"></u-subsection>
			</view>
			<view class="u-config-item">
				<view class="u-item-title">自定义样式</view>
				<u-subsection current="1" :list="['是', '否']" @change="styleChange"></u-subsection>
			</view>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				userInfo: {
					avatarUrl: 'https://cdn.uviewui.com/uview/common/logo.png',
					nickName: 'uView'
				},
				lists: [
					'君不见,黄河之水天上来,奔流到海不复回。君不见,高堂明镜悲白发,朝如青丝暮成雪。',
					'人生得意须尽欢,莫使金樽空对月',
					'天生我材必有用,千金散尽还复来',
				],
				loading: true, // 是否显示骨架屏组件
				animation: false,
				elColor: '#e5e5e5',
				borderRadius: 10,
			}
		},
		computed: {
			current() {
				return this.loading ? 0 : 1;
			},
		},
		onLoad() {
			this.getData();
		},
		methods: {
			animationChange(index) {
				this.animation = index == 0 ? true : false;
				this.getData();
			},
			loadingChange(index) {
				this.loading = index == 0 ? true : false;
				if(index == 0) this.getData();
			},
			styleChange(index) {
				if(index == 0) {
					this.elColor = this.$u.color['primary'];
					this.borderRadius = 14;
				} else {
					this.elColor = '#e5e5e5';
					this.borderRadius = 10;
				}
				this.getData();
			},
			getData() {
				this.loading = true;
				// 通过延时模拟向后端请求数据,调隐藏骨架屏
				setTimeout(() => {
					this.loading = false;
				}, 3000)
			}
		}
	}
</script>

<style lang="scss" scoped>
	.container {
		text-align: left;
		font-size: 28rpx;
		color: $u-content-color;
	}

	.userinfo {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.userinfo-avatar {
		width: 128rpx;
		height: 128rpx;
		margin: 20rpx;
		border-radius: 50%;
	}

	.lists {
		margin: 10px 0;
	}
</style>