Vue 自定义ElementUI的Loading效果

javascript 复制代码
import {  loadingText, messageDuration } from "@/settings";

import { Loading } from "element-ui";
// loadingText、messageDuration 这两个参数我是调的公共配置文件,按自己需求来 
const install = (Vue, opts = {}) => {

  /* 全局多彩Loading加载层 */
  Vue.prototype.$baseColorfullLoading = (index, text, callback) => {
    let loading;
    if (!index) {
      loading = Loading.service({
        lock: true,  // 是否锁屏
        text: text || loadingText, // 加载动画的文字
        spinner: "dots-loader",  // 引入的loading图标
        background: "hsla(0,0%,100%,.8)", // 背景颜色
      });
    } else {
      switch (index) {
        case 1:
          index = "dots";
          break;
        case 2:
          index = "gauge";
          break;
        case 3:
          index = "inner-circles";
          break;
        case 4:
          index = "plus";
          break;
      }
      loading = Loading.service({
        lock: true,  // 是否锁屏
        text: text || loadingText, // 加载动画的文字
        spinner: index + "-loader", // 引入的loading图标
        background: "hsla(0,0%,100%,.8)", // 背景颜色
        target: document.querySelector('.app-main-container'),  // **需要遮罩的区域
        // (我这里是指要求遮盖组件,如果你想全屏遮盖住,可以不要这行代码)
      });
    }
    if (callback) {
      callback(loading);
    } else {
      setTimeout(() => {
        loading.close();
      }, messageDuration);
    }
  };

};

if (typeof window !== "undefined" && window.Vue) {
  install(window.Vue);
}

export default install;

调用

javascript 复制代码
  // index可以填写1-4,4种效果
  this.$baseColorfullLoading(3)
相关推荐
初出茅庐的20 分钟前
uniapp - AI 聊天页面布局的实现
前端·vue.js·uni-app
晴殇i1 小时前
Vue i18n插件:实现Web应用多语言切换的
前端·javascript·vue.js
泉城老铁1 小时前
springboot+vue实现快速文件上传详细指南
vue.js·后端·架构
小码编匠1 小时前
一款开源多功能文档在线预览解决方案,支持主流格式一键部署
vue.js·spring boot·后端
林太白2 小时前
vite7.0更新赶紧学起来,Rolldown用起来,更新速览
前端·javascript·vue.js
泉城老铁2 小时前
Spring Boot + Vue 实现微信扫码登录的详细攻略
vue.js·后端·微信
枣把儿3 小时前
交互效果太单调?推荐两个动画丝滑的组件库,Vue 和 Nuxt都适用!
前端·vue.js·nuxt.js
初出茅庐的3 小时前
uniapp - 键盘上推 踩坑
前端·vue.js·uni-app
Cc_Debugger3 小时前
element plus使用插槽方式自定义el-form-item的label
前端·javascript·vue.js
纸人特工3 小时前
用Vue3+TypeScript手撸了一个简约的浏览器新标签页扩展
前端·vue.js