소스 검색

[ADD] loaded state management

Gogs 7 년 전
부모
커밋
3e60b86133
6개의 변경된 파일56개의 추가작업 그리고 8개의 파일을 삭제
  1. 2 0
      src/store/index.js
  2. 5 2
      src/store/modules/company.js
  3. 5 2
      src/store/modules/currencies.js
  4. 6 2
      src/store/modules/customers.js
  5. 33 0
      src/store/modules/loader.js
  6. 5 2
      src/store/modules/products.js

+ 2 - 0
src/store/index.js

@@ -3,6 +3,7 @@ import Vuex from 'vuex'
 
 import actions from '@/store/actions'
 
+import loader from '@/store/modules/loader'
 import company from '@/store/modules/company'
 import currencies from '@/store/modules/currencies'
 import products from '@/store/modules/products'
@@ -14,6 +15,7 @@ Vue.use(Vuex)
 const Store = new Vuex.Store({
     ...actions,
     modules: {
+        loader,
         company,
         currencies,
         products,

+ 5 - 2
src/store/modules/company.js

@@ -18,7 +18,7 @@ const mutations = {
 }
 
 const actions = {
-    fetchCompany({ commit }) {
+    fetchCompany({ commit, dispatch }) {
         return new Promise((resolve, reject) => {
             let pos = new openerp.web.Model('eiru.pos')
             pos.call('get_company').then(response => {
@@ -26,7 +26,10 @@ const actions = {
                     company: response
                 })
 
-                console.log('fetched company')
+                dispatch('loaded', {
+                    module: 'company'
+                })
+                
                 resolve()
             }).fail(error => {
                 console.log(error)

+ 5 - 2
src/store/modules/currencies.js

@@ -18,7 +18,7 @@ const mutations = {
 }
 
 const actions = {
-    fetchCurrencies({ commit }) {
+    fetchCurrencies({ commit, dispatch }) {
         return new Promise((resolve, reject) => {
             let pos = new openerp.web.Model('eiru.pos')
             pos.call('get_currencies').then(response => {
@@ -26,7 +26,10 @@ const actions = {
                     currencies: response
                 })
 
-                console.log('fetched currencies')
+                dispatch('loaded', {
+                    module: 'currencies'
+                })
+
                 resolve()
             }).fail(error => {
                 console.log(error);

+ 6 - 2
src/store/modules/customers.js

@@ -22,14 +22,18 @@ const mutations = {
 }
 
 const actions = {
-    fetchCustomers({ commit }) {
+    fetchCustomers({ commit, dispatch }) {
         return new Promise((resolve, reject) => {
             let customer = new openerp.web.Model('res.partner')
             customer.query(['name', 'display_name', 'image_medium']).filter([['customer', '=', true], ['is_company', '=', false], ['active', '=', true]]).all().then(response => {
                 commit('pushCustomers', {
                     customers: response
                 })
-                console.log('fetched customers')
+                
+                dispatch('loaded', {
+                    module: 'customers'
+                })
+
                 resolve()
             }).fail(error => {
                 console.log(error)

+ 33 - 0
src/store/modules/loader.js

@@ -0,0 +1,33 @@
+const state = {
+    loaded: {
+        company: false,
+        currencies: false,
+        customers: false,
+        products: false,
+    }
+}
+
+const getters = {
+    isLoaded(state) {
+        return state.loaded.company && state.loaded.currencies && state.loaded.customers && state.loaded.products
+    }
+}
+
+const mutations = {
+    setLoaded(state, payload) {
+        state.loaded[payload.module] = true
+    }
+}
+
+const actions = {
+    loaded({ commit }, payload) {
+        commit('setLoaded', payload)
+    }
+}
+
+export default {
+    state,
+    getters,
+    mutations,
+    actions
+}

+ 5 - 2
src/store/modules/products.js

@@ -30,7 +30,7 @@ const mutations = {
 }
 
 const actions = {
-    fetchProducts ({ commit }) {
+    fetchProducts ({ commit, dispatch }) {
         return new Promise((resolve, reject) => {
             let pos = new openerp.web.Model('eiru.pos')
             pos.call('get_products').then(response => {
@@ -38,7 +38,10 @@ const actions = {
                     products: response
                 })
 
-                console.log('fetched products')
+                dispatch('loaded', {
+                    module: 'products'
+                })
+                
                 resolve()
             }).fail(error => {
                 console.log(error)