1
0
mirror of https://github.com/ialley-workshop-open/uni-halo.git synced 2026-06-10 20:29:28 +08:00
Files
uni-halo/tm-vuetify/tool/store/tm-vuetify.js
T
小莫唐尼 9d3ebac076 新增:更新halo.config.js 配置参数;
更新:更新项目UI框架;
修复:修复友链列表丢失白色背景色BUG;
2022-12-09 18:10:47 +08:00

92 lines
2.4 KiB
JavaScript

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;