From 76c19186852f6b062eab50ef94055155060ffcd2 Mon Sep 17 00:00:00 2001
From: 97 <1240438805@qq.com>
Date: Fri, 25 Apr 2025 21:33:58 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E3=80=90Bug=E4=BF=AE=E6=94=B9=E5=8F=8A?=
=?UTF-8?q?=E4=BC=98=E5=8C=96=E3=80=91=E4=BF=AE=E6=94=B9=E5=89=8D=E7=AB=AF?=
=?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=8A=B6=E6=80=81=E5=8A=9F=E8=83=BD=E5=8F=98?=
=?UTF-8?q?=E9=87=8F=E7=B1=BB=E5=9E=8B=E4=B8=8D=E4=B8=80=E8=87=B4=E5=AF=BC?=
=?UTF-8?q?=E8=87=B4=E6=9F=A5=E8=AF=A2=E7=BB=93=E6=9E=9C=E5=BC=82=E5=B8=B8?=
=?UTF-8?q?bug=EF=BC=8C=E4=BC=98=E5=8C=96=E7=8A=B6=E6=80=81=E7=B1=BB?=
=?UTF-8?q?=E5=9E=8B=E4=B8=BAnumber=EF=BC=8C=E6=96=B9=E4=BE=BF=E5=90=8E?=
=?UTF-8?q?=E6=9C=9F=E6=8B=93=E5=B1=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
frontend/src/views/system/dept/index.vue | 2 +-
frontend/src/views/system/dept/types.ts | 2 +-
frontend/src/views/system/dict/data.vue | 2 +-
frontend/src/views/system/dict/index.vue | 2 +-
frontend/src/views/system/dict/types.ts | 4 ++--
frontend/src/views/system/job/index.vue | 2 +-
frontend/src/views/system/job/types.ts | 2 +-
frontend/src/views/system/menu/index.vue | 2 +-
frontend/src/views/system/menu/types.ts | 2 +-
frontend/src/views/system/notice/index.vue | 2 +-
frontend/src/views/system/notice/types.ts | 2 +-
frontend/src/views/system/role/index.vue | 2 +-
frontend/src/views/system/role/types.ts | 2 +-
frontend/src/views/system/user/index.vue | 2 +-
frontend/src/views/system/user/types.ts | 2 +-
15 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/frontend/src/views/system/dept/index.vue b/frontend/src/views/system/dept/index.vue
index 35926929..fee31302 100644
--- a/frontend/src/views/system/dept/index.vue
+++ b/frontend/src/views/system/dept/index.vue
@@ -378,7 +378,7 @@ const loadingData = () => {
params['name'] = queryState.name;
}
if (queryState.available) {
- params['available'] = queryState.available === "true" ? true : false;
+ params['available'] = queryState.available === 1 ? true : false;
}
getDeptList(params).then(response => {
diff --git a/frontend/src/views/system/dept/types.ts b/frontend/src/views/system/dept/types.ts
index 7af90742..9ee4a46e 100644
--- a/frontend/src/views/system/dept/types.ts
+++ b/frontend/src/views/system/dept/types.ts
@@ -1,6 +1,6 @@
export interface searchDataType {
name?: string
- available?: string
+ available?: number
}
export interface tableDataType {
diff --git a/frontend/src/views/system/dict/data.vue b/frontend/src/views/system/dict/data.vue
index aed63e33..cce49f91 100644
--- a/frontend/src/views/system/dict/data.vue
+++ b/frontend/src/views/system/dict/data.vue
@@ -430,7 +430,7 @@ const loadingData = () => {
queryState.dict_type = Array.isArray(route.query.dict_type) ? route.query.dict_type[0] : route.query.dict_type
}
if (queryState.available) {
- params['available'] = queryState.available == true ? true : false;
+ params['available'] = queryState.available == 1 ? true : false;
}
params['page_no'] = pagination.current
params['page_size'] = pagination.pageSize
diff --git a/frontend/src/views/system/dict/index.vue b/frontend/src/views/system/dict/index.vue
index 39e843c1..cd9d6598 100644
--- a/frontend/src/views/system/dict/index.vue
+++ b/frontend/src/views/system/dict/index.vue
@@ -298,7 +298,7 @@ const loadingData = () => {
params['dict_type'] = queryState.dict_type
}
if (queryState.available) {
- params['available'] = queryState.available == true ? true : false;
+ params['available'] = queryState.available == 1 ? true : false;
}
params['page_no'] = pagination.current
params['page_size'] = pagination.pageSize
diff --git a/frontend/src/views/system/dict/types.ts b/frontend/src/views/system/dict/types.ts
index 4f5985bf..740a6e47 100644
--- a/frontend/src/views/system/dict/types.ts
+++ b/frontend/src/views/system/dict/types.ts
@@ -1,13 +1,13 @@
export interface searchDataType {
dict_name?: string
dict_type?: string
- available?: boolean
+ available?: number
}
export interface searchDictDataType {
dict_label?: string
dict_type?: string
- available?: boolean
+ available?: number
}
export interface tableDictType {
diff --git a/frontend/src/views/system/job/index.vue b/frontend/src/views/system/job/index.vue
index a2b0bd3e..0044eb7c 100644
--- a/frontend/src/views/system/job/index.vue
+++ b/frontend/src/views/system/job/index.vue
@@ -567,7 +567,7 @@ const loadingData = () => {
params['end_time'] = `${queryState.date_range[1]} 23:59:59`;
}
if (queryState.status) {
- params['status'] = queryState.status == true ? true : false;
+ params['status'] = queryState.status == 1 ? true : false;
}
params['page_no'] = pagination.current
params['page_size'] = pagination.pageSize
diff --git a/frontend/src/views/system/job/types.ts b/frontend/src/views/system/job/types.ts
index d9389141..88fc898b 100644
--- a/frontend/src/views/system/job/types.ts
+++ b/frontend/src/views/system/job/types.ts
@@ -1,6 +1,6 @@
export interface searchType {
name?: string
- status?: boolean
+ status?: number
date_range?: [string, string];
}
diff --git a/frontend/src/views/system/menu/index.vue b/frontend/src/views/system/menu/index.vue
index 7e814902..1e5db943 100644
--- a/frontend/src/views/system/menu/index.vue
+++ b/frontend/src/views/system/menu/index.vue
@@ -529,7 +529,7 @@ const loadingData = () => {
params['name'] = queryState.name
}
if (queryState.available) {
- params['available'] = queryState.available == "true" ? true : false;
+ params['available'] = queryState.available == 1 ? true : false;
}
getMenuList(params).then(response => {
diff --git a/frontend/src/views/system/menu/types.ts b/frontend/src/views/system/menu/types.ts
index 7152a498..1b94165b 100644
--- a/frontend/src/views/system/menu/types.ts
+++ b/frontend/src/views/system/menu/types.ts
@@ -1,6 +1,6 @@
export interface searchDataType {
name?: string
- available?: string
+ available?: number
}
export interface tableDataType {
diff --git a/frontend/src/views/system/notice/index.vue b/frontend/src/views/system/notice/index.vue
index 1341d187..ab454204 100644
--- a/frontend/src/views/system/notice/index.vue
+++ b/frontend/src/views/system/notice/index.vue
@@ -345,7 +345,7 @@ const loadingData = () => {
params['notice_title'] = queryState.notice_title
}
if (queryState.available) {
- params['available'] = queryState.available == true ? true : false;
+ params['available'] = queryState.available == 1 ? true : false;
}
params['page_no'] = pagination.current
params['page_size'] = pagination.pageSize
diff --git a/frontend/src/views/system/notice/types.ts b/frontend/src/views/system/notice/types.ts
index 44838391..f556e574 100644
--- a/frontend/src/views/system/notice/types.ts
+++ b/frontend/src/views/system/notice/types.ts
@@ -1,6 +1,6 @@
export interface searchDataType {
notice_title?: string
- available?: boolean
+ available?: number
}
export interface tableDataType {
diff --git a/frontend/src/views/system/role/index.vue b/frontend/src/views/system/role/index.vue
index 84220e70..c54dd3e7 100644
--- a/frontend/src/views/system/role/index.vue
+++ b/frontend/src/views/system/role/index.vue
@@ -332,7 +332,7 @@ const loadingData = () => {
params['name'] = queryState.name
}
if (queryState.available) {
- params['available'] = queryState.available == "true" ? true : false;
+ params['available'] = queryState.available == 1 ? true : false;
}
params['page_no'] = pagination.current
params['page_size'] = pagination.pageSize
diff --git a/frontend/src/views/system/role/types.ts b/frontend/src/views/system/role/types.ts
index c169dbe7..fa6ac376 100644
--- a/frontend/src/views/system/role/types.ts
+++ b/frontend/src/views/system/role/types.ts
@@ -1,6 +1,6 @@
export interface searchDataType {
name?: string
- available?: string
+ available?: number
}
export interface tableDataType {
diff --git a/frontend/src/views/system/user/index.vue b/frontend/src/views/system/user/index.vue
index b11ed9bc..3144a40e 100644
--- a/frontend/src/views/system/user/index.vue
+++ b/frontend/src/views/system/user/index.vue
@@ -562,7 +562,7 @@ const loadingData = () => {
params['name'] = queryState.name
}
if (queryState.available) {
- params['available'] = queryState.available == "true" ? true : false;
+ params['available'] = queryState.available == 1 ? true : false;
}
if (queryState.dept_id) {
params['dept_id'] = queryState.dept_id; // 添加 dept_id 参数
diff --git a/frontend/src/views/system/user/types.ts b/frontend/src/views/system/user/types.ts
index 77b1a82e..18cd2342 100644
--- a/frontend/src/views/system/user/types.ts
+++ b/frontend/src/views/system/user/types.ts
@@ -1,7 +1,7 @@
export interface searchDataType {
username?: string
name?: string
- available?: string
+ available?: number
dept_id?: number;
}
From c0599a0fd0153156986b8d509f77754d39728c21 Mon Sep 17 00:00:00 2001
From: 97 <1240438805@qq.com>
Date: Fri, 25 Apr 2025 23:22:35 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E3=80=90=E5=8A=9F=E8=83=BD=E4=BC=98?=
=?UTF-8?q?=E5=8C=96=E3=80=91=E4=BF=AE=E6=94=B9=E9=9D=A2=E5=8C=85=E5=B1=91?=
=?UTF-8?q?=E7=BB=84=E4=BB=B6=E8=87=B3=E9=A1=B6=E9=83=A8=EF=BC=8C=E7=BB=9F?=
=?UTF-8?q?=E4=B8=80=E9=9D=A2=E5=8C=85=E5=B1=91=E7=BB=84=E4=BB=B6=E8=87=B3?=
=?UTF-8?q?layout=EF=BC=8C=E5=A2=9E=E5=8A=A0tags=E9=A1=B5=E7=AD=BE?=
=?UTF-8?q?=E7=AE=80=E5=8D=95=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
frontend/src/components/TopCrumb/index.vue | 46 ++++++++++
frontend/src/components/TopTags/index.vue | 96 ++++++++++++++++++++
frontend/src/layouts/basicLayout.vue | 42 +++++----
frontend/src/views/common/docs/index.vue | 2 -
frontend/src/views/common/redoc/index.vue | 2 -
frontend/src/views/dashboard/analysis.vue | 2 -
frontend/src/views/dashboard/workplace.vue | 2 -
frontend/src/views/monitor/cache/index.vue | 3 -
frontend/src/views/monitor/online/index.vue | 3 -
frontend/src/views/system/config/index.vue | 3 -
frontend/src/views/system/dept/index.vue | 3 -
frontend/src/views/system/dict/data.vue | 3 -
frontend/src/views/system/dict/index.vue | 3 -
frontend/src/views/system/job/index.vue | 3 -
frontend/src/views/system/log/index.vue | 3 -
frontend/src/views/system/menu/index.vue | 3 -
frontend/src/views/system/notice/index.vue | 3 -
frontend/src/views/system/position/index.vue | 3 -
frontend/src/views/system/role/index.vue | 3 -
frontend/src/views/system/user/index.vue | 3 -
20 files changed, 166 insertions(+), 65 deletions(-)
create mode 100644 frontend/src/components/TopCrumb/index.vue
create mode 100644 frontend/src/components/TopTags/index.vue
diff --git a/frontend/src/components/TopCrumb/index.vue b/frontend/src/components/TopCrumb/index.vue
new file mode 100644
index 00000000..16546384
--- /dev/null
+++ b/frontend/src/components/TopCrumb/index.vue
@@ -0,0 +1,46 @@
+
+
+
+ {{ route.breadcrumbName }}
+ {{ route.breadcrumbName }}
+
+
+
+
+
+
+
diff --git a/frontend/src/components/TopTags/index.vue b/frontend/src/components/TopTags/index.vue
new file mode 100644
index 00000000..86074d04
--- /dev/null
+++ b/frontend/src/components/TopTags/index.vue
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/layouts/basicLayout.vue b/frontend/src/layouts/basicLayout.vue
index ab904c85..4107b236 100644
--- a/frontend/src/layouts/basicLayout.vue
+++ b/frontend/src/layouts/basicLayout.vue
@@ -41,6 +41,7 @@
+
@@ -126,7 +127,7 @@
-
+
@@ -167,6 +168,10 @@ import { useUserStore } from "@/store/index";
import { logout } from '@/api/system/auth';
import { useConfigStore, useNoticeStore } from "@/store/index";
+import topTags from '@/components/TopTags/index.vue';
+import topCrumb from '@/components/TopCrumb/index.vue';
+
+
const userStore = useUserStore();
// 路由相关
@@ -215,6 +220,22 @@ const handleLogout = async () => {
}
};
+ // 设置展开的菜单
+ const findParentPath = (menus: any[], targetPath: string, parentPath: string[] = []): string[] => {
+ for (const menu of menus) {
+ if (menu.key === targetPath) {
+ return parentPath;
+ }
+ if (menu.children?.length) {
+ const result = findParentPath(menu.children, targetPath, [...parentPath, menu.key]);
+ if (result.length) {
+ return result;
+ }
+ }
+ }
+ return [];
+ };
+
// 处理菜单点击
const handleMenuClick: MenuProps['onClick'] = (menuInfo) => {
menuState.openKeys = menuInfo.keyPath.slice(0, -1) as string[];
@@ -228,7 +249,8 @@ watch(() => route.path, (newPath) => {
menuState.openKeys = [];
menuState.selectedKeys = [];
} else {
- menuState.selectedKeys = [newPath];
+ menuState.openKeys = findParentPath(menuState.menus, newPath);
+ menuState.selectedKeys = [newPath];
}
});
@@ -267,22 +289,6 @@ const initMenu = () => {
const currentPath = route.path;
menuState.selectedKeys = [currentPath];
- // 设置展开的菜单
- const findParentPath = (menus: any[], targetPath: string, parentPath: string[] = []): string[] => {
- for (const menu of menus) {
- if (menu.key === targetPath) {
- return parentPath;
- }
- if (menu.children?.length) {
- const result = findParentPath(menu.children, targetPath, [...parentPath, menu.key]);
- if (result.length) {
- return result;
- }
- }
- }
- return [];
- };
-
menuState.openKeys = findParentPath(menuState.menus, currentPath);
};
diff --git a/frontend/src/views/common/docs/index.vue b/frontend/src/views/common/docs/index.vue
index c9f8dcd4..2da6beda 100644
--- a/frontend/src/views/common/docs/index.vue
+++ b/frontend/src/views/common/docs/index.vue
@@ -1,5 +1,4 @@
-
@@ -11,7 +10,6 @@