;(function () {
  /**
   * Loading screen
   * @constructor
  */
  function _Loading () {
    this.vue = new App.Vue({
      el: '.loading',
      data: {
        app: {
          state: true
        },
        action: {
          state: false
        }
      }
    })
  }

  /**
   * Hide loading screen
  */
  _Loading.prototype.hide = function (load) {
    if (this.vue.$data[load]) {
      this.vue.$data[load].state = false
    }
  }

  /**
   * Show loading screen
  */
  _Loading.prototype.show = function (load) {
    if (this.vue.$data[load]) {
      this.vue.$data[load].state = true
    }
  }

  App.Loading = new _Loading()
})()

@@ -180,25 +180,42 @@
  state: true
+,%0A          nb: 1
 %0A
-
         %7D,%0A 
@@ -249,24 +249,41 @@
 state: false
+,%0A          nb: 0
 %0A        %7D%0A 
@@ -407,32 +407,106 @@
 .$data%5Bload%5D) %7B%0A
+      this.vue.$data%5Bload%5D.nb--%0A      if(this.vue.$data%5Bload%5D.nb %3C= 0)%7B%0A  
       this.vue.$
@@ -530,16 +530,24 @@
 = false%0A
+      %7D%0A
     %7D%0A  
@@ -655,32 +655,32 @@
 .$data%5Bload%5D) %7B%0A
-
       this.vue.$
@@ -703,16 +703,48 @@
  = true%0A
+      this.vue.$data%5Bload%5D.nb++%0A
     %7D%0A  

allow multiple loading trigger at the same time