diff --git a/meta/apps/caseapp/page/g0qcqxzd.json b/meta/apps/caseapp/page/g0qcqxzd.json index d0b6cc9e1b8a614f5c2741365175c3dfb7c29520..ebe8316c74d2900602c349b04db63b457594149c 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 9ac8323eb8096fcf2f8757a1bd1c9c325e10d3d3..efd56df02229ed5188a60597c7a9b2b12d1172d5 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 6a81441ac8b52132dd8826f780fc8f856b8563dd..2db38b9381655201ebc6b8bb77ac80f6a27f3e2b 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 cbf2d837bbcc3b30b426cc3bc3c17774fc834577..5d01cee6c73ba581766d6e29ee625f4713b1a1ef 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 86daf39725beebf93645059d893fabccd0e370bc..3451e3129a90956b9be745317ad09a9b8047e59d 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 a57bd4559ff14b68c4990cf63795c808374044ec..8657411c861c52726adb53d2b4bc1581269398a5 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 b46e8239d7ea14e17fb68347ccf93f733ea23a26..64b7a668ef7b2ece90de2b8a5eb365051b36393f 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 2b134185626d06cfcdb514779c057ede845e4f71..6eb61a3373db89ea19fb9a27abf97e44f6ea6d33 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 fe2970d5e53b11fc85485e29583a65a21e911e67..b5dbc8745439d51ee48fe600ffdf23dea151c6c5 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 884e23034a4f102adf6b759142e85c6c960faa6e..51f92742e0bbc909b8498ba76372c868354ae05f 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 6d0e0b542d708142adabed220af38eeb4cb0e4f4..90190b36b4e0093fb8b9f889853e4dbf3a560cc9 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 fb219ba5637d7fb60f233c927eca645feaf5bd31..9690860c2992c691feed118bd0780b21dc170f32 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 2709ce2c6ac4adc56ff019aea7829dc1677593e7..a0a27e3e62929b5b3c3a756df2a29f84faf92971 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 b3810660d7a7a9ce84447d6c1b862efff177a2a8..c87689c628577ac685292ecd00d11f4b146b5e24 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 08b1371480f87e4d31c53c006c1ff965de22c3e7..58a688958cc4871791585bf16f42027305d9cd79 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 0b70deca5b12936036a0d4bb15523008f5a95253..6990374c909eaac23a911eb625477b29e176785e 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 3c13a5c10f4cf137e0bb269eeef9cd7c497f8dfb..e2125e2048b3bf4e2a73a3691b0887969024cb83 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); } })); }