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 }