github.com/e154/smart-home@v0.17.2-0.20240311175135-e530a6e5cd45/static_source/admin/src/hooks/web/useNProgress.ts (about) 1 import { nextTick, unref } from 'vue' 2 import type { NProgressOptions } from 'nprogress' 3 import NProgress from 'nprogress' 4 import 'nprogress/nprogress.css' 5 import { useCssVar } from '@vueuse/core' 6 7 const primaryColor = useCssVar('--el-color-primary', document.documentElement) 8 9 export const useNProgress = () => { 10 NProgress.configure({ showSpinner: false } as NProgressOptions) 11 12 const initColor = async () => { 13 await nextTick() 14 const bar = document.getElementById('nprogress')?.getElementsByClassName('bar')[0] as ElRef 15 if (bar) { 16 bar.style.background = unref(primaryColor.value) 17 } 18 } 19 20 initColor() 21 22 const start = () => { 23 NProgress.start() 24 } 25 26 const done = () => { 27 NProgress.done() 28 } 29 30 return { 31 start, 32 done 33 } 34 }