feat:对接日志管理

This commit is contained in:
AN
2025-04-16 22:22:09 +08:00
parent ee5afcf20f
commit 8b1be45eb5
26 changed files with 1195 additions and 62 deletions

98
src/typings/api/monitor.api.d.ts vendored Normal file
View File

@ -0,0 +1,98 @@
/**
* Namespace Api
*
* All backend api type
*/
declare namespace Api {
/**
* namespace Monitor
*
* backend api module: "monitor"
*/
namespace Monitor {
/** oper log */
type OperLog = Common.CommonRecord<{
/** 日志主键 */
operId: CommonType.IdType;
/** 租户编号 */
tenantId: CommonType.IdType;
/** 系统模块 */
title: string;
/** 操作类型 */
businessType: number;
/** 方法名称 */
method: string;
/** 请求方式 */
requestMethod: string;
/** 操作类别 */
operatorType: number;
/** 操作人员 */
operName: string;
/** 部门名称 */
deptName: string;
/** 请求URL */
operUrl: string;
/** 操作IP */
operIp: string;
/** 操作地点 */
operLocation: string;
/** 请求参数 */
operParam: string;
/** 返回参数 */
jsonResult: string;
/** 操作状态 */
status: number;
/** 错误消息 */
errorMsg: string;
/** 操作时间 */
operTime: string;
/** 消耗时间 */
costTime: number;
}>;
/** oper log search params */
type OperLogSearchParams = CommonType.RecordNullable<
Pick<Api.Monitor.OperLog, 'title' | 'businessType' | 'operName' | 'operIp' | 'status' | 'operTime'> &
Api.Common.CommonSearchParams
>;
/** oper log list */
type OperLogList = Api.Common.PaginatingQueryRecord<OperLog>;
/** login infor */
type LoginInfor = Common.CommonRecord<{
/** 访问ID */
infoId: CommonType.IdType;
/** 租户编号 */
tenantId: CommonType.IdType;
/** 用户账号 */
userName: string;
/** 客户端 */
clientKey: string;
/** 设备类型 */
deviceType: string;
/** 登录IP地址 */
ipaddr: string;
/** 登录地点 */
loginLocation: string;
/** 浏览器类型 */
browser: string;
/** 操作系统 */
os: string;
/** 登录状态0成功 1失败 */
status: string;
/** 提示消息 */
msg: string;
/** 访问时间 */
loginTime: string;
}>;
/** login infor search params */
type LoginInforSearchParams = CommonType.RecordNullable<
Pick<Api.Monitor.LoginInfor, 'userName' | 'ipaddr' | 'status'> & Api.Common.CommonSearchParams
>;
/** login infor list */
type LoginInforList = Api.Common.PaginatingQueryRecord<LoginInfor>;
}
}

View File

@ -50,6 +50,7 @@ declare module 'vue' {
IconMdiRefresh: typeof import('~icons/mdi/refresh')['default']
'IconMingcute:questionLine': typeof import('~icons/mingcute/question-line')['default']
IconUilSearch: typeof import('~icons/uil/search')['default']
JsonPreview: typeof import('./../components/custom/json-preview.vue')['default']
LangSwitch: typeof import('./../components/common/lang-switch.vue')['default']
LookForward: typeof import('./../components/custom/look-forward.vue')['default']
MenuToggler: typeof import('./../components/common/menu-toggler.vue')['default']

View File

@ -23,6 +23,9 @@ declare module "@elegant-router/types" {
"home": "/home";
"iframe-page": "/iframe-page/:url";
"login": "/login/:module(pwd-login|code-login|register|reset-pwd|bind-wechat)?";
"monitor": "/monitor";
"monitor_login-infor": "/monitor/login-infor";
"monitor_oper-log": "/monitor/oper-log";
"system": "/system";
"system_config": "/system/config";
"system_dept": "/system/dept";
@ -72,6 +75,7 @@ declare module "@elegant-router/types" {
| "home"
| "iframe-page"
| "login"
| "monitor"
| "system"
| "tool"
>;
@ -96,6 +100,8 @@ declare module "@elegant-router/types" {
| "iframe-page"
| "login"
| "home"
| "monitor_login-infor"
| "monitor_oper-log"
| "system_config"
| "system_dept"
| "system_dict_data"