From 841afd2ebfbaed8f00d1cfd5457d8452252c69a6 Mon Sep 17 00:00:00 2001 From: dongfo <630024306@qq.com> Date: Tue, 12 May 2026 15:55:52 +0800 Subject: [PATCH 1/6] Fix delay handling in EnqueueAsync method Updated EnqueueAsync method to handle delay correctly by using BeginTime instead of interval. This prevents immediate execution of jobs with longer delay durations. --- .../BackgroundTasks/BackgroundJobManager.cs | 57 ++++++++++--------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/BackgroundJobManager.cs b/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/BackgroundJobManager.cs index edc460e4e..ded32941d 100644 --- a/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/BackgroundJobManager.cs +++ b/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/BackgroundJobManager.cs @@ -47,33 +47,36 @@ public class BackgroundJobManager : IBackgroundJobManager TimeSpan? delay = null) { var jobConfiguration = Options.GetJob(); - var interval = 0; - if (delay.HasValue) - { - interval = delay.Value.Seconds; - } - var jobId = GuidGenerator.Create(); - var jobArgs = new Dictionary - { - { nameof(TArgs), JsonSerializer.Serialize(args) }, - { "ArgsType", jobConfiguration.ArgsType.AssemblyQualifiedName }, - { "JobType", jobConfiguration.JobType.AssemblyQualifiedName }, - { "JobName", jobConfiguration.JobName }, - }; - var jobInfo = new JobInfo - { - Id = jobId.ToString(), - TenantId = CurrentTenant.Id, - Name = jobId.ToString(), - Group = "BackgroundJobs", - Priority = ConverForm(priority), - Source = JobSource.System, - BeginTime = DateTime.Now, - Args = jobArgs, - Description = "From the framework background jobs", - JobType = JobType.Once, - Interval = interval, - CreationTime = Clock.Now, + // 用 BeginTime 表达延迟启动,避免与 JobInfo.Interval(重复间隔)语义混用。 + // 原实现使用 delay.Value.Seconds(仅取秒分量 0-59), + // 会让 TimeSpan.FromMinutes(5) 这类整分钟/整小时的延迟退化为 0,导致任务立即执行。 + var now = Clock.Now; + var beginTime = now; + if (delay.HasValue && delay.Value > TimeSpan.Zero) + { + beginTime = now.Add(delay.Value); + } + var jobId = GuidGenerator.Create(); + var jobArgs = new Dictionary + { + { nameof(TArgs), JsonSerializer.Serialize(args) }, + { "ArgsType", jobConfiguration.ArgsType.AssemblyQualifiedName }, + { "JobType", jobConfiguration.JobType.AssemblyQualifiedName }, + { "JobName", jobConfiguration.JobName }, + }; + var jobInfo = new JobInfo + { + Id = jobId.ToString(), + TenantId = CurrentTenant.Id, + Name = jobId.ToString(), + Group = "BackgroundJobs", + Priority = ConverForm(priority), + Source = JobSource.System, + BeginTime = beginTime, + Args = jobArgs, + Description = "From the framework background jobs", + JobType = JobType.Once, + CreationTime = now, // 确保不会被轮询入队 Status = JobStatus.None, NodeName = TasksOptions.NodeName, From 124281dc786de8d98d279ac13f99c0f570034328 Mon Sep 17 00:00:00 2001 From: dongfo <630024306@qq.com> Date: Tue, 12 May 2026 15:57:46 +0800 Subject: [PATCH 2/6] Update QuartzJobCreator.cs --- .../Quartz/QuartzJobCreator.cs | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks.Quartz/LINGYUN/Abp/BackgroundTasks/Quartz/QuartzJobCreator.cs b/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks.Quartz/LINGYUN/Abp/BackgroundTasks/Quartz/QuartzJobCreator.cs index 91e40d67b..43f82c739 100644 --- a/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks.Quartz/LINGYUN/Abp/BackgroundTasks/Quartz/QuartzJobCreator.cs +++ b/aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks.Quartz/LINGYUN/Abp/BackgroundTasks/Quartz/QuartzJobCreator.cs @@ -125,11 +125,21 @@ public class QuartzJobCreator : IQuartzJobCreator, ISingletonDependency triggerBuilder .WithIdentity(KeyBuilder.CreateTriggerKey(job)) .WithDescription(job.Description) - .StartAt(Clock.Now.AddSeconds(job.Interval)) .EndAt(job.EndTime) .ForJob(KeyBuilder.CreateJobKey(job)) .WithPriority((int)job.Priority); - + + // 首次启动时间由 BeginTime 决定,不再使用 Interval 作为"延迟启动"。 + // Interval 仅在 Persistent 周期任务中表示"重复间隔"。 + if (job.BeginTime > Clock.Now) + { + triggerBuilder.StartAt(job.BeginTime); + } + else + { + triggerBuilder.StartNow(); + } + // Quartz约定. 重复间隔不能为0 // fix throw Quartz.SchedulerException: Repeat Interval cannot be zero. var scheduleBuilder = SimpleScheduleBuilder.Create(); @@ -139,14 +149,8 @@ public class QuartzJobCreator : IQuartzJobCreator, ISingletonDependency { scheduleBuilder.WithRepeatCount(maxCount); } - if (job.Interval > 0) - { - scheduleBuilder.WithIntervalInSeconds(job.Interval); - } - else - { - scheduleBuilder.WithIntervalInSeconds(300); - } + scheduleBuilder.WithIntervalInSeconds(job.Interval > 0 ? job.Interval : 300); + triggerBuilder.WithSchedule(scheduleBuilder); From 5d748d189fe65b1e98b8a9f83d6884d32413ab0c Mon Sep 17 00:00:00 2001 From: ruanbl Date: Thu, 4 Jun 2026 10:53:50 +0800 Subject: [PATCH 3/6] fix userInactiveDeleteNull --- .../Session/IdentitySessionUserInactiveSynchronizer.cs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/aspnet-core/modules/identity/LINGYUN.Abp.Identity.Domain/LINGYUN/Abp/Identity/Session/IdentitySessionUserInactiveSynchronizer.cs b/aspnet-core/modules/identity/LINGYUN.Abp.Identity.Domain/LINGYUN/Abp/Identity/Session/IdentitySessionUserInactiveSynchronizer.cs index 3f458a83c..8c26cdfb6 100644 --- a/aspnet-core/modules/identity/LINGYUN.Abp.Identity.Domain/LINGYUN/Abp/Identity/Session/IdentitySessionUserInactiveSynchronizer.cs +++ b/aspnet-core/modules/identity/LINGYUN.Abp.Identity.Domain/LINGYUN/Abp/Identity/Session/IdentitySessionUserInactiveSynchronizer.cs @@ -1,10 +1,4 @@ -using System.Threading.Tasks; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Domain.Entities.Events.Distributed; -using Volo.Abp.EventBus.Distributed; -using Volo.Abp.Uow; - -namespace LINGYUN.Abp.Identity.Session; +namespace LINGYUN.Abp.Identity.Session; public class IdentitySessionUserInactiveSynchronizer : IDistributedEventHandler>, @@ -21,7 +15,7 @@ public class IdentitySessionUserInactiveSynchronizer : public async virtual Task HandleEventAsync(EntityCreatedEto eventData) { var userInactive = await _identityUserInactiveRepository.FindByUserIdAsync(eventData.Entity.UserId); - if (userInactive == null) + if (userInactive != null) { await _identityUserInactiveRepository.DeleteAsync(userInactive); } From 041d113d8ff71a2d360242b02ae0aa2870d7af37 Mon Sep 17 00:00:00 2001 From: zhang Date: Mon, 8 Jun 2026 21:58:54 +0200 Subject: [PATCH 4/6] fix(vben5): update vxe toolbar refresh config --- .../src/components/tools/AIToolDefinitionTable.vue | 3 ++- .../src/components/workspaces/WorkspaceDefinitionTable.vue | 3 ++- .../@abp/auditing/src/components/audit-logs/AuditLogTable.vue | 3 ++- .../@abp/auditing/src/components/loggings/LoggingTable.vue | 3 ++- .../src/components/containers/BlobContainerTable.vue | 3 ++- .../src/components/entity-type-infos/EntityTypeInfoTable.vue | 3 ++- .../packages/@abp/demo/src/components/books/BookTable.vue | 3 ++- apps/vben5/packages/@abp/gdpr/src/components/GdprTable.vue | 3 ++- .../identity/src/components/claim-types/ClaimTypeTable.vue | 3 ++- .../organization-units/OrganizationUnitRoleTable.vue | 3 ++- .../organization-units/OrganizationUnitUserTable.vue | 3 ++- .../src/components/organization-units/SelectMemberModal.vue | 3 ++- .../src/components/organization-units/SelectRoleModal.vue | 3 ++- .../packages/@abp/identity/src/components/roles/RoleTable.vue | 3 ++- .../identity/src/components/security-logs/SecurityLogTable.vue | 3 ++- .../@abp/identity/src/components/sessions/SessionTable.vue | 3 ++- .../packages/@abp/identity/src/components/users/UserTable.vue | 3 ++- .../src/components/my-notifilers/MyNotificationTable.vue | 3 ++- .../components/send-records/NotificationSendRecordTable.vue | 3 ++- .../src/components/applications/ApplicationTable.vue | 3 ++- .../src/components/authorizations/AuthorizationTable.vue | 3 ++- .../@abp/openiddict/src/components/scopes/ScopeTable.vue | 3 ++- .../@abp/openiddict/src/components/tokens/TokenTable.vue | 3 ++- .../@abp/oss/src/components/containers/ContainerTable.vue | 3 ++- .../packages/@abp/oss/src/components/objects/FileList.vue | 3 ++- .../@abp/platform/src/components/layouts/LayoutTable.vue | 3 ++- .../src/components/messages/email/EmailMessageTable.vue | 3 ++- .../platform/src/components/messages/sms/SmsMessageTable.vue | 3 ++- .../@abp/saas/src/components/editions/EditionTable.vue | 3 ++- .../packages/@abp/saas/src/components/tenants/TenantTable.vue | 3 ++- .../@abp/tasks/src/components/job-infos/JobInfoTable.vue | 3 ++- .../src/components/send-attempts/WebhookSendAttemptTable.vue | 3 ++- .../src/components/subscriptions/WebhookSubscriptionTable.vue | 3 ++- 33 files changed, 66 insertions(+), 33 deletions(-) diff --git a/apps/vben5/packages/@abp/ai-management/src/components/tools/AIToolDefinitionTable.vue b/apps/vben5/packages/@abp/ai-management/src/components/tools/AIToolDefinitionTable.vue index fe687793c..72ebd68af 100644 --- a/apps/vben5/packages/@abp/ai-management/src/components/tools/AIToolDefinitionTable.vue +++ b/apps/vben5/packages/@abp/ai-management/src/components/tools/AIToolDefinitionTable.vue @@ -140,7 +140,8 @@ const gridOptions: VxeGridProps = { custom: true, export: true, // import: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/ai-management/src/components/workspaces/WorkspaceDefinitionTable.vue b/apps/vben5/packages/@abp/ai-management/src/components/workspaces/WorkspaceDefinitionTable.vue index d59fb691e..dc35d5766 100644 --- a/apps/vben5/packages/@abp/ai-management/src/components/workspaces/WorkspaceDefinitionTable.vue +++ b/apps/vben5/packages/@abp/ai-management/src/components/workspaces/WorkspaceDefinitionTable.vue @@ -130,7 +130,8 @@ const gridOptions: VxeGridProps = { custom: true, export: true, // import: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/auditing/src/components/audit-logs/AuditLogTable.vue b/apps/vben5/packages/@abp/auditing/src/components/audit-logs/AuditLogTable.vue index d841a8a50..7aa2848b8 100644 --- a/apps/vben5/packages/@abp/auditing/src/components/audit-logs/AuditLogTable.vue +++ b/apps/vben5/packages/@abp/auditing/src/components/audit-logs/AuditLogTable.vue @@ -241,7 +241,8 @@ const gridOptions: VxeGridProps = { custom: true, export: true, // import: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/auditing/src/components/loggings/LoggingTable.vue b/apps/vben5/packages/@abp/auditing/src/components/loggings/LoggingTable.vue index edb0db0a0..d4bd06923 100644 --- a/apps/vben5/packages/@abp/auditing/src/components/loggings/LoggingTable.vue +++ b/apps/vben5/packages/@abp/auditing/src/components/loggings/LoggingTable.vue @@ -278,7 +278,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/blob-management/src/components/containers/BlobContainerTable.vue b/apps/vben5/packages/@abp/blob-management/src/components/containers/BlobContainerTable.vue index 2f544fe6f..832fa8162 100644 --- a/apps/vben5/packages/@abp/blob-management/src/components/containers/BlobContainerTable.vue +++ b/apps/vben5/packages/@abp/blob-management/src/components/containers/BlobContainerTable.vue @@ -109,7 +109,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/data-protection/src/components/entity-type-infos/EntityTypeInfoTable.vue b/apps/vben5/packages/@abp/data-protection/src/components/entity-type-infos/EntityTypeInfoTable.vue index 37b37e797..574e3f8ee 100644 --- a/apps/vben5/packages/@abp/data-protection/src/components/entity-type-infos/EntityTypeInfoTable.vue +++ b/apps/vben5/packages/@abp/data-protection/src/components/entity-type-infos/EntityTypeInfoTable.vue @@ -91,7 +91,8 @@ const gridOptions: VxeGridProps = { }, }, toolbarConfig: { - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, }, diff --git a/apps/vben5/packages/@abp/demo/src/components/books/BookTable.vue b/apps/vben5/packages/@abp/demo/src/components/books/BookTable.vue index c524544e0..858f22175 100644 --- a/apps/vben5/packages/@abp/demo/src/components/books/BookTable.vue +++ b/apps/vben5/packages/@abp/demo/src/components/books/BookTable.vue @@ -108,7 +108,8 @@ const gridOptions: VxeGridProps = { }, }, toolbarConfig: { - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, }, diff --git a/apps/vben5/packages/@abp/gdpr/src/components/GdprTable.vue b/apps/vben5/packages/@abp/gdpr/src/components/GdprTable.vue index 1f9ae1025..5b178c969 100644 --- a/apps/vben5/packages/@abp/gdpr/src/components/GdprTable.vue +++ b/apps/vben5/packages/@abp/gdpr/src/components/GdprTable.vue @@ -84,7 +84,8 @@ const gridOptions: VxeGridProps = { }, }, toolbarConfig: { - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, }, diff --git a/apps/vben5/packages/@abp/identity/src/components/claim-types/ClaimTypeTable.vue b/apps/vben5/packages/@abp/identity/src/components/claim-types/ClaimTypeTable.vue index 7b37c661b..8c734494f 100644 --- a/apps/vben5/packages/@abp/identity/src/components/claim-types/ClaimTypeTable.vue +++ b/apps/vben5/packages/@abp/identity/src/components/claim-types/ClaimTypeTable.vue @@ -154,7 +154,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/identity/src/components/organization-units/OrganizationUnitRoleTable.vue b/apps/vben5/packages/@abp/identity/src/components/organization-units/OrganizationUnitRoleTable.vue index 1475e6845..65ba22b48 100644 --- a/apps/vben5/packages/@abp/identity/src/components/organization-units/OrganizationUnitRoleTable.vue +++ b/apps/vben5/packages/@abp/identity/src/components/organization-units/OrganizationUnitRoleTable.vue @@ -84,7 +84,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/identity/src/components/organization-units/OrganizationUnitUserTable.vue b/apps/vben5/packages/@abp/identity/src/components/organization-units/OrganizationUnitUserTable.vue index 70a828d36..c05f4f373 100644 --- a/apps/vben5/packages/@abp/identity/src/components/organization-units/OrganizationUnitUserTable.vue +++ b/apps/vben5/packages/@abp/identity/src/components/organization-units/OrganizationUnitUserTable.vue @@ -90,7 +90,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/identity/src/components/organization-units/SelectMemberModal.vue b/apps/vben5/packages/@abp/identity/src/components/organization-units/SelectMemberModal.vue index e3d584027..75b9cad29 100644 --- a/apps/vben5/packages/@abp/identity/src/components/organization-units/SelectMemberModal.vue +++ b/apps/vben5/packages/@abp/identity/src/components/organization-units/SelectMemberModal.vue @@ -112,7 +112,8 @@ const gridOptions: VxeGridProps = { }, }, toolbarConfig: { - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, }, diff --git a/apps/vben5/packages/@abp/identity/src/components/organization-units/SelectRoleModal.vue b/apps/vben5/packages/@abp/identity/src/components/organization-units/SelectRoleModal.vue index 9f34ab20f..119b91936 100644 --- a/apps/vben5/packages/@abp/identity/src/components/organization-units/SelectRoleModal.vue +++ b/apps/vben5/packages/@abp/identity/src/components/organization-units/SelectRoleModal.vue @@ -104,7 +104,8 @@ const gridOptions: VxeGridProps = { }, }, toolbarConfig: { - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, }, diff --git a/apps/vben5/packages/@abp/identity/src/components/roles/RoleTable.vue b/apps/vben5/packages/@abp/identity/src/components/roles/RoleTable.vue index 85aad1ba7..d27a64700 100644 --- a/apps/vben5/packages/@abp/identity/src/components/roles/RoleTable.vue +++ b/apps/vben5/packages/@abp/identity/src/components/roles/RoleTable.vue @@ -120,7 +120,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/identity/src/components/security-logs/SecurityLogTable.vue b/apps/vben5/packages/@abp/identity/src/components/security-logs/SecurityLogTable.vue index ef0910f31..3bb2160ca 100644 --- a/apps/vben5/packages/@abp/identity/src/components/security-logs/SecurityLogTable.vue +++ b/apps/vben5/packages/@abp/identity/src/components/security-logs/SecurityLogTable.vue @@ -185,7 +185,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/identity/src/components/sessions/SessionTable.vue b/apps/vben5/packages/@abp/identity/src/components/sessions/SessionTable.vue index 54811c8d7..ec20c6987 100644 --- a/apps/vben5/packages/@abp/identity/src/components/sessions/SessionTable.vue +++ b/apps/vben5/packages/@abp/identity/src/components/sessions/SessionTable.vue @@ -168,7 +168,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/identity/src/components/users/UserTable.vue b/apps/vben5/packages/@abp/identity/src/components/users/UserTable.vue index 520e3d659..91db5a725 100644 --- a/apps/vben5/packages/@abp/identity/src/components/users/UserTable.vue +++ b/apps/vben5/packages/@abp/identity/src/components/users/UserTable.vue @@ -168,7 +168,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/notifications/src/components/my-notifilers/MyNotificationTable.vue b/apps/vben5/packages/@abp/notifications/src/components/my-notifilers/MyNotificationTable.vue index 7d824f144..4a35f4522 100644 --- a/apps/vben5/packages/@abp/notifications/src/components/my-notifilers/MyNotificationTable.vue +++ b/apps/vben5/packages/@abp/notifications/src/components/my-notifilers/MyNotificationTable.vue @@ -175,7 +175,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/notifications/src/components/send-records/NotificationSendRecordTable.vue b/apps/vben5/packages/@abp/notifications/src/components/send-records/NotificationSendRecordTable.vue index 6ac0201c5..275f0b0fe 100644 --- a/apps/vben5/packages/@abp/notifications/src/components/send-records/NotificationSendRecordTable.vue +++ b/apps/vben5/packages/@abp/notifications/src/components/send-records/NotificationSendRecordTable.vue @@ -234,7 +234,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/openiddict/src/components/applications/ApplicationTable.vue b/apps/vben5/packages/@abp/openiddict/src/components/applications/ApplicationTable.vue index 76d5f5bec..8860b6d61 100644 --- a/apps/vben5/packages/@abp/openiddict/src/components/applications/ApplicationTable.vue +++ b/apps/vben5/packages/@abp/openiddict/src/components/applications/ApplicationTable.vue @@ -146,7 +146,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/openiddict/src/components/authorizations/AuthorizationTable.vue b/apps/vben5/packages/@abp/openiddict/src/components/authorizations/AuthorizationTable.vue index b80a267ca..fb2364db5 100644 --- a/apps/vben5/packages/@abp/openiddict/src/components/authorizations/AuthorizationTable.vue +++ b/apps/vben5/packages/@abp/openiddict/src/components/authorizations/AuthorizationTable.vue @@ -168,7 +168,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/openiddict/src/components/scopes/ScopeTable.vue b/apps/vben5/packages/@abp/openiddict/src/components/scopes/ScopeTable.vue index fca6fab93..1cdc7da32 100644 --- a/apps/vben5/packages/@abp/openiddict/src/components/scopes/ScopeTable.vue +++ b/apps/vben5/packages/@abp/openiddict/src/components/scopes/ScopeTable.vue @@ -121,7 +121,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/openiddict/src/components/tokens/TokenTable.vue b/apps/vben5/packages/@abp/openiddict/src/components/tokens/TokenTable.vue index 42f254e0d..11aafb492 100644 --- a/apps/vben5/packages/@abp/openiddict/src/components/tokens/TokenTable.vue +++ b/apps/vben5/packages/@abp/openiddict/src/components/tokens/TokenTable.vue @@ -195,7 +195,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/oss/src/components/containers/ContainerTable.vue b/apps/vben5/packages/@abp/oss/src/components/containers/ContainerTable.vue index c1e54e87a..ca6db4fcf 100644 --- a/apps/vben5/packages/@abp/oss/src/components/containers/ContainerTable.vue +++ b/apps/vben5/packages/@abp/oss/src/components/containers/ContainerTable.vue @@ -120,7 +120,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/oss/src/components/objects/FileList.vue b/apps/vben5/packages/@abp/oss/src/components/objects/FileList.vue index ed831162b..34af7586c 100644 --- a/apps/vben5/packages/@abp/oss/src/components/objects/FileList.vue +++ b/apps/vben5/packages/@abp/oss/src/components/objects/FileList.vue @@ -150,7 +150,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: false, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/platform/src/components/layouts/LayoutTable.vue b/apps/vben5/packages/@abp/platform/src/components/layouts/LayoutTable.vue index ab95a2651..7d3301f6c 100644 --- a/apps/vben5/packages/@abp/platform/src/components/layouts/LayoutTable.vue +++ b/apps/vben5/packages/@abp/platform/src/components/layouts/LayoutTable.vue @@ -144,7 +144,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/platform/src/components/messages/email/EmailMessageTable.vue b/apps/vben5/packages/@abp/platform/src/components/messages/email/EmailMessageTable.vue index ff8a59da4..ca9b8f00d 100644 --- a/apps/vben5/packages/@abp/platform/src/components/messages/email/EmailMessageTable.vue +++ b/apps/vben5/packages/@abp/platform/src/components/messages/email/EmailMessageTable.vue @@ -207,7 +207,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/platform/src/components/messages/sms/SmsMessageTable.vue b/apps/vben5/packages/@abp/platform/src/components/messages/sms/SmsMessageTable.vue index de596fc83..a967b4200 100644 --- a/apps/vben5/packages/@abp/platform/src/components/messages/sms/SmsMessageTable.vue +++ b/apps/vben5/packages/@abp/platform/src/components/messages/sms/SmsMessageTable.vue @@ -188,7 +188,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/saas/src/components/editions/EditionTable.vue b/apps/vben5/packages/@abp/saas/src/components/editions/EditionTable.vue index e8ed79ccd..b23665a05 100644 --- a/apps/vben5/packages/@abp/saas/src/components/editions/EditionTable.vue +++ b/apps/vben5/packages/@abp/saas/src/components/editions/EditionTable.vue @@ -103,7 +103,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/saas/src/components/tenants/TenantTable.vue b/apps/vben5/packages/@abp/saas/src/components/tenants/TenantTable.vue index e7973cee5..db6724f09 100644 --- a/apps/vben5/packages/@abp/saas/src/components/tenants/TenantTable.vue +++ b/apps/vben5/packages/@abp/saas/src/components/tenants/TenantTable.vue @@ -128,7 +128,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/tasks/src/components/job-infos/JobInfoTable.vue b/apps/vben5/packages/@abp/tasks/src/components/job-infos/JobInfoTable.vue index f656debe9..a2976b94b 100644 --- a/apps/vben5/packages/@abp/tasks/src/components/job-infos/JobInfoTable.vue +++ b/apps/vben5/packages/@abp/tasks/src/components/job-infos/JobInfoTable.vue @@ -387,7 +387,8 @@ const gridOptions: VxeGridProps = { }, }, toolbarConfig: { - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, }, diff --git a/apps/vben5/packages/@abp/webhooks/src/components/send-attempts/WebhookSendAttemptTable.vue b/apps/vben5/packages/@abp/webhooks/src/components/send-attempts/WebhookSendAttemptTable.vue index ac89bb49d..dbe1913f2 100644 --- a/apps/vben5/packages/@abp/webhooks/src/components/send-attempts/WebhookSendAttemptTable.vue +++ b/apps/vben5/packages/@abp/webhooks/src/components/send-attempts/WebhookSendAttemptTable.vue @@ -211,7 +211,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, diff --git a/apps/vben5/packages/@abp/webhooks/src/components/subscriptions/WebhookSubscriptionTable.vue b/apps/vben5/packages/@abp/webhooks/src/components/subscriptions/WebhookSubscriptionTable.vue index 0634ecaff..7f5952a9c 100644 --- a/apps/vben5/packages/@abp/webhooks/src/components/subscriptions/WebhookSubscriptionTable.vue +++ b/apps/vben5/packages/@abp/webhooks/src/components/subscriptions/WebhookSubscriptionTable.vue @@ -210,7 +210,8 @@ const gridOptions: VxeGridProps = { toolbarConfig: { custom: true, export: true, - refresh: { + refresh: true, + refreshOptions: { code: 'query', }, zoom: true, From 24828043ef08c6e344c0fa1e99ada34a18041c5a Mon Sep 17 00:00:00 2001 From: zhang Date: Tue, 9 Jun 2026 23:44:34 +0200 Subject: [PATCH 5/6] fix(vben5): display audit log help url --- .../@abp/auditing/src/components/loggings/LoggingDrawer.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/vben5/packages/@abp/auditing/src/components/loggings/LoggingDrawer.vue b/apps/vben5/packages/@abp/auditing/src/components/loggings/LoggingDrawer.vue index 2db94f182..ede5a944e 100644 --- a/apps/vben5/packages/@abp/auditing/src/components/loggings/LoggingDrawer.vue +++ b/apps/vben5/packages/@abp/auditing/src/components/loggings/LoggingDrawer.vue @@ -219,7 +219,7 @@ async function onGet(id: string) { {{ row.hResult }} - {{ row.helpURL }} + {{ row.helpUrl }} From 2cbfc05810a3781dbe52d33180b3eaffe1f3a7b3 Mon Sep 17 00:00:00 2001 From: zhang Date: Tue, 9 Jun 2026 23:59:04 +0200 Subject: [PATCH 6/6] fix(identity): add missing session synchronizer usings --- .../Session/IdentitySessionUserInactiveSynchronizer.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/aspnet-core/modules/identity/LINGYUN.Abp.Identity.Domain/LINGYUN/Abp/Identity/Session/IdentitySessionUserInactiveSynchronizer.cs b/aspnet-core/modules/identity/LINGYUN.Abp.Identity.Domain/LINGYUN/Abp/Identity/Session/IdentitySessionUserInactiveSynchronizer.cs index 8c26cdfb6..022bb26d6 100644 --- a/aspnet-core/modules/identity/LINGYUN.Abp.Identity.Domain/LINGYUN/Abp/Identity/Session/IdentitySessionUserInactiveSynchronizer.cs +++ b/aspnet-core/modules/identity/LINGYUN.Abp.Identity.Domain/LINGYUN/Abp/Identity/Session/IdentitySessionUserInactiveSynchronizer.cs @@ -1,4 +1,10 @@ -namespace LINGYUN.Abp.Identity.Session; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Domain.Entities.Events.Distributed; +using Volo.Abp.EventBus.Distributed; +using Volo.Abp.Uow; + +namespace LINGYUN.Abp.Identity.Session; public class IdentitySessionUserInactiveSynchronizer : IDistributedEventHandler>,