uni-item-manage/tm-vuetify/tool/store/tm-vuetify.js
2023-10-18 15:52:41 +08:00

90 lines
2.4 KiB
JavaScript
Raw Permalink 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'
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;