Files
learning-system-portal/src/store/modules/orgDomain.js
2022-09-21 16:05:51 +08:00

95 lines
3.1 KiB
JavaScript

import {getToken} from '@/utils/token'
// import apiType from '../../api/modules/type.js'
import apiDict from "../../api/modules/dict.js";
const state={
orgDomainTree: [], //内容类型
orgDomainMap:null,
}
const mutations={
setOrgDomainTree: (state, tree) => {
state.orgDomainTree = tree
},
setOrgDomainMap: (state, map) => {
state.orgDomainMap = map
},
}
const actions={
getOrgDomainTree({commit}) {
return new Promise((resolve,reject)=>{
if(state.OrgDomainTree.length>0){
resolve(state.OrgDomainTree);
}else{
let hasData = sessionStorage.getItem('OrgDomainTree');
if(hasData){
let treeData = JSON.parse(hasData);
commit('setOrgDomainTree', treeData);
resolve(treeData);
}else{
apiDict.items('org_domain').then(res=>{
if(res.status === 200) {
sessionStorage.setItem('OrgDomainTree',JSON.stringify(res.result));
commit('setOrgDomainTree', res.result);
//转化为map放到状态中
let map=new Map();
res.result.forEach(item=>{
map.set(item.code, item.name);
if(item.list && item.list!=''){
item.list.forEach(child=>{
map.set(child.code, child.name);
if(child.list && child.list!=''){
child.list.forEach(last=>{
map.set(last.code, last.name);
})
}
})
}
});
commit('setOrgDomainMap', map);
resolve(res.result)
} else {
reject('组织机构获取失败!');
}
})
}
}
});
},
loadOrgDomains(context){
if(state.orgDomainMap==null){
let hasData = sessionStorage.getItem('OrgDomainMap');
if(hasData){
hasData=JSON.parse(hasData);
}
if(hasData && hasData.length>10){
let map=new Map();
hasData.forEach(item=>{
map.set(item.code, item.name);
});
context.commit('setOrgDomainMap',map);
}else{
apiDict.items('org_domain').then(res=>{
if(res.status === 200) {
let map=new Map();
res.result.forEach(item=>{
map.set(item.code, item.name);
});
sessionStorage.setItem('OrgDomainMap',JSON.stringify(res.result));
context.commit('setOrgDomainMap', map);
} else {
console.log('组织机构获取失败!');
}
});
}
}
}
}
export default {
namespaced: true,
state,
mutations,
actions
}