123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import { nextTick, unref } from 'vue'
- import type { NProgressOptions } from 'nprogress'
- import NProgress from 'nprogress'
- import 'nprogress/nprogress.css'
- import { useCssVar } from '@vueuse/core'
- const primaryColor = useCssVar('--el-color-primary', document.documentElement)
- export const useNProgress = () => {
- NProgress.configure({
- // 动画方式
- easing: 'ease',
- // 递增进度条的速度
- speed: 500,
- // 是否显示加载ico
- showSpinner: false,
- // 自动递增间隔
- trickleSpeed: 200,
- // 初始化时的最小百分比
- minimum: 0.3
- } as NProgressOptions)
- const initColor = async () => {
- await nextTick()
- const bar = document.getElementById('nprogress')?.getElementsByClassName('bar')[0] as ElRef
- if (bar && primaryColor.value) {
- bar.style.background = unref(primaryColor.value)
- }
- }
- initColor()
- const start = () => {
- NProgress.start()
- }
- const done = () => {
- NProgress.done()
- }
- return {
- start,
- done
- }
- }
|