import {getToken} from '@/utils/token' import apiResowner from '../../api/modules/resowner.js'; const state={ resOwnerTree: [],//资源归属 resOwnerMap:null } const mutations={ setResOwnerTree: (state, tree) => { state.resOwnerTree = tree }, setResOwnerMap: (state, map) => { state.resOwnerMap = map }, } const actions={ getResOwnerTree({commit}) { return new Promise((resolve,reject)=>{ if(state.resOwnerTree.length>0){ resolve(state.resOwnerTree); }else{ let hasData = sessionStorage.getItem('resOwnerTree'); if(hasData){ let treeData = JSON.parse(hasData); commit('setResOwnerTree', treeData); resolve(treeData); }else{ apiResowner.tree(1).then(res=>{ if(res.status === 200) { sessionStorage.setItem('resOwnerTree',JSON.stringify(res.result)); commit('setResOwnerTree', res.result); //转化为map放到状态中 let map=new Map(); res.result.forEach(item=>{ map.set(item.code, item.name); if(item.children && item.children!=''){ item.children.forEach(child=>{ map.set(child.code, child.name); if(child.children && child.children!=''){ child.children.forEach(last=>{ map.set(last.code, last.name); }) } }) } }); commit('setResOwnerMap', map); resolve(res.result) } else { reject('资源归属获取失败!'); } }) } } }); }, loadResOwners(context){ if(state.resOwnerMap==null){ let hasData = sessionStorage.getItem('resOwnerMap'); if(hasData){ hasData=JSON.parse(hasData); } //console.log(hasData,"hasData"); if(hasData && hasData.length>10){ let map=new Map(); hasData.forEach(item=>{ map.set(item.code, item.name); }); context.commit('setResOwnerMap',map); }else{ apiResowner.list(1,'').then(res=>{ if(res.status === 200) { let map=new Map(); res.result.forEach(item=>{ map.set(item.code, item.name); }); //console.log(map,map); sessionStorage.setItem('resOwnerMap',JSON.stringify(res.result)); context.commit('setResOwnerMap', map); } else { console.log('资源归属获取失败!'); } }); } } } } export default { namespaced: true, state, mutations, actions }