index.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <PageWrapper title="抽屉组件使用示例">
  3. <Alert message="使用 useDrawer 进行抽屉操作" show-icon />
  4. <a-button type="primary" class="my-4" @click="openDrawerLoading"> 打开Drawer </a-button>
  5. <Alert message="内外同时控制显示隐藏" show-icon />
  6. <a-button type="primary" class="my-4" @click="openDrawer2(true)"> 打开Drawer </a-button>
  7. <Alert message="自适应高度/显示footer" show-icon />
  8. <a-button type="primary" class="my-4" @click="openDrawer3(true)"> 打开Drawer </a-button>
  9. <Alert message="内外数据交互" show-icon />
  10. <a-button type="primary" class="my-4" @click="send"> 打开Drawer并传递数据 </a-button>
  11. <Alert message="详情页模式" show-icon />
  12. <a-button type="primary" class="my-4" @click="openDrawer5(true)"> 打开详情Drawer </a-button>
  13. <Drawer1 @register="register1" />
  14. <Drawer2 @register="register2" />
  15. <Drawer3 @register="register3" />
  16. <Drawer4 @register="register4" />
  17. <Drawer5 @register="register5" />
  18. </PageWrapper>
  19. </template>
  20. <script lang="ts">
  21. import { defineComponent } from 'vue';
  22. import { Alert } from 'ant-design-vue';
  23. import { useDrawer } from '/@/components/Drawer';
  24. import Drawer1 from './Drawer1.vue';
  25. import Drawer2 from './Drawer2.vue';
  26. import Drawer3 from './Drawer3.vue';
  27. import Drawer4 from './Drawer4.vue';
  28. import Drawer5 from './Drawer5.vue';
  29. import { PageWrapper } from '/@/components/Page';
  30. export default defineComponent({
  31. components: { Alert, PageWrapper, Drawer1, Drawer2, Drawer3, Drawer4, Drawer5 },
  32. setup() {
  33. const [register1, { openDrawer: openDrawer1, setDrawerProps }] = useDrawer();
  34. const [register2, { openDrawer: openDrawer2 }] = useDrawer();
  35. const [register3, { openDrawer: openDrawer3 }] = useDrawer();
  36. const [register4, { openDrawer: openDrawer4 }] = useDrawer();
  37. const [register5, { openDrawer: openDrawer5 }] = useDrawer();
  38. function send() {
  39. openDrawer4(true, {
  40. data: 'content',
  41. info: 'Info',
  42. });
  43. }
  44. function openDrawerLoading() {
  45. openDrawer1();
  46. setDrawerProps({ loading: true });
  47. setTimeout(() => {
  48. setDrawerProps({ loading: false });
  49. }, 2000);
  50. }
  51. return {
  52. register1,
  53. openDrawer1,
  54. register2,
  55. openDrawer2,
  56. register3,
  57. openDrawer3,
  58. register4,
  59. register5,
  60. openDrawer5,
  61. send,
  62. openDrawerLoading,
  63. };
  64. },
  65. });
  66. </script>