😎优化日志相关

This commit is contained in:
zuohuaijun 2024-08-02 02:37:48 +08:00
parent 69f7bf0ae4
commit 5635e8e647
19 changed files with 683 additions and 56 deletions

View File

@ -6,6 +6,26 @@
namespace Admin.NET.Core.Service;
public class PageOpLogInput : PageVisLogInput
{
/// <summary>
/// 模块名称
/// </summary>
public string? ControllerName { get; set; }
}
public class PageExLogInput : PageOpLogInput
{
}
public class PageVisLogInput : PageLogInput
{
/// <summary>
/// 方法名称
///</summary>
public string? ActionName { get; set; }
}
public class PageLogInput : BasePageInput
{
/// <summary>
@ -17,6 +37,26 @@ public class PageLogInput : BasePageInput
/// 结束时间
/// </summary>
public DateTime? EndTime { get; set; }
/// <summary>
/// 账号
/// </summary>
public string? Account { get; set; }
/// <summary>
/// 操作用时
/// </summary>
public long? Elapsed { get; set; }
/// <summary>
/// 状态
/// </summary>
public string Status { get; set; }
/// <summary>
/// IP地址
/// </summary>
public string? RemoteIp { get; set; }
}
public class LogInput

View File

@ -25,11 +25,18 @@ public class SysLogExService : IDynamicApiController, ITransient
/// <returns></returns>
[SuppressMonitor]
[DisplayName("获取异常日志分页列表")]
public async Task<SqlSugarPagedList<SysLogEx>> Page(PageLogInput input)
public async Task<SqlSugarPagedList<SysLogEx>> Page(PageExLogInput input)
{
return await _sysLogExRep.AsQueryable()
.WhereIF(!string.IsNullOrWhiteSpace(input.StartTime.ToString()), u => u.CreateTime >= input.StartTime)
.WhereIF(!string.IsNullOrWhiteSpace(input.EndTime.ToString()), u => u.CreateTime <= input.EndTime)
.WhereIF(!string.IsNullOrWhiteSpace(input.Account), u => u.Account == input.Account)
.WhereIF(!string.IsNullOrWhiteSpace(input.ControllerName), u => u.ControllerName == input.ControllerName)
.WhereIF(!string.IsNullOrWhiteSpace(input.ActionName), u => u.ActionName == input.ActionName)
.WhereIF(!string.IsNullOrWhiteSpace(input.RemoteIp), u => u.RemoteIp == input.RemoteIp)
.WhereIF(!string.IsNullOrWhiteSpace(input.Elapsed.ToString()), u => u.Elapsed >= input.Elapsed)
.WhereIF(!string.IsNullOrWhiteSpace(input.Status) && input.Status == "200", u => u.Status == input.Status)
.WhereIF(!string.IsNullOrWhiteSpace(input.Status) && input.Status != "200", u => u.Status != input.Status)
//.OrderBy(u => u.CreateTime, OrderByType.Desc)
.IgnoreColumns(u => new { u.RequestParam, u.ReturnResult, u.Message })
.OrderBuilder(input)

View File

@ -25,11 +25,16 @@ public class SysLogOpService : IDynamicApiController, ITransient
/// <returns></returns>
[SuppressMonitor]
[DisplayName("获取操作日志分页列表")]
public async Task<SqlSugarPagedList<SysLogOp>> Page(PageLogInput input)
public async Task<SqlSugarPagedList<SysLogOp>> Page(PageOpLogInput input)
{
return await _sysLogOpRep.AsQueryable()
.WhereIF(!string.IsNullOrWhiteSpace(input.StartTime.ToString()), u => u.CreateTime >= input.StartTime)
.WhereIF(!string.IsNullOrWhiteSpace(input.EndTime.ToString()), u => u.CreateTime <= input.EndTime)
.WhereIF(!string.IsNullOrWhiteSpace(input.Account), u => u.Account == input.Account)
.WhereIF(!string.IsNullOrWhiteSpace(input.RemoteIp), u => u.RemoteIp == input.RemoteIp)
.WhereIF(!string.IsNullOrWhiteSpace(input.ControllerName), u => u.ControllerName == input.ControllerName)
.WhereIF(!string.IsNullOrWhiteSpace(input.ActionName), u => u.ActionName == input.ActionName)
.WhereIF(!string.IsNullOrWhiteSpace(input.Elapsed.ToString()), u => u.Elapsed >= input.Elapsed)
//.OrderBy(u => u.CreateTime, OrderByType.Desc)
.IgnoreColumns(u => new { u.RequestParam, u.ReturnResult, u.Message })
.OrderBuilder(input)

View File

@ -25,11 +25,17 @@ public class SysLogVisService : IDynamicApiController, ITransient
/// <returns></returns>
[SuppressMonitor]
[DisplayName("获取访问日志分页列表")]
public async Task<SqlSugarPagedList<SysLogVis>> Page(PageLogInput input)
public async Task<SqlSugarPagedList<SysLogVis>> Page(PageVisLogInput input)
{
return await _sysLogVisRep.AsQueryable()
.WhereIF(!string.IsNullOrWhiteSpace(input.StartTime.ToString()), u => u.CreateTime >= input.StartTime)
.WhereIF(!string.IsNullOrWhiteSpace(input.EndTime.ToString()), u => u.CreateTime <= input.EndTime)
.WhereIF(!string.IsNullOrWhiteSpace(input.Account), u => u.Account == input.Account)
.WhereIF(!string.IsNullOrWhiteSpace(input.ActionName), u => u.ActionName == input.ActionName)
.WhereIF(!string.IsNullOrWhiteSpace(input.RemoteIp), u => u.RemoteIp == input.RemoteIp)
.WhereIF(!string.IsNullOrWhiteSpace(input.Elapsed.ToString()), u => u.Elapsed >= input.Elapsed)
.WhereIF(!string.IsNullOrWhiteSpace(input.Status) && input.Status == "200", u => u.Status == input.Status)
.WhereIF(!string.IsNullOrWhiteSpace(input.Status) && input.Status != "200", u => u.Status != input.Status)
.OrderBy(u => u.CreateTime, OrderByType.Desc)
.ToPagedListAsync(input.Page, input.PageSize);
}

View File

@ -33,6 +33,11 @@ public class PageUserInput : BasePageInput
/// </summary>
public string RealName { get; set; }
/// <summary>
/// 职位名称
/// </summary>
public string PosName { get; set; }
/// <summary>
/// 手机号
/// </summary>

View File

@ -71,6 +71,7 @@ public class SysUserService : IDynamicApiController, ITransient
.WhereIF(orgList != null, u => orgList.Contains(u.OrgId))
.WhereIF(!string.IsNullOrWhiteSpace(input.Account), u => u.Account.Contains(input.Account))
.WhereIF(!string.IsNullOrWhiteSpace(input.RealName), u => u.RealName.Contains(input.RealName))
.WhereIF(!string.IsNullOrWhiteSpace(input.PosName), (u, a, b) => b.Name.Contains(input.PosName))
.WhereIF(!string.IsNullOrWhiteSpace(input.Phone), u => u.Phone.Contains(input.Phone))
.OrderBy(u => new { u.OrderNo, u.Id })
.Select((u, a, b) => new UserOutput

View File

@ -20,7 +20,7 @@ import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } fr
import { AdminResultSqlSugarPagedListSysLogEx } from '../models';
import { AdminResultSysLogEx } from '../models';
import { LogInput } from '../models';
import { PageLogInput } from '../models';
import { PageExLogInput } from '../models';
/**
* SysLogExApi - axios parameter creator
* @export
@ -170,11 +170,11 @@ export const SysLogExApiAxiosParamCreator = function (configuration?: Configurat
/**
*
* @summary 🔖
* @param {PageLogInput} [body]
* @param {PageExLogInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
apiSysLogExPagePost: async (body?: PageLogInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
apiSysLogExPagePost: async (body?: PageExLogInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/api/sysLogEx/page`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, 'https://example.com');
@ -268,11 +268,11 @@ export const SysLogExApiFp = function(configuration?: Configuration) {
/**
*
* @summary 🔖
* @param {PageLogInput} [body]
* @param {PageExLogInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysLogExPagePost(body?: PageLogInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLogEx>>> {
async apiSysLogExPagePost(body?: PageExLogInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLogEx>>> {
const localVarAxiosArgs = await SysLogExApiAxiosParamCreator(configuration).apiSysLogExPagePost(body, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
@ -320,11 +320,11 @@ export const SysLogExApiFactory = function (configuration?: Configuration, baseP
/**
*
* @summary 🔖
* @param {PageLogInput} [body]
* @param {PageExLogInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysLogExPagePost(body?: PageLogInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLogEx>> {
async apiSysLogExPagePost(body?: PageExLogInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLogEx>> {
return SysLogExApiFp(configuration).apiSysLogExPagePost(body, options).then((request) => request(axios, basePath));
},
};
@ -372,12 +372,12 @@ export class SysLogExApi extends BaseAPI {
/**
*
* @summary 🔖
* @param {PageLogInput} [body]
* @param {PageExLogInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof SysLogExApi
*/
public async apiSysLogExPagePost(body?: PageLogInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLogEx>> {
public async apiSysLogExPagePost(body?: PageExLogInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLogEx>> {
return SysLogExApiFp(this.configuration).apiSysLogExPagePost(body, options).then((request) => request(this.axios, this.basePath));
}
}

View File

@ -20,7 +20,7 @@ import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } fr
import { AdminResultSqlSugarPagedListSysLogOp } from '../models';
import { AdminResultSysLogOp } from '../models';
import { LogInput } from '../models';
import { PageLogInput } from '../models';
import { PageOpLogInput } from '../models';
/**
* SysLogOpApi - axios parameter creator
* @export
@ -170,11 +170,11 @@ export const SysLogOpApiAxiosParamCreator = function (configuration?: Configurat
/**
*
* @summary 🔖
* @param {PageLogInput} [body]
* @param {PageOpLogInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
apiSysLogOpPagePost: async (body?: PageLogInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
apiSysLogOpPagePost: async (body?: PageOpLogInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/api/sysLogOp/page`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, 'https://example.com');
@ -268,11 +268,11 @@ export const SysLogOpApiFp = function(configuration?: Configuration) {
/**
*
* @summary 🔖
* @param {PageLogInput} [body]
* @param {PageOpLogInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysLogOpPagePost(body?: PageLogInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLogOp>>> {
async apiSysLogOpPagePost(body?: PageOpLogInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLogOp>>> {
const localVarAxiosArgs = await SysLogOpApiAxiosParamCreator(configuration).apiSysLogOpPagePost(body, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
@ -320,11 +320,11 @@ export const SysLogOpApiFactory = function (configuration?: Configuration, baseP
/**
*
* @summary 🔖
* @param {PageLogInput} [body]
* @param {PageOpLogInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysLogOpPagePost(body?: PageLogInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLogOp>> {
async apiSysLogOpPagePost(body?: PageOpLogInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLogOp>> {
return SysLogOpApiFp(configuration).apiSysLogOpPagePost(body, options).then((request) => request(axios, basePath));
},
};
@ -372,12 +372,12 @@ export class SysLogOpApi extends BaseAPI {
/**
*
* @summary 🔖
* @param {PageLogInput} [body]
* @param {PageOpLogInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof SysLogOpApi
*/
public async apiSysLogOpPagePost(body?: PageLogInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLogOp>> {
public async apiSysLogOpPagePost(body?: PageOpLogInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLogOp>> {
return SysLogOpApiFp(this.configuration).apiSysLogOpPagePost(body, options).then((request) => request(this.axios, this.basePath));
}
}

View File

@ -19,7 +19,7 @@ import { Configuration } from '../configuration';
import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base';
import { AdminResultListLogVisOutput } from '../models';
import { AdminResultSqlSugarPagedListSysLogVis } from '../models';
import { PageLogInput } from '../models';
import { PageVisLogInput } from '../models';
/**
* SysLogVisApi - axios parameter creator
* @export
@ -115,11 +115,11 @@ export const SysLogVisApiAxiosParamCreator = function (configuration?: Configura
/**
*
* @summary 访 🔖
* @param {PageLogInput} [body]
* @param {PageVisLogInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
apiSysLogVisPagePost: async (body?: PageLogInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
apiSysLogVisPagePost: async (body?: PageVisLogInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/api/sysLogVis/page`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, 'https://example.com');
@ -198,11 +198,11 @@ export const SysLogVisApiFp = function(configuration?: Configuration) {
/**
*
* @summary 访 🔖
* @param {PageLogInput} [body]
* @param {PageVisLogInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysLogVisPagePost(body?: PageLogInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLogVis>>> {
async apiSysLogVisPagePost(body?: PageVisLogInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLogVis>>> {
const localVarAxiosArgs = await SysLogVisApiAxiosParamCreator(configuration).apiSysLogVisPagePost(body, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
@ -239,11 +239,11 @@ export const SysLogVisApiFactory = function (configuration?: Configuration, base
/**
*
* @summary 访 🔖
* @param {PageLogInput} [body]
* @param {PageVisLogInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysLogVisPagePost(body?: PageLogInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLogVis>> {
async apiSysLogVisPagePost(body?: PageVisLogInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLogVis>> {
return SysLogVisApiFp(configuration).apiSysLogVisPagePost(body, options).then((request) => request(axios, basePath));
},
};
@ -279,12 +279,12 @@ export class SysLogVisApi extends BaseAPI {
/**
*
* @summary 访 🔖
* @param {PageLogInput} [body]
* @param {PageVisLogInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof SysLogVisApi
*/
public async apiSysLogVisPagePost(body?: PageLogInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLogVis>> {
public async apiSysLogVisPagePost(body?: PageVisLogInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultSqlSugarPagedListSysLogVis>> {
return SysLogVisApiFp(this.configuration).apiSysLogVisPagePost(body, options).then((request) => request(this.axios, this.basePath));
}
}

View File

@ -98,6 +98,7 @@ export * from './admin-result-sys-dict-data';
export * from './admin-result-sys-dict-type';
export * from './admin-result-sys-file';
export * from './admin-result-sys-ldap';
export * from './admin-result-sys-log-diff';
export * from './admin-result-sys-log-ex';
export * from './admin-result-sys-log-op';
export * from './admin-result-sys-print';
@ -249,12 +250,14 @@ export * from './page-code-gen-input';
export * from './page-config-input';
export * from './page-dict-data-input';
export * from './page-dict-type-input';
export * from './page-ex-log-input';
export * from './page-file-input';
export * from './page-job-detail-input';
export * from './page-job-trigger-record-input';
export * from './page-log-input';
export * from './page-notice-input';
export * from './page-online-user-input';
export * from './page-op-log-input';
export * from './page-open-access-input';
export * from './page-plugin-input';
export * from './page-pos-input';
@ -267,6 +270,7 @@ export * from './page-sys-ldap-input';
export * from './page-sys-wechat-pay-input';
export * from './page-tenant-input';
export * from './page-user-input';
export * from './page-vis-log-input';
export * from './parameter-attributes';
export * from './parameter-info';
export * from './platform-type-enum';

View File

@ -0,0 +1,148 @@
/* tslint:disable */
/* eslint-disable */
/**
* Admin.NET
* .NET <br/><u><b><font color='FF0000'> 👮</font></b></u>
*
* OpenAPI spec version: 1.0.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*/
import { Filter } from './filter';
import { Search } from './search';
/**
*
*
* @export
* @interface PageExLogInput
*/
export interface PageExLogInput {
/**
* @type {Search}
* @memberof PageExLogInput
*/
search?: Search;
/**
*
*
* @type {string}
* @memberof PageExLogInput
*/
keyword?: string | null;
/**
* @type {Filter}
* @memberof PageExLogInput
*/
filter?: Filter;
/**
*
*
* @type {number}
* @memberof PageExLogInput
*/
page?: number;
/**
*
*
* @type {number}
* @memberof PageExLogInput
*/
pageSize?: number;
/**
*
*
* @type {string}
* @memberof PageExLogInput
*/
field?: string | null;
/**
*
*
* @type {string}
* @memberof PageExLogInput
*/
order?: string | null;
/**
*
*
* @type {string}
* @memberof PageExLogInput
*/
descStr?: string | null;
/**
*
*
* @type {Date}
* @memberof PageExLogInput
*/
startTime?: Date | null;
/**
*
*
* @type {Date}
* @memberof PageExLogInput
*/
endTime?: Date | null;
/**
*
*
* @type {string}
* @memberof PageExLogInput
*/
account?: string | null;
/**
*
*
* @type {number}
* @memberof PageExLogInput
*/
elapsed?: number | null;
/**
*
*
* @type {string}
* @memberof PageExLogInput
*/
status?: string | null;
/**
* IP地址
*
* @type {string}
* @memberof PageExLogInput
*/
remoteIp?: string | null;
/**
*
*
* @type {string}
* @memberof PageExLogInput
*/
actionName?: string | null;
/**
*
*
* @type {string}
* @memberof PageExLogInput
*/
controllerName?: string | null;
}

View File

@ -97,4 +97,36 @@ export interface PageLogInput {
* @memberof PageLogInput
*/
endTime?: Date | null;
/**
*
*
* @type {string}
* @memberof PageLogInput
*/
account?: string | null;
/**
*
*
* @type {number}
* @memberof PageLogInput
*/
elapsed?: number | null;
/**
*
*
* @type {string}
* @memberof PageLogInput
*/
status?: string | null;
/**
* IP地址
*
* @type {string}
* @memberof PageLogInput
*/
remoteIp?: string | null;
}

View File

@ -0,0 +1,148 @@
/* tslint:disable */
/* eslint-disable */
/**
* Admin.NET
* .NET <br/><u><b><font color='FF0000'> 👮</font></b></u>
*
* OpenAPI spec version: 1.0.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*/
import { Filter } from './filter';
import { Search } from './search';
/**
*
*
* @export
* @interface PageOpLogInput
*/
export interface PageOpLogInput {
/**
* @type {Search}
* @memberof PageOpLogInput
*/
search?: Search;
/**
*
*
* @type {string}
* @memberof PageOpLogInput
*/
keyword?: string | null;
/**
* @type {Filter}
* @memberof PageOpLogInput
*/
filter?: Filter;
/**
*
*
* @type {number}
* @memberof PageOpLogInput
*/
page?: number;
/**
*
*
* @type {number}
* @memberof PageOpLogInput
*/
pageSize?: number;
/**
*
*
* @type {string}
* @memberof PageOpLogInput
*/
field?: string | null;
/**
*
*
* @type {string}
* @memberof PageOpLogInput
*/
order?: string | null;
/**
*
*
* @type {string}
* @memberof PageOpLogInput
*/
descStr?: string | null;
/**
*
*
* @type {Date}
* @memberof PageOpLogInput
*/
startTime?: Date | null;
/**
*
*
* @type {Date}
* @memberof PageOpLogInput
*/
endTime?: Date | null;
/**
*
*
* @type {string}
* @memberof PageOpLogInput
*/
account?: string | null;
/**
*
*
* @type {number}
* @memberof PageOpLogInput
*/
elapsed?: number | null;
/**
*
*
* @type {string}
* @memberof PageOpLogInput
*/
status?: string | null;
/**
* IP地址
*
* @type {string}
* @memberof PageOpLogInput
*/
remoteIp?: string | null;
/**
*
*
* @type {string}
* @memberof PageOpLogInput
*/
actionName?: string | null;
/**
*
*
* @type {string}
* @memberof PageOpLogInput
*/
controllerName?: string | null;
}

View File

@ -98,6 +98,14 @@ export interface PageUserInput {
*/
realName?: string | null;
/**
*
*
* @type {string}
* @memberof PageUserInput
*/
posName?: string | null;
/**
*
*

View File

@ -0,0 +1,140 @@
/* tslint:disable */
/* eslint-disable */
/**
* Admin.NET
* .NET <br/><u><b><font color='FF0000'> 👮</font></b></u>
*
* OpenAPI spec version: 1.0.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*/
import { Filter } from './filter';
import { Search } from './search';
/**
*
*
* @export
* @interface PageVisLogInput
*/
export interface PageVisLogInput {
/**
* @type {Search}
* @memberof PageVisLogInput
*/
search?: Search;
/**
*
*
* @type {string}
* @memberof PageVisLogInput
*/
keyword?: string | null;
/**
* @type {Filter}
* @memberof PageVisLogInput
*/
filter?: Filter;
/**
*
*
* @type {number}
* @memberof PageVisLogInput
*/
page?: number;
/**
*
*
* @type {number}
* @memberof PageVisLogInput
*/
pageSize?: number;
/**
*
*
* @type {string}
* @memberof PageVisLogInput
*/
field?: string | null;
/**
*
*
* @type {string}
* @memberof PageVisLogInput
*/
order?: string | null;
/**
*
*
* @type {string}
* @memberof PageVisLogInput
*/
descStr?: string | null;
/**
*
*
* @type {Date}
* @memberof PageVisLogInput
*/
startTime?: Date | null;
/**
*
*
* @type {Date}
* @memberof PageVisLogInput
*/
endTime?: Date | null;
/**
*
*
* @type {string}
* @memberof PageVisLogInput
*/
account?: string | null;
/**
*
*
* @type {number}
* @memberof PageVisLogInput
*/
elapsed?: number | null;
/**
*
*
* @type {string}
* @memberof PageVisLogInput
*/
status?: string | null;
/**
* IP地址
*
* @type {string}
* @memberof PageVisLogInput
*/
remoteIp?: string | null;
/**
*
*
* @type {string}
* @memberof PageVisLogInput
*/
actionName?: string | null;
}

View File

@ -14,13 +14,36 @@
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="显示名称" prop="displayTitle">
<el-input v-model="state.queryParams.displayTitle" clearable placeholder="显示名称" @keyup.enter.native="handleQuery" />
<el-form-item label="模块名称">
<el-input v-model="state.queryParams.controllerName" placeholder="方法名称" clearable />
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="操作人" prop="realName">
<el-input v-model="state.queryParams.realName" clearable placeholder="操作人" @keyup.enter.native="handleQuery" />
<el-form-item label="方法名称">
<el-input v-model="state.queryParams.actionName" placeholder="方法名称" clearable />
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="账号名称">
<el-input v-model="state.queryParams.account" placeholder="账号名称" clearable />
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="状态">
<el-select v-model="state.queryParams.status" placeholder="状态" clearable>
<el-option label="成功" :value="200" />
<el-option label="失败" :value="400" />
</el-select>
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="耗时">
<el-input v-model="state.queryParams.elapsed" placeholder="耗时>?MS" clearable />
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="IP地址">
<el-input v-model="state.queryParams.remoteIp" placeholder="IP地址" clearable />
</el-form-item>
</el-col>
</el-row>
@ -114,8 +137,12 @@ const state = reactive({
queryParams: {
startTime: undefined,
endTime: undefined,
displayTitle: '',
realName: '',
status: undefined,
controllerName: undefined,
actionName: undefined,
account: undefined,
elapsed: undefined,
remoteIp: undefined,
},
localPageParam: {
pageSize: 50 as number,
@ -199,8 +226,12 @@ const handleQuery = async () => {
const resetQuery = async () => {
state.queryParams.startTime = undefined;
state.queryParams.endTime = undefined;
state.queryParams.displayTitle = '';
state.queryParams.realName = '';
state.queryParams.status = undefined;
state.queryParams.controllerName = undefined;
state.queryParams.actionName = undefined;
state.queryParams.account = undefined;
state.queryParams.elapsed = undefined;
state.queryParams.remoteIp = undefined;
await xGrid.value?.commitProxy('reload');
};

View File

@ -14,13 +14,28 @@
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="显示名称" prop="displayTitle">
<el-input v-model="state.queryParams.displayTitle" clearable placeholder="显示名称" @keyup.enter.native="handleQuery" />
<el-form-item label="模块名称">
<el-input v-model="state.queryParams.controllerName" placeholder="方法名称" clearable />
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="操作人" prop="realName">
<el-input v-model="state.queryParams.realName" clearable placeholder="操作人" @keyup.enter.native="handleQuery" />
<el-form-item label="方法名称">
<el-input v-model="state.queryParams.actionName" placeholder="方法名称" clearable />
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="账号名称">
<el-input v-model="state.queryParams.account" placeholder="账号名称" clearable />
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="耗时">
<el-input v-model="state.queryParams.elapsed" placeholder="耗时>?MS" clearable />
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="IP地址">
<el-input v-model="state.queryParams.remoteIp" placeholder="IP地址" clearable />
</el-form-item>
</el-col>
</el-row>
@ -114,8 +129,11 @@ const state = reactive({
queryParams: {
startTime: undefined,
endTime: undefined,
displayTitle: '',
realName: '',
controllerName: undefined,
actionName: undefined,
account: undefined,
elapsed: undefined,
remoteIp: undefined,
},
localPageParam: {
pageSize: 50 as number,
@ -202,8 +220,11 @@ const handleQuery = async () => {
const resetQuery = async () => {
state.queryParams.startTime = undefined;
state.queryParams.endTime = undefined;
state.queryParams.displayTitle = '';
state.queryParams.realName = '';
state.queryParams.controllerName = undefined;
state.queryParams.actionName = undefined;
state.queryParams.account = undefined;
state.queryParams.elapsed = undefined;
state.queryParams.remoteIp = undefined;
await xGrid.value?.commitProxy('reload');
};

View File

@ -14,13 +14,31 @@
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="显示名称" prop="displayTitle">
<el-input v-model="state.queryParams.displayTitle" clearable placeholder="显示名称" @keyup.enter.native="handleQuery" />
<el-form-item label="方法名称">
<el-input v-model="state.queryParams.actionName" placeholder="方法名称" clearable />
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="操作人" prop="realName">
<el-input v-model="state.queryParams.realName" clearable placeholder="操作人" @keyup.enter.native="handleQuery" />
<el-form-item label="账号名称">
<el-input v-model="state.queryParams.account" placeholder="账号名称" clearable />
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="状态">
<el-select v-model="state.queryParams.status" placeholder="状态" clearable>
<el-option label="成功" :value="200" />
<el-option label="失败" :value="400" />
</el-select>
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="耗时">
<el-input v-model="state.queryParams.elapsed" placeholder="耗时>?MS" clearable />
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="IP地址">
<el-input v-model="state.queryParams.remoteIp" placeholder="IP地址" clearable />
</el-form-item>
</el-col>
</el-row>
@ -79,10 +97,13 @@ const mapRef = ref<InstanceType<typeof VisMap>>();
const shortcuts = useDateTimeShortCust();
const state = reactive({
queryParams: {
startTime: undefined as string | undefined,
endTime: undefined as string | undefined,
displayTitle: '',
realName: '',
startTime: undefined,
endTime: undefined,
status: undefined,
actionName: undefined,
account: undefined,
elapsed: undefined,
remoteIp: undefined,
},
localPageParam: {
pageSize: 50 as number,
@ -151,8 +172,11 @@ const handleQuery = async () => {
const resetQuery = async () => {
state.queryParams.startTime = undefined;
state.queryParams.endTime = undefined;
state.queryParams.displayTitle = '';
state.queryParams.realName = '';
state.queryParams.status = undefined;
state.queryParams.actionName = undefined;
state.queryParams.account = undefined;
state.queryParams.elapsed = undefined;
state.queryParams.remoteIp = undefined;
await xGrid.value?.commitProxy('reload');
};

View File

@ -19,6 +19,11 @@
<el-input v-model="state.queryParams.realName" placeholder="姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="职位名称">
<el-input v-model="state.queryParams.posName" placeholder="职位名称" clearable />
</el-form-item>
</el-col>
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
<el-form-item label="手机号码" prop="phone">
<el-input v-model="state.queryParams.phone" placeholder="手机号码" clearable @keyup.enter.native="handleQuery" />
@ -113,6 +118,7 @@ const state = reactive({
orgId: -1,
account: undefined,
realName: undefined,
posName: undefined,
phone: undefined,
},
localPageParam: {
@ -192,6 +198,7 @@ const resetQuery = async () => {
state.queryParams.orgId = -1;
state.queryParams.account = undefined;
state.queryParams.realName = undefined;
state.queryParams.posName = undefined;
state.queryParams.phone = undefined;
await xGrid.value?.commitProxy('reload');
};