搞定枚举中0的特殊字段说明,比如检索区域(InputQueryxxx)是全部,其他区域是暂无
example/ExampleApeart.Application.Contracts/usermodels/GradeInfoDto.cs
diff --git a/example/ExampleApeart.Application.Contracts/usermodels/GradeInfoDto.cs b/example/ExampleApeart.Application.Contracts/usermodels/GradeInfoDto.cs
index 1f619c1..beeecce 100644
--- a/example/ExampleApeart.Application.Contracts/usermodels/GradeInfoDto.cs
+++ b/example/ExampleApeart.Application.Contracts/usermodels/GradeInfoDto.cs
@@ -60,6 +60,11 @@ namespace ExampleApeart.usermodels
[PasteSplit(";")]
public DateTime[] dates { get; set; }
+ /// <summary>
+ /// 测试 测试全部/无的枚举功能
+ /// </summary>
+ public EnumRoleType roletype { get; set; } = EnumRoleType.Menu;
+
}
///<summary>
example/ExampleApeart.Domain/enummodels/EnumRoleType.cs
diff --git a/example/ExampleApeart.Domain/enummodels/EnumRoleType.cs b/example/ExampleApeart.Domain/enummodels/EnumRoleType.cs
index 448354c..cc76154 100644
--- a/example/ExampleApeart.Domain/enummodels/EnumRoleType.cs
+++ b/example/ExampleApeart.Domain/enummodels/EnumRoleType.cs
@@ -1,4 +1,4 @@
-using System.ComponentModel;
+using System.ComponentModel;
namespace ExampleApeart
{
@@ -9,29 +9,29 @@ namespace ExampleApeart
public enum EnumRoleType
{
/// <summary>
- /// 全部
+ /// 全部/无
/// </summary>
- [Description("全部")]
- All = -1,
+ [Description("全部/无")]
+ All = 0,
/// <summary>
/// <![CDATA[<i_*_style="color:green;">权限</i>]]>
/// </summary>
[Description("权限")]
- Role = 0,
+ Role = 1,
/// <summary>
/// 菜单
/// </summary>
[Description("<span_*_style=\"background:#f3f3f3;color:blue;\">菜单</span>")]
- Menu = 1,
+ Menu = 2,
/// <summary>
- /// 权限
+ /// 按钮
/// </summary>
[Description("<span_*_style=\"color:red;\">按钮</span>")]
- Button = 2,
+ Button = 3,
/// <summary>
/// 小程序菜单
/// </summary>
[Description("小程序菜单")]
- MiniMenu = 3
+ MiniMenu = 4
}
}
example/ExampleApeart.HttpApi.Host/Controllers/UserController.cs
diff --git a/example/ExampleApeart.HttpApi.Host/Controllers/UserController.cs b/example/ExampleApeart.HttpApi.Host/Controllers/UserController.cs
index d58a914..bb47feb 100644
--- a/example/ExampleApeart.HttpApi.Host/Controllers/UserController.cs
+++ b/example/ExampleApeart.HttpApi.Host/Controllers/UserController.cs
@@ -133,7 +133,7 @@ namespace ExampleApeart.HttpApi.Host.Controllers
var _query_roleid = _dbContext.GradeRole.Where(x => grade_ids.Contains(x.GradeId)).Select(x => x.RoleId);
//通过二次缓存,可以读取权限列表信息
- var roles = await _dbContext.RoleInfo.Where(x => x.IsEnable && x.RoleType == 0)
+ var roles = await _dbContext.RoleInfo.Where(x => x.IsEnable && x.RoleType == EnumRoleType.Role)
.WhereIf(!_is_root, x => _query_roleid.Contains(x.Id))
.WhereIf(_is_root, x => true)
.AsNoTracking()
example/ExampleApeart.HttpApi.Host/ExampleApeart.Application.Contracts.xml
diff --git a/example/ExampleApeart.HttpApi.Host/ExampleApeart.Application.Contracts.xml b/example/ExampleApeart.HttpApi.Host/ExampleApeart.Application.Contracts.xml
index e0f3d07..86c0aa1 100644
--- a/example/ExampleApeart.HttpApi.Host/ExampleApeart.Application.Contracts.xml
+++ b/example/ExampleApeart.HttpApi.Host/ExampleApeart.Application.Contracts.xml
@@ -114,6 +114,11 @@
DateTime 模拟输入多个DateTime,使用;分割
</summary>
</member>
+ <member name="P:ExampleApeart.usermodels.GradeInfoAddDto.roletype">
+ <summary>
+ 测试 测试全部/无的枚举功能
+ </summary>
+ </member>
<member name="T:ExampleApeart.usermodels.GradeInfoUpdateDto">
<summary>
角色信息 一个账号可以绑定多个角色,角色绑定权限
example/ExampleApeart.HttpApi.Host/ExampleApeart.Domain.xml
diff --git a/example/ExampleApeart.HttpApi.Host/ExampleApeart.Domain.xml b/example/ExampleApeart.HttpApi.Host/ExampleApeart.Domain.xml
index f7af271..e6f1257 100644
--- a/example/ExampleApeart.HttpApi.Host/ExampleApeart.Domain.xml
+++ b/example/ExampleApeart.HttpApi.Host/ExampleApeart.Domain.xml
@@ -91,7 +91,7 @@
</member>
<member name="F:ExampleApeart.EnumRoleType.All">
<summary>
- 全部
+ 全部/无
</summary>
</member>
<member name="F:ExampleApeart.EnumRoleType.Role">
@@ -106,7 +106,7 @@
</member>
<member name="F:ExampleApeart.EnumRoleType.Button">
<summary>
- 权限
+ 按钮
</summary>
</member>
<member name="F:ExampleApeart.EnumRoleType.MiniMenu">
example/ExampleApeart.HttpApi.Host/config/roles.json
diff --git a/example/ExampleApeart.HttpApi.Host/config/roles.json b/example/ExampleApeart.HttpApi.Host/config/roles.json
index 5232feb..03d84aa 100644
--- a/example/ExampleApeart.HttpApi.Host/config/roles.json
+++ b/example/ExampleApeart.HttpApi.Host/config/roles.json
@@ -5,7 +5,7 @@
"role": "",
"icon": "Hui-iconfont-menu",
"path": "",
- "roleType": 1,
+ "roleType":2,
"desc": "",
"isEnable": true,
"sort": 10,
@@ -17,7 +17,7 @@
"role": "root",
"icon": "",
"path": "",
- "roleType": 0,
+ "roleType":1,
"desc": "",
"isEnable": true,
"sort": 20,
@@ -30,7 +30,7 @@
"role": "view",
"icon": "",
"path": "",
- "roleType": 0,
+ "roleType":1,
"desc": "",
"isEnable": true,
"sort": 30,
@@ -43,7 +43,7 @@
"role": "del",
"icon": "",
"path": "",
- "roleType": 0,
+ "roleType":1,
"desc": "",
"isEnable": true,
"sort": 40,
@@ -56,7 +56,7 @@
"role": "",
"icon": "Hui-iconfont-userid",
"path": "pasteform/index.html?path=roleInfo",
- "roleType": 1,
+ "roleType":2,
"desc": "",
"isEnable": true,
"sort": 100,
@@ -69,7 +69,7 @@
"role": "",
"icon": "Hui-iconfont-user-group",
"path": "pasteform/index.html?path=gradeInfo",
- "roleType": 1,
+ "roleType":2,
"desc": "",
"isEnable": true,
"sort": 110,
@@ -82,7 +82,7 @@
"role": "",
"icon": "Hui-iconfont-user",
"path": "pasteform/index.html?path=userInfo",
- "roleType": 1,
+ "roleType":2,
"desc": "",
"isEnable": true,
"sort": 120,
@@ -95,7 +95,7 @@
"role": "",
"icon": "Hui-iconfont-search1",
"path": "command/index.html",
- "roleType": 1,
+ "roleType":2,
"desc": "",
"isEnable": true,
"sort": 779,
@@ -108,7 +108,7 @@
"role": "",
"icon": "Hui-iconfont-pifu",
"path": "lib/Hui-iconfont/1.0.8/demo.html",
- "roleType": 1,
+ "roleType":2,
"desc": "",
"isEnable": true,
"sort": 900,
@@ -121,7 +121,7 @@
"role": "",
"icon": "Hui-iconfont-pifu",
"path": "./pasteform/index.html?path=quickHandler",
- "roleType": 1,
+ "roleType":2,
"desc": "",
"isEnable": true,
"sort": 800,
framework/Directory.Build.props
diff --git a/framework/Directory.Build.props b/framework/Directory.Build.props
index d682c9d..882c51c 100644
--- a/framework/Directory.Build.props
+++ b/framework/Directory.Build.props
@@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
- <Version>26.9.21</Version>
- <FileVersion>26.9.21</FileVersion>
- <AssemblyVersion>26.9.21</AssemblyVersion>
+ <Version>26.9.22</Version>
+ <FileVersion>26.9.22</FileVersion>
+ <AssemblyVersion>26.9.22</AssemblyVersion>
</PropertyGroup>
</Project>
\ No newline at end of file
framework/PasteApeart.Helper/BuilderHelper.cs
diff --git a/framework/PasteApeart.Helper/BuilderHelper.cs b/framework/PasteApeart.Helper/BuilderHelper.cs
index 97b5745..464eb63 100644
--- a/framework/PasteApeart.Helper/BuilderHelper.cs
+++ b/framework/PasteApeart.Helper/BuilderHelper.cs
@@ -564,21 +564,23 @@ namespace PasteApeart.Helper
}
/// <summary>
- ///
+ /// 把枚举的信息写入到特性中,如果没有则自动创建
/// </summary>
- /// <param name="_cpro"></param>
- /// <param name="_reads"></param>
+ /// <param name="voloPro"></param>
+ /// <param name="enumProperties"></param>
/// <param name="action"></param>
- private static void HandlerEnumDatas(VoloModelProperty _cpro, List<VoloEnumProperty> _reads, string action = "search")
+ private static void HandlerEnumDatas(VoloModelProperty voloPro, List<VoloEnumProperty> enumProperties, string action = "search")
{
- if (_cpro.Attributes == null)
+ if (voloPro.Attributes == null)
{
- _cpro.Attributes = new List<VoloModelAttribute>();
+ voloPro.Attributes = new List<VoloModelAttribute>();
}
- var find = _cpro.Attributes.Where(x => x.Name == "select" || x.Name == "lselect" || x.Name == "selects" || x.Name == "datalist").FirstOrDefault();
+ var find = voloPro.Attributes.Where(x => x.Name == "select" || x.Name == "lselect" || x.Name == "selects" || x.Name == "datalist").FirstOrDefault();
if (find == null || find == default)
{
- _cpro.Attributes.Add(new VoloModelAttribute { Name = "select", Args1 = System.Text.Json.JsonSerializer.Serialize(_reads) });
+ HandlerEnumItemAllOrEmpty(enumProperties, action);
+
+ voloPro.Attributes.Add(new VoloModelAttribute { Name = "select", Args1 = System.Text.Json.JsonSerializer.Serialize(enumProperties) });
}
else
{
@@ -588,7 +590,7 @@ namespace PasteApeart.Helper
{
if (!String.IsNullOrEmpty(_del))
{
- foreach (var ii in _reads)
+ foreach (var ii in enumProperties)
{
var _val = ii.value.ToString();
switch (ii.key_type)
@@ -636,7 +638,7 @@ namespace PasteApeart.Helper
}
if (_val == _del)
{
- _reads.Remove(ii);
+ enumProperties.Remove(ii);
break;
}
}
@@ -644,41 +646,56 @@ namespace PasteApeart.Helper
}
}
- //(search)全部/(其他)无
- foreach (var item in _reads)
+ HandlerEnumItemAllOrEmpty(enumProperties, action);
+
+ find.Args1 = System.Text.Json.JsonSerializer.Serialize(enumProperties);
+ }
+ }
+
+ /// <summary>
+ /// 处理枚举中的 全部/无 的信息
+ /// </summary>
+ /// <param name="_reads"></param>
+ /// <param name="action"></param>
+ private static void HandlerEnumItemAllOrEmpty(List<VoloEnumProperty> _reads, string action)
+ {
+ //(search)全部/(其他)无
+ foreach (var item in _reads)
+ {
+ if (item.key_type != "int")
+ {
+ break;
+ }
+ if (item.value != null)
{
- if (item.value != null)
+ var iv = (int)item.value;
+ if (iv == 0)
{
- if (item.value is int iv)
+ if (action == "search")
{
- if (iv == 0)
+ if (!string.IsNullOrEmpty(item.name) && item.name.Contains("/"))
{
- if (action == "search")
- {
- if (!string.IsNullOrEmpty(item.name))
- {
- item.name = item.name.Split("/")[0];
- }
- }
- else
+ item.name = item.name.Split("/")[0];
+ }
+ }
+ else
+ {
+ if (!string.IsNullOrEmpty(item.name))
+ {
+ if (item.name.Contains("/"))
{
- if (!string.IsNullOrEmpty(item.name))
- {
- if (item.name.Contains("/"))
- {
- item.name = item.name.Split("/")[1];
- }
- }
+ item.name = item.name.Split("/")[1];
}
}
}
+ break;
}
}
-
- find.Args1 = System.Text.Json.JsonSerializer.Serialize(_reads);
}
}
+
+
/// <summary>
///
/// </summary>
framework/PasteApeart.Helper/PasteApeartAttribute.cs
diff --git a/framework/PasteApeart.Helper/PasteApeartAttribute.cs b/framework/PasteApeart.Helper/PasteApeartAttribute.cs
index eb2fd83..96f23a1 100644
--- a/framework/PasteApeart.Helper/PasteApeartAttribute.cs
+++ b/framework/PasteApeart.Helper/PasteApeartAttribute.cs
@@ -2064,6 +2064,8 @@ namespace PasteApeart.Helper
/// <summary>
/// 按钮 注意Property上只能单个 Class上可以多个,表示功能按钮
+ /// 如果在Class上,需要做权限按钮,需要配合Order使用,先禁用这个功能,然后写入这个按钮
+ /// 也就是PasteEnable中,比如配置add为0,然后配置PasteButton中的code为add
/// </summary>
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Class, AllowMultiple = true)]
public class PasteButtonAttribute : BtnCodeAttribute
@@ -2101,7 +2103,7 @@ namespace PasteApeart.Helper
{
/// <summary>
- /// 编辑模式后的小按钮
+ /// 编辑模式后的小按钮 估计用html模式更可靠
/// </summary>
/// <param name="name">按钮名称示例:保存</param>
/// <param name="func">自定义函数,留空表示func_min_btn_click(this,id,name)</param>
@@ -2126,6 +2128,7 @@ namespace PasteApeart.Helper
/// <summary>
/// 导出忽略 导出的时候,忽略这个字段 一般用于ListDto中的字段中 ,导出约定,菜单区域不导出,然后是这个特性的不导出
+ /// 导出约定 没有名称的,菜单区域的 配置了当前特性的 都不导出
/// </summary>
public PasteOutignoreAttribute()
{
@@ -2142,7 +2145,7 @@ namespace PasteApeart.Helper
{
/// <summary>
- /// 样式的内容
+ /// 样式的内容 直接写样式,比如height:300px;
/// </summary>
/// <param name="_style">height:300px;</param>
public PasteStyleAttribute(string _style)
@@ -2160,7 +2163,7 @@ namespace PasteApeart.Helper
{
/// <summary>
- /// 文本输入拆分为数组splitarray
+ /// 文本输入拆分为数组splitarray 一般用于要使用输入框输入数组的时候使用!
/// </summary>
/// <param name="_split_char"></param>
public PasteSplitAttribute(string _split_char = ",")