nested-drawer.vue 859 B

12345678910111213141516171819202122232425262728293031323334353637
  1. <template>
  2. <el-button type="primary" style="margin-left: 16px" @click="drawer = true">
  3. open
  4. </el-button>
  5. <el-drawer v-model="drawer" title="I'm outer Drawer" size="50%">
  6. <div>
  7. <el-button @click="innerDrawer = true">Click me!</el-button>
  8. <el-drawer
  9. v-model="innerDrawer"
  10. title="I'm inner Drawer"
  11. :append-to-body="true"
  12. :before-close="handleClose"
  13. >
  14. <p>_(:зゝ∠)_</p>
  15. </el-drawer>
  16. </div>
  17. </el-drawer>
  18. </template>
  19. <script lang="ts" setup>
  20. import { ref } from 'vue'
  21. import { ElMessageBox } from 'element-plus'
  22. const drawer = ref(false)
  23. const innerDrawer = ref(false)
  24. const handleClose = (done: () => void) => {
  25. ElMessageBox.confirm('You still have unsaved data, proceed?')
  26. .then(() => {
  27. done()
  28. })
  29. .catch(() => {
  30. // catch error
  31. })
  32. }
  33. </script>