<template> <view class="u-demo"> <view class="u-demo-wrap"> <view class="u-demo-title">演示效果</view> <view class="u-demo-area"> <u-row :justify="justify" @click="rowClick"> <u-col :span="span" :offset="offset" @click="click" stop> <view class="demo-layout bg-purple-dark"> </view> </u-col> <u-col :span="span" :offset="offset"> <view class="demo-layout bg-purple-dark"> </view> </u-col> <u-col :span="span" :offset="offset"> <view class="demo-layout bg-purple-dark"> </view> </u-col> </u-row> </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">每个栅格占用栏数(演示共3个栅格)</view> <u-subsection :current="2" :list="[1, 2, 3, 4]" @change="spanChange"></u-subsection> </view> <view class="u-config-item"> <view class="u-item-title">分栏偏移</view> <u-subsection :list="[0, 1, 2, 3]" @change="offsetChange"></u-subsection> </view> <!-- #ifndef MP --> <view class="u-config-item"> <view class="u-item-title">水平排列方式(微信小程序无效)</view> <u-subsection :list="['start', 'end', 'around', 'between']" @change="justifyChange"></u-subsection> </view> <!-- #endif --> </view> </view> </template> <script> export default { data() { return { span: 3, offset: 0, justify: 'start' } }, methods: { click() { console.log('col click'); }, rowClick() { console.log('row click'); }, spanChange(e) { switch (e) { case 0: this.span = 1; break; case 1: this.span = 2; break; case 2: this.span = 3; break; case 3: this.span = 4; break; case 4: this.span = 5; break; } }, offsetChange(e) { switch (e) { case 0: this.offset = 0; break; case 1: this.offset = 1; break; case 2: this.offset = 2; break; case 3: this.offset = 3; break; } }, justifyChange(e) { switch (e) { case 0: this.justify = 'start'; break; case 1: this.justify = 'end'; break; case 2: this.justify = 'around'; break; case 3: this.justify = 'between'; break; } }, } } </script> <style scoped lang="scss"> .demo-layout { height: 70rpx; border-radius: 8rpx; margin: 20rpx 0; } .bg-purple { background: #d3dce6; } .bg-purple-light { background: #e5e9f2; } .bg-purple-dark { background: #99a9bf; } // H5中,电脑端文档演示时,可能会导致演示块挤出边界,特别处理。 // 真实使用环境不会产生此问题 /* #ifdef H5 */ .u-demo-area /deep/ .u-row { display: flex; flex-wrap: wrap; } /* #endif */ </style>