You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.0 KiB
JavaScript

1 year ago
/*
* 操作全局Vuex
* 作者tmzdy
* 时间20211014
* 联系zhongjihan@sina.com
*
*/
class vuex {
constructor(store) {
this.store = store;
}
//链式调用
state(){
return this.store.state;
}
//链式调用
getters(){
let t = this;
const g = this.store.getters
let keys = Object.keys(g);
let k = keys.map((el,index)=>{
let f = el.split('/');
let tst = {}
if(f.length==1){
tst[el]=g[el]
}else{
tst[f[0]]={}
tst[f[0]][f[1]]=g[el]
// tst[f[0]+'_'+f[1]]=g[el]
// tst[f[0]][f[1]] = g[el]
}
return tst
})
let rulst = {};
k.forEach(el=>{
rulst = {...rulst,...el}
})
return rulst;
}
commit(funName,arg){
try{
this.store.commit(funName,arg);
}catch(e){
console.error("未发现函数方法:"+funName)
}
}
actions(funName,arg){
try{
return this.store.dispatch(funName,arg);
}catch(e){
console.error("未发现函数方法:"+funName)
}
}
//获得原始vuex对象。
getVuex(){
return this.store;
}
}
export default vuex;