You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

118 line
4.5 KiB

  1. <template>
  2. <view>
  3. <l-title>普通弹出窗口:</l-title>
  4. <view class="padding">
  5. <l-button @click="normal = true" color="green" shadow>显示</l-button>
  6. <l-modal v-model="normal" title="模态框标题">我是模态框内容</l-modal>
  7. </view>
  8. <l-demo-description>
  9. 弹出窗口使用 l-modal 标签,将弹出窗口显示与否绑定为 v-model ,属性 title 可以设置弹出窗口的标题;
  10. 标签内的默认插槽内容成为弹出窗口的内容,在名为 title 的插槽中的内容将渲染为标题; 弹出窗口关闭时会触发 close 事件
  11. </l-demo-description>
  12. <l-title>底部弹出窗口:</l-title>
  13. <view class="padding">
  14. <l-button @click="bottom = true" color="green" shadow>显示</l-button>
  15. <l-modal v-model="bottom" type="bottom" title="底部模态框标题">我是底部模态框内容</l-modal>
  16. </view>
  17. <l-demo-description>
  18. 给 l-modal 标签添加属性 type="bottom" 即设为底部弹出窗口;
  19. 底部窗口有一个名为 action 的插槽,该插槽的内容将渲染到底部弹出窗口的按钮区
  20. </l-demo-description>
  21. <l-title>对话弹出窗口:</l-title>
  22. <view class="padding">
  23. <l-button @click="confirm = true" color="green" shadow>显示</l-button>
  24. <l-tag v-if="confirmValue" color="blue" class="margin-left-sm" capsule round>
  25. <text slot="icon">选择了</text>
  26. {{ confirmValue }}
  27. </l-tag>
  28. <l-modal
  29. v-model="confirm"
  30. @ok="confirmValue = '确认'"
  31. @cancel="confirmValue = '取消'"
  32. type="confirm"
  33. title="对话窗口标题"
  34. >
  35. 我是对话窗口的内容
  36. </l-modal>
  37. </view>
  38. <l-demo-description>
  39. 给 l-modal 标签添加属性 type="confirm" 即可设为对话弹出窗口,对话弹出窗口有确认和取消按钮;
  40. 点击确认按钮将触发 ok 事件,点击取消按钮将触发 cancel 事件
  41. </l-demo-description>
  42. <l-title>图片弹出窗口:</l-title>
  43. <view class="padding">
  44. <l-button @click="img = true" color="green" shadow>显示</l-button>
  45. <l-modal v-model="img" type="img" img="https://img.learun.cn/wxcx/pic.jpg" />
  46. </view>
  47. <l-demo-description>给 l-modal 标签添加属性 type="img" 即可设为图片弹出窗口,设置属性 img 来设置图片的地址</l-demo-description>
  48. <l-title>单选弹出窗口:</l-title>
  49. <view class="padding">
  50. <l-button @click="radio = true" color="green" shadow>显示</l-button>
  51. <l-tag color="blue" class="margin-left-sm" capsule round>
  52. <text slot="icon">选择了</text>
  53. {{ radioValue }}
  54. </l-tag>
  55. <l-modal v-model="radio" @radioChange="radioChange" :radio="radioValue" :range="['选项1', '选项2', '选项3']" type="radio" />
  56. </view>
  57. <l-demo-description>
  58. 给 l-modal 标签添加属性 type="radio" 即可设为单选弹出窗口;
  59. 单选弹出窗口需要设置属性 range 表示单选项,设置属性 radio 表示当前选中的项;
  60. 单选弹出窗口有事件 radioChange、radioIndex 表示单选项、Index 发生改变
  61. </l-demo-description>
  62. <l-title>多选弹出窗口:</l-title>
  63. <view class="padding">
  64. <l-button @click="checkbox = true" color="green" shadow>显示</l-button>
  65. <l-tag color="blue" class="margin-left-sm" capsule>
  66. <text slot="icon">选择了</text>
  67. {{ checkboxValue.join(',') }}
  68. </l-tag>
  69. <l-modal
  70. v-model="checkbox"
  71. @checkboxChange="checkboxChange"
  72. :checkbox="checkboxValue"
  73. :range="['选项1', '选项2', '选项3', '选项4']"
  74. type="checkbox"
  75. />
  76. </view>
  77. <l-demo-description>
  78. 给 l-modal 标签设置属性 type="checkbox" 即可设为多选弹出窗口;
  79. 多选弹出窗口需要设置属性 range 表示多选项,设置属性 checkbox 表示当前选中的项;
  80. 多选弹出窗口有事件 checkboxChange、checkboxIndex 表示选项值、Index 发生改变,另有 ok、cancel 事件表示点击了确定、取消
  81. </l-demo-description>
  82. </view>
  83. </template>
  84. <script>
  85. export default {
  86. data() {
  87. return {
  88. normal: false,
  89. bottom: false,
  90. confirm: false,
  91. img: false,
  92. radio: false,
  93. checkbox: false,
  94. confirmValue: null,
  95. radioValue: '选项1',
  96. checkboxValue: ['选项1']
  97. }
  98. },
  99. methods: {
  100. radioChange(newVal){
  101. this.radioValue = newVal
  102. },
  103. checkboxChange(newVal) {
  104. this.checkboxValue = newVal
  105. }
  106. }
  107. }
  108. </script>