[break] ValueTuple<IEntity, DataField>修改为EntityField类,下游用户如果自定义了表单项,将会导致错误,需要把model也修改为EntityField。
This commit is contained in:
parent
11b211a8d9
commit
b0bfff2bde
|
@ -71,7 +71,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@await Html.PartialAsync("_List_Data_Item", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_List_Data_Item", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
@if (this.Has(PermissionFlags.Detail, PermissionFlags.Update, PermissionFlags.Delete))
|
||||
|
|
|
@ -122,7 +122,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@await Html.PartialAsync("_List_Data_Item", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_List_Data_Item", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
</tr>
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@await Html.PartialAsync("_Form_Editor", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Editor", new EntityField(entity, item))
|
||||
}
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@await Html.PartialAsync("_Form_Group", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Group", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,33 +1,33 @@
|
|||
@using NewLife;
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube.ViewModels
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var pair = (ValueTuple<IEntity, DataField>)Model;
|
||||
var entity = pair.Item1;
|
||||
var field = pair.Item2;
|
||||
var entity = Model.Entity;
|
||||
var field = Model.Field;
|
||||
|
||||
var set = NewLife.Cube.CubeSetting.Current;
|
||||
var cls = set.FormGroupClass;
|
||||
if (cls.IsNullOrEmpty()) { cls = "layui-form-item"; }
|
||||
|
||||
var isHide="";
|
||||
var isHide = "";
|
||||
if (field.Name.EqualIgnoreCase("CreateUserID", "CreateUser", "CreateTime", "CreateIP",
|
||||
"UpdateUserID", "UpdateUser", "UpdateTime", "UpdateIP", "StateCode", "StatusCode","Auditor","AuditTime","EffectiveTime","DeactivateTime","BomDetailedIDs"))
|
||||
"UpdateUserID", "UpdateUser", "UpdateTime", "UpdateIP", "StateCode", "StatusCode", "Auditor", "AuditTime", "EffectiveTime", "DeactivateTime", "BomDetailedIDs"))
|
||||
{
|
||||
isHide="layui-hide";
|
||||
isHide = "layui-hide";
|
||||
}
|
||||
}
|
||||
@if (field.IsBigText())
|
||||
{
|
||||
var isRow = cls.Contains("row") ? "row" : "";
|
||||
<div class="layui-form-item @(isRow) @isHide">
|
||||
@await Html.PartialAsync("_Form_Type_BigText", (Object)Model)
|
||||
@await Html.PartialAsync("_Form_Type_BigText", Model)
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="layui-form-item @isHide">
|
||||
@await Html.PartialAsync("_Form_Type_Item", (Object)Model)
|
||||
@await Html.PartialAsync("_Form_Type_Item", Model)
|
||||
</div>
|
||||
}
|
|
@ -115,7 +115,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@await Html.PartialAsync("_List_Data_Item", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_List_Data_Item", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
</tr>
|
||||
|
|
|
@ -18,6 +18,6 @@
|
|||
*@
|
||||
if (!item.PrimaryKey)
|
||||
{
|
||||
@await Html.PartialAsync("_Form_Group", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Group", new EntityField(entity, item))
|
||||
}
|
||||
}
|
|
@ -1,12 +1,12 @@
|
|||
@using NewLife;
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
|
||||
@{
|
||||
var pair = (ValueTuple<IEntity, DataField>)Model;
|
||||
var entity = pair.Item1;
|
||||
var item = pair.Item2;
|
||||
var entity = Model.Entity;
|
||||
var item = Model.Field;
|
||||
|
||||
var type = item.Type;
|
||||
|
||||
|
@ -38,7 +38,7 @@ else
|
|||
//映射字段
|
||||
if (!item.MapField.IsNullOrEmpty())
|
||||
{
|
||||
@await Html.PartialAsync("_Form_Type_Map", pair)
|
||||
@await Html.PartialAsync("_Form_Type_Map", Model)
|
||||
}
|
||||
//自读属性
|
||||
else if (item.Name.EqualIgnoreCase("ID"))
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
@using NewLife;
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var pair = (ValueTuple<IEntity, DataField>)Model;
|
||||
var entity = pair.Item1;
|
||||
var field = pair.Item2;
|
||||
var entity = Model.Entity;
|
||||
var field = Model.Field;
|
||||
|
||||
var set = NewLife.Cube.CubeSetting.Current;
|
||||
var cls = set.FormGroupClass;
|
||||
|
@ -21,12 +21,12 @@
|
|||
{
|
||||
var isRow = cls.Contains("row") ? "row" : "";
|
||||
<div class="layui-form-item @(isRow) @isHide">
|
||||
@await Html.PartialAsync("_Form_Type_BigText", (Object)Model)
|
||||
@await Html.PartialAsync("_Form_Type_BigText", Model)
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="layui-form-item @isHide">
|
||||
@await Html.PartialAsync("_Form_Type_Item", (Object)Model)
|
||||
@await Html.PartialAsync("_Form_Type_Item", Model)
|
||||
</div>
|
||||
}
|
|
@ -1,11 +1,11 @@
|
|||
@using NewLife;
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var pair = (ValueTuple<IEntity, DataField>)Model;
|
||||
var entity = pair.Item1;
|
||||
var field = pair.Item2;
|
||||
var entity = Model.Entity;
|
||||
var field = Model.Field;
|
||||
|
||||
var fields = ViewBag.Fields as FieldCollection;
|
||||
var dataField = fields.GetField(field.Name);
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
@model ValueTuple<IEntity, DataField>
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var entity = Model.Item1;
|
||||
var field = Model.Item2;
|
||||
var entity = Model.Entity;
|
||||
var field = Model.Field;
|
||||
var fn = field.Name.ToLower();
|
||||
var value = entity[field.Name] as String;
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
@model ValueTuple<IEntity, DataField>
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube
|
||||
@using NewLife.Cube.ViewModels;
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var entity = Model.Item1;
|
||||
var item = Model.Item2;
|
||||
var entity = Model.Entity;
|
||||
var item = Model.Field;
|
||||
|
||||
var fields = ViewBag.Fields as FieldCollection;
|
||||
var dataField = fields.GetField(item.Name) as ListField;
|
||||
|
@ -85,7 +85,7 @@
|
|||
var set = entity.GetType().GetValue("Setting") as IEntityTreeSetting;
|
||||
if (set == null || set.Parent != item.Name)
|
||||
{
|
||||
@await Html.PartialAsync("_Form_Editor", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Editor", new EntityField(entity, item))
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -99,7 +99,7 @@
|
|||
else
|
||||
{
|
||||
@*@Html.ForEditor(item.Name, entity[item.Name], item.Type)*@
|
||||
@await Html.PartialAsync("_Form_Editor", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Editor", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
@model ValueTuple<IEntity, DataField>
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var entity = Model.Item1;
|
||||
var field = Model.Item2;
|
||||
var entity = Model.Entity;
|
||||
var field = Model.Field;
|
||||
var b = entity[field.MapField].ToInt();
|
||||
var fn = field.MapField.ToLower();
|
||||
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@await Html.PartialAsync("_List_Data_Item", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_List_Data_Item", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
<td class="text-center">
|
||||
|
|
|
@ -1,16 +1,12 @@
|
|||
@*
|
||||
For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
|
||||
*@
|
||||
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using Microsoft.AspNetCore.Routing
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var fact = ViewBag.Factory as IEntityFactory;
|
||||
var pair = (ValueTuple<IEntity, DataField>)Model;
|
||||
var entity = pair.Item1;
|
||||
var item = pair.Item2;
|
||||
var entity = Model.Entity;
|
||||
var item = Model.Field;
|
||||
var factory = entity.GetType().AsFactory();
|
||||
|
||||
var value = entity[item.Name];
|
||||
|
@ -41,7 +37,7 @@ else
|
|||
{
|
||||
var key = entity[factory.Unique.Name];
|
||||
var df = item as ListField;
|
||||
<a lay-event="action" data-action="action" lay-data="@Url.Action("SetEnable",null,new { id=key, enable=!bval })">
|
||||
<a lay-event="action" data-action="action" lay-data="@Url.Action("SetEnable", null, new { id = key, enable = !bval })">
|
||||
@await Html.PartialAsync("_Icon_Boolean", bval)
|
||||
</a>
|
||||
}
|
||||
|
@ -151,7 +147,7 @@ else
|
|||
}
|
||||
else if (item.Name.EqualIgnoreCase("CreateIP", "UpdateIP"))
|
||||
{
|
||||
<td title="@((value+"").IPToAddress())">@value</td>
|
||||
<td title="@((value + "").IPToAddress())">@value</td>
|
||||
}
|
||||
else if (item.IsBigText())
|
||||
{
|
||||
|
|
|
@ -1,114 +0,0 @@
|
|||
@model ValueTuple<IEntity, DataField>
|
||||
@using NewLife;
|
||||
@using NewLife.Cube
|
||||
@using NewLife.Cube.ViewModels;
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var entity = Model.Item1;
|
||||
var item = Model.Item2;
|
||||
|
||||
var fields = ViewBag.Fields as FieldCollection;
|
||||
var dataField = fields.GetField(item.Name) as ListField;
|
||||
var dataSource = dataField?.DataSource;
|
||||
|
||||
var err = 0;
|
||||
if (ViewData.ModelState.TryGetValue(item.Name, out var st) && st != null) { err = st.Errors.Count; }
|
||||
|
||||
var des = item.Description.TrimStart(item.DisplayName).TrimStart(",", ".", ",", "。");
|
||||
var display = dataField?.DisplayName ?? item.DisplayName;
|
||||
|
||||
var total = 12;
|
||||
var label = 3;
|
||||
var span = 4;
|
||||
if (err == 0 && des.IsNullOrEmpty())
|
||||
{
|
||||
span = 0;
|
||||
}
|
||||
else if (item.Type == typeof(Boolean) || item.Type.IsEnum)
|
||||
{
|
||||
span += 1;
|
||||
}
|
||||
var input = total - label - span;
|
||||
}
|
||||
<!-- 字段标签(含帮助说明信息) -->
|
||||
<label class="layui-form-label">@display</label>
|
||||
<div class="layui-input-block">
|
||||
@if (display == "授权")
|
||||
{
|
||||
string sss = "";
|
||||
}
|
||||
<!-- 字段编辑框 -->
|
||||
@if (dataSource != null)
|
||||
{
|
||||
@*@Html.ForListBox(item.Name, dataSource(entity, item), entity[item.Name] as String)*@
|
||||
@await Html.PartialAsync("_Form_Type_ListBox", new ListBoxModel(item.Name, dataSource(entity, item), entity[item.Name]))
|
||||
}
|
||||
else
|
||||
{
|
||||
var itemModel = new ItemModel(item.Name, entity[item.Name], item.Type) { Length = item.Length };
|
||||
|
||||
// 系统字段默认不允许编辑,不显示
|
||||
if (item.Name.EqualIgnoreCase("CreateUserID", "CreateUser", "CreateTime", "CreateIP",
|
||||
"UpdateUserID", "UpdateUser", "UpdateTime", "UpdateIP", "StateCode", "StatusCode","Auditor","AuditTime","EffectiveTime","DeactivateTime","BomDetailedIDs"))
|
||||
{
|
||||
@*@Html.ForString(item.Name, (String)entity[item.Name], item.Length, new { @disabled = "disabled" }.ToDictionary())*@
|
||||
itemModel.HtmlAttributes = new { disabled = "disabled" };
|
||||
@await Html.PartialAsync("_Form_Type_String", itemModel)
|
||||
}
|
||||
else
|
||||
{
|
||||
@*@Html.ForEditor(item, entity)*@
|
||||
if (!item.MapField.IsNullOrEmpty() && item.MapProvider != null)
|
||||
{
|
||||
@await Html.PartialAsync("_Form_Type_Map", Model)
|
||||
}
|
||||
else if (item.Readonly)
|
||||
{
|
||||
@await Html.PartialAsync("_Form_Type_String", itemModel)
|
||||
<label class="layui-form-label">@entity[item.Name]</label>
|
||||
}
|
||||
else if (item.Type == typeof(String))
|
||||
{
|
||||
if (item.ItemType.EqualIgnoreCase("file", "image"))
|
||||
{
|
||||
@await Html.PartialAsync("_Form_Type_File", Model)
|
||||
}
|
||||
else
|
||||
{
|
||||
@*@Html.ForString(item.Name, (String)entity[item.Name], item.Length)*@
|
||||
@await Html.PartialAsync("_Form_Type_String", itemModel)
|
||||
}
|
||||
}
|
||||
else if (entity is IEntityTree treeEntity)
|
||||
{
|
||||
var set = entity.GetType().GetValue("Setting") as IEntityTreeSetting;
|
||||
if (set == null || set.Parent != item.Name)
|
||||
{
|
||||
@await Html.PartialAsync("_Form_Editor", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
}
|
||||
else
|
||||
{
|
||||
var root = entity.GetType().GetValue("Root") as IEntityTree;
|
||||
// 找到完整菜单树,但是排除当前节点这个分支
|
||||
var list = root.FindAllChildsExcept(treeEntity);
|
||||
var data = new SelectList(list, set.Key, "TreeNodeText", entity[item.Name]);
|
||||
@Html.DropDownList(item.Name, data, new { @class = "multiselect" })
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@*@Html.ForEditor(item.Name, entity[item.Name], item.Type)*@
|
||||
@await Html.PartialAsync("_Form_Editor", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@if (err > 0)
|
||||
{
|
||||
<div class="layui-form-mid layui-word-aux">
|
||||
@Html.ValidationMessage(item.Name)
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
|
||||
if (!item.PrimaryKey && !item.Name.EqualIgnoreCase("Permission"))
|
||||
{
|
||||
@await Html.PartialAsync("_Form_Group", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Group", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
</div>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
@using NewLife;
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var pair = (ValueTuple<IEntity, DataField>)Model;
|
||||
var entity = pair.Item1;
|
||||
var field = pair.Item2;
|
||||
var entity = Model.Entity;
|
||||
var field = Model.Field;
|
||||
|
||||
var fields = ViewBag.Fields as FieldCollection;
|
||||
var dataField = fields.GetField(field.Name);
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
*@
|
||||
if (!item.PrimaryKey)
|
||||
{
|
||||
@await Html.PartialAsync("_Form_Group", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Group", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
</div>
|
|
@ -1,10 +1,10 @@
|
|||
@using NewLife;
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var pair = (ValueTuple<IEntity, DataField>)Model;
|
||||
var entity = pair.Item1;
|
||||
var field = pair.Item2;
|
||||
var entity = Model.Entity;
|
||||
var field = Model.Field;
|
||||
|
||||
var set = NewLife.Cube.CubeSetting.Current;
|
||||
var cls = set.FormGroupClass;
|
||||
|
@ -14,12 +14,12 @@
|
|||
{
|
||||
var isRow = cls.Contains("row") ? "row" : "";
|
||||
<div class="form-group @(isRow) col-xs-12 col-sm-11">
|
||||
@await Html.PartialAsync("_Form_BigText", (Object)Model)
|
||||
@await Html.PartialAsync("_Form_BigText", Model)
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="@cls">
|
||||
@await Html.PartialAsync("_Form_Item", (Object)Model)
|
||||
@await Html.PartialAsync("_Form_Item", Model)
|
||||
</div>
|
||||
}
|
|
@ -1,12 +1,12 @@
|
|||
@model ValueTuple<IEntity, DataField>
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube
|
||||
@using NewLife.Cube.ViewModels;
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var entity = Model.Item1;
|
||||
var item = Model.Item2;
|
||||
var entity = Model.Entity;
|
||||
var item = Model.Field;
|
||||
|
||||
var fields = ViewBag.Fields as FieldCollection;
|
||||
var dataField = fields.GetField(item.Name) as ListField;
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@await Html.PartialAsync("_List_Data_Item", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_List_Data_Item", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
<td class="text-center">
|
||||
|
|
|
@ -82,7 +82,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@await Html.PartialAsync("_List_Data_Item", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_List_Data_Item", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
@if (this.Has(PermissionFlags.Detail, PermissionFlags.Update, PermissionFlags.Delete))
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
@using NewLife;
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using Microsoft.AspNetCore.Routing
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var pair = (ValueTuple<IEntity, DataField>)Model;
|
||||
var entity = pair.Item1;
|
||||
var item = pair.Item2;
|
||||
var entity = Model.Entity;
|
||||
var item = Model.Field;
|
||||
var factory = entity.GetType().AsFactory();
|
||||
|
||||
var value = entity[item.Name];
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
|
||||
<!-- 字段编辑框 -->
|
||||
<div class="flex-grow-1">
|
||||
@await Html.PartialAsync("_Form_Editor", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Editor", new EntityField(entity, item))
|
||||
</div>
|
||||
<span class="form-text text-muted d-sm-none"><span class="form-text text-muted">@des</span></span>
|
||||
</div>
|
||||
|
@ -81,7 +81,7 @@
|
|||
|
||||
<!-- 字段编辑框 -->
|
||||
<div class="flex-grow-1">
|
||||
@await Html.PartialAsync("_Form_Editor", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Editor", new EntityField(entity, item))
|
||||
</div>
|
||||
<span class="form-text text-muted d-sm-none"><span class="form-text text-muted">@des</span></span>
|
||||
</div>
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
|
||||
<!-- 字段编辑框 -->
|
||||
<div class="flex-grow-1">
|
||||
@await Html.PartialAsync("_Form_Editor", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Editor", new EntityField(entity, item))
|
||||
</div>
|
||||
<span class="form-text text-muted d-sm-none"><span class="form-text text-muted">@des</span></span>
|
||||
</div>
|
||||
|
@ -78,7 +78,7 @@
|
|||
|
||||
<!-- 字段编辑框 -->
|
||||
<div class="flex-grow-1">
|
||||
@await Html.PartialAsync("_Form_Editor", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Editor", new EntityField(entity, item))
|
||||
</div>
|
||||
<span class="form-text text-muted d-sm-none"><span class="form-text text-muted">@des</span></span>
|
||||
</div>
|
||||
|
@ -120,7 +120,7 @@
|
|||
|
||||
<!-- 字段编辑框 -->
|
||||
<div class="flex-grow-1">
|
||||
@await Html.PartialAsync("_Form_Editor", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Editor", new EntityField(entity, item))
|
||||
</div>
|
||||
<span class="form-text text-muted d-sm-none"><span class="form-text text-muted">@des</span></span>
|
||||
</div>
|
||||
|
@ -142,7 +142,7 @@
|
|||
|
||||
<!-- 字段编辑框 -->
|
||||
<div class="flex-grow-1">
|
||||
@await Html.PartialAsync("_Form_Editor", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Editor", new EntityField(entity, item))
|
||||
</div>
|
||||
<span class="form-text text-muted d-sm-none"><span class="form-text text-muted">@des</span></span>
|
||||
</div>
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
@using NewLife.Cube
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@model ValueTuple<IEntity, DataField>
|
||||
@model EntityField
|
||||
|
||||
@{
|
||||
var entity = Model.Item1;
|
||||
var item = Model.Item2;
|
||||
var entity = Model.Entity;
|
||||
var item = Model.Field;
|
||||
|
||||
var type = item.Type;
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
@model ValueTuple<IEntity, DataField>
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var entity = Model.Item1;
|
||||
var field = Model.Item2;
|
||||
var entity = Model.Entity;
|
||||
var field = Model.Field;
|
||||
var b = entity[field.MapField].ToInt();
|
||||
var fn = field.MapField.ToLower();
|
||||
|
||||
|
|
|
@ -82,7 +82,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@await Html.PartialAsync("_List_Data_Item", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_List_Data_Item", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
<td class="text-center">
|
||||
|
|
|
@ -92,7 +92,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@await Html.PartialAsync("_List_Data_Item", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_List_Data_Item", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
@if (this.Has(PermissionFlags.Detail, PermissionFlags.Update, PermissionFlags.Delete))
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
@*
|
||||
For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
|
||||
*@
|
||||
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube;
|
||||
@using Microsoft.AspNetCore.Routing
|
||||
|
@ -9,9 +6,8 @@
|
|||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var pair = (ValueTuple<IEntity, DataField>)Model;
|
||||
var entity = pair.Item1;
|
||||
var item = pair.Item2;
|
||||
var entity = Model.Entity;
|
||||
var item = Model.Field;
|
||||
var factory = entity.GetType().AsFactory();
|
||||
|
||||
var value = entity[item.Name];
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
@using NewLife;
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var pair = (ValueTuple<IEntity, DataField>)Model;
|
||||
var entity = pair.Item1;
|
||||
var field = pair.Item2;
|
||||
var entity = Model.Entity;
|
||||
var field = Model.Field;
|
||||
|
||||
var err = 0;
|
||||
if (ViewData.ModelState.TryGetValue(field.Name, out var st) && st != null) { err = st.Errors.Count; }
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
{
|
||||
if (!item.PrimaryKey)
|
||||
{
|
||||
@await Html.PartialAsync("_Form_Group", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Group", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
</div>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
@model ValueTuple<IEntity, DataField>
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var pair = Model;
|
||||
var entity = pair.Item1;
|
||||
var field = pair.Item2;
|
||||
var entity = pair.Entity;
|
||||
var field = pair.Field;
|
||||
|
||||
//var set = NewLife.Cube.Setting.Current;
|
||||
//var cls = set.FormGroupClass;
|
||||
|
@ -14,14 +14,14 @@
|
|||
@if (field.IsBigText())
|
||||
{
|
||||
<div class="form-group col-md-12">
|
||||
@await Html.PartialAsync("_Form_BigText", (Object)Model)
|
||||
@await Html.PartialAsync("_Form_BigText", Model)
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
<div class="form-group mb-3 row">
|
||||
@await Html.PartialAsync("_Form_Item", (Object)Model)
|
||||
@await Html.PartialAsync("_Form_Item", Model)
|
||||
</div>
|
||||
</div>
|
||||
}
|
|
@ -1,11 +1,11 @@
|
|||
@model ValueTuple<IEntity, DataField>
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var entity = Model.Item1;
|
||||
var item = Model.Item2;
|
||||
var entity = Model.Entity;
|
||||
var item = Model.Field;
|
||||
|
||||
var fs = ViewBag.Fields as FieldCollection;
|
||||
var dataField = fs.GetField(item.Name);
|
||||
|
|
|
@ -71,7 +71,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@await Html.PartialAsync("_List_Data_Item", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_List_Data_Item", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
@if (this.Has(PermissionFlags.Detail, PermissionFlags.Update, PermissionFlags.Delete))
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
@using NewLife;
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using Microsoft.AspNetCore.Routing
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var pair = (ValueTuple<IEntity, DataField>)Model;
|
||||
var entity = pair.Item1;
|
||||
var item = pair.Item2;
|
||||
var entity = Model.Entity;
|
||||
var item = Model.Field;
|
||||
var factory = entity.GetType().AsFactory();
|
||||
|
||||
var value = entity[item.Name];
|
||||
|
|
|
@ -132,7 +132,7 @@ public static class ViewHelper
|
|||
}
|
||||
@foreach (var item in fields)
|
||||
{
|
||||
@await Html.PartialAsync("_List_Data_Item", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_List_Data_Item", new EntityField(entity, item))
|
||||
}
|
||||
@if (this.Has(PermissionFlags.Detail, PermissionFlags.Update, PermissionFlags.Delete))
|
||||
{
|
||||
|
@ -463,9 +463,9 @@ public static class ViewHelper
|
|||
if ((!item.PrimaryKey || item.Field != null && !item.Field.IsIdentity) && (item.DataVisible == null || item.DataVisible(entity, item)))
|
||||
{
|
||||
if (item is FormField formField && !formField.GroupView.IsNullOrEmpty())
|
||||
@await Html.PartialAsync(formField.GroupView, new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync(formField.GroupView, new EntityField(entity, item))
|
||||
else
|
||||
@await Html.PartialAsync("_Form_Group", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Group", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
</div>
|
||||
|
@ -482,9 +482,9 @@ public static class ViewHelper
|
|||
if ((!item.PrimaryKey || item.Field != null && !item.Field.IsIdentity) && (item.DataVisible == null || item.DataVisible(entity, item)))
|
||||
{
|
||||
if (item is FormField formField && !formField.GroupView.IsNullOrEmpty())
|
||||
@await Html.PartialAsync(formField.GroupView, new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync(formField.GroupView, new EntityField(entity, item))
|
||||
else
|
||||
@await Html.PartialAsync("_Form_Group", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Group", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
@using NewLife;
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var pair = (ValueTuple<IEntity, DataField>)Model;
|
||||
var entity = pair.Item1;
|
||||
var item = pair.Item2;
|
||||
var entity = Model.Entity;
|
||||
var item = Model.Field;
|
||||
|
||||
var set = NewLife.Cube.CubeSetting.Current;
|
||||
var cls = set.FormGroupClass;
|
||||
|
@ -20,6 +20,6 @@
|
|||
else
|
||||
{
|
||||
<div class="@cls">
|
||||
@await Html.PartialAsync("_Form_Item", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Item", new EntityField(entity, item))
|
||||
</div>
|
||||
}
|
|
@ -1,12 +1,11 @@
|
|||
@model ValueTuple<IEntity, DataField>
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube.Entity
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var pair = Model;
|
||||
var entity = pair.Item1 as PrincipalAgent;
|
||||
var field = pair.Item2;
|
||||
var entity = Model.Entity as PrincipalAgent;
|
||||
var field = Model.Field;
|
||||
|
||||
var set = NewLife.Cube.CubeSetting.Current;
|
||||
var cls = set.FormGroupClass;
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
@model ValueTuple<IEntity, DataField>
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube.Entity
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var pair = Model;
|
||||
var entity = pair.Item1 as PrincipalAgent;
|
||||
var field = pair.Item2;
|
||||
var entity = pair.Entity as PrincipalAgent;
|
||||
var field = pair.Field;
|
||||
|
||||
var set = NewLife.Cube.CubeSetting.Current;
|
||||
var cls = set.FormGroupClass;
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
using XCode;
|
||||
|
||||
namespace NewLife.Cube.ViewModels;
|
||||
|
||||
/// <summary>实体数据列模型</summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <param name="field"></param>
|
||||
public class EntityField(IEntity entity, DataField field)
|
||||
{
|
||||
/// <summary>实体</summary>
|
||||
public IEntity Entity { get; set; } = entity;
|
||||
|
||||
/// <summary>数据字段</summary>
|
||||
public DataField Field { get; set; } = field;
|
||||
}
|
|
@ -1,11 +1,11 @@
|
|||
@using NewLife;
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var pair = (ValueTuple<IEntity, DataField>)Model;
|
||||
var entity = pair.Item1;
|
||||
var field = pair.Item2;
|
||||
var entity = Model.Entity;
|
||||
var field = Model.Field;
|
||||
|
||||
var err = 0;
|
||||
if (ViewData.ModelState.TryGetValue(field.Name, out var st) && st != null) { err = st.Errors.Count; }
|
||||
|
|
|
@ -29,11 +29,11 @@
|
|||
{
|
||||
if (item is FormField formField && !formField.GroupView.IsNullOrEmpty())
|
||||
{
|
||||
@await Html.PartialAsync(formField.GroupView, new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync(formField.GroupView, new EntityField(entity, item))
|
||||
}
|
||||
else
|
||||
{
|
||||
@await Html.PartialAsync("_Form_Group", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Group", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -51,9 +51,9 @@ else
|
|||
if ((!item.PrimaryKey || item.Field != null && !item.Field.IsIdentity) && (item.DataVisible == null || item.DataVisible(entity)))
|
||||
{
|
||||
if (item is FormField formField && !formField.GroupView.IsNullOrEmpty())
|
||||
@await Html.PartialAsync(formField.GroupView, new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync(formField.GroupView, new EntityField(entity, item))
|
||||
else
|
||||
@await Html.PartialAsync("_Form_Group", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_Form_Group", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
@model ValueTuple<IEntity, DataField>
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube
|
||||
@using System.Text;
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var entity = Model.Item1;
|
||||
var field = Model.Item2;
|
||||
var entity = Model.Entity;
|
||||
var field = Model.Field;
|
||||
|
||||
var value = entity[field.Name] as String;
|
||||
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
@model ValueTuple<IEntity, DataField>
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube.ViewModels
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var pair = Model;
|
||||
var entity = pair.Item1;
|
||||
var field = pair.Item2;
|
||||
var entity = Model.Entity;
|
||||
var field = Model.Field;
|
||||
|
||||
var set = NewLife.Cube.CubeSetting.Current;
|
||||
var cls = set.FormGroupClass;
|
||||
|
@ -15,18 +14,18 @@
|
|||
@if (field.DataSource != null || !field.MapField.IsNullOrEmpty() || field.IsAttachment())
|
||||
{
|
||||
<div class="@cls">
|
||||
@await Html.PartialAsync("_Form_Item", (Object)Model)
|
||||
@await Html.PartialAsync("_Form_Item", Model)
|
||||
</div>
|
||||
}
|
||||
else if (field.IsBigText())
|
||||
{
|
||||
<div class="form-group col-xs-12 col-sm-12">
|
||||
@await Html.PartialAsync("_Form_BigText", (Object)Model)
|
||||
@await Html.PartialAsync("_Form_BigText", Model)
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="@cls">
|
||||
@await Html.PartialAsync("_Form_Item", (Object)Model)
|
||||
@await Html.PartialAsync("_Form_Item", Model)
|
||||
</div>
|
||||
}
|
|
@ -1,11 +1,11 @@
|
|||
@model ValueTuple<IEntity, DataField>
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var entity = Model.Item1;
|
||||
var field = Model.Item2;
|
||||
var entity = Model.Entity;
|
||||
var field = Model.Field;
|
||||
|
||||
var value = entity[field.Name] as String;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@model ValueTuple<IEntity, DataField>
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube
|
||||
@using NewLife.Data;
|
||||
|
@ -6,8 +6,8 @@
|
|||
@using XCode.Configuration;
|
||||
@using System.Collections;
|
||||
@{
|
||||
var entity = Model.Item1;
|
||||
var item = Model.Item2;
|
||||
var entity = Model.Entity;
|
||||
var item = Model.Field;
|
||||
|
||||
var fs = ViewBag.Fields as FieldCollection;
|
||||
var dataField = fs.GetField(item.Name);
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
@model ValueTuple<IEntity, DataField>
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using NewLife.Cube
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var entity = Model.Item1;
|
||||
var field = Model.Item2;
|
||||
var entity = Model.Entity;
|
||||
var field = Model.Field;
|
||||
|
||||
var fs = ViewBag.Fields as FieldCollection;
|
||||
var set = NewLife.Cube.CubeSetting.Current;
|
||||
|
|
|
@ -81,7 +81,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@await Html.PartialAsync("_List_Data_Item", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_List_Data_Item", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
<td class="text-center">
|
||||
|
|
|
@ -71,7 +71,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@await Html.PartialAsync("_List_Data_Item", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_List_Data_Item", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
@if (this.Has(PermissionFlags.Detail, PermissionFlags.Update, PermissionFlags.Delete))
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
@using NewLife;
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using Microsoft.AspNetCore.Routing
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var pair = (ValueTuple<IEntity, DataField>)Model;
|
||||
var entity = pair.Item1;
|
||||
var item = pair.Item2;
|
||||
var entity = Model.Entity;
|
||||
var item = Model.Field;
|
||||
var factory = entity.GetType().AsFactory();
|
||||
|
||||
var value = entity[item.Name];
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@await Html.PartialAsync("_List_Data_Item", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_List_Data_Item", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
</tr>
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
@await Html.PartialAsync("_List_Data_Item", new ValueTuple<IEntity, DataField>(entity, item))
|
||||
@await Html.PartialAsync("_List_Data_Item", new EntityField(entity, item))
|
||||
}
|
||||
}
|
||||
@if (this.Has(PermissionFlags.Detail, PermissionFlags.Update, PermissionFlags.Delete))
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
@using NewLife;
|
||||
@model EntityField
|
||||
@using NewLife;
|
||||
@using Microsoft.AspNetCore.Routing
|
||||
@using XCode;
|
||||
@using XCode.Configuration;
|
||||
@{
|
||||
var pair = (ValueTuple<IEntity, DataField>)Model;
|
||||
var entity = pair.Item1;
|
||||
var item = pair.Item2;
|
||||
var entity = Model.Entity;
|
||||
var item = Model.Field;
|
||||
var factory = entity.GetType().AsFactory();
|
||||
|
||||
var value = entity[item.Name];
|
||||
|
@ -32,13 +32,13 @@ else
|
|||
var key = entity[factory.Unique.Name];
|
||||
if (bval)
|
||||
{
|
||||
<a href="@Url.Action("SetEnable",null,new { id=key, enable=false })" data-action="action">
|
||||
<a href="@Url.Action("SetEnable", null, new { id = key, enable = false })" data-action="action">
|
||||
<i class="glyphicon glyphicon-ok" style="color: green;"></i>
|
||||
</a>
|
||||
}
|
||||
else
|
||||
{
|
||||
<a href="@Url.Action("SetEnable",null,new { id=key, enable=true })" data-action="action">
|
||||
<a href="@Url.Action("SetEnable", null, new { id = key, enable = true })" data-action="action">
|
||||
<i class="glyphicon glyphicon-remove" style="color: red;"></i>
|
||||
</a>
|
||||
}
|
||||
|
@ -165,7 +165,7 @@ else
|
|||
}
|
||||
else if (item.Name.EqualIgnoreCase("CreateIP", "UpdateIP"))
|
||||
{
|
||||
<td title="@((value+"").IPToAddress())">@value</td>
|
||||
<td title="@((value + "").IPToAddress())">@value</td>
|
||||
}
|
||||
else if (item.IsBigText())
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue