From 77ee7ba1af08b857a8e0f1231a2d9d72ac1ba35c Mon Sep 17 00:00:00 2001
From: wang_fan_w <2547096351@qq.com>
Date: Thu, 18 Apr 2024 00:24:07 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E8=8F=9C=E5=8D=95=E8=B7=B3=E8=BD=AC?=
=?UTF-8?q?=EF=BC=8C=E5=85=B3=E8=81=94tags=E6=A0=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/layout/components/Main/index.vue | 66 +++---
src/layout/components/Menu/index.vue | 18 +-
src/layout/components/Menu/menu-item.vue | 2 +-
src/layout/components/Tabs/index.vue | 251 ++++++++++++-----------
src/router/route-output.ts | 2 +-
src/router/route.ts | 19 +-
src/store/route-list.ts | 15 +-
7 files changed, 197 insertions(+), 176 deletions(-)
diff --git a/src/layout/components/Main/index.vue b/src/layout/components/Main/index.vue
index 4c4e8e8..5e75534 100644
--- a/src/layout/components/Main/index.vue
+++ b/src/layout/components/Main/index.vue
@@ -1,35 +1,31 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/Menu/index.vue b/src/layout/components/Menu/index.vue
index 8fa6e71..a04d72f 100644
--- a/src/layout/components/Menu/index.vue
+++ b/src/layout/components/Menu/index.vue
@@ -1,5 +1,5 @@
-
+
@@ -9,13 +9,25 @@ import MenuItem from "@/layout/components/Menu/menu-item.vue";
import { storeToRefs } from "pinia";
import { useThemeConfig } from "@/store/theme-config";
import { useRoutesListStore } from "@/store/route-list";
-
+import { useRouter } from "vue-router";
+const router = useRouter();
const routerStore = useRoutesListStore();
-const { routeTree } = storeToRefs(routerStore);
+const { routeTree, routeList } = storeToRefs(routerStore);
const themeStore = useThemeConfig();
const { collapsed } = storeToRefs(themeStore);
console.log("路由树", routeTree.value);
+
+const onMenuItem = (key: string) => {
+ let find = routeList.value.find((item: Menu.MenuOptions) => item.name === key);
+ console.log("当前", find);
+ if (find) {
+ routerStore.setTagsList(find);
+ router.push(find.path);
+ } else {
+ router.push("/404");
+ }
+};
diff --git a/src/layout/components/Menu/menu-item.vue b/src/layout/components/Menu/menu-item.vue
index e48cb57..0276f47 100644
--- a/src/layout/components/Menu/menu-item.vue
+++ b/src/layout/components/Menu/menu-item.vue
@@ -7,7 +7,7 @@
{{ item.meta.title }}
-
+
diff --git a/src/layout/components/Tabs/index.vue b/src/layout/components/Tabs/index.vue
index 1f620ea..26dfc5b 100644
--- a/src/layout/components/Tabs/index.vue
+++ b/src/layout/components/Tabs/index.vue
@@ -1,122 +1,129 @@
-
-
-
-
-
-
-
-
-
-
-
- 刷新
-
-
-
- 关闭左侧
-
-
-
- 关闭右侧
-
-
-
- 关闭其它
-
-
-
- 全部关闭
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+ 刷新
+
+
+
+ 关闭左侧
+
+
+
+ 关闭右侧
+
+
+
+ 关闭其它
+
+
+
+ 全部关闭
+
+
+
+
+
+
+
+
+
+
diff --git a/src/router/route-output.ts b/src/router/route-output.ts
index 26f4ef3..9266f3e 100644
--- a/src/router/route-output.ts
+++ b/src/router/route-output.ts
@@ -39,7 +39,7 @@ export async function initSetRouter() {
export function setCacheName(flattenedArray: any) {
const store = useRoutesListStore(pinia);
const cacheName = flattenedArray.map((item: any) => item.name);
- store.setrouteNames(cacheName); // 缓存路由name
+ store.setRouteNames(cacheName); // 缓存路由name
store.setRouteList(flattenedArray); // 缓存路由
}
diff --git a/src/router/route.ts b/src/router/route.ts
index a5768e7..e71ffda 100644
--- a/src/router/route.ts
+++ b/src/router/route.ts
@@ -191,16 +191,6 @@ export const staticRoutes = [
* @link 参考:https://router.vuejs.org/zh/guide/essentials/history-mode.html#netlify
*/
export const notFoundAndNoPower = [
- // 未找到页面的时候跳转该页面
- {
- path: "/:path(.*)*",
- name: "notFound",
- component: () => import("@/views/error/404.vue"),
- meta: {
- title: "notFound",
- isHide: true
- }
- },
{
path: "/401",
name: "noPower",
@@ -209,5 +199,14 @@ export const notFoundAndNoPower = [
title: "notFound",
isHide: true
}
+ },
+ {
+ path: "/:path(.*)*", // 匹配任意路由,兜底,未找到页面的时候跳转该页面
+ name: "notFound",
+ component: () => import("@/views/error/404.vue"),
+ meta: {
+ title: "notFound",
+ isHide: true
+ }
}
];
diff --git a/src/store/route-list.ts b/src/store/route-list.ts
index 35b8bee..2f89ceb 100644
--- a/src/store/route-list.ts
+++ b/src/store/route-list.ts
@@ -4,13 +4,14 @@ import { defineStore } from "pinia";
* 路由列表
* @methods setRouteTree 设置路由树
* @methods setRoutesList 设置路由一维数据
- * @methods setrouteNames 设置路由名称集合
+ * @methods setRouteNames 设置路由名称集合
*/
export const useRoutesListStore = defineStore("routeList", {
state: (): any => ({
routeTree: [], // 路由树
- routeList: [], // 路由数据
- routeNames: [] // 路由名称
+ routeList: [], // 路由数据-一维
+ routeNames: [], // 路由名称
+ tagsList: [] // 标签页数据
}),
actions: {
setRouteTree(data: any) {
@@ -19,8 +20,14 @@ export const useRoutesListStore = defineStore("routeList", {
setRouteList(data: any) {
this.routeList = data;
},
- setrouteNames(data: Array) {
+ setRouteNames(data: Array) {
this.routeNames = data;
+ },
+ setTagsList(data: Menu.MenuOptions) {
+ let isExist = this.tagsList.some((item: Menu.MenuOptions) => item.name === data.name);
+ if (!isExist) {
+ this.tagsList.push(data);
+ }
}
}
});