App.vue 984 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. <template>
  2. <router-view></router-view>
  3. </template>
  4. <script setup lang="ts">
  5. import { onMounted, ref, provide, inject } from 'vue'
  6. import { useStore } from '@/store/index'
  7. interface GlobalPopup {
  8. showSuccess: (msg: string, time: number) => void
  9. showError: (msg: string, time: number) => void
  10. showWarning: (msg: string, time: number) => void
  11. }
  12. const { setAsyncRoutesMark } = useStore()
  13. window.addEventListener('beforeunload', () => beforeunloadFn())
  14. const beforeunloadFn = (() => {
  15. setAsyncRoutesMark(false)
  16. })
  17. provide('globalPopup', {
  18. showSuccess: (msg: string, time: number) => { console.log(msg, '执行成功', time) }, //!SECTION 成功
  19. showError: (msg: string, time: number) => { console.log(msg, '执行成功'), time }, //!SECTION 失败
  20. showWarning: (msg: string, time: number) => { console.log(msg, '执行成功'), time }, //!SECTION 警告
  21. })
  22. </script>
  23. <style>
  24. html,
  25. body,
  26. #app,
  27. .layouts {
  28. width: 100%;
  29. height: 100%;
  30. overflow: hidden;
  31. }
  32. </style>