Quellcode durchsuchen

fix: 修复[日志导出】导出的日志没有根据筛选条件导出

qindao vor 1 Jahr
Ursprung
Commit
9aba30cdaf

+ 8 - 8
src/api/system/log.ts

@@ -1,11 +1,11 @@
 import { http } from "@/utils/http/axios";
-import { LoginLogPageRequest, LoginLogRespose, OperationLogRespose, OperatinoLogPageRequest, SystemLogRequest, SystemLogRespose, OpretionPageDetail  } from "@/types/log/type";
+import { LoginLogPageRequest, LoginLogResponse, OperationLogResponse, OperationLogPageRequest, SystemLogRequest, SystemLogResponse, SystemExport ,OperationPageDetail, OperationExport  } from "@/types/log/type";
 
 /**
   *@description: V4: 获取登录日志列表
 */
 export function queryLoginLogList(data: LoginLogPageRequest) {
-  return http.request<LoginLogRespose>({
+  return http.request<LoginLogResponse>({
     url: '/admin/log/queryLoginLogPage',
     method: 'post',
     data: data
@@ -29,8 +29,8 @@ export function exportLoginLog(data: LoginLogPageRequest) {
 /**
   *@description: V4: 获取操作日志列表
 */
-export function queryOperationLogList(data: OperatinoLogPageRequest) {
-  return http.request<OperationLogRespose>({
+export function queryOperationLogList(data: OperationLogPageRequest) {
+  return http.request<OperationLogResponse>({
     url: '/admin/log/queryLogPage',
     method: 'post',
     data: data
@@ -40,7 +40,7 @@ export function queryOperationLogList(data: OperatinoLogPageRequest) {
 /** 
  * @description: @v4:操作日志导出 admin/log/exportLog
  */
-export function exportOperationLog(data: OperatinoLogPageRequest) {
+export function exportOperationLog(data: OperationExport) {
   return http.request({
     url: '/admin/log/exportLog',
     method: 'post',
@@ -55,7 +55,7 @@ export function exportOperationLog(data: OperatinoLogPageRequest) {
   *@description: V4: 获取操作日志详情
 */
 export function queryOperationLogDetail(id: number) {
-  return http.request<OpretionPageDetail>({
+  return http.request<OperationPageDetail>({
     url: `/admin/log/queryLogDetail?id=${id}`,
     method: 'get',
   })
@@ -65,7 +65,7 @@ export function queryOperationLogDetail(id: number) {
   *@description: V4: 获取系统日志列表
 */
 export function querySystemLogList(data: SystemLogRequest) {
-  return http.request<SystemLogRespose>({
+  return http.request<SystemLogResponse>({
     url: '/admin/log/queryEventLogPage',
     method: 'post',
     data: data
@@ -75,7 +75,7 @@ export function querySystemLogList(data: SystemLogRequest) {
 /** 
  * @description: @v4:系统日志导出 admin/log/exportEventLog
  */
-export function exportSystemLog(data: SystemLogRequest) {
+export function exportSystemLog(data: SystemExport) {
   return http.request({
     url: '/admin/log/exportEventLog',
     method: 'post',

+ 12 - 0
src/types/log/constants.ts

@@ -154,6 +154,18 @@ export const queryTypeSelect = [
   },
 ];
 
+/* 操作日志搜索项下拉选择数据 */
+export const operationQueryTypeSelect = [
+  {
+    value: 'realname',
+    label: '姓名',
+  },
+  {
+    value: 'operatorName',
+    label: '账号',
+  },
+];
+
 /* 操作结果枚举 */
 export enum OperationTypeEnum {
   LOGIN = 1,

+ 66 - 84
src/types/log/type.ts

@@ -1,119 +1,101 @@
 import { PaginationRequest, PaginationResponse } from "@/types/common/type";
 
-/* 登录日志列表row */
-export interface LoginLogItem {
-  /*主键 */
+/* 公共日志基础字段 */
+interface BaseLogItem {
   id: number;
-  /*用户名 */
+  createdAt: string;
+}
+
+/* 登录日志列表row */
+export interface LoginLogItem extends BaseLogItem {
   userName: string;
-  /*用户姓名(昵称) */
   realName: string;
-  /*人员组织 */
   deptName: string;
-  /*设备类型 */
   device: string;
-  /*类型 1-登录 2-登出 */
   type: number;
-  /*登录状态:0--失败 1--成功 */
   loginStatus: number;
-  /*登录IP */
   loginIp: string;
-  /*登录时间 */
-  createdAt: Record<string, unknown>;
 }
 
-/* 登录日志列表请求参数 */
-export interface LoginLogPageRequest extends PaginationRequest {
-  queryParam: {
-    userName?: LoginLogItem['userName'],
-    realName?: LoginLogItem['realName'],
-    device?: LoginLogItem['device'],
-    /*开始时间 */
-    startTime?: string;
-    /*结束时间 */
-    endTime?: string;
-    /*人员组织id */
-    deptId?: number;
-    date?: string;
-    queryType?: string,
-    queryTypeContent?: string
-  }
-}
-
-/* 登录日志接口返回 */
-export type LoginLogRespose = PaginationResponse<LoginLogItem>;
-
 /* 操作日志列表row */
-export interface OpreationLogItem {
-  /*自增主键 */
-  id: number;
-  /*操作人 */
+export interface OperationLogItem extends BaseLogItem {
   operatorName: string;
-  /*用户姓名(昵称) */
   realName: string;
-  /*IP地址 */
   clientIp: string;
-  /*应用侧 */
   platform: string;
-  /*所属模块 */
   module: string;
-  /*内容 */
   content: string;
-  /*操作类型 */
   operatorType: string;
-  /*登录时间 */
-  createdAt: string;
-  /*操作结果 */
   isSuccess: number;
 }
 
-/* 操作日志列表请求参数 */
-export interface OperatinoLogPageRequest extends PaginationRequest {
+/* 系统日志列表row */
+export interface SystemLogItem extends BaseLogItem {
+  eventType: number;
+  eventContent: string;
+}
+
+/* 通用日志查询参数 */
+interface BaseLogRequest extends PaginationRequest {
   queryParam: {
-    operatorName?: OpreationLogItem['operatorName'],
-    realName?: OpreationLogItem['realName'],
-    platform?: OpreationLogItem['platform'],
-    module?: OpreationLogItem['module'],
-    operatorType?: OpreationLogItem['operatorType'],
-    /*开始时间 */
     startTime?: string;
-    /*结束时间 */
     endTime?: string;
     date?: string;
-    queryType?: string,
-    queryTypeContent?: string
-  }
+    queryType?: string;
+    queryTypeContent?: string;
+  };
 }
 
-/* 操作日志接口返回 */
-export type OperationLogRespose = PaginationResponse<OpreationLogItem>;
-
-/* 操作日志详情 */
-export type OpretionPageDetail = Pick<OpreationLogItem, 'module' | 'operatorType' | 'operatorName' | 'clientIp' |'isSuccess' | 'createdAt'> & { parameter: string}
+/* 登录日志列表请求参数 */
+export interface LoginLogPageRequest extends BaseLogRequest {
+  queryParam: BaseLogRequest["queryParam"] & {
+    userName?: string;
+    realName?: string;
+    device?: string;
+    deptId?: number;
+  };
+}
 
-/* 系统日志列表row */
-export interface SystemLogItem {
-  /*主键 */
-  id: number;
-  /*事件类型 */
-  eventType: number;
-  /*时间 */
-  createdAt: Record<string, unknown>;
-  /*事件内容 */
-  eventContent: string;
+/* 操作日志列表请求参数 */
+export interface OperationLogPageRequest extends BaseLogRequest {
+  queryParam: BaseLogRequest["queryParam"] & {
+    operatorName?: string;
+    realName?: string;
+    platform?: string;
+    module?: string;
+    operatorType?: string;
+  };
 }
 
 /* 系统日志列表请求参数 */
-export interface SystemLogRequest extends PaginationRequest {
-   queryParam: {
-    eventType?: SystemLogItem['eventType'],
-    /*开始时间 */
-    startTime?: string;
-    /*结束时间 */
-    endTime?: string;
-    date?: string;
-  }
+export interface SystemLogRequest extends BaseLogRequest {
+  queryParam: BaseLogRequest["queryParam"] & {
+    eventType?: number;
+  };
+}
+
+/* 登录日志、操作日志、系统日志接口返回 */
+export type LoginLogResponse = PaginationResponse<LoginLogItem>;
+export type OperationLogResponse = PaginationResponse<OperationLogItem>;
+export type SystemLogResponse = PaginationResponse<SystemLogItem>;
+
+/* 操作日志详情 */
+export type OperationPageDetail = Pick<
+  OperationLogItem,
+  "module" | "operatorType" | "operatorName" | "clientIp" | "isSuccess" | "createdAt"
+> & { parameter: string };
+
+/* 通用导出参数 */
+interface BaseExportRequest {
+  startTime?: string;
+  endTime?: string;
 }
 
-/* 系统日志接口返回 */
-export type SystemLogRespose = PaginationResponse<SystemLogItem>;
+/* 登录日志导出参数 */
+export type LoginExport = BaseExportRequest & Partial<Pick<LoginLogItem, "userName" | "realName" | "device" | "deptId">>;
+
+/* 操作日志导出参数 */
+export type OperationExport = BaseExportRequest & Partial<Pick<OperationLogItem, "operatorName" | "realName" | "platform" | "module" | "operatorType">>;
+
+/* 系统日志导出参数 */
+export type SystemExport = BaseExportRequest & Partial<Pick<SystemLogItem, "eventType">>;

+ 1 - 1
src/views/system/log/components/LoginLog.vue

@@ -130,7 +130,7 @@ const handleExport = () => {
       type: 'warning',
     })
       .then(() => {
-        exportLoginLog(requestParams).then(async (responnse) => {
+        exportLoginLog(requestParams.queryParam).then(async (responnse) => {
           if (!responnse) {
             throw new Error('下载文件失败');
           }

+ 3 - 3
src/views/system/log/components/OperationLog.vue

@@ -10,7 +10,7 @@
           <el-form-item prop="userName">
               <el-select v-model="requestParams.queryParam.queryType" placeholder="选择类型" class="type-select">
               <el-option
-                v-for="item in queryTypeSelect"
+                v-for="item in operationQueryTypeSelect"
                 :key="item.value"
                 :label="item.label"
                 :value="item.value"
@@ -108,7 +108,7 @@ import { exportLoginLog } from '@/api/system/log';
 import { downloadByData } from '@/utils/file/download';
 import type { FormInstance } from 'element-plus'
 import DetailDialog from './DetailDialog.vue';
-import { platformList, operationList, queryTypeSelect, LoginStatusEnum, OperationType } from '@/types/log/constants';
+import { platformList, operationList, operationQueryTypeSelect, LoginStatusEnum, OperationType } from '@/types/log/constants';
 import userOperationQuery from '../hooks/userOperationQuery';
 
 const { requestParams, total, operationLogList, loading, queryOperationLogPage, resetRequestParams } = userOperationQuery();
@@ -125,7 +125,7 @@ const handleExport = () => {
       type: 'warning',
     })
       .then(() => {
-        exportLoginLog(requestParams).then(async (responnse) => {
+        exportLoginLog(requestParams.queryParam).then(async (responnse) => {
           if (!responnse) {
             throw new Error('下载文件失败');
           }

+ 1 - 1
src/views/system/log/components/SystemLog.vue

@@ -86,7 +86,7 @@ const handleExport = () => {
       type: 'warning',
     })
     .then(() => {
-      exportSystemLog(requestParams).then(async (responnse) => {
+      exportSystemLog(requestParams.queryParam).then(async (responnse) => {
         if (!responnse) {
           throw new Error('下载文件失败');
         }

+ 6 - 8
src/views/system/log/hooks/useLoginLogQuery.ts

@@ -30,23 +30,19 @@ export default function useLoginLogRequest () {
     try {
       loading.value = true;
       const { date, queryType, queryTypeContent } = requestParams.queryParam;
-      const params = cloneDeep(requestParams);
        Object.entries(requestParams.queryParam).forEach(([key, value]) => { 
         if (value) {
           if (queryType) {
-              params.queryParam[queryType] = queryTypeContent;
+              requestParams.queryParam[queryType] = queryTypeContent;
             }
         }
       });
       if (date && date.length > 0) {
-        params.queryParam.startTime = date[0];
-        params.queryParam.endTime = date[1];
+        requestParams.queryParam.startTime = date[0];
+        requestParams.queryParam.endTime = date[1];
       }
      
-      delete params.queryParam.date; 
-      delete params.queryParam.queryType; 
-      delete params.queryParam.queryTypeContent; 
-      const data = await queryLoginLogList(params);
+      const data = await queryLoginLogList(requestParams);
       loginLogList.value = data.records;
       total.value = data.totalRow;
     } catch (error) {
@@ -60,6 +56,8 @@ export default function useLoginLogRequest () {
     requestParams.queryParam.startTime = ''
     requestParams.queryParam.endTime = ''
     requestParams.queryParam.queryTypeContent = ''
+    requestParams.queryParam.userName = ''
+    requestParams.queryParam.realName = ''
     Object.assign(requestParams, defaultLoginLogRequest)
   }
 

+ 3 - 6
src/views/system/log/hooks/useSystemQuery.ts

@@ -26,15 +26,12 @@ export default function useSystemLogRequest () {
     try {
       loading.value = true;
       const { date } = requestParams.queryParam;
-      const params = cloneDeep(requestParams);
-      
       if (date && date.length > 0) {
-        params.queryParam.startTime = date[0];
-        params.queryParam.endTime = date[1];
+        requestParams.queryParam.startTime = date[0];
+        requestParams.queryParam.endTime = date[1];
       }
      
-      delete params.queryParam.date; 
-      const data = await querySystemLogList(params);
+      const data = await querySystemLogList(requestParams);
       systemLogList.value = data.records;
       total.value = data.totalRow;
     } catch (error) {

+ 4 - 8
src/views/system/log/hooks/userOperationQuery.ts

@@ -32,23 +32,19 @@ export default function useOperationLogRequest () {
     try {
       loading.value = true;
      const { date, queryType, queryTypeContent } = requestParams.queryParam;
-      const params = cloneDeep(requestParams);
        Object.entries(requestParams.queryParam).forEach(([key, value]) => { 
         if (value) {
           if (queryType) {
-              params.queryParam[queryType] = queryTypeContent;
+              requestParams.queryParam[queryType] = queryTypeContent;
             }
         }
       });
       if (date && date.length > 0) {
-        params.queryParam.startTime = date[0];
-        params.queryParam.endTime = date[1];
+        requestParams.queryParam.startTime = date[0];
+        requestParams.queryParam.endTime = date[1];
       }
      
-      delete params.queryParam.date; 
-      delete params.queryParam.queryType; 
-      delete params.queryParam.queryTypeContent
-      const data = await queryOperationLogList(params);
+      const data = await queryOperationLogList(requestParams);
       operationLogList.value = data.records;
       total.value = data.totalRow;
     } catch (error) {