feature[Vuex]: auto import vuex modules(#1815)
							parent
							
								
									c923726464
								
							
						
					
					
						commit
						e363c7a77b
					
				|  | @ -24,11 +24,24 @@ const messages = { | |||
|     ...elementEsLocale | ||||
|   } | ||||
| } | ||||
| export function getLanguage() { | ||||
|   const chooseLanguage = Cookies.get('language') | ||||
|   if (chooseLanguage) return chooseLanguage | ||||
| 
 | ||||
|   // if has not choose language
 | ||||
|   const language = (navigator.language || navigator.browserLanguage).toLowerCase() | ||||
|   const locales = Object.keys(messages) | ||||
|   for (const locale of locales) { | ||||
|     if (language.indexOf(locale) > -1) { | ||||
|       return locale | ||||
|     } | ||||
|   } | ||||
|   return 'en' | ||||
| } | ||||
| const i18n = new VueI18n({ | ||||
|   // set locale
 | ||||
|   // options: en | zh | es
 | ||||
|   locale: Cookies.get('language') || 'en', | ||||
|   locale: getLanguage(), | ||||
|   // set locale messages
 | ||||
|   messages | ||||
| }) | ||||
|  |  | |||
|  | @ -1,24 +1,24 @@ | |||
| import Vue from 'vue' | ||||
| import Vuex from 'vuex' | ||||
| import app from './modules/app' | ||||
| import errorLog from './modules/errorLog' | ||||
| import permission from './modules/permission' | ||||
| import tagsView from './modules/tagsView' | ||||
| import settings from './modules/settings' | ||||
| import user from './modules/user' | ||||
| import getters from './getters' | ||||
| 
 | ||||
| Vue.use(Vuex) | ||||
| 
 | ||||
| // https://webpack.js.org/guides/dependency-management/#requirecontext
 | ||||
| const modulesFiles = require.context('./modules', false, /\.js$/) | ||||
| 
 | ||||
| // you do not need `import app from './modules/app'`
 | ||||
| // it will auto require all vuex module from modules file
 | ||||
| const modules = modulesFiles.keys().reduce((modules, modulePath) => { | ||||
|   // set './app.js' => 'app'
 | ||||
|   const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1') | ||||
|   const value = modulesFiles(modulePath) | ||||
|   modules[moduleName] = value.default | ||||
|   return modules | ||||
| }, {}) | ||||
| 
 | ||||
| const store = new Vuex.Store({ | ||||
|   modules: { | ||||
|     app, | ||||
|     errorLog, | ||||
|     permission, | ||||
|     tagsView, | ||||
|     settings, | ||||
|     user | ||||
|   }, | ||||
|   modules, | ||||
|   getters | ||||
| }) | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,4 +1,5 @@ | |||
| import Cookies from 'js-cookie' | ||||
| import { getLanguage } from '@/lang/index' | ||||
| 
 | ||||
| const state = { | ||||
|   sidebar: { | ||||
|  | @ -6,7 +7,7 @@ const state = { | |||
|     withoutAnimation: false | ||||
|   }, | ||||
|   device: 'desktop', | ||||
|   language: Cookies.get('language') || 'en', | ||||
|   language: getLanguage(), | ||||
|   size: Cookies.get('size') || 'medium' | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,4 +1,3 @@ | |||
| 
 | ||||
| const state = { | ||||
|   logs: [] | ||||
| } | ||||
|  |  | |||
|  | @ -1,4 +1,3 @@ | |||
| 
 | ||||
| const state = { | ||||
|   visitedViews: [], | ||||
|   cachedViews: [] | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Estelle00
						Estelle00