From fa3ac93010bea3805438ee3ab0a182bfbf7423da Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期一, 27 五月 2024 16:19:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/router/index.ts |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/src/router/index.ts b/src/router/index.ts
new file mode 100644
index 0000000..a870521
--- /dev/null
+++ b/src/router/index.ts
@@ -0,0 +1,37 @@
+import type { App } from 'vue'
+import type { RouteRecordRaw } from 'vue-router'
+
+import { createRouter, createWebHistory } from 'vue-router'
+import { basicRoutes } from './routes'
+
+// 鐧藉悕鍗曞簲璇ュ寘鍚熀鏈潤鎬佽矾鐢�
+const WHITE_NAME_LIST: string[] = []
+const getRouteNames = (array: any[]) =>
+	array.forEach((item) => {
+		WHITE_NAME_LIST.push(item.name)
+		getRouteNames(item.children || [])
+	})
+getRouteNames(basicRoutes)
+
+// app router
+export const router = createRouter({
+	history: createWebHistory(import.meta.env.VITE_PUBLIC_PATH),
+	routes: basicRoutes as unknown as RouteRecordRaw[],
+	strict: true,
+	scrollBehavior: () => ({ left: 0, top: 0 }),
+})
+
+// reset router
+export function resetRouter() {
+	router.getRoutes().forEach((route) => {
+		const { name } = route
+		if (name && !WHITE_NAME_LIST.includes(name as string)) {
+			router.hasRoute(name) && router.removeRoute(name)
+		}
+	})
+}
+
+// config router
+export function setupRouter(app: App<Element>) {
+	app.use(router)
+}

--
Gitblit v1.9.3