diff --git a/Infrastructure/Extensions/StringExtension.cs b/Infrastructure/Extensions/StringExtension.cs index 7db3ffd..d00fd7b 100644 --- a/Infrastructure/Extensions/StringExtension.cs +++ b/Infrastructure/Extensions/StringExtension.cs @@ -144,5 +144,89 @@ namespace Infrastructure.Extensions } return result; } + + /// + /// 转换为Pascal风格-每一个单词的首字母大写 + /// + /// 字段名 + /// 分隔符 + /// + public static string ConvertToPascal(this string fieldName, string fieldDelimiter) + { + string result = string.Empty; + if (fieldName.Contains(fieldDelimiter)) + { + //全部小写 + string[] array = fieldName.ToLower().Split(fieldDelimiter.ToCharArray()); + foreach (var t in array) + { + //首字母大写 + result += t.Substring(0, 1).ToUpper() + t[1..]; + } + } + else if (string.IsNullOrWhiteSpace(fieldName)) + { + result = fieldName; + } + else if (fieldName.Length == 1) + { + result = fieldName.ToUpper(); + } + else if (fieldName.Length == CountUpper(fieldName)) + { + result = fieldName.Substring(0, 1).ToUpper() + fieldName[1..].ToLower(); + } + else + { + result = fieldName.Substring(0, 1).ToUpper() + fieldName[1..]; + } + return result; + } + + /// + /// 大写字母个数 + /// + /// + /// + public static int CountUpper(this string str) + { + int count1 = 0; + char[] chars = str.ToCharArray(); + foreach (char num in chars) + { + if (num >= 'A' && num <= 'Z') + { + count1++; + } + //else if (num >= 'a' && num <= 'z') + //{ + // count2++; + //} + } + return count1; + } + + /// + /// 转换为Camel风格-第一个单词小写,其后每个单词首字母大写 + /// + /// 字段名 + /// 分隔符 + /// + public static string ConvertToCamel(this string fieldName, string fieldDelimiter) + { + //先Pascal + string result = ConvertToPascal(fieldName, fieldDelimiter); + //然后首字母小写 + if (result.Length == 1) + { + result = result.ToLower(); + } + else + { + result = result.Substring(0, 1).ToLower() + result[1..]; + } + + return result; + } } } diff --git a/README.md b/README.md index 302ac81..2fe67c3 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ ## 🍿在线体验 - 官方文档:http://www.izhaorui.cn/doc -- vue3.x版本体验:http://www.izhaorui.cn/vue3 +- vue3.x版本体验:http://www.izhaorui.cn/vue-next-admin - vue2.x版本体验:http://www.izhaorui.cn/admin - 账号密码:admin/123456 @@ -44,21 +44,21 @@ Vue版前端技术栈 :基于vue2.x/vue3.x、vuex、vue-router 、vue-cli 、axios 和 element-ui/element plus,前端采用vscode工具开发 ## 🍀后端技术 -核心框架:.Net5.0/.Net6.0 + Web API + sqlsugar + swagger + signalR + IpRateLimit +- 核心框架:.Net5.0/.Net6.0 + Web API + sqlsugar + swagger + signalR + IpRateLimit -定时计划任务:Quartz.Net组件,支持执行程序集或者http网络请求 +- 定时计划任务:Quartz.Net组件,支持执行程序集或者http网络请求 -安全支持:过滤器(数据权限过滤)、Sql注入、请求伪造 +- 安全支持:过滤器(数据权限过滤)、Sql注入、请求伪造 -日志管理:NLog、登录日志、操作日志、定时任务日志 +- 日志管理:NLog、登录日志、操作日志、定时任务日志 -工具类:验证码、丰富公共功能 +- 工具类:验证码、丰富公共功能 -接口限流:支持接口限流,避免恶意请求导致服务层压力过大 +- 接口限流:支持接口限流,避免恶意请求导致服务层压力过大 -代码生成:高效率开发,代码生成器可以一键生成所有代码 +- 代码生成:高效率开发,代码生成器可以一键生成所有代码 -数据字典:支持数据字典,可以方便对一些状态进行管理 +- 数据字典:支持数据字典,可以方便对一些状态进行管理 diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/README.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/README.txt deleted file mode 100644 index e69de29..0000000 diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/TreeVue.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/TreeVue.txt index c41d79a..f4f65da 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/TreeVue.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/TreeVue.txt @@ -34,7 +34,7 @@ $if(column.HtmlType == "datetime") $elseif(column.HtmlType == "select" || column.HtmlType == "radio") - + $else @@ -119,9 +119,9 @@ $elseif(column.HtmlType == "checkbox" || column.HtmlType == "select" || column.H @@ -227,7 +227,7 @@ $elseif(column.HtmlType == "radio") - {{item.dictLabel}} + {{item.dictLabel}} @@ -247,7 +247,7 @@ $elseif(column.HtmlType == "select") - + @@ -255,7 +255,7 @@ $elseif(column.HtmlType == "checkbox") - {{item.dictLabel}} + {{item.dictLabel}} @@ -349,7 +349,7 @@ const formRef = ref() $foreach(item in genTable.Columns) $if((item.HtmlType == "radio" || item.HtmlType == "select" || item.HtmlType == "checkbox")) // ${item.ColumnComment}选项列表 格式 eg:{ dictLabel: '标签', dictValue: '0'} -const ${item.DictType} = ref([]) +const $if(item.DictType != "") ${item.DictType} $else ${item.CsharpFieldFl}Options$end = ref([]) $elseif(item.HtmlType == "datetime" && item.IsQuery == true) // ${item.ColumnComment}时间范围 const dateRange${item.CsharpField} = ref([]) diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt index 0e52646..b2a1300 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt @@ -9,32 +9,40 @@