import Layout from '@/layout' export default function filterAsyncRouter (routers) { routers.forEach(item => { if (!item.children) { delete item.children } else { item.children = filterAsyncRouter(item.children) } item.path = JSON.parse(item.metadata).path ? JSON.parse(item.metadata).path : '/' if (!item.parentId) { item.component = Layout } else { item.component = loadView(item.uri) } item.meta = { title: item.name, icon: item.icon } }) return routers } function loadView (view) { return r => require.ensure([], () => r(require(`@/views${view}.vue`))) }