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 ...
随机推荐
- vim tab设置为4个空格
为了vim更好的支持python写代码,修改tab默认4个空格有两种设置方法: 1. vim /etc/vimrc 1 set ts=4 2 set sw=4 2. vim /etc/vimrc 1 ...
- zw黑天鹅足彩实盘测试5月数据包
[文件说明] $mx1,是单日数据:$mx9,是日数据和 入选率:2%, 准确度:40% 盈利率:120%左右 目前在测试稳定性 5月1日-6月14日,实盘数据 $mx9,15061409x15061 ...
- uva1424
Traveling salesmen of nhn. (the prestigious Korean internet company) report their current location t ...
- 基于SSH RSA的信任关系
RSA 非对称加密算法 client ---> server 私钥 公钥 1. 客户端生成密钥对 ssh-keygen -t rsa 执行后产生的密钥对会分别追加写到当前用户家目录下的以下文 ...
- http://www.cvvision.cn/2888.html
图像处理(一)图像变形(1)矩形全景图像还原-Siggraph 2014 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:cvvision链接:http://www.cvvi ...
- linux读书笔记第三章
第3章 进程管理20 3.1 进程20 进程就是处于执行期的程序(目标码存放在某种存储介质上),但进程并不仅仅局限于一段可执行程序代码.通常进程还要包含其他资源,像打开的文件,挂起的信号,内核内部数据 ...
- 项目:Android平台txt阅读软件
项目:Android平台txt阅读软件 项目组成员:20145107李长达.20145110屠轶成.20145120黄玄曦.20145122程智崟 Need: 从古至今,阅读都是人类生活中的一大部分, ...
- 初识PHP(三)面向对象特性
PHP5开始支持面向对象的编程方式.PHP的面向对象编程方法和别的语言区别不大,下面对PHP面向编程基本语法进行简单记录. 一.声明对象 声明方法: class Say{ public functio ...
- TortoiseGit 访问https远程仓库,上报SSL证书错误解决方法
报错 在使用TortoiseGit时,clone自己搭建的gitlab报如错SSL certificate problem: self signed certificate 原因:自行搭建的gitla ...
- Redis复制(replication)
介绍 Redis支持简单的主从(master-slave)复制功能,当主Redis服务器更新数据时能将数据同步到从Redis服务器 配置 在Redis中使用复制功能非常容易 在从Redis服务器的re ...