loading.ts 680 B

123456789101112131415161718192021222324252627282930
  1. import { defineStore } from 'pinia'
  2. import { ref } from 'vue'
  3. export const useLoadingStore = defineStore('loading', () => {
  4. // 控制加载页显示状态
  5. const isLoading = ref(false)
  6. // 加载页文本
  7. const loadingText = ref('正在加载...')
  8. // 显示加载页
  9. const showLoading = (text?: string) => {
  10. if (text)
  11. loadingText.value = text
  12. isLoading.value = true
  13. }
  14. // 隐藏加载页
  15. const hideLoading = (delay = 0) => {
  16. setTimeout(() => {
  17. isLoading.value = false
  18. }, delay)
  19. }
  20. return {
  21. isLoading,
  22. loadingText,
  23. showLoading,
  24. hideLoading
  25. }
  26. })