using JNPF.Common.Security; @*是否需要上传文件引用*@ @if(Model.IsUploading) { @:using JNPF.Common.Models; } using JNPF.@(Model.NameSpace).Entitys.Dto.@(Model.ClassName); using Mapster; namespace JNPF.@(Model.NameSpace).Entitys.Mapper.@(Model.ClassName); public class Mapper : IRegister { public void Register(TypeAdapterConfig config) { @*判断是否需要映射*@ @if(Model.IsMapper) { @*判断WebType 1-纯表单,2-常规表单*@ @switch(Model.WebType) { case 1: @{GetCrInputToEntity(); } @if(Model.EnableFlow || Model.Type == 3){ GetEntityToInfoOutput(); } break; case 2: @{GetCrInputToEntity(); } @{GetEntityToInfoOutput();} @if(Model.IsInlineEditor) { GetListOutputToInlineEditorOutput(); } break; } } } } @{ @*新增输入转实体*@ void GetCrInputToEntity() { @:config.ForType<@(Model.ClassName)CrInput, @(Model.ClassName)Entity>() @*循环表字段*@ @foreach (var column in Model.TableField) { @*判断jnpfKey不为空*@ @if (column.jnpfKey != null) { switch(column.jnpfKey) { @*下拉框控件*@ case "select": case "userSelect": case "treeSelect": case "depSelect": case "posSelect": case "popupTableSelect": case "roleSelect": case "groupSelect": case "usersSelect": @*是否为多选*@ @if(column.IsMultiple) { @:.Map(dest => dest.@(column.ColumnName), src => src.@(column.LowerColumnName) != null && src.@(column.LowerColumnName).Count > 0 ? src.@(column.LowerColumnName).ToJsonString() : null) } break; @*复选框、级联、省市区、图片上传、文件上传*@ case "checkbox": case "cascader": case "comSelect": case "address": case "uploadImg": case "uploadFz": @:.Map(dest => dest.@(column.ColumnName), src => src.@(column.LowerColumnName) != null && src.@(column.LowerColumnName).Count > 0 ? src.@(column.LowerColumnName).ToJsonString() : null) break; } } } @:; } @*新增输入转实体*@ void GetEntityToDetailOutput() { @:config.ForType<@(Model.ClassName)Entity, @(Model.ClassName)DetailOutput>() @*循环表字段*@ @foreach (var column in Model.TableField) { @if (column.jnpfKey != null) { switch(column.jnpfKey) { case "uploadImg": case "uploadFz": @:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject>() : new List()) break; } } } @:; } } @{ @*实体转详情输出*@ void GetEntityToInfoOutput() { @:config.ForType<@(Model.ClassName)Entity, @(Model.ClassName)InfoOutput>() @foreach (var column in Model.TableField) { @if (column.jnpfKey != null) { switch(column.jnpfKey) { case "select": case "userSelect": case "treeSelect": case "depSelect": case "posSelect": case "popupTableSelect": case "roleSelect": case "groupSelect": case "usersSelect": @if(column.IsMultiple) { @:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject>() : null) } break; case "cascader": case "comSelect": case "address": @if(column.IsMultiple) { @:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject>>() : null) } else { @:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject>() : null) } break; case "checkbox": @:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject>() : null) break; case "uploadImg": case "uploadFz": @:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject>() : new List()) break; case "createTime": @:.Map(dest => dest.@(@column.LowerColumnName), src => string.Format("{0:yyyy-MM-dd HH:mm}", src.@(@column.ColumnName))) break; case "modifyTime": @:.Map(dest => dest.@(@column.LowerColumnName), src => src.@(@column.ColumnName) != null ? string.Format("{0:yyyy-MM-dd HH:mm}", src.@(@column.ColumnName)) : null) break; } } } @:; } @*实体转修改输入*@ void GetEntityToUpInput() { @:config.ForType<@(Model.ClassName)Entity, @(Model.ClassName)UpInput>() @foreach (var column in Model.TableField) { @if (column.jnpfKey != null) { switch(column.jnpfKey) { case "select": case "userSelect": case "treeSelect": case "depSelect": case "posSelect": case "popupTableSelect": case "roleSelect": case "groupSelect": case "usersSelect": @if(column.IsMultiple) { @:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject>() : null) } break; case "cascader": case "comSelect": case "address": @if(column.IsMultiple) { @:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject>>() : null) }else{ @:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject>() : null) } break; case "checkbox": @:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject>() : null) break; case "uploadImg": case "uploadFz": @:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.ColumnName) != null ? src.@(column.ColumnName).ToObject>() : null) break; } } } @:; } @*列表转行内编辑输出*@ void GetListOutputToInlineEditorOutput() { @:config.ForType<@(Model.ClassName)ListOutput, @(Model.ClassName)InlineEditorOutput>() @foreach (var column in Model.TableField) { @if (column.IsShow) { switch(column.jnpfKey) { case "select": case "userSelect": case "treeSelect": case "depSelect": case "posSelect": case "popupTableSelect": case "roleSelect": case "groupSelect": case "usersSelect": @if(column.IsMultiple) { @:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.LowerColumnName) != null ? src.@(column.LowerColumnName).ToObject>() : new List()) } break; case "cascader": case "comSelect": case "address": @if(column.IsMultiple) { @:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.LowerColumnName) != null ? src.@(column.LowerColumnName).ToObject>>() : new List>()) } else { @:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.LowerColumnName) != null ? src.@(column.LowerColumnName).ToObject>() : new List()) } break; case "checkbox": @:.Map(dest => dest.@(column.LowerColumnName), src => src.@(column.LowerColumnName) != null ? src.@(column.LowerColumnName).ToObject>() : new List()) break; } } } @:; } }