import Vue from "vue"; import Vuex, { createLogger } from "vuex"; import createPersistedState from "vuex-persistedstate"; import { config } from "vuex-module-decorators"; import { createVueWait } from "@/utils/wait"; import configAxios from "./plugins/axios"; Vue.use(Vuex); const debug = process.env.NODE_ENV !== "production"; // 全局设置 rawError = true,省去 @Action({ rawError: true }) 配置 config.rawError = true; // 循环引入Modules // const files = require.context('./modules', true, /\.(ts|js)$/); // const modules: ModuleTree = {}; // // files.keys().forEach((key) => { // modules[key.replace(/(\.\/|\.(ts|js))/g, '')] = files(key).default; // }); // 循环引入views目录下的Modules // 规则为 model.js 或 model目录下的js文件 // const viewModules = require.context('../pages/', true, /model.*\.(ts|js)$/); // viewModules.keys().forEach((key) => { // const module = viewModules(key).default; // modules[key.replace(/(\.\/|\/model|\.(ts|js))/g, '')] = module; // }); const plugins = []; debug && plugins.push(createLogger()); plugins.push(createVueWait()); plugins.push(configAxios()); export const persistedKey = "__GWMS_APP_STATE_DATA__"; plugins.push( createPersistedState({ key: persistedKey, // 状态保存到本地的 key paths: ["session", "server"], // 要持久化的状态,在state里面取,如果有嵌套,可以 a.b.c storage: { // 存储方式定义 getItem: (key) => uni.getStorageSync(key), // 获取 setItem: (key, value) => uni.setStorageSync(key, value), // 存储 removeItem: (key) => uni.removeStorageSync(key), // 删除 }, }) ); export default new Vuex.Store({ state: {}, mutations: {}, actions: {}, // modules, plugins, }); export declare class RootState {}