index.vue 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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-toast ref="uToast"></u-toast>
  7. <view class="u-no-demo-here">
  8. 请点击弹出遮罩查看效果
  9. </view>
  10. <u-mask :show="show" @click="show = false" :zoom="zoom" :duration="duration">
  11. <view class="warp" v-if="content">
  12. <view class="rect" @tap.stop></view>
  13. </view>
  14. </u-mask>
  15. </view>
  16. </view>
  17. <view class="u-config-wrap">
  18. <view class="u-config-title u-border-bottom">
  19. 参数配置
  20. </view>
  21. <view class="u-config-item">
  22. <view class="u-item-title">状态</view>
  23. <u-subsection :current="current" :list="['显示', '隐藏']" @change="showChange"></u-subsection>
  24. </view>
  25. <view class="u-config-item">
  26. <view class="u-item-title">缩放效果</view>
  27. <u-subsection :list="['是', '否']" @change="zoomChange"></u-subsection>
  28. </view>
  29. <view class="u-config-item">
  30. <view class="u-item-title">内容填充</view>
  31. <u-subsection current="1" :list="['是', '否']" @change="contentChange"></u-subsection>
  32. </view>
  33. <view class="u-config-item">
  34. <view class="u-item-title">动画时长(ms)</view>
  35. <u-subsection current="1" :list="['100', '300', '800']" @change="durationChange"></u-subsection>
  36. </view>
  37. </view>
  38. </view>
  39. </template>
  40. <script>
  41. export default {
  42. data() {
  43. return {
  44. show: false,
  45. zoom: true,
  46. duration: 300,
  47. content: false,
  48. }
  49. },
  50. computed: {
  51. current() {
  52. return this.show ? 0 : 1;
  53. }
  54. },
  55. methods: {
  56. showChange(index) {
  57. this.show = index == 0 ? true : false;
  58. },
  59. zoomChange(index) {
  60. this.zoom = index == 0 ? true : false;
  61. this.show = true;
  62. },
  63. durationChange(index) {
  64. this.duration = index == 0 ? 100 : index == 1 ? 300 : 800;
  65. this.show = true;
  66. },
  67. contentChange(index) {
  68. this.content = index == 0 ? true : false;
  69. this.show = true;
  70. }
  71. }
  72. }
  73. </script>
  74. <style scoped lang="scss">
  75. .warp {
  76. display: flex;
  77. align-items: center;
  78. justify-content: center;
  79. height: 100%;
  80. }
  81. .rect {
  82. width: 120px;
  83. height: 120px;
  84. background-color: #fff;
  85. }
  86. </style>