App.vue 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <script setup lang="ts">
  2. import {
  3. NConfigProvider,
  4. NModalProvider,
  5. NDialogProvider,
  6. NNotificationProvider,
  7. NMessageProvider,
  8. NWatermark,
  9. NGlobalStyle,
  10. NEl,
  11. } from 'naive-ui'
  12. import { RouterView } from 'vue-router'
  13. import Noise from '@/components/Noise.vue'
  14. import { getConfigProviderProps } from '@/composable/useDiscreteApi'
  15. import { useConfigureStore } from '@/stores/configure'
  16. import { simCardCacheDB } from '@/service/simCardManage/simCardCache'
  17. const configureStore = useConfigureStore()
  18. const configProviderProps = getConfigProviderProps()
  19. defineOptions({
  20. // 禁止参数透传
  21. inheritAttrs: false
  22. })
  23. import { ref, onMounted } from 'vue';
  24. const configProvider = ref(null)
  25. onMounted(() => {
  26. // 清理过期的 SIM 卡月数据缓存
  27. simCardCacheDB.cleanup()
  28. if (configProvider.value) {
  29. console.log(configProvider.value); // 直接获取当前组件实例的 attrs
  30. }
  31. })
  32. </script>
  33. <template>
  34. <NConfigProvider ref="configProvider" v-bind="configProviderProps">
  35. <NGlobalStyle />
  36. <NEl>
  37. <NModalProvider>
  38. <NNotificationProvider placement="bottom-right">
  39. <NMessageProvider>
  40. <NDialogProvider>
  41. <RouterView />
  42. <NWatermark v-if="configureStore.configure.showWatermark" fullscreen
  43. v-bind="configureStore.configure.watermarkOptions" />
  44. <Noise v-if="configureStore.configure.showNoise" />
  45. </NDialogProvider>
  46. </NMessageProvider>
  47. </NNotificationProvider>
  48. </NModalProvider>
  49. </NEl>
  50. </NConfigProvider>
  51. </template>