diff --git a/ui/src/api/system/operate-log.ts b/ui/src/api/system/operate-log.ts new file mode 100644 index 000000000..21a494959 --- /dev/null +++ b/ui/src/api/system/operate-log.ts @@ -0,0 +1,46 @@ +import { Result } from '@/request/Result' +import { get, exportExcelPost } from '@/request/index' +import type { pageRequest } from '@/api/type/common' +import { type Ref } from 'vue' + +const prefix = '/operate_log' +/** + * 日志分页列表 + * @param 参数 + * page { + "current_page": "string", + "page_size": "string", + } + * @query 参数 + param: any + */ +const getOperateLog: ( + page: pageRequest, + param: any, + loading?: Ref +) => Promise> = (page, param, loading) => { + return get(`${prefix}/${page.current_page}/${page.page_size}`, param, loading) +} + +const getMenuList: () => Promise> = () => { + return get(`${prefix}/menu_operation_option/`, undefined, undefined) +} + +const exportOperateLog: ( + param: any, + loading?: Ref +) => void = (param, loading) => { + exportExcelPost( + 'log.xlsx', + `${prefix}/export/`, + param, + undefined, + loading + ) +} + +export default { + getOperateLog, + getMenuList, + exportOperateLog +} diff --git a/ui/src/locales/lang/zh-CN/index.ts b/ui/src/locales/lang/zh-CN/index.ts index 73d9f06ba..9ff309278 100644 --- a/ui/src/locales/lang/zh-CN/index.ts +++ b/ui/src/locales/lang/zh-CN/index.ts @@ -16,4 +16,5 @@ export default { common, chat, components, + } diff --git a/ui/src/locales/lang/zh-CN/views/index.ts b/ui/src/locales/lang/zh-CN/views/index.ts index f87670b55..a6a7afb4b 100644 --- a/ui/src/locales/lang/zh-CN/views/index.ts +++ b/ui/src/locales/lang/zh-CN/views/index.ts @@ -17,7 +17,7 @@ import chatLog from './chat-log' import chatUser from './chat-user' // import notFound from './404' -// import operateLog from './operate-log' +import operateLog from './operate-log' export default { login, model, @@ -38,5 +38,5 @@ export default { chatUser, // notFound, - // operateLog + operateLog } diff --git a/ui/src/locales/lang/zh-CN/views/operate-log.ts b/ui/src/locales/lang/zh-CN/views/operate-log.ts new file mode 100644 index 000000000..3bb1d87d3 --- /dev/null +++ b/ui/src/locales/lang/zh-CN/views/operate-log.ts @@ -0,0 +1,31 @@ +export default { + title: '操作日志', + table: { + menu: { + label: '操作菜单' + }, + operate: { + label: '操作', + detail: '操作详情' + }, + user: { + label: '操作用户' + }, + status: { + label: '状态', + success: '成功', + fail: '失败', + all: '全部' + }, + ip_address: { + label: 'IP地址' + }, + opt: { + label: 'API详情' + }, + operateTime: { + label: '操作时间' + } + }, + close: '关闭' +} diff --git a/ui/src/router/modules/system.ts b/ui/src/router/modules/system.ts index e96a4ff67..6a269f26f 100644 --- a/ui/src/router/modules/system.ts +++ b/ui/src/router/modules/system.ts @@ -1,9 +1,10 @@ -import { PermissionConst, EditionConst, RoleConst } from '@/utils/permission/data' -import { ComplexPermission } from '@/utils/permission/type' +import {PermissionConst, EditionConst, RoleConst} from '@/utils/permission/data' +import {ComplexPermission} from '@/utils/permission/type' + const systemRouter = { path: '/system', name: 'system', - meta: { title: 'views.system.title' }, + meta: {title: 'views.system.title'}, hidden: true, component: () => import('@/layout/layout-template/SystemMainLayout.vue'), children: [ @@ -17,7 +18,7 @@ const systemRouter = { activeMenu: '/system', parentPath: '/system', parentName: 'system', - permission: [RoleConst.ADMIN,EditionConst.IS_EE], + permission: [RoleConst.ADMIN, EditionConst.IS_EE], }, component: () => import('@/views/user-manage/index.vue'), }, @@ -80,7 +81,7 @@ const systemRouter = { activeMenu: '/system', parentPath: '/system', parentName: 'system', - permission:[new ComplexPermission([RoleConst.ADMIN,RoleConst.WORKSPACE_MANAGE.getWorkspaceRole],[PermissionConst.ROLE_READ],[EditionConst.IS_EE],'OR'),], + permission: [new ComplexPermission([RoleConst.ADMIN, RoleConst.WORKSPACE_MANAGE.getWorkspaceRole], [PermissionConst.ROLE_READ], [EditionConst.IS_EE], 'OR'),], }, component: () => import('@/views/role/index.vue'), }, @@ -94,7 +95,7 @@ const systemRouter = { activeMenu: '/system', parentPath: '/system', parentName: 'system', - permission:[new ComplexPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN],[PermissionConst.WORKSPACE_WORKSPACE_READ],[EditionConst.IS_EE],'OR'),], + permission: [new ComplexPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, RoleConst.ADMIN], [PermissionConst.WORKSPACE_WORKSPACE_READ], [EditionConst.IS_EE], 'OR'),], }, component: () => import('@/views/workspace/index.vue'), }, @@ -156,7 +157,7 @@ const systemRouter = { activeMenu: '/system', parentPath: '/system', parentName: 'system', - permission:[new ComplexPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN],[PermissionConst.WORKSPACE_USER_GROUP_READ],[EditionConst.IS_EE,EditionConst.IS_PE],'OR'),], + permission: [new ComplexPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, RoleConst.ADMIN], [PermissionConst.WORKSPACE_USER_GROUP_READ], [EditionConst.IS_EE, EditionConst.IS_PE], 'OR'),], }, children: [ { @@ -167,7 +168,7 @@ const systemRouter = { activeMenu: '/system', parentPath: '/system', parentName: 'system', - permission:[new ComplexPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN],[PermissionConst.WORKSPACE_CHAT_USER_READ],[EditionConst.IS_EE,EditionConst.IS_PE],'OR'),], + permission: [new ComplexPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, RoleConst.ADMIN], [PermissionConst.WORKSPACE_CHAT_USER_READ], [EditionConst.IS_EE, EditionConst.IS_PE], 'OR'),], }, component: () => import('@/views/system-chat-user/user-manage/index.vue'), }, @@ -179,7 +180,7 @@ const systemRouter = { activeMenu: '/system', parentPath: '/system', parentName: 'system', - permission:[new ComplexPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN],[PermissionConst.WORKSPACE_USER_GROUP_READ],[EditionConst.IS_EE,EditionConst.IS_PE],'OR'),], + permission: [new ComplexPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, RoleConst.ADMIN], [PermissionConst.WORKSPACE_USER_GROUP_READ], [EditionConst.IS_EE, EditionConst.IS_PE], 'OR'),], }, component: () => import('@/views/system-chat-user/group/index.vue'), }, @@ -191,8 +192,8 @@ const systemRouter = { activeMenu: '/system', parentPath: '/system', parentName: 'system', - permission:[new ComplexPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,RoleConst.ADMIN], - [PermissionConst.CHAT_USER_AUTH_READ],[EditionConst.IS_EE,EditionConst.IS_PE],'OR'),], + permission: [new ComplexPermission([RoleConst.WORKSPACE_MANAGE.getWorkspaceRole, RoleConst.ADMIN], + [PermissionConst.CHAT_USER_AUTH_READ], [EditionConst.IS_EE, EditionConst.IS_PE], 'OR'),], }, component: () => import('@/views/system-chat-user/authentication/index.vue'), }, @@ -248,6 +249,20 @@ const systemRouter = { }, ], }, + { + path: '/operate', + name: 'operate', + meta: { + icon: 'app-document', + iconActive: 'app-document-active', + title: 'views.operateLog.title', + activeMenu: '/system', + parentPath: '/system', + parentName: 'system', + permission: [EditionConst.IS_PE, EditionConst.IS_EE], + }, + component: () => import('@/views/operate-log/index.vue') + } ], } diff --git a/ui/src/views/operate-log/component/DetailDialog.vue b/ui/src/views/operate-log/component/DetailDialog.vue new file mode 100644 index 000000000..d333d39ae --- /dev/null +++ b/ui/src/views/operate-log/component/DetailDialog.vue @@ -0,0 +1,36 @@ + + + diff --git a/ui/src/views/operate-log/index.vue b/ui/src/views/operate-log/index.vue new file mode 100644 index 000000000..c98c0480a --- /dev/null +++ b/ui/src/views/operate-log/index.vue @@ -0,0 +1,451 @@ + + +