mirror of
https://github.com/ialley-workshop-open/uni-halo.git
synced 2026-06-12 21:29:31 +08:00
v1.0.0-beta 源码正式开源
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user