From f5deb7b8f78c2fc949211df173164fb2cc3f7fc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E5=BF=B5?= Date: Wed, 13 Aug 2025 19:27:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8F=9C=E5=8D=95=20?= =?UTF-8?q?=E6=9D=83=E9=99=90=20=E7=AD=89=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/adminApi.ts | 22 + src/api/menuApi.ts | 7 +- src/api/systemApi.ts | 219 ++++++ src/api/usersApi.ts | 6 + .../core/layouts/art-header-bar/index.vue | 16 +- src/types/router/index.ts | 1 + src/typings/api.d.ts | 4 + src/views/admin/system/company.vue | 186 +++++ src/views/admin/system/feishu.vue | 194 +++++ src/views/admin/system/menu/index.vue | 696 ++++++++++++++++++ src/views/admin/system/role/index.vue | 425 +++++++++++ src/views/admin/system/systems.vue | 194 +++++ src/views/admin/user/index.vue | 341 ++++++++- src/views/auth/login/index.vue | 4 +- src/views/crmpc/customer/index.vue | 2 +- 15 files changed, 2297 insertions(+), 20 deletions(-) create mode 100644 src/api/systemApi.ts create mode 100644 src/views/admin/system/company.vue create mode 100644 src/views/admin/system/feishu.vue create mode 100644 src/views/admin/system/menu/index.vue create mode 100644 src/views/admin/system/role/index.vue create mode 100644 src/views/admin/system/systems.vue diff --git a/src/api/adminApi.ts b/src/api/adminApi.ts index faa5c4e..277f619 100644 --- a/src/api/adminApi.ts +++ b/src/api/adminApi.ts @@ -153,4 +153,26 @@ export class manageService { // showErrorMessage: false // 不显示错误消息 }) } + //用户设置角色 + static userSetRole(params: any) { + return request.post({ + url: '/admin/user/authorize', + params + // showErrorMessage: false // 不显示错误消息 + }) + } + //用户菜单权限设置 + static userMenuAuth(params: any) { + return request.post({ + url: '/admin/user/set/resources', + params + // showErrorMessage: false // 不显示错误消息 + }) + } + //清除缓存 + static clearCache() { + return request.get({ + url: '/common/preset/cache/clear' + }) + } } diff --git a/src/api/menuApi.ts b/src/api/menuApi.ts index 458e474..ab614f8 100644 --- a/src/api/menuApi.ts +++ b/src/api/menuApi.ts @@ -1,6 +1,7 @@ import { menuDataToRouter } from '@/router/utils/menuToRouter' import { AppRouteRecord } from '@/types/router' import { useUserStore } from '@/store/modules/user' +import { UserService } from '@/api/usersApi' interface MenuResponse { menuList: AppRouteRecord[] } @@ -13,14 +14,16 @@ export const menuService = { if (!userStore.isLogin) { throw new Error('用户未登录') } + const { menu } = await UserService.getMenuList() + const menuData = menu + // const userStore = useUserStore() // 模拟接口返回的菜单数据 - const menuData = userStore.info.menu // 验证菜单数据 if (!menuData || !Array.isArray(menuData) || menuData.length === 0) { ElMessage.error('暂无系统菜单权限') return { menuList: [] } } - + console.log('menuData', menuData) // 处理菜单数据 const menuList = menuData.map((route: any) => menuDataToRouter(route)) // 验证处理后的菜单列表 diff --git a/src/api/systemApi.ts b/src/api/systemApi.ts new file mode 100644 index 0000000..bc7aad3 --- /dev/null +++ b/src/api/systemApi.ts @@ -0,0 +1,219 @@ +import request from '@/utils/http' + +export class systemService { + //系统列表 + static getSystemList(params: Api.Common.PaginatingParams) { + return request.get({ + url: '/admin/systems/list', + params + }) + } + //系统添加 + static systemAdd(params: any) { + return request.post({ + url: '/admin/systems/store', + params + // showErrorMessage: false // 不显示错误消息 + }) + } + //系统详情 + static systemDetail(params: any) { + return request.get({ + url: '/admin/systems/show', + params + }) + } + //系统编辑 + static systemEdit(params: any) { + return request.post({ + url: '/admin/systems/update', + params + // showErrorMessage: false // 不显示错误消息 + }) + } + //系统删除 + static systemDelete(params: any) { + return request.post({ + url: '/admin/systems/destroy', + params + // showErrorMessage: false // 不显示错误消息 + }) + } + //飞书应用列表 + static getFeishuAppList(params: Api.Common.PaginatingParams) { + return request.get({ + url: '/admin/corp/feishu/list', + params + }) + } + //飞书应用添加 + static feishuAppAdd(params: any) { + return request.post({ + url: '/admin/corp/feishu/store', + params + // showErrorMessage: false // 不显示错误消息 + }) + } + //飞书应用详情 + static feishuAppDetail(params: any) { + return request.get({ + url: '/admin/corp/feishu/show', + params + }) + } + //飞书应用编辑 + static feishuAppEdit(params: any) { + return request.post({ + url: '/admin/corp/feishu/update', + params + // showErrorMessage: false // 不显示错误消息 + }) + } + //飞书应用删除 + static feishuAppDelete(params: any) { + return request.post({ + url: '/admin/corp/feishu/destroy', + params + // showErrorMessage: false // 不显示错误消息 + }) + } + //公司列表 + static getCompanyList(params: Api.Common.PaginatingParams) { + return request.get({ + url: '/admin/corp/list', + params + }) + } + //公司添加 + static companyAdd(params: any) { + return request.post({ + url: '/admin/corp/store', + params + // showErrorMessage: false // 不显示错误消息 + }) + } + //公司详情 + static companyDetail(params: any) { + return request.get({ + url: '/admin/corp/show', + params + }) + } + //公司编辑 + static companyEdit(params: any) { + return request.post({ + url: '/admin/corp/update', + params + // showErrorMessage: false // 不显示错误消息 + }) + } + //公司删除 + static companyDelete(params: any) { + return request.post({ + url: '/admin/corp/destroy', + params + // showErrorMessage: false // 不显示错误消息 + }) + } + //角色列表 + static getRoleList(params: Api.Common.PaginatingParams) { + return request.get({ + url: '/admin/role/list', + params + }) + } + //角色添加 + static roleAdd(params: any) { + return request.post({ + url: '/admin/role/store', + params + // showErrorMessage: false // 不显示错误消息 + }) + } + //角色详情 + static roleDetail(params: any) { + return request.get({ + url: '/admin/role/show', + params + }) + } + //角色编辑 + static roleEdit(params: any) { + return request.post({ + url: '/admin/role/update', + params + // showErrorMessage: false // 不显示错误消息 + }) + } + //角色删除 + static roleDelete(params: any) { + return request.post({ + url: '/admin/role/destroy', + params + // showErrorMessage: false // 不显示错误消息 + }) + } + //角色权限设置 + static roleAuth(params: any) { + return request.post({ + url: '/admin/role/menu/resource', + params + // showErrorMessage: false // 不显示错误消息 + }) + } + //角色下拉框 + static getRoleSelectList() { + return request.get({ + url: '/common/preset/roles' + }) + } + //菜单列表 + static getMenutreeList() { + return request.get({ + url: '/admin/resources/list/tree' + }) + } + static getMenuList() { + return request.get({ + url: '/admin/resources/list/menu' + }) + } + //菜单添加 + static menuAdd(params: any) { + return request.post({ + url: '/admin/resources/store', + params + // showErrorMessage: false // 不显示错误消息 + }) + } + //菜单详情 + static menuDetail(params: any) { + return request.get({ + url: '/admin/resources/show', + params + }) + } + //菜单编辑 + static menuEdit(params: any) { + return request.post({ + url: '/admin/resources/update', + params + // showErrorMessage: false // 不显示错误消息 + }) + } + //菜单删除 + static menuDelete(params: any) { + return request.post({ + url: '/admin/resources/destroy', + params + // showErrorMessage: false // 不显示错误消息 + }) + } + //权限菜单 + static getPermissionMenuList(params: any) { + return request.get({ + url: '/admin/resources/list/menu/tree', + params + }) + } +} diff --git a/src/api/usersApi.ts b/src/api/usersApi.ts index 9af6fe3..b1fc3c5 100644 --- a/src/api/usersApi.ts +++ b/src/api/usersApi.ts @@ -72,4 +72,10 @@ export class UserService { params }) } + //获取菜单 + static getMenuList() { + return request.get({ + url: '/common/preset/menus' + }) + } } diff --git a/src/components/core/layouts/art-header-bar/index.vue b/src/components/core/layouts/art-header-bar/index.vue index b19b50a..09cc557 100644 --- a/src/components/core/layouts/art-header-bar/index.vue +++ b/src/components/core/layouts/art-header-bar/index.vue @@ -54,7 +54,11 @@ --> - +
+
+ +
+
{ toggleFullscreen() } - + const clearCachefn = () => { + manageService.clearCache().then((res) => { + ElMessage.success(res.data?.message || '成功!') + // setTimeout(() => { + window.location.reload() + // }, 5000) + }) + } const topBarWidth = (): string => { const { TOP, DUAL_MENU, TOP_LEFT } = MenuTypeEnum const { getMenuOpenWidth } = settingStore diff --git a/src/types/router/index.ts b/src/types/router/index.ts index 9831778..6b21c9c 100644 --- a/src/types/router/index.ts +++ b/src/types/router/index.ts @@ -28,6 +28,7 @@ export interface RouteMeta extends Record { authList?: Array<{ title: string auth_mark: string + authMark?: string // 兼容旧版 }> /** 是否为一级菜单 */ isFirstLevel?: boolean diff --git a/src/typings/api.d.ts b/src/typings/api.d.ts index 73faeff..150d665 100644 --- a/src/typings/api.d.ts +++ b/src/typings/api.d.ts @@ -51,6 +51,10 @@ declare namespace Api { code: string message: string } + interface CommonListDatad1 { + data: never[] + message: string + } } /** 认证类型 */ diff --git a/src/views/admin/system/company.vue b/src/views/admin/system/company.vue new file mode 100644 index 0000000..ff091f0 --- /dev/null +++ b/src/views/admin/system/company.vue @@ -0,0 +1,186 @@ + + + + + diff --git a/src/views/admin/system/feishu.vue b/src/views/admin/system/feishu.vue new file mode 100644 index 0000000..31e7110 --- /dev/null +++ b/src/views/admin/system/feishu.vue @@ -0,0 +1,194 @@ + + + + + diff --git a/src/views/admin/system/menu/index.vue b/src/views/admin/system/menu/index.vue new file mode 100644 index 0000000..44cf7b9 --- /dev/null +++ b/src/views/admin/system/menu/index.vue @@ -0,0 +1,696 @@ + + + + + diff --git a/src/views/admin/system/role/index.vue b/src/views/admin/system/role/index.vue new file mode 100644 index 0000000..261758a --- /dev/null +++ b/src/views/admin/system/role/index.vue @@ -0,0 +1,425 @@ + + + + + diff --git a/src/views/admin/system/systems.vue b/src/views/admin/system/systems.vue new file mode 100644 index 0000000..045ccea --- /dev/null +++ b/src/views/admin/system/systems.vue @@ -0,0 +1,194 @@ + + + + + diff --git a/src/views/admin/user/index.vue b/src/views/admin/user/index.vue index 119288e..77338d3 100644 --- a/src/views/admin/user/index.vue +++ b/src/views/admin/user/index.vue @@ -3,16 +3,16 @@
- - - - - + + + + + + + + + +
@@ -57,6 +57,24 @@