Element-ui实现loading的局部刷新
后台管理系统loading的局部刷新

情景及Demo
import axios from 'axios'
import { Message} from 'element-ui'
import router from '../router/permission'
import Vue from 'vue' // loading框设置局部刷新,且所有请求完成后关闭loading框
let loading;
function startLoading() {
loading = Vue.prototype.$loading({
lock: true,
text: "Loading...",
target: document.querySelector('.loading-area')//设置加载动画区域
});
}
function endLoading() {
loading.close();
} //声明一个对象用于存储请求个数
let needLoadingRequestCount = 0;
function showFullScreenLoading() {
if (needLoadingRequestCount === 0) {
startLoading();
}
needLoadingRequestCount++;
};
function tryHideFullScreenLoading() {
if (needLoadingRequestCount <= 0) return;
needLoadingRequestCount--;
if (needLoadingRequestCount === 0) {
endLoading();
}
}; // 请求拦截
axios.interceptors.request.use(config => {
showFullScreenLoading();
return config;
}, err => {
tryHideFullScreenLoading();
Message.error({ message: '请求超时!' });
return Promise.resolve(err);
})
// 响应拦截
axios.interceptors.response.use(res => {
tryHideFullScreenLoading();
if (res.data.code == 200) {
return res.data.result;
} else if (res.data.code == 401) {
router.push('/login');
return Promise.reject(res);
} else if (res.data.code == 201) {
Message.error({ message: res.data.msg });
return Promise.reject(res);
}
return Promise.reject(res);
}, err => {
tryHideFullScreenLoading();
if (err.response.status == 504 || err.response.status == 404) {
Message.error({ message: '服务器被吃了⊙﹏⊙∥' });
} else if (err.response.status == 403) {
Message.error({ message: '权限不足,请联系管理员!' });
} else {
Message.error({ message: '未知错误' });
}
return Promise.reject(err);
}) let base = '';
export const postRequest = (url, params) => {
return axios({
method: 'post',
url: `${base}${url}`,
data: params,
transformRequest: [function (data) {
let ret = ''
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
}
return ret
}],
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
});
}
export const getRequest = (url, data = '') => {
return axios({
method: 'get',
params: data,
url: `${base}${url}`
});
}
<template>
<!-- 布局 -->
<el-container>
<el-header class="header-wraper" >
<admin-header></admin-header>
</el-header>
<el-container class="container">
<el-aside >
<admin-aside></admin-aside>
</el-aside>
<el-main class="loading-area">
<keep-alive>
<router-view v-if="this.$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!this.$route.meta.keepAlive"></router-view>
</el-main>
</el-container>
</el-container>
</template> <script>
import AdminAside from '@/components/Commons/Aside/index';
import AdminHeader from '@/components/Commons/Header/index'
export default {
components: {
AdminAside,
AdminHeader
},
data () {
return {}
},
}
</script> <style lang="less" scoped>
.header-wraper {
width: 100%;
height: 70px;
border-bottom: 1px solid #ccc;
overflow: hidden;
}
.container {
width: 100%;
height: 100%;
}
</style>
Element-ui实现loading的局部刷新的更多相关文章
- iOS开发——UI进阶篇(四)tableView的全局刷新,局部刷新,左滑操作,左滑出现更多按钮,进入编辑模式,批量删除,自定义批量删除
首先创建项目,在storyboard如下布局控件,设置好约束 然后创建cell模型类XMGWineCell数据模型类XMGWine创建UITableView,设置数据源协议,实现数据源方法懒加载数据这 ...
- vue + element ui 阻止表单输入框回车刷新页面
问题 在 vue+element ui 中只有一个输入框(el-input)的情况下,回车会提交表单. 解决方案 在 el-form 上加上 @submit.native.prevent 这个则会阻止 ...
- 封装一个优雅的element ui表格组件
现在做后台系统用vue + elementUI 的越来越多,那element ui的 el-table 组件肯定也离不开.虽然element ui的table组件很好.但是表格和分页是分离的.每次写表 ...
- 实现AJAX局部刷新以及PageMethod方法的使用
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> &l ...
- Android 结合实际项目学会ListView局部刷新和相关知识《一》
转载本专栏博客,请注明出处:道龙的博客 最近在公司参与的项目中有一个界面需要做局部UI更新处理,把其化烦为简为Demoi形式写在这里.我们还是运行该Demo,知道ListView局部刷新的使用场景:( ...
- Vue + Element UI项目初始化
1.安装相关组件 1.1安装Node 检查本地是否安装node node -v 如果没有安装,从Node官网下载 1.2安装npm npm -v 如果没有安装:使用该指令安装: npm install ...
- 上传图片组件封装 element ui
// element ui 文档地址: http://element.eleme.io/#/zh-CN <template> <div> <div class=" ...
- element ui Angular学习笔记(一)
1.element ui安装 npm i --save element-angular 2.Angular-cli引入 引入后需要开启ElModule.forRoot(),也可以单独引入某个组件入El ...
- 再说Android RecyclerView局部刷新那个坑
RecyclerView局部刷新大家都遇到过,有时候还说会遇见图片闪烁的问题. 优化之前的效果: 优化之后的效果: 如果想单独更新一个item,我们通常会这样做,代码如下: mLRecyclerV ...
随机推荐
- 上传文件小的oK,大一点的传不了,显示 (failed) net::ERR_CONNECTION_RESET
我很确定已经修改了php.ini中的文件上传限制,文件权限可写. 修改php.ini file_uploads = on ;是否允许通过HTTP上传文件的开关.默认为ON即是开 upload_tmp_ ...
- python16_day34【设计模式】
一.简单工厂模式 # coding : utf-8 # create by ztypl on 2017/5/24 from abc import abstractmethod, ABCMeta cla ...
- IP地址与子网掩码的计算
128.0.0.0=1 192.0.0.0=2224.0.0.0=3 240.0.0.0=4 248.0.0.0=5 252.0.0.0=6 254.0.0.0=7 255.0.0.0=8255.12 ...
- (1)了解cocostudio基础
操作界面 Cocos Studio的界面主要分为菜单栏.工具栏.对象面板.资源面板.画布面板.属性面板.动画面板.输出窗口.状态栏九部分组成,如下图: 菜单栏 菜单栏为Cocos Studio ...
- link标签 rel="stylesheet"
首先,link标签是用于当前文档引用外部文档的,其次,这个标签的rel属性用于设置对象和链接目的间的关系,说白了就是指明你链进来的对象是个什么东西的,具体的值及其所表示的关系如下:Alternate: ...
- “4K云字库”基本框架图
"4K云字库"基本框架图 谷歌的web-font,令"云字库"成为IT热点. 云字库,只是云计算的一个细小分支 ,而云计算的基础,是"大数据& ...
- ng-深度学习-课程笔记-2: 神经网络中的逻辑回归(Week2)
1 二分类( Binary Classification ) 逻辑回归是一个二分类算法.下面是一个二分类的例子,输入一张图片,判断是不是猫. 输入x是64*64*3的像素矩阵,n或者nx代表特征x的数 ...
- Float类型出现舍入误差的原因(round 取位)
在练习时,输入如下代码: 结果不准确. 原因:https://blog.csdn.net/bitcarmanlee/article/details/51179572 浮点数一个普遍的问题就是在计算机的 ...
- Vue学习笔记之Nodejs中的NPM使用
0x00 NPM是什么 简单的说,npm就是JavaScript的包管理工具.类似Java语法中的maven,gradle,python中的pip. 0x01 NPM安装 傻瓜式的安装. 第一步:打开 ...
- bzoj1009 / P3193 [HNOI2008]GT考试
P3193 [HNOI2008]GT考试 设$f[i][j]$表示主串匹配到第$i$个位置,不吉利数字匹配到第$j$个位置 $g[i][j]$表示加上某数字使子串原来最多能匹配到第$i$个数字,现在只 ...