mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal.git
synced 2025-12-09 19:06:43 +08:00
95 lines
3.1 KiB
JavaScript
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
|
|
}
|