index.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <template>
  2. <view class="u-demo">
  3. <view class="u-demo-wrap">
  4. <view class="u-demo-title">演示效果</view>
  5. <view class="u-demo-area">
  6. <u-row :justify="justify">
  7. <u-col :span="span" :offset="offset" @click="click">
  8. <view class="demo-layout bg-purple-dark">
  9. </view>
  10. </u-col>
  11. <u-col :span="span" :offset="offset">
  12. <view class="demo-layout bg-purple-dark">
  13. </view>
  14. </u-col>
  15. <u-col :span="span" :offset="offset">
  16. <view class="demo-layout bg-purple-dark">
  17. </view>
  18. </u-col>
  19. </u-row>
  20. </view>
  21. </view>
  22. <view class="u-config-wrap">
  23. <view class="u-config-title u-border-bottom">
  24. 参数配置
  25. </view>
  26. <view class="u-config-item">
  27. <view class="u-item-title">每个栅格占用栏数(演示共3个栅格)</view>
  28. <u-subsection vibrateShort :current="2" :list="[1, 2, 3, 4]" @change="spanChange"></u-subsection>
  29. </view>
  30. <view class="u-config-item">
  31. <view class="u-item-title">分栏偏移</view>
  32. <u-subsection vibrateShort :list="[0, 1, 2, 3]" @change="offsetChange"></u-subsection>
  33. </view>
  34. <!-- #ifndef MP -->
  35. <view class="u-config-item">
  36. <view class="u-item-title">水平排列方式(微信小程序无效)</view>
  37. <u-subsection vibrateShort :list="['start', 'end', 'around', 'between']" @change="justifyChange"></u-subsection>
  38. </view>
  39. <!-- #endif -->
  40. </view>
  41. </view>
  42. </template>
  43. <script>
  44. export default {
  45. data() {
  46. return {
  47. span: 3,
  48. offset: 0,
  49. justify: 'start'
  50. }
  51. },
  52. methods: {
  53. spanChange(e) {
  54. switch (e) {
  55. case 0:
  56. this.span = 1;
  57. break;
  58. case 1:
  59. this.span = 2;
  60. break;
  61. case 2:
  62. this.span = 3;
  63. break;
  64. case 3:
  65. this.span = 4;
  66. break;
  67. case 4:
  68. this.span = 5;
  69. break;
  70. }
  71. },
  72. offsetChange(e) {
  73. switch (e) {
  74. case 0:
  75. this.offset = 0;
  76. break;
  77. case 1:
  78. this.offset = 1;
  79. break;
  80. case 2:
  81. this.offset = 2;
  82. break;
  83. case 3:
  84. this.offset = 3;
  85. break;
  86. }
  87. },
  88. justifyChange(e) {
  89. switch (e) {
  90. case 0:
  91. this.justify = 'start';
  92. break;
  93. case 1:
  94. this.justify = 'end';
  95. break;
  96. case 2:
  97. this.justify = 'around';
  98. break;
  99. case 3:
  100. this.justify = 'between';
  101. break;
  102. }
  103. },
  104. }
  105. }
  106. </script>
  107. <style scoped lang="scss">
  108. .demo-layout {
  109. height: 70rpx;
  110. border-radius: 8rpx;
  111. margin: 20rpx 0;
  112. }
  113. .bg-purple {
  114. background: #d3dce6;
  115. }
  116. .bg-purple-light {
  117. background: #e5e9f2;
  118. }
  119. .bg-purple-dark {
  120. background: #99a9bf;
  121. }
  122. // H5中,电脑端文档演示时,可能会导致演示块挤出边界,特别处理。
  123. // 真实使用环境不会产生此问题
  124. /* #ifdef H5 */
  125. .u-demo-area /deep/ .u-row {
  126. display: flex;
  127. flex-wrap: wrap;
  128. }
  129. /* #endif */
  130. </style>