增加视图模型引擎模块

This commit is contained in:
2023-08-02 17:52:00 +08:00
parent a07b3c73fc
commit ec69cc94e8
31 changed files with 3362 additions and 33 deletions

View File

@@ -0,0 +1,198 @@
/////////////////////////////////////////////////////////////////////////////////
// 宁波拓通e智造平台 ToTong Next Builder //
// https://git.tuotong-tech.com/tnb/tnb.server //
/////////////////////////////////////////////////////////////////////////////////
namespace Tnb.VmodelEngine;
/// <summary>
/// 字典对象
/// </summary>
public class DObject : Dictionary<string, object>
{
public DObject() { }
public DObject(string key, object value)
{
Add(key, value);
}
public DObject(Dictionary<string, object> dictionary) : base(dictionary)
{
}
public void AddCascade(string code, object value)
{
var keys = code.Split('.');
if(keys.Length == 1 )
{
Add(code, value);
return;
}
for (int i = 0; i < keys.Length; i++)
{
DObject temp = this;
if(i < keys.Length - 1)
{
if (!ContainsKey(keys[i]))
{
temp = new DObject();
Add(keys[i], temp);
}
else
{
temp = (DObject)temp[keys[i]];
}
}
else
{
temp.Add(keys[i], value);
}
}
}
}
public class VmBaseInput
{
///// <summary>
///// 视图模型id
///// </summary>
//public string vmid { get; set; } = string.Empty;
}
public class VmGetInput : VmBaseInput
{
/// <summary>
/// 要获取数据的id
/// </summary>
public string? id { get; set; }
/// <summary>
/// 过滤条件
/// </summary>
public string? q { get; set; }
/// <summary>
/// 输出字段
/// </summary>
public string o { get; set; } = "*";
}
public class VmGetListInput : VmBaseInput
{
/// <summary>
/// 当前页数
/// </summary>
public int pnum { get; set; }
/// <summary>
/// 每页记录数
/// </summary>
public int psize { get; set; }
/// <summary>
/// 排序
/// </summary>
public string? sort { get; set; } = null;
/// <summary>
/// 模糊查询
/// </summary>
public string? k { get; set; }
/// <summary>
/// 过滤条件
/// </summary>
public string? q { get; set; }
/// <summary>
/// 输出字段
/// </summary>
public string o { get; set; } = "*";
}
/// <summary>
/// 获取多条数据输入参数
/// </summary>
public class VmQueryInput : VmGetListInput
{
/// <summary>
/// 查询条件
/// </summary>
public new DObject? q { get; set; }
/// <summary>
/// 高级查询
/// </summary>
public DObject? adv { get; set; }
}
/// <summary>
/// 新增数据输入参数
/// </summary>
public class VmCreateInput : VmBaseInput
{
/// <summary>
/// 数据
/// </summary>
public DObject? data { get; set; }
/// <summary>
/// 批量添加
/// </summary>
public List<DObject>? items { get; set; }
}
/// <summary>
/// 修改数据输入参数
/// </summary>
public class VmUpdateInput : VmCreateInput
{
///// <summary>
///// 要更新的数据id
///// </summary>
//public string? id { get; set; }
}
/// <summary>
/// 删除数据输入参数
/// </summary>
public class VmDeleteInput : VmBaseInput
{
/// <summary>
/// 要删除的数据id
/// </summary>
public string? id { get; set; }
/// <summary>
/// 要删除的id列表
/// </summary>
public List<string>? ids { get; set; }
}
/// <summary>
/// 分页列表输出对象
/// </summary>
/// <typeparam name="T"></typeparam>
public class PagedOutput<T>
{
public int total { get; set; }
public List<T> items { get; set; } = new List<T>();
}
/// <summary>
/// 动态分页列表输出对象
/// </summary>
public class VmPagedOutput : PagedOutput<dynamic>
{
}
/// <summary>
/// 查询属性信息
/// </summary>
public class VmSelectProp
{
public const string MAIN_ALIES = "m";
public string code { get; set; } = string.Empty;
public string field { get; set; } = string.Empty;
public string navCode { get; set; } = MAIN_ALIES;
public ePropType propType { get; set; }
public eNavigateType navType { get; set; }
}

View File

@@ -0,0 +1,34 @@
/////////////////////////////////////////////////////////////////////////////////
// 宁波拓通e智造平台 ToTong Next Builder //
// https://git.tuotong-tech.com/tnb/tnb.server //
/////////////////////////////////////////////////////////////////////////////////
namespace Tnb.VmodelEngine;
public class VmodelCreateFromTableInput
{
public string? dbCode { get; set; }
public string tableName { get; set; } = string.Empty;
public string? removePrefix { get; set; }
public string area { get; set; } = "edp";
}
public class CreatePageFromVmodelInput
{
public Guid? viewId { get; set; }
public string? vmid { get; set; }
}
public class VmodelGetInput
{
public long? id { get; set; }
public string? moduleCode { get; set; }
public string? vmCode { get; set; }
public string? dbCode { get; set; }
public string? tableName { get; set; }
public bool drill { get; set; }
}