123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- <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>
|