From 57fd4a34312e7a431eed6e7cd7e2aefd92656fce Mon Sep 17 00:00:00 2001 From: "{iliuhai@aliyun.com}" Date: Sun, 25 May 2025 01:41:43 +0800 Subject: [PATCH] =?UTF-8?q?Table=20=E7=BB=84=E4=BB=B6=20RenderEngine=20?= =?UTF-8?q?=E4=B8=AD=E6=94=AF=E6=8C=81=E6=B8=B2=E6=9F=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- meta/apps/caseapp/page/g0qcqxzd.json | 17 +------------ .../LowCodeComponentBase.cs | 4 --- .../Components/LcTable.razor | 4 +-- .../ExtraComponents/LcLakexEditor.razor | 2 +- .../ExtraComponents/LcMonacoEditor.razor | 4 +-- .../H.LowCode.Components.Defaults.csproj | 2 -- .../_Imports.razor | 3 --- .../ComponentPartsDataSourceSchema.cs | 1 - .../ComponentSchemaBase.cs | 3 +-- .../ComponentDataSourceSchema.cs | 4 --- .../DesignEngineDynamicComponentBase.cs | 2 +- .../DesignEngineApplicationContractsModule.cs | 17 +++++++++++-- ....DesignEngine.Application.Contracts.csproj | 1 + .../Pages/DesignPage.razor | 24 ++++++++++++------ .../H.LowCode.DesignEngine/_Imports.razor | 1 + src/Directory.Packages.props | 25 ++++++++++--------- .../RenderEngineDynamicComponentBase.cs | 25 +++++++++++-------- 17 files changed, 69 insertions(+), 70 deletions(-) diff --git a/meta/apps/caseapp/page/g0qcqxzd.json b/meta/apps/caseapp/page/g0qcqxzd.json index d0b6cc9e..ebe8316c 100644 --- a/meta/apps/caseapp/page/g0qcqxzd.json +++ b/meta/apps/caseapp/page/g0qcqxzd.json @@ -1,16 +1 @@ -{ - "comps": [ - - ], - "aid": "caseapp", - "id": "g0qcqxzd", - "n": "基础列表", - "order": 31, - "pt": 2, - "pageprop": { - "playout": 2, - "ds": {} - }, - "ds": {}, - "modifiedTime": "2025-04-03T02:11:21.4515616Z" -} \ No newline at end of file +{"comps":[{"compid":"f2b54b4c","libid":"antdesign","cn":"Table","ct":1,"frag":{"dt":"H.LowCode.Components.Defaults.LcTable, H.LowCode.Components.Defaults","t":"H.LowCode.Components.Defaults.LcTable, H.LowCode.Components.Defaults","attrs":[]},"ds":{"dsgt":2,"dsv":"{\"tcols\":[{\"id\":\"i79talu1\",\"n\":\"No\",\"t\":\"学号\"},{\"id\":\"vwvoqrn1s\",\"n\":\"Name\",\"t\":\"姓名\"},{\"id\":\"ap0ceewr\",\"n\":\"Age\",\"t\":\"年龄\"},{\"id\":\"ck9b6mez\",\"n\":\"Class\",\"t\":\"班级\"}],\"searchs\":[],\"btns\":[]}"},"attrdefgroups":[],"childs":[],"order":30,"pub":1,"mt":"2025-05-22T14:26:07.7475675Z","id":"fqmcwygx","pid":"nupedwmm3","n":"Table_926","lb":"表格-A","hlb":true,"sptds":true,"stl":{"itemw":24,"itemh":300,"labelw":180},"ev":{}}],"aid":"caseapp","id":"g0qcqxzd","n":"基础列表","order":31,"pt":2,"pageprop":{"playout":2,"ds":{}},"ds":{},"mt":"2025-05-24T11:36:58.9214723Z"} \ No newline at end of file diff --git a/src/Common/H.LowCode.ComponentBase/LowCodeComponentBase.cs b/src/Common/H.LowCode.ComponentBase/LowCodeComponentBase.cs index 9ac8323e..efd56df0 100644 --- a/src/Common/H.LowCode.ComponentBase/LowCodeComponentBase.cs +++ b/src/Common/H.LowCode.ComponentBase/LowCodeComponentBase.cs @@ -1,11 +1,7 @@ using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.WebUtilities; using System; -using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using Volo.Abp.AspNetCore.Components; namespace H.LowCode.ComponentBase; diff --git a/src/Common/H.LowCode.Components.Defaults/Components/LcTable.razor b/src/Common/H.LowCode.Components.Defaults/Components/LcTable.razor index 6a81441a..2db38b93 100644 --- a/src/Common/H.LowCode.Components.Defaults/Components/LcTable.razor +++ b/src/Common/H.LowCode.Components.Defaults/Components/LcTable.razor @@ -43,7 +43,7 @@ @code { [Parameter] - public ComponentPartsSchema Component { get; set; } + public ComponentDataSourceSchemaBase DataSource { get; set; } private TablePropertySchema _tableSchema = new(); private List> _data; @@ -70,7 +70,7 @@ private TablePropertySchema GetTableSchemaAsync() { - var dataSource = Component.DataSource?.DataSourceValue; + var dataSource = DataSource?.DataSourceValue; if (dataSource.IsNullOrWhiteSpace() || dataSource.Trim().Equals("[]")) { var tableSchema = new TablePropertySchema(); diff --git a/src/Common/H.LowCode.Components.Defaults/ExtraComponents/LcLakexEditor.razor b/src/Common/H.LowCode.Components.Defaults/ExtraComponents/LcLakexEditor.razor index cbf2d837..5d01cee6 100644 --- a/src/Common/H.LowCode.Components.Defaults/ExtraComponents/LcLakexEditor.razor +++ b/src/Common/H.LowCode.Components.Defaults/ExtraComponents/LcLakexEditor.razor @@ -15,7 +15,7 @@ @code { [Parameter] - public ComponentPartsSchema Component { get; set; } + public ComponentSchemaBase Component { get; set; } /// /// 保存初始的 Component,避免跟随 Component 变化 diff --git a/src/Common/H.LowCode.Components.Defaults/ExtraComponents/LcMonacoEditor.razor b/src/Common/H.LowCode.Components.Defaults/ExtraComponents/LcMonacoEditor.razor index 86daf397..3451e312 100644 --- a/src/Common/H.LowCode.Components.Defaults/ExtraComponents/LcMonacoEditor.razor +++ b/src/Common/H.LowCode.Components.Defaults/ExtraComponents/LcMonacoEditor.razor @@ -9,12 +9,12 @@ @code { [Parameter] - public ComponentPartsSchema Component { get; set; } + public ComponentSchemaBase Component { get; set; } /// /// 保存初始的 Component,避免跟随 Component 变化 /// - private ComponentPartsSchema _component; + private ComponentSchemaBase _component; [Parameter] public string Language { get; set; } = "javascript"; diff --git a/src/Common/H.LowCode.Components.Defaults/H.LowCode.Components.Defaults.csproj b/src/Common/H.LowCode.Components.Defaults/H.LowCode.Components.Defaults.csproj index a57bd455..8657411c 100644 --- a/src/Common/H.LowCode.Components.Defaults/H.LowCode.Components.Defaults.csproj +++ b/src/Common/H.LowCode.Components.Defaults/H.LowCode.Components.Defaults.csproj @@ -15,8 +15,6 @@ - - diff --git a/src/Common/H.LowCode.Components.Defaults/_Imports.razor b/src/Common/H.LowCode.Components.Defaults/_Imports.razor index b46e8239..64b7a668 100644 --- a/src/Common/H.LowCode.Components.Defaults/_Imports.razor +++ b/src/Common/H.LowCode.Components.Defaults/_Imports.razor @@ -6,8 +6,5 @@ @using AntDesign @using AntDesign.TableModels @using H.LowCode.ComponentBase -@using H.LowCode.DesignEngine.Abstraction -@using H.LowCode.DesignEngine @using H.LowCode.MetaSchema -@using H.LowCode.MetaSchema.DesignEngine @using H.Util.Blazor \ No newline at end of file diff --git a/src/Common/H.LowCode.MetaSchema.DesignEngine/DataSourceSchemas/ComponentPartsDataSourceSchema.cs b/src/Common/H.LowCode.MetaSchema.DesignEngine/DataSourceSchemas/ComponentPartsDataSourceSchema.cs index 2b134185..6eb61a33 100644 --- a/src/Common/H.LowCode.MetaSchema.DesignEngine/DataSourceSchemas/ComponentPartsDataSourceSchema.cs +++ b/src/Common/H.LowCode.MetaSchema.DesignEngine/DataSourceSchemas/ComponentPartsDataSourceSchema.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.Json.Serialization; -using System.Threading.Tasks; namespace H.LowCode.MetaSchema.DesignEngine; diff --git a/src/Common/H.LowCode.MetaSchema/ComponentSchemaBase.cs b/src/Common/H.LowCode.MetaSchema/ComponentSchemaBase.cs index fe2970d5..b5dbc874 100644 --- a/src/Common/H.LowCode.MetaSchema/ComponentSchemaBase.cs +++ b/src/Common/H.LowCode.MetaSchema/ComponentSchemaBase.cs @@ -1,5 +1,4 @@ -using H.Extensions.System; -using H.Util.Ids; +using H.Util.Ids; using System.Text.Json.Serialization; namespace H.LowCode.MetaSchema; diff --git a/src/Common/H.LowCode.MetaSchema/DataSourceSchemas/ComponentDataSourceSchema.cs b/src/Common/H.LowCode.MetaSchema/DataSourceSchemas/ComponentDataSourceSchema.cs index 884e2303..51f92742 100644 --- a/src/Common/H.LowCode.MetaSchema/DataSourceSchemas/ComponentDataSourceSchema.cs +++ b/src/Common/H.LowCode.MetaSchema/DataSourceSchemas/ComponentDataSourceSchema.cs @@ -1,9 +1,5 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Text.Json.Serialization; -using System.Threading.Tasks; namespace H.LowCode.MetaSchema; diff --git a/src/DesignEngine/H.LowCode.DesignEngine.Abstraction/DesignEngineDynamicComponentBase.cs b/src/DesignEngine/H.LowCode.DesignEngine.Abstraction/DesignEngineDynamicComponentBase.cs index 6d0e0b54..90190b36 100644 --- a/src/DesignEngine/H.LowCode.DesignEngine.Abstraction/DesignEngineDynamicComponentBase.cs +++ b/src/DesignEngine/H.LowCode.DesignEngine.Abstraction/DesignEngineDynamicComponentBase.cs @@ -87,7 +87,7 @@ public abstract class DesignEngineDynamicComponentBase : LowCodeDynamicComponent } else if (dataSource.DataSourceGroupType == ComponentDataSourceGroupTypeEnum.Table) { - builder.AddAttribute(index++, "Component", component); + builder.AddAttribute(index++, "DataSource", component.DataSource); } } diff --git a/src/DesignEngine/H.LowCode.DesignEngine.Application.Contracts/DesignEngineApplicationContractsModule.cs b/src/DesignEngine/H.LowCode.DesignEngine.Application.Contracts/DesignEngineApplicationContractsModule.cs index fb219ba5..9690860c 100644 --- a/src/DesignEngine/H.LowCode.DesignEngine.Application.Contracts/DesignEngineApplicationContractsModule.cs +++ b/src/DesignEngine/H.LowCode.DesignEngine.Application.Contracts/DesignEngineApplicationContractsModule.cs @@ -1,13 +1,26 @@ -using System; +using Microsoft.Extensions.DependencyInjection; +using System; using System.Collections.Generic; using System.Linq; +using System.Reflection; using System.Text; +using System.Threading; using System.Threading.Tasks; using Volo.Abp.Modularity; +using Volo.Abp.Validation; namespace H.LowCode.DesignEngine.Application.Contracts; public class DesignEngineApplicationContractsModule : AbpModule { - + public override void ConfigureServices(ServiceConfigurationContext context) + { + //TODO: 临时解决异常: Property accessor 'IsSecurityCritical' on object 'System.Reflection.RuntimeMethodInfo' threw the following exception:'The method or operation is not implemented.' + // System.Reflection.TargetInvocationException: Property accessor 'IsSecurityCritical' on object 'System.Reflection.RuntimeMethodInfo' threw the following exception:'The method or operation is not implemented.' + Configure(options => + { + options.IgnoredTypes.Add(typeof(MethodBase)); + options.IgnoredTypes.Add(typeof(MethodInfo)); + }); + } } diff --git a/src/DesignEngine/H.LowCode.DesignEngine.Application.Contracts/H.LowCode.DesignEngine.Application.Contracts.csproj b/src/DesignEngine/H.LowCode.DesignEngine.Application.Contracts/H.LowCode.DesignEngine.Application.Contracts.csproj index 2709ce2c..a0a27e3e 100644 --- a/src/DesignEngine/H.LowCode.DesignEngine.Application.Contracts/H.LowCode.DesignEngine.Application.Contracts.csproj +++ b/src/DesignEngine/H.LowCode.DesignEngine.Application.Contracts/H.LowCode.DesignEngine.Application.Contracts.csproj @@ -3,6 +3,7 @@ + diff --git a/src/DesignEngine/H.LowCode.DesignEngine/Pages/DesignPage.razor b/src/DesignEngine/H.LowCode.DesignEngine/Pages/DesignPage.razor index b3810660..c87689c6 100644 --- a/src/DesignEngine/H.LowCode.DesignEngine/Pages/DesignPage.razor +++ b/src/DesignEngine/H.LowCode.DesignEngine/Pages/DesignPage.razor @@ -96,19 +96,27 @@ return; } - var isSuccess = await PageAppService.SaveAsync(pageSchema); - if (isSuccess) + try { - if (_isNewPage) + var isSuccess = await PageAppService.SaveAsync(pageSchema); + if (isSuccess) { - _isNewPage = false; - base.NavigateTo($"/designer/{pageSchema.AppId}/{pageSchema.Id}"); - } + if (_isNewPage) + { + _isNewPage = false; + base.NavigateTo($"/designer/{pageSchema.AppId}/{pageSchema.Id}"); + } - await Message.SuccessAsync("保存成功"); + await Message.SuccessAsync("保存成功"); + } + else + { + await Message.ErrorAsync($"保存失败"); + } } - else + catch (Exception ex) { + Logger.LogError(ex, $"保存页面失败,{ex.Message}"); await Message.ErrorAsync($"保存失败"); } } diff --git a/src/DesignEngine/H.LowCode.DesignEngine/_Imports.razor b/src/DesignEngine/H.LowCode.DesignEngine/_Imports.razor index 08b13714..58a68895 100644 --- a/src/DesignEngine/H.LowCode.DesignEngine/_Imports.razor +++ b/src/DesignEngine/H.LowCode.DesignEngine/_Imports.razor @@ -2,6 +2,7 @@ @using Microsoft.AspNetCore.Components.Forms @using Microsoft.AspNetCore.Components.Routing @using Microsoft.Extensions.DependencyInjection +@using Microsoft.Extensions.Logging @using System.Net @using System.Net.Http @using System.Net.Http.Json diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 0b70deca..6990374c 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -27,18 +27,19 @@ - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/src/RenderEngine/H.LowCode.RenderEngine.Abstraction/RenderEngineDynamicComponentBase.cs b/src/RenderEngine/H.LowCode.RenderEngine.Abstraction/RenderEngineDynamicComponentBase.cs index 3c13a5c1..e2125e20 100644 --- a/src/RenderEngine/H.LowCode.RenderEngine.Abstraction/RenderEngineDynamicComponentBase.cs +++ b/src/RenderEngine/H.LowCode.RenderEngine.Abstraction/RenderEngineDynamicComponentBase.cs @@ -1,14 +1,10 @@ using Microsoft.AspNetCore.Components; using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using H.LowCode.MetaSchema; using H.LowCode.MetaSchema.RenderEngine; using Microsoft.AspNetCore.Components.Rendering; using H.LowCode.ComponentBase; using AntDesign; -using System.ComponentModel; namespace H.LowCode.RenderEngine.Abstraction; @@ -25,11 +21,13 @@ public abstract class RenderEngineDynamicComponentBase : LowCodeDynamicComponent int index = 0; RenderComponentRecursive(component.Id, component.IsSupportDataSource, - component.DataSource, component.Fragment, builder, index); + component, component.DataSource, component.Fragment, builder, index); }; private void RenderComponentRecursive( - string componentId, bool isSupportDataSource, ComponentDataSourceSchema dataSource, + string componentId, bool isSupportDataSource, + ComponentSchema component, + ComponentDataSourceSchema dataSource, ComponentFragmentSchema componentFragment, RenderTreeBuilder builder, int index) { @@ -51,18 +49,19 @@ public abstract class RenderEngineDynamicComponentBase : LowCodeDynamicComponent if (isSupportDataSource) { //渲染数据源 - RenderDataSource(componentId, dataSource, builder, index); + RenderDataSource(componentId, component, dataSource, builder, index); } else if (componentFragment.HasChildren) { //渲染 ChildContent - RenderChildFragments(componentId, componentFragment, builder, index); + RenderChildFragments(componentId, component, componentFragment, builder, index); } builder.CloseComponent(); } private void RenderDataSource(string componentId, + ComponentSchema component, ComponentDataSourceSchema dataSource, RenderTreeBuilder builder, int index) { @@ -84,6 +83,10 @@ public abstract class RenderEngineDynamicComponentBase : LowCodeDynamicComponent break; } } + else if (dataSource.DataSourceGroupType == ComponentDataSourceGroupTypeEnum.Table) + { + builder.AddAttribute(index++, "DataSource", component.DataSource); + } } private void RenderOptionDataSource(string componentId, @@ -125,7 +128,9 @@ public abstract class RenderEngineDynamicComponentBase : LowCodeDynamicComponent })); } - private void RenderChildFragments(string componentId, ComponentFragmentSchema componentFragment, + private void RenderChildFragments(string componentId, + ComponentSchema component, + ComponentFragmentSchema componentFragment, RenderTreeBuilder builder, int index) { if (componentFragment.HasChildren == false) @@ -136,7 +141,7 @@ public abstract class RenderEngineDynamicComponentBase : LowCodeDynamicComponent foreach (var childFragment in componentFragment.ChildFragments) { RenderComponentRecursive(componentId, false, - null, childFragment, childBuilder, index); + component, null, childFragment, childBuilder, index); } })); } -- Gitee