import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) let moduleTrue = {}; // 为了兼容如果用户,不按规范创建,或者不使用vuex时就可略过导入用户的模块。 try { const modulesList = require.context('@/store', true, /\.js$/); if (typeof modulesList === 'function' && typeof modulesList !== 'undefined') { // 加载modules目录下所有文件(分模块) const modules = modulesList.keys().reduce((modules, modulePath) => { const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1') const value = modulesList(modulePath) modules[moduleName] = { namespaced: true, ...value.default } return modules }, {}); moduleTrue = modules; } } catch (e) { //TODO handle the exception // console.warn('tmui提醒:用户未使用vuex') console.error('如果未使用vuex,不用理会,如果使用了vuex报错请检错误信息:',e); } let pdefault_cookies_color = uni.getStorageSync('setTmVuetifyColor') let pdefault_cookies_black = uni.getStorageSync('setTmVuetifyBlack') const store = new Vuex.Store({ modules: { ...moduleTrue }, state: { tmVuetify: { color: typeof pdefault_cookies_color === 'string' ? pdefault_cookies_color : '', black: typeof pdefault_cookies_black === 'boolean' ? pdefault_cookies_black : false, tmVueTifly_pages: '', tmVueTifly_pagesIndex: '', //这里是微信小程序和微信H5的配置资料。 wxshareConfig_miniMp: { title: '', // 分享标题 desc: '', // 描述 imageUrl: '', // 分享图片 path: '', // 分享路径 copyLink: '', // 复制链接 query: {}, // 分享参数 } }, }, getters: { // $tm:state=>{ // return $tm; // } }, mutations: { setTmVuetifyColor(state, color) { Vue.set(state.tmVuetify, 'color', color) }, setPageNow(state, url) { Vue.set(state.tmVuetify, 'tmVueTifly_pages', url); }, setPageNowIndex(state, index) { Vue.set(state.tmVuetify, 'tmVueTifly_pagesIndex', index); }, setTmVuetifyBlack(state, black) { Vue.set(state.tmVuetify, 'black', black) if (black === true) { uni.setTabBarStyle({ backgroundColor: "#212121" }) } else { uni.setTabBarStyle({ backgroundColor: "#FFFFFF" }) } }, setWxShare(state, cfg) { let pcf = cfg||{}; if(typeof pcf !=='object' || Array.isArray(cfg)) pcf = {}; Vue.set(state.tmVuetify, 'wxshareConfig_miniMp', { ...state.tmVuetify.wxshareConfig_miniMp,...pcf}); } } }) export default store;