Vue3,TS和Element-plus全局配置调用axiosf服务ElLoading效果修改样式2022/6/17am

新建hooks/loading.ts文件
import { ElLoading } from 'element-plus'

let loading: { close: () => void; }
function openLoading () {
  loading = ElLoading.service({
    // body: true,
    lock: true,
    // spinner: 'el-icon-loading',
    background: 'rgba(255, 255, 255, 0.5)',
    customClass: 'osloading' // 重点,修改样式类名
  })
}
function closeLoading () {
  loading.close()
}
export {
  openLoading,
  closeLoading
}
在axios/request.ts中使用

import axios from 'axios'
import { openLoading, closeLoading } from '@/hooks/Loading' 重点调用
const instance = axios.create({
  // 这里千万不能写headers否则会造成数据缓存
  timeout: 300000
})
/** **** request拦截器==>对请求参数做处理 ******/
instance.interceptors.request.use(
  (config) => {

    // const value = sessionStorage.getItem('token')
    // if (value) {
    //   const configall: any = config
    //   configall.headers.Authorization = 'Bearer ' + value
    // }
    openLoading() 请求时调用

    return config
  },
  (error) => {
    return Promise.reject(error)
  }
)
/** **** respone拦截器==>对响应做处理 ******/
instance.interceptors.response.use(
  (response) => {
   
    setTimeout(() => {
      closeLoading()   响应数据后关闭loading
    }, 200)

    return response
  },
  (error) => {
    return Promise.reject(error)
  }
)
export default instance
全局修改样式,并在main.ts中调用

.osloading .el-loading-spinner {//这里添加图片样式
  position: relative;
  top: 50%;
  left: 50%;
  width: 50px;
  height: 50px;

}
.osloading .el-loading-spinner .path {
   stroke-width:3;
   stroke:#6a49ac;
}
// 这里写入需要的文字样式
.osloading .el-loading-spinner::after{
  content: 'loading...';
  color: #6a49ac;
  font-size: 20px;
}

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值