nested-drawer.vue 884 B

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