浏览代码

增加菜单外链功能

tongshangming 3 年之前
父节点
当前提交
fb86793930
共有 3 个文件被更改,包括 18 次插入4 次删除
  1. 17 2
      src/components/GlobalMenu.vue
  2. 0 1
      src/components/ProTable.vue
  3. 1 1
      src/router/asyncRouter.ts

+ 17 - 2
src/components/GlobalMenu.vue

@@ -20,7 +20,19 @@ const generatorMenu = (routes: any[]) => {
 generatorMenu(menuRouter)
 // 生成菜单部分结束
 
+const router = useRouter()
 const route = useRoute()
+
+const isAbsolutePath = (path: string) => {
+  return path.startsWith('http')
+}
+const handleSelect = (index: string) => {
+  if (isAbsolutePath(index)) {
+    window.open(index)
+  } else {
+    router.push(index)
+  }
+}
 </script>
 
 <template>
@@ -28,9 +40,9 @@ const route = useRoute()
     :default-active="route.path"
     :collapse="menuStore.collapse"
     :collapse-transition="false"
-    router
     class="layout-menu"
     :class="{ 'menu-normal': !menuStore.collapse }"
+    @select="handleSelect"
   >
     <component :is="item.menuName" :index="item.path" v-for="item in menuRouter">
       <el-icon v-if="item.menuName === 'el-menu-item'"><component :is="item.meta?.icon"></component></el-icon>
@@ -38,7 +50,10 @@ const route = useRoute()
         <el-icon v-if="item.menuName === 'el-sub-menu'"><component :is="item.meta?.icon"></component></el-icon>
         <span>{{ item.meta.title }}</span>
       </template>
-      <el-menu-item :index="item.path + '/' + subItem.path" v-for="subItem in item.children">
+      <el-menu-item
+        :index="isAbsolutePath(subItem.path) ? subItem.path : item.path + '/' + subItem.path"
+        v-for="subItem in item.children"
+      >
         <template #title>
           <el-icon v-if="subItem.meta?.icon"><component :is="subItem.meta?.icon"></component></el-icon>
           <span>{{ subItem.meta.title }}</span>

+ 0 - 1
src/components/ProTable.vue

@@ -53,7 +53,6 @@ const handleReset = () => {
 const tableData = ref([])
 const total = ref(0)
 const curPage = ref(1)
-const tableColumns = props.columns.filter(item => item.list)
 
 const getTableData = () => {
   props.crud

+ 1 - 1
src/router/asyncRouter.ts

@@ -37,7 +37,7 @@ const asyncRouter: RouteRecordRaw[] = [
         }
       },
       {
-        path: 'menu',
+        path: 'https://baidu.com',
         name: 'systemMenu',
         component: () => import('@/views/system/Menu.vue'),
         meta: {