zoukankan      html  css  js  c++  java
  • vue加载loading图

      APP.vue

    <template>
      <div id="app">
        <loading v-if='loading'></loading>
        <router-view/>
      </div>
    </template>
    
    <script>
    import { mapState } from "vuex";
    import Loading from "./components/loading";
    import "./assets/css/reset.css";
    export default {
      name: "App",
      data() {
        return {
    
        };
      },
      mounted() {
      },
      computed:{
            ...mapState([
                'loading'
            ])
       },
      components: {
        Loading
      }
    };
    </script>

    loading.vue 组件 

    <template>
      <div class="loading">
        <img src="../assets/img/image/loading.gif">
      </div>
    </template>
    
    <script>
    export default {
      name: "loading",
      data() {
        return {};
      },
      methods:{
      }
    };
    </script>
    
    <style>
    .loading {
      position: fixed;
      top: 0;
      left: 0;
      z-index: 121;
       100%;
      height: 100%;
      background: rgba(0, 0, 0, 0.3);
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .loading img {
      margin: 5rem auto;
       200px;
      z-index: 999;
    }
    </style>

    vuex中store.js

    import Vue from 'vue';
    import Vuex from 'vuex';
    
    Vue.use(Vuex);
    const state = {
        loading: false
        // 请求数据时加载状态loading
    }
    const getters = {
        
    }
    const actions = {
        
    }
    const mutations = {
        // 请求数据时loading
        showLoading(state){
            state.loading = true    
        },
        hideLoading (state) {
            state.loading = false
        }
    }
    export default new Vuex.Store({
        state,
        getters,
        actions,
        mutations
    });

    http.js (公用的请求数据)

    /*
      接口处理函数
      这个函数每个项目都是不一样的,我现在调整的是适用于
      https://cnodejs.org/api/v1 的接口,如果是其他接口
      需要根据接口的参数进行调整。参考说明文档地址:
      https://cnodejs.org/topic/5378720ed6e2d16149fa16bd
      主要是,不同的接口的成功标识和失败提示是不一致的。
      另外,不同的项目的处理方法也是不一致的,这里出错就是简单的alert
    */
    function apiAxios (method, url, params, success, failure,error) {
      url_check()
      store.commit('showLoading')    /**loading请求**/
      axios({
        method: method,
        url: url,
        data: method === 'POST' || method === 'PUT' ? params : null,
        params: method === 'GET' || method === 'DELETE' ? params : null,
        baseURL: root,
        withCredentials: true,
        headers:{
            'token':store.state.token
        } 
      })
      .then(function (res) {        
           console.log(res.data);
          if(res.data.code== 0) { if (success) {    
                store.commit('hideLoading') /**请求成功后取消loading状态**/
              success(res.data)
              console.log(res.data);
            }
          }else if(res.data.code=='800202'){
              alert('身份已过期,请重新登录!')
              window.location.href = "/login";
          }else if(res.data.code=='800203'){
              alert('您的帐号已在其他设备登陆,请重新登录!')
              window.location.href = "/login";
          }else{
            if (failure) {
              failure(res.data)
            }else{
              console.log('error: ' + JSON.stringify(res.data))
            }
          }
        })
        .catch(function (err) {
          if(error){
            error(err)
          }
        })
    }

                                                                                                                                                                   -------END

  • 相关阅读:
    HDU 4472 Count DP题
    HDU 1878 欧拉回路 图论
    CSUST 1503 ZZ买衣服
    HDU 2085 核反应堆
    HDU 1029 Ignatius and the Princess IV
    UVa 11462 Age Sort
    UVa 11384
    UVa 11210
    LA 3401
    解决学一会儿累了的问题
  • 原文地址:https://www.cnblogs.com/liujiajiablog/p/10551133.html
Copyright © 2011-2022 走看看