index.vue 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <template>
  2. <div class="demo">
  3. <h2>基础用法</h2>
  4. <nut-cell title="展示弹出层" is-link @click="showBasic = true"></nut-cell>
  5. <nut-popup pop-class="popclass" :style="{ padding: '30px 50px' }" v-model:visible="showBasic" :z-index="100"
  6. >正文</nut-popup
  7. >
  8. <h2>弹出位置</h2>
  9. <nut-cell title="顶部弹出" is-link @click="showTop = true"></nut-cell>
  10. <nut-popup position="top" :style="{ height: '10%' }" v-model:visible="showTop"></nut-popup>
  11. <nut-cell title="底部弹出" is-link @click="showBottom = true"></nut-cell>
  12. <nut-popup position="bottom" :style="{ height: '20%' }" v-model:visible="showBottom"></nut-popup>
  13. <nut-cell title="左侧弹出" is-link @click="showLeft = true"></nut-cell>
  14. <nut-popup position="left" :style="{ width: '20%', height: '100%' }" v-model:visible="showLeft"></nut-popup>
  15. <nut-cell title="右侧弹出" is-link @click="showRight = true"></nut-cell>
  16. <nut-popup position="right" :style="{ width: '20%', height: '100%' }" v-model:visible="showRight"></nut-popup>
  17. <h2>关闭图标</h2>
  18. <nut-cell title="关闭图标" is-link @click="showIcon = true"></nut-cell>
  19. <nut-popup position="bottom" closeable :style="{ height: '20%' }" v-model:visible="showIcon"></nut-popup>
  20. <nut-cell title="图标位置" is-link @click="showIconPosition = true"></nut-cell>
  21. <nut-popup
  22. position="bottom"
  23. closeable
  24. close-icon-position="top-left"
  25. :style="{ height: '20%' }"
  26. v-model:visible="showIconPosition"
  27. ></nut-popup>
  28. <nut-cell title="自定义图标" is-link @click="showCloseIcon = true"></nut-cell>
  29. <nut-popup
  30. position="bottom"
  31. closeable
  32. close-icon-position="top-left"
  33. :style="{ height: '20%' }"
  34. v-model:visible="showCloseIcon"
  35. >
  36. <template #closeIcon>
  37. <Heart></Heart>
  38. </template>
  39. </nut-popup>
  40. <h2>圆角弹框</h2>
  41. <nut-cell title="圆角弹框" is-link @click="showRound = true"></nut-cell>
  42. <nut-popup position="bottom" closeable round :style="{ height: '30%' }" v-model:visible="showRound"></nut-popup>
  43. <h2>指定挂载节点</h2>
  44. <nut-cell title="指定挂载节点" is-link @click="showTeleport = true"></nut-cell>
  45. <nut-popup :style="{ padding: '30px 50px' }" teleport="#app" v-model:visible="showTeleport">app</nut-popup>
  46. <h2>多层堆叠</h2>
  47. <nut-cell title="多层堆叠" is-link @click="showPop1 = true"></nut-cell>
  48. <nut-popup :style="{ padding: '30px 50px' }" v-model:visible="showPop1">
  49. <div @click="showPop2 = true">点击它</div>
  50. </nut-popup>
  51. <nut-popup :style="{ padding: '30px 50px' }" v-model:visible="showPop2">正文</nut-popup>
  52. </div>
  53. </template>
  54. <script lang="ts">
  55. import { reactive, toRefs } from 'vue';
  56. import { Heart } from '@nutui/icons-vue-taro';
  57. export default {
  58. components: { Heart },
  59. props: {},
  60. setup() {
  61. const state = reactive({
  62. showBasic: false,
  63. showTop: false,
  64. showBottom: false,
  65. showLeft: false,
  66. showRight: false,
  67. showIcon: false,
  68. showIconPosition: false,
  69. showCloseIcon: false,
  70. showRound: false,
  71. showCombination: false,
  72. showPop1: false,
  73. showPop2: false,
  74. showTeleport: false
  75. });
  76. return { ...toRefs(state) };
  77. }
  78. };
  79. </script>
  80. <style lang="scss"></style>