添加Tnb.Vengine
This commit is contained in:
149
visualdev/Tnb.Vengine/Domain/VmDbProp.cs
Normal file
149
visualdev/Tnb.Vengine/Domain/VmDbProp.cs
Normal file
@@ -0,0 +1,149 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 宁波拓通e智造平台 ToTong Next Builder //
|
||||
// https://git.tuotong-tech.com/tnb/tnb.server //
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
using Yitter.IdGenerator;
|
||||
|
||||
namespace Tnb.Vengine.Domain;
|
||||
|
||||
/// <summary>
|
||||
/// 字段属性
|
||||
/// </summary>
|
||||
public class VmDbProp : VmBaseProp
|
||||
{
|
||||
#region Properties
|
||||
/// <summary>
|
||||
/// 字段名称
|
||||
/// </summary>
|
||||
public string field { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 数据类型
|
||||
/// </summary>
|
||||
public string dataType { get; set; } = "varchar";
|
||||
|
||||
/// <summary>
|
||||
/// 数据类型
|
||||
/// </summary>
|
||||
public string? csType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 长度
|
||||
/// </summary>
|
||||
public int length { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 精度
|
||||
/// </summary>
|
||||
public int digit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排序
|
||||
/// </summary>
|
||||
public int ordinal { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 非空
|
||||
/// </summary>
|
||||
public bool required { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否主键
|
||||
/// </summary>
|
||||
public bool pkey { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否模糊搜索
|
||||
/// </summary>
|
||||
public bool fuzzy { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 默认值
|
||||
/// </summary>
|
||||
public string? defValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 描述
|
||||
/// </summary>
|
||||
public string? descrip { get; set; }
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// 获取默认值
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public object? GetDefaultValue()
|
||||
{
|
||||
object? val = null;
|
||||
if (string.IsNullOrEmpty(defValue))
|
||||
{
|
||||
val = defValue switch
|
||||
{
|
||||
"@@snowid" => YitIdHelper.NextId().ToString(),
|
||||
"@@now" => DateTime.Now,
|
||||
"@@userid" => YitIdHelper.NextId().ToString(),
|
||||
"@@orgid" => YitIdHelper.NextId().ToString(),
|
||||
_ => null
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
val = csType switch
|
||||
{
|
||||
"string" => string.Empty,
|
||||
"short" or "int" or "long" => 0,
|
||||
"float" or "double" or "decimal" => 0f,
|
||||
"DateTime" => DateTime.Now,
|
||||
_ => null
|
||||
};
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取默认宽度
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string GetDefaultWidth()
|
||||
{
|
||||
return csType switch
|
||||
{
|
||||
"string" => "\"width\": \"auto\"",
|
||||
"int" or "short" or "long" => "\"width\": 80",
|
||||
"DateTime" => "\"width\": 150",
|
||||
_ => ""
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取默认组件
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public CompOption GetDefaultComp()
|
||||
{
|
||||
CompOption comp = new CompOption();
|
||||
if (pkey)
|
||||
{
|
||||
comp.attr.Add("disabled", true);
|
||||
return comp;
|
||||
}
|
||||
switch (csType)
|
||||
{
|
||||
case "string":
|
||||
comp.attr.Add("clearable", true);
|
||||
comp.attr.Add("maxlength", length);
|
||||
comp.attr.Add("showWordLimit", true);
|
||||
break;
|
||||
case "int":
|
||||
case "short":
|
||||
case "long":
|
||||
comp.type = "el-input-number";
|
||||
break;
|
||||
case "DateTime":
|
||||
comp.type = "el-date-picker";
|
||||
break;
|
||||
};
|
||||
return comp;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user