permission.js 4.78 KB
import { constantRoutes } from '@/router'
import { getRouters,getAu } from '@/api/menu'
import Layout from '@/layout/index'
import store from '@/store'
import resData from '@/views/data'
import { getUserId, getRoleId} from '@/utils/auth'
//import Cookies from 'js-cookie'
const permission = {
  state: {
    routes: [],
    addRoutes: []
  },
  mutations: {
    SET_ROUTES: (state, routes) => {
     // let that=this

	  // let authList=['首页','系统管理','人群市场','应用标签管理','云镜中心', '用户库']
    // let a=authList
    // let checkList=[]
    // res.data.map((item)=>{
    //   checkList.push(item.name)
    // })
    //       a = a.filter(items => {
    //         if (!checkList.includes(items)) return items;
    //       })
    //       state.addRoutes = routes
    //       // state.routes = constantRoutes
    //       state.routes=constantRoutes.filter(items => {
    //         if (!a.includes(items.name)&&items.name!=='权限管理') return items;
    //       })
    state.addRoutes = routes
    // state.routes = constantRoutes
    state.routes = constantRoutes
    //   if(getRoleId()==4){
    //     getAu(getUserId()).then(w => {
    //       let a=authList
    //       let checkList=[]
    //       res.data.map((item)=>{
    //         checkList.push(item.name)
    //       })
    //       a = a.filter(items => {
    //         if (!checkList.includes(items)) return items;
    //       })
    //       state.addRoutes = routes
    //       // state.routes = constantRoutes
    //       state.routes=constantRoutes.filter(items => {
    //         if (!a.includes(items.name)&&items.name!=='权限管理') return items;
    //       })
    //     })
    //   }else if(getRoleId()==2){

    //     state.addRoutes = routes
	
    //      let x=constantRoutes.filter(items => {
    //       if (!authList.includes(items.name)) return true;
    //     })
    //     for(var i=0;i<x.length;i++){
    //      if (x[i].name=='权限管理'){
    //       // for()
    //        x[i].children=x[i].children.filter(it=>{
    //          if(it.name=='安全配置'){
    //            return it
    //          }


             
    //        })
    //        console.log(x.children)
    //      }
    //     }
    //     state.routes=x
    //    console.log(state.routes)
    //   }else if(getRoleId()==3){

		// state.addRoutes = routes
	
    //      let x=constantRoutes.filter(items => {
    //       if (!authList.includes(items.name)) return true;
    //     })
    //     for(var i=0;i<x.length;i++){
    //      if (x[i].name=='权限管理'){
    //       // for()
    //        x[i].children=x[i].children.filter(it=>{
    //          if(it.name=='操作日志'){
    //            return it
    //          }


             
    //        })
    //        console.log(x.children)
    //      }
    //     }
    //     state.routes=x
    //    console.log(state.routes)
    //   }else if(getRoleId()==1){

		// state.addRoutes = routes



		
              
    //               let x=constantRoutes.filter(items => {
    //                 if (!authList.includes(items.name)) return true;
    //              })
    //              for(var i=0;i<x.length;i++){
    //               if (x[i].name=='权限管理'){
    //                // for()
    //                 x[i].children=x[i].children.filter(it=>{
    //                   if(it.name=='账号管理'){
    //                     return it
    //                   }


                      
    //                 })
    //                 console.log(x.children)
    //               }
    //              }
    //              state.routes=x
              
    //   }
     
    }
  },
  actions: {
    // 生成路由
    GenerateRoutes({ commit }) {
      return new Promise(resolve => {
        // 向后端请求路由数据
        let res=resData.resData
        const accessedRoutes = filterAsyncRouter(res.data)
        commit('SET_ROUTES', accessedRoutes)
        resolve(accessedRoutes)
        // getRouters().then(res => {
        //   const accessedRoutes = filterAsyncRouter(res.data)
        //   commit('SET_ROUTES', accessedRoutes)
        //   resolve(accessedRoutes)
        // })
      })
    }
  }
}

// 遍历后台传来的路由字符串,转换为组件对象
function filterAsyncRouter(asyncRouterMap) {
  return asyncRouterMap.filter(route => {
    if (route.component) {
      // Layout组件特殊处理
      if (route.component === 'Layout') {
        route.component = Layout
      } else {
        route.component = loadView(route.component)
      }
    }
    if (route.children != null && route.children && route.children.length) {
      route.children = filterAsyncRouter(route.children)
    }
    return true
  })
}

export const loadView = (view) => { // 路由懒加载
  return () => import(`@/views/${view}`)
}

export default permission