skyeyesystem/frontend/Skyeye-sys-ui/src/store/index.js
2026-01-25 16:02:00 +08:00

45 lines
1.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import createPersistedState from 'vuex-persistedstate'
Vue.use(Vuex)
// https://webpack.js.org/guides/dependency-management/#requirecontext
const modulesFiles = require.context('./modules', true, /\.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,
getters,
actions: {
load(context) {
return this.dispatch("loadUser").then(() => {
const promises = [];
return Promise.all(promises);
})
},
unload(context) {
context.commit("clear");
}
},
plugins: [
createPersistedState({
key: 'vuex',
// 存储数据中的哪些数据(如果是模块下具体的数据需要加上模块名称,如 user.token
paths: ['user.userId', 'user.username']
})
]
})
export default store