From 5bf657ab45d79db8c4fdb88457677e63eff0ed59 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 28 Nov 2025 09:30:02 +0800 Subject: [PATCH] Add IsReadOnly and IsVisible to extension property modals --- .../ExtensionProperties.razor.cs | 21 +++++++++++++++++-- .../ExtensionPropertyUiFormConfiguration.cs | 5 +++++ .../ModuleExtensionConfigurationHelper.cs | 4 ++++ .../ObjectExtensionPropertyInfo.cs | 18 ++++++++++++++++ 4 files changed, 46 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionProperties.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionProperties.razor.cs index 27f69f3ba4..be9839b612 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionProperties.razor.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/ObjectExtending/ExtensionProperties.razor.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Immutable; +using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Components; using Microsoft.Extensions.Localization; @@ -29,8 +30,24 @@ public partial class ExtensionProperties : Component public ImmutableList Properties { get; set; } = ImmutableList.Empty; - protected async override Task OnInitializedAsync() + protected override async Task OnInitializedAsync() { - Properties = await ObjectExtensionManager.Instance.GetPropertiesAndCheckPolicyAsync(ServiceProvider); + var properties = (await ObjectExtensionManager.Instance.GetPropertiesAndCheckPolicyAsync(ServiceProvider)).ToList(); + + switch (ModalType) + { + case ExtensionPropertyModalType.CreateModal: + properties = properties + .Where(p => p.UI.CreateModal.IsVisible) + .ToList(); + break; + case ExtensionPropertyModalType.EditModal: + properties = properties + .Where(p => p.UI.EditModal.IsVisible) + .ToList(); + break; + } + + Properties = properties.ToImmutableList(); } } diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyUiFormConfiguration.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyUiFormConfiguration.cs index d1d041a9b1..9a95cd6481 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyUiFormConfiguration.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ExtensionPropertyUiFormConfiguration.cs @@ -6,4 +6,9 @@ public class ExtensionPropertyUiFormConfiguration /// Default: true. /// public bool IsVisible { get; set; } = true; + + /// + /// Default: false. + /// + public bool IsReadOnly { get; set; } = false; } diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationHelper.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationHelper.cs index 9a13b17028..40b9e8feb6 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationHelper.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/Modularity/ModuleExtensionConfigurationHelper.cs @@ -175,6 +175,10 @@ public static class ModuleExtensionConfigurationHelper property.DefaultValueFactory = propertyConfig.DefaultValueFactory; property.Lookup = propertyConfig.UI.Lookup; property.UI.Order = propertyConfig.UI.Order; + property.UI.CreateModal.IsVisible = propertyConfig.UI.OnCreateForm.IsVisible; + property.UI.CreateModal.IsReadOnly = propertyConfig.UI.OnCreateForm.IsReadOnly; + property.UI.EditModal.IsVisible = propertyConfig.UI.OnEditForm.IsVisible; + property.UI.EditModal.IsReadOnly = propertyConfig.UI.OnEditForm.IsReadOnly; property.Policy = propertyConfig.Policy; foreach (var configuration in propertyConfig.Configuration) { diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfo.cs b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfo.cs index e5ed79b99e..35c40e8043 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfo.cs +++ b/framework/src/Volo.Abp.ObjectExtending/Volo/Abp/ObjectExtending/ObjectExtensionPropertyInfo.cs @@ -90,16 +90,34 @@ public class ObjectExtensionPropertyInfo : IHasNameWithLocalizableDisplayName, I { public int Order { get; set; } + public ExtensionPropertyUICreateModal CreateModal { get; set; } + public ExtensionPropertyUIEditModal EditModal { get; set; } public ExtensionPropertyUI() { + CreateModal = new ExtensionPropertyUICreateModal(); EditModal = new ExtensionPropertyUIEditModal(); } } + public class ExtensionPropertyUICreateModal + { + /// + /// Default: true. + /// + public bool IsVisible { get; set; } = true; + + public bool IsReadOnly { get; set; } + } + public class ExtensionPropertyUIEditModal { + /// + /// Default: true. + /// + public bool IsVisible { get; set; } = true; + public bool IsReadOnly { get; set; } } }