1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
| import {get_menu} from '@/api/index' import Layout from '@/layout' import twoLayout from '@/layout/twoLayout' import store from "@/store"; export function inteRouter(){ return new Promise((resolve,reject) => { if(store.getters.token){ get_menu().then(res=>{ let intRouterList=res.data addInteRouter(intRouterList,0).then(resd=>{ return resolve(resd) })
}) }else{ reject() } }) } export function addInteRouter(data,pagePath){ return new Promise((resolve) => { let newRouterList=[] for (let i = 0; i < data.length; i++) { if (data[i].children&&data[i].children.length>0){ if(data[i].children.length===1&&pagePath===0){ if (data[i].children[0].children.length>0){ addInteRouter(data[i].children,pagePath+data[i].name).then(res=>{ newRouterList.push({ path: '/'+data[i].name, name:data[i].name, component: Layout, meta:data[i].meta, children:res }) }) }else{ newRouterList.push({ path: '/'+data[i].name, name:data[i].name, component: Layout, meta:data[i].meta, redirect:'/'+data[i].children[0].name, children:[ { path:'/'+data[i].children[0].name, component:resolve => require([`@/views/page/${data[i].name}/${data[i].children[0].name}`], resolve), meta:data[i].meta } ] })
} }else{ if (pagePath===0){ addInteRouter(data[i].children,data[i].name).then(res=>{ newRouterList.push({ path: '/'+data[i].name, name:data[i].name, component: Layout, meta:data[i].meta, children:res }) }) }else{ addInteRouter(data[i].children,pagePath+'/'+data[i].name).then(res=>{ newRouterList.push({ path: data[i].name, name:data[i].name, meta:data[i].meta, component:twoLayout, children:res }) })
} } }else{ if (pagePath!==0){ newRouterList.push({ path:data[i].name, component:resolve => require([`@/views/page/${pagePath+'/'+data[i].name}`], resolve), meta: {... data[i].meta,datad:[`@/views/page/${pagePath+'/'+data[i].name}`]} }) }else{ newRouterList.push({ path: '/'+data[i].name, name:data[i].name, component: Layout, meta:data[i].meta, redirect:'/'+data[i].name, children:[ { path:'/'+data[i].name, component:resolve => require([`@/views/page/${data[i].name}`], resolve), meta:data[i].meta } ] })
} } } resolve(newRouterList) }) }
|