ModalDemo.svelte 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <!-- Modal Demo -->
  2. <script>
  3. import { Modal, Cell, Toast } from 'stdf';
  4. import Aphorism from '../../components/Aphorism.svelte';
  5. let visible1 = false;
  6. let visible2 = false;
  7. let visible3 = false;
  8. let visible4 = false;
  9. let visible5 = false;
  10. let visible6 = false;
  11. let visible7 = false;
  12. let visible8 = false;
  13. let visible9 = false;
  14. let visible10 = false;
  15. let visible11 = false;
  16. let visible12 = false;
  17. let visible13 = false;
  18. let visible14 = false;
  19. let visible15 = false;
  20. let toastVisible = false;
  21. $: if (visible15) {
  22. setTimeout(() => {
  23. visible15 = false;
  24. }, 3000);
  25. }
  26. </script>
  27. <div class="py-4">
  28. <Cell title="基础用法" on:click={() => (visible1 = true)} />
  29. <Modal bind:visible={visible1} title="您明白吗?" content="留下来的人才是最痛苦的" btnText="我明白了" />
  30. <Cell title="内容使用插槽" on:click={() => (visible2 = true)} />
  31. <Modal bind:visible={visible2} contentSlot>
  32. <Aphorism num={1} compact />
  33. </Modal>
  34. <Cell title="不显示标题" on:click={() => (visible3 = true)} />
  35. <Modal bind:visible={visible3} title="" />
  36. <Cell title="不显示按钮" on:click={() => (visible4 = true)} />
  37. <Modal bind:visible={visible4} showBtn={false} contentSlot>
  38. <Aphorism num={1} compact />
  39. </Modal>
  40. <Cell title="点击遮罩关闭" on:click={() => (visible5 = true)} />
  41. <Modal bind:visible={visible5} popup={{ maskClosable: true }} />
  42. <Cell title="自定义图标" on:click={() => (visible6 = true)} />
  43. <Modal
  44. bind:visible={visible6}
  45. content="请佩戴口罩!"
  46. showIcon
  47. icon={{ name: 'ri-surgical-mask-fill', size: 40, injClass: 'text-[#48a1b4]' }}
  48. />
  49. <Cell title="错误状态按钮" on:click={() => (visible8 = true)} />
  50. <Modal bind:visible={visible8} btnText="我错了" button={{ state: 'error' }} />
  51. <Cell title="全圆角按钮" on:click={() => (visible9 = true)} />
  52. <Modal bind:visible={visible9} button={{ radius: 'full' }} />
  53. <Cell title="主题色纯文本按钮" on:click={() => (visible12 = true)} />
  54. <Modal bind:visible={visible12} button={{ fill: 'textTheme' }} />
  55. <Cell title="内容使用插槽且滚动" on:click={() => (visible10 = true)} />
  56. <Modal bind:visible={visible10} contentSlot>
  57. <div class="h-56 overflow-auto">
  58. <Aphorism num={6} compact />
  59. </div>
  60. </Modal>
  61. <Cell title="显示窄一点" on:click={() => (visible7 = true)} />
  62. <Modal bind:visible={visible7} popup={{ px: '20' }} />
  63. <Cell title="另一种动画效果" on:click={() => (visible11 = true)} />
  64. <Modal bind:visible={visible11} content="回弹过渡" popup={{ easeType: 'backOut' }} />
  65. <Cell title="监听关闭事件" on:click={() => (visible13 = true)} />
  66. <Modal bind:visible={visible13} on:close={() => (toastVisible = true)} />
  67. <Toast bind:visible={toastVisible} message="关闭了 Modal!" />
  68. <Cell title="标题居左" on:click={() => (visible14 = true)} />
  69. <Modal bind:visible={visible14} title="标题居左" titleAlign="left" />
  70. <Cell title="自动关闭" on:click={() => (visible15 = true)} />
  71. <Modal bind:visible={visible15} content="别动!3 秒后我立即消失!" />
  72. </div>
  73. <!-- Aphorism.svelte -->
  74. <!--
  75. <script>
  76. import aphorisms from '../data/aphorisms'; //引入数据
  77. export let num = 0; //显示条数
  78. export let compact = false; //是否紧凑模式
  79. //从 aphorisms 随机取出 num 条数据
  80. const aphorismsList = aphorisms.sort(() => Math.random() - 0.5).slice(0, num);
  81. </script>
  82. <div class={`${compact ? '' : 'px-4 py-8 '}divide-y divide-black/5 dark:divide-white/5`}>
  83. {#each aphorismsList as item}
  84. <div class:py-6={num > 1}>
  85. <div class="text-sm text-justify">{item.text}</div>
  86. <div class="text-right mt-1" class:italic={item.fromItalic}>{item.from}</div>
  87. </div>
  88. {/each}
  89. </div>
  90. -->