diff --git a/.gitignore b/.gitignore
index be46788..6fd12c3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -267,3 +267,5 @@ __pycache__/
/ZR.Admin.WebApi/wwwroot/export
/ZR.Vue/src/views/business/Gendemo.vue
/ZR.Admin.WebApi/Properties/launchSettings.json
+/ZR.Admin.WebApi/ZRAdmin.xml
+/ZR.Admin.WebApi/DataProtection
diff --git a/ZR.Admin.WebApi/Controllers/CommonController.cs b/ZR.Admin.WebApi/Controllers/CommonController.cs
index 591d78f..d331494 100644
--- a/ZR.Admin.WebApi/Controllers/CommonController.cs
+++ b/ZR.Admin.WebApi/Controllers/CommonController.cs
@@ -37,7 +37,7 @@ namespace ZR.Admin.WebApi.Controllers
/// 心跳
///
///
- [HttpGet, Route("health/index")]
+ [HttpGet]
public IActionResult Health()
{
return SUCCESS(true);
diff --git a/ZR.Admin.WebApi/Controllers/System/ArticleController.cs b/ZR.Admin.WebApi/Controllers/System/ArticleController.cs
index 6c993d3..c6f9ce9 100644
--- a/ZR.Admin.WebApi/Controllers/System/ArticleController.cs
+++ b/ZR.Admin.WebApi/Controllers/System/ArticleController.cs
@@ -16,7 +16,7 @@ using System;
namespace ZR.Admin.WebApi.Controllers
{
///
- /// T4代码自动生成
+ /// 文章管理
///
[Verify]
[Route("article")]
diff --git a/ZR.Admin.WebApi/Controllers/System/SysLoginController.cs b/ZR.Admin.WebApi/Controllers/System/SysLoginController.cs
index 6687616..1e07704 100644
--- a/ZR.Admin.WebApi/Controllers/System/SysLoginController.cs
+++ b/ZR.Admin.WebApi/Controllers/System/SysLoginController.cs
@@ -143,17 +143,19 @@ namespace ZR.Admin.WebApi.Controllers.System
string uuid = Guid.NewGuid().ToString().Replace("-", "");
SysConfig sysConfig = sysConfigService.GetSysConfigByKey("sys.account.captchaOnOff");
+ var captchaOff = sysConfig?.ConfigValue ?? "0";
+
var code = SecurityCodeHelper.GetRandomEnDigitalText(4);
byte[] imgByte;
- if (sysConfig.ConfigValue == "1")
+ if (captchaOff == "1")
{
imgByte = SecurityCodeHelper.GetGifEnDigitalCodeByte(code);//动态gif数字字母
}
- else if (sysConfig.ConfigValue == "2")
+ else if (captchaOff == "2")
{
imgByte = SecurityCodeHelper.GetGifBubbleCodeByte(code);//动态gif泡泡
}
- else if (sysConfig.ConfigValue == "3")
+ else if (captchaOff == "3")
{
imgByte = SecurityCodeHelper.GetBubbleCodeByte(code);//泡泡
}
diff --git a/ZR.Admin.WebApi/DataProtection/key-b6498f45-218a-4853-a182-0e86942ab496.xml b/ZR.Admin.WebApi/DataProtection/key-b6498f45-218a-4853-a182-0e86942ab496.xml
deleted file mode 100644
index 71c92b8..0000000
--- a/ZR.Admin.WebApi/DataProtection/key-b6498f45-218a-4853-a182-0e86942ab496.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
- 2021-08-02T06:58:41.3050198Z
- 2021-08-02T06:58:41.2698484Z
- 2021-10-31T06:58:41.2698484Z
-
-
-
-
-
-
- gmFBOJQxBXoKTqyvLeEnS6IDsf61vG/s0krHG1MfcZwQlu/D2XUaCms+xzpFc2c2JGdaJh5LiLIyJuoRR20Mug==
-
-
-
-
\ No newline at end of file
diff --git a/ZR.Admin.WebApi/Extensions/SwaggerExtension.cs b/ZR.Admin.WebApi/Extensions/SwaggerExtension.cs
index 40f9d49..31042e7 100644
--- a/ZR.Admin.WebApi/Extensions/SwaggerExtension.cs
+++ b/ZR.Admin.WebApi/Extensions/SwaggerExtension.cs
@@ -27,11 +27,16 @@ namespace ZR.Admin.WebApi.Extensions
Version = "v1",
Description = "",
});
- //if (CurrentEnvironment.IsDevelopment())
- //{
- //添加文档注释
- c.IncludeXmlComments(Path.Combine(hostEnvironment.ContentRootPath, "ZRAdmin.xml"), true);
- //}
+ try
+ {
+ //添加文档注释
+ c.IncludeXmlComments(Path.Combine(hostEnvironment.ContentRootPath, "ZRAdmin.xml"), true);
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine("swagger 文档加载失败" + ex.Message);
+ }
+
//参考文章:http://www.zyiz.net/tech/detail-134965.html
//需要安装包Swashbuckle.AspNetCore.Filters
// 开启权限小锁 需要在对应的Action上添加[Authorize]才能看到
diff --git a/ZR.Admin.WebApi/Startup.cs b/ZR.Admin.WebApi/Startup.cs
index 7e334ba..e8b4b86 100644
--- a/ZR.Admin.WebApi/Startup.cs
+++ b/ZR.Admin.WebApi/Startup.cs
@@ -32,7 +32,7 @@ namespace ZR.Admin.WebApi
Configuration = configuration;
CurrentEnvironment = hostEnvironment;
}
-
+ private NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
private IWebHostEnvironment CurrentEnvironment { get; }
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
@@ -167,13 +167,14 @@ namespace ZR.Admin.WebApi
});
//ʽ ӡSQL
- DbScoped.SugarScope.GetConnection("0").Aop.OnLogExecuting = (sql, pars) =>
+ DbScoped.SugarScope.GetConnection(0).Aop.OnLogExecuting = (sql, pars) =>
{
- Console.WriteLine("SQL䡿" + sql.ToLower() + "\r\n"
- + DbScoped.SugarScope.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));
+ var param = DbScoped.SugarScope.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value));
+ //Console.WriteLine("SQL䡿" + sql.ToLower() + "\r\n" + param);
+ logger.Info($"Sql䣺{sql}{param}");
};
//ӡ־
- DbScoped.SugarScope.GetConnection("0").Aop.OnError = (e) =>
+ DbScoped.SugarScope.GetConnection(0).Aop.OnError = (e) =>
{
Console.WriteLine($"[ִSql]{e.Message}SQL={e.Sql}");
Console.WriteLine();
@@ -182,14 +183,14 @@ namespace ZR.Admin.WebApi
//ʽ ӡSQL
DbScoped.SugarScope.GetConnection(1).Aop.OnLogExecuting = (sql, pars) =>
{
- Console.WriteLine("SQLBus" + sql.ToLower() + "\r\n"
- + DbScoped.SugarScope.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));
+ var param = DbScoped.SugarScope.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value));
+ //Console.WriteLine("SQLBus" + sql.ToLower() + "\r\n" + param);
+ logger.Info($"Sql䣺{sql}, {param}");
};
//Bus Db־
DbScoped.SugarScope.GetConnection(1).Aop.OnError = (e) =>
{
- Console.WriteLine($"[ִSqlBus]{e.Message}SQL={e.Sql}");
- Console.WriteLine();
+ logger.Error($"ִSqlʧܣ{e.Sql}ԭ{e.Message}");
};
}
}
diff --git a/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj b/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj
index 07c5a31..0b71c00 100644
--- a/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj
+++ b/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj
@@ -60,6 +60,9 @@
Always
+
+ PreserveNewest
+
diff --git a/ZR.Admin.WebApi/appsettings.json b/ZR.Admin.WebApi/appsettings.json
index b8dcce0..bd00d8f 100644
--- a/ZR.Admin.WebApi/appsettings.json
+++ b/ZR.Admin.WebApi/appsettings.json
@@ -15,7 +15,7 @@
"urls": "http://localhost:8888", //Ŀurl
"sysConfig": {
"DBCommandTimeout": 10,
- "cors": "http://localhost:8887" //ַ","
+ "cors": "http://localhost:8887" //ַǰĿ","
},
"JwtSettings": {
"Issuer": "https://localhost:8888",
diff --git a/ZR.Admin.WebApi/build.bat b/ZR.Admin.WebApi/build.bat
index f3d0008..5aa4fb6 100644
--- a/ZR.Admin.WebApi/build.bat
+++ b/ZR.Admin.WebApi/build.bat
@@ -1,6 +1,6 @@
@echo off
-docker build -t ZRAdmin:latest -f ./Dockerfile .
+docker build -t ZRAdmin.NET:latest -f ./Dockerfile .
echo "==============鿴==========="
docker images
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt
index 8d53e48..91f9590 100644
--- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt
+++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplControllers.txt
@@ -52,7 +52,7 @@ namespace ${options.ApiControllerNamespace}.Controllers
//搜索条件查询语法参考Sqlsugar
${QueryCondition}
-$if(genTable.SortField != "")
+$if(genTable.SortField != "" && genTable.SortField != null)
var response = _${replaceDto.ModelTypeName}Service.GetPages(predicate.ToExpression(), parm, x => x.${genTable.SortField}, "${genTable.SortType}");
$else
var response = _${replaceDto.ModelTypeName}Service.GetPages(predicate.ToExpression(), parm);
@@ -160,25 +160,23 @@ ${end}
string sFileName = ExportExcel(list, "${replaceDto.ModelTypeName}", "${genTable.FunctionName}");
return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName });
}
-
-$if(genTable.SortField != "")
- ///
- /// 保存排序
- ///
- ///
- ///
- ///
- [ActionPermissionFilter(Permission = "${replaceDto.PermissionPrefix}:update")]
- [HttpGet("ChangeSort")]
- [Log(Title = "保存排序", BusinessType = BusinessType.UPDATE)]
- public IActionResult ChangeSort(int id = 0, int orderNum = 0)
- {
- if (id <= 0) { return ToResponse(ApiResult.Error(101, "请求参数错误")); }
-
- bool result = _${replaceDto.ModelTypeName}Service.Update(w => w.${replaceDto.PKName} == id, it => new ${replaceDto.ModelTypeName}() { ${genTable.SortField} = orderNum });;
+$if(genTable.SortField != "" && genTable.SortField != null)
+ //////
+ ////// 代码自动生成(不用可删除) 保存排序
+ //////
+ //////
+ //////
+ //////
+ /////[ActionPermissionFilter(Permission = "${replaceDto.PermissionPrefix}:update")]
+ //////[HttpGet("ChangeSort")]
+ /////[Log(Title = "保存排序", BusinessType = BusinessType.UPDATE)]
+ //public IActionResult ChangeSort(int id = 0, int orderNum = 0)
+ //{
+ // if (id <= 0) { return ToResponse(ApiResult.Error(101, "请求参数错误")); }
+ // bool result = _${replaceDto.ModelTypeName}Service.Update(w => w.${replaceDto.PKName} == id, it => new ${replaceDto.ModelTypeName}() { ${genTable.SortField} = orderNum });;
- return SUCCESS(result);
- }
+ // return SUCCESS(result);
+ //}
$end
}
}
\ No newline at end of file
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplDto.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplDto.txt
index 52b05d7..68c509a 100644
--- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplDto.txt
+++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplDto.txt
@@ -23,12 +23,12 @@ ${end}
public class ${replaceDto.ModelTypeName}QueryDto : PagerInfo
{
$foreach(item in genTable.Columns)
-$if(item.IsQuery)
+$if(item.IsQuery && item.htmlType == "datetime")
+ public DateTime? Begin$item.CsharpField { get; set; }
+ public DateTime? End$item.CsharpField { get; set; }
+$elseif(item.IsQuery)
public $item.CsharpType $item.CsharpField { get; set; }
$end
${end}
-
- public DateTime? BeginTime { get; set; }
- public DateTime? EndTime { get; set; }
}
}
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVue.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVue.txt
index 32197e9..8f42fec 100644
--- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVue.txt
+++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVue.txt
@@ -20,7 +20,10 @@ ${vueQueryFormHtml}
删除
-$if(genTable.SortField != "")
+
+ 导出
+
+$if(genTable.SortField != "" && 1 == 2)
修改排序
@@ -30,7 +33,7 @@ $end
-
+
${VueViewListContent}
@@ -43,16 +46,16 @@ ${VueViewListContent}
-
+
-${VueViewFormContent}
+ ${VueViewFormContent}
@@ -65,7 +68,8 @@ import {
del${genTable.BusinessName},
update${genTable.BusinessName},
get${genTable.BusinessName},
-$if(genTable.SortField != "")
+ export${genTable.BusinessName},
+$if(genTable.SortField != "" && genTable.SortField != null)
changeSort
$end
} from '@/api/${genTable.ModuleName}/${lowerBusinessName}.js';
@@ -100,9 +104,13 @@ $foreach(item in genTable.Columns)
$if((item.HtmlType == "radio" || item.HtmlType == "select"))
// ${item.ColumnComment}选项列表
${item.ColumnName}Options: [],
+$elseif(item.HtmlType == "datetime" && item.IsQuery == true)
+ //${item.ColumnComment}时间范围
+ dateRange${item.CsharpField}: [],
$end
$end
-$if(genTable.SortField != "")
+
+$if(genTable.SortField != "" && genTable.SortField != null)
// 是否显示编辑排序
showEditSort: false,
$end
@@ -118,7 +126,7 @@ ${VueViewEditFormRuleContent}
},
};
},
- mounted() {
+ created() {
// 列表数据查询
this.getList();
@@ -133,8 +141,14 @@ $end
methods: {
// 查询数据
getList() {
+$foreach(item in genTable.Columns)
+$if(item.HtmlType == "datetime" && item.IsQuery == true)
+ this.queryParams["begin${item.CsharpField}"] = this.addDateRange2(this.dateRange${item.CsharpField}, 0);
+ this.queryParams["end${item.CsharpField}"] = this.addDateRange2(this.dateRange${item.CsharpField}, 1);
+$end
+$end
console.log(JSON.stringify(this.queryParams));
- list${genTable.BusinessName}(this.addDateRange(this.queryParams, this.timeRange)).then(res => {
+ list${genTable.BusinessName}(this.queryParams).then(res => {
if (res.code == 200) {
this.dataList = res.data.result;
this.total = res.data.totalNum;
@@ -160,6 +174,12 @@ $end
/** 重置查询操作 */
resetQuery() {
this.timeRange = [];
+$foreach(item in genTable.Columns)
+$if(item.HtmlType == "datetime" && item.IsQuery == true)
+ //${item.ColumnComment}时间范围
+ this.dateRange${item.CsharpField}= [];
+$end
+$end
this.resetForm("queryForm");
this.queryParams = {
pageNum: 1,
@@ -204,7 +224,7 @@ $end
}
});
},
-$if(genTable.SortField != "")
+$if(genTable.SortField != "" && genTable.SortField != null)
// 显示编辑排序
handleShowSort() {
this.showEditSort = !this.showEditSort;
@@ -223,9 +243,8 @@ $end
$if(replaceDto.UploadFile == 1)
//图片上传成功方法
handleUploadSuccess(res, columnName) {
- console.log(columnName, res)
this.form[columnName] = res.data;
- console.log(JSON.stringify(this.form))
+ console.log(JSON.stringify(this.form), JSON.stringify(res))
},
$end
$foreach(item in genTable.Columns)
@@ -266,6 +285,21 @@ $end
}
});
},
+ /** 导出按钮操作 */
+ handleExport() {
+ const queryParams = this.queryParams;
+ this.${confirm}confirm("是否确认导出所有${genTable.functionName}数据项?", "警告", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ })
+ .then(function () {
+ return export${genTable.BusinessName}(queryParams);
+ })
+ .then((response) => {
+ this.download(response.data.path);
+ });
+ },
},
};
diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVueApi.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVueApi.txt
index c70b678..a69b283 100644
--- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVueApi.txt
+++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplVueApi.txt
@@ -57,6 +57,7 @@ export function del${genTable.BusinessName}(pid) {
method: 'delete'
})
}
+
// 导出${genTable.functionName}
export function export${replaceDto.ModelTypeName}(query) {
return request({
@@ -66,7 +67,7 @@ export function export${replaceDto.ModelTypeName}(query) {
})
}
-$if(genTable.SortField != "")
+$if(genTable.SortField != "" && genTable.SortField != null)
//排序
export function changeSort(data) {
return request({
@@ -75,5 +76,4 @@ export function changeSort(data) {
params: data
})
}
-
$end
\ No newline at end of file
diff --git a/ZR.CodeGenerator/CodeGenerateTemplate.cs b/ZR.CodeGenerator/CodeGenerateTemplate.cs
index ddb9f7e..1a4a511 100644
--- a/ZR.CodeGenerator/CodeGenerateTemplate.cs
+++ b/ZR.CodeGenerator/CodeGenerateTemplate.cs
@@ -34,8 +34,8 @@ namespace ZR.CodeGenerator
//时间类型
if (tbColumn.CsharpType == GenConstants.TYPE_DATE)
{
- replaceDto.QueryCondition += $" predicate = predicate.AndIF(parm.BeginTime != null, it => it.{tbColumn.CsharpField} >= parm.BeginTime);\n";
- replaceDto.QueryCondition += $" predicate = predicate.AndIF(parm.EndTime != null, it => it.{tbColumn.CsharpField} <= parm.EndTime);\n";
+ replaceDto.QueryCondition += $" predicate = predicate.AndIF(parm.Begin{tbColumn.CsharpField} != null, it => it.{tbColumn.CsharpField} >= parm.Begin{tbColumn.CsharpField});\n";
+ replaceDto.QueryCondition += $" predicate = predicate.AndIF(parm.End{tbColumn.CsharpField} != null, it => it.{tbColumn.CsharpField} <= parm.End{tbColumn.CsharpField});\n";
}
}
}
@@ -72,21 +72,22 @@ namespace ZR.CodeGenerator
string columnName = dbFieldInfo.ColumnName;
string labelName = CodeGeneratorTool.GetLabelName(dbFieldInfo.ColumnComment, columnName);
string labelDisabled = dbFieldInfo.IsPk ? ":disabled=\"true\"" : "";
- string placeHolder = dbFieldInfo.IsIncrement ? "" : $"请输入{labelName}";
StringBuilder sb = new StringBuilder();
+ string value = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? "parseInt(item.dictValue)" : "item.dictValue";
+
if (GenConstants.inputDtoNoField.Any(f => f.ToLower().Contains(dbFieldInfo.CsharpField.ToLower())))
{
return sb.ToString();
}
- if (!dbFieldInfo.IsInsert || !dbFieldInfo.IsEdit)
+ if (!dbFieldInfo.IsInsert && !dbFieldInfo.IsEdit && !dbFieldInfo.IsPk)
{
return sb.ToString();
}
if (dbFieldInfo.HtmlType == GenConstants.HTML_INPUT_NUMBER)
{
sb.AppendLine(" ");
- sb.AppendLine($" ");
- sb.AppendLine($" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($" ");
sb.AppendLine(" ");
sb.AppendLine(" ");
}
@@ -104,18 +105,12 @@ namespace ZR.CodeGenerator
//图片
sb.AppendLine(" ");
sb.AppendLine($" ");
- //sb.AppendLine($" ");
- //sb.AppendLine($" ");
- //sb.AppendLine(" ");
- //sb.AppendLine(" ");
- //sb.AppendLine($" ");
sb.AppendLine($@" ");
sb.AppendLine(" ");
sb.AppendLine(" ");
}
else if (dbFieldInfo.HtmlType == GenConstants.HTML_RADIO && !string.IsNullOrEmpty(dbFieldInfo.DictType))
{
- string value = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? "parseInt(item.dictValue)" : "item.dictValue";
sb.AppendLine(" ");
sb.AppendLine($" ");
sb.AppendLine($" ");
@@ -129,8 +124,7 @@ namespace ZR.CodeGenerator
sb.AppendLine(" ");
sb.AppendLine($" ");
sb.AppendLine($" ");
- sb.AppendLine(" 是");
- sb.AppendLine(" 否");
+ sb.AppendLine(" 请选择字典生成");
sb.AppendLine(" ");
sb.AppendLine(" ");
sb.AppendLine(" ");
@@ -146,28 +140,37 @@ namespace ZR.CodeGenerator
else if (dbFieldInfo.HtmlType == GenConstants.HTML_EDITOR)
{
sb.AppendLine(" ");
- sb.AppendLine($" ");
+ sb.AppendLine($" ");
sb.AppendLine($" ");
sb.AppendLine(" ");
sb.AppendLine(" ");
}
else if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT && !string.IsNullOrEmpty(dbFieldInfo.DictType))
{
- string value = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? "parseInt(item.dictValue)" : "item.dictValue";
sb.AppendLine(" ");
- sb.AppendLine($" ");
- sb.AppendLine($" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($" ");
sb.AppendLine($" ");
sb.AppendLine(" ");
sb.AppendLine(" ");
sb.AppendLine(" ");
}
+ else if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT && string.IsNullOrEmpty(dbFieldInfo.DictType))
+ {
+ sb.AppendLine(" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($" ");
+ sb.AppendLine(" ");
+ sb.AppendLine(" ");
+ sb.AppendLine(" ");
+ }
else
{
string inputNumTxt = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? ".number" : "";
sb.AppendLine(" ");
- sb.AppendLine($" ");
- sb.AppendLine($" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($" ");
sb.AppendLine(" ");
sb.AppendLine(" ");
}
@@ -187,16 +190,25 @@ namespace ZR.CodeGenerator
if (!dbFieldInfo.IsQuery || dbFieldInfo.HtmlType == GenConstants.HTML_FILE_UPLOAD) return sb.ToString();
if (dbFieldInfo.HtmlType == GenConstants.HTML_DATETIME)
{
- sb.AppendLine(" ");
- sb.AppendLine(" ");
+ sb.AppendLine($" ");
+ sb.AppendLine($" ");
sb.AppendLine(" ");
}
- else if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT && !string.IsNullOrEmpty(dbFieldInfo.DictType))
+ else if ((dbFieldInfo.HtmlType == GenConstants.HTML_SELECT || dbFieldInfo.HtmlType == GenConstants.HTML_RADIO) && !string.IsNullOrEmpty(dbFieldInfo.DictType))
{
//string value = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? "parseInt(item.dictValue)" : "item.dictValue";
sb.AppendLine($" ");
- sb.AppendLine($" ");
+ sb.AppendLine($" placeholder=\"请选择{dbFieldInfo.ColumnComment}\" size=\"small\"");
+ sb.AppendLine($" ");
+ sb.AppendLine(" ");
+ sb.AppendLine(" ");
+ }
+ else if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT)
+ {
+ //string value = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? "parseInt(item.dictValue)" : "item.dictValue";
+ sb.AppendLine($" ");
+ sb.AppendLine($" ");
sb.AppendLine($" ");
sb.AppendLine(" ");
sb.AppendLine(" ");
@@ -205,7 +217,7 @@ namespace ZR.CodeGenerator
{
string inputNumTxt = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? ".number" : "";
sb.AppendLine($" ");
- sb.AppendLine($" ");
+ sb.AppendLine($" ");
sb.AppendLine(" ");
}
@@ -225,11 +237,11 @@ namespace ZR.CodeGenerator
string showToolTip = dbFieldInfo.CsharpType == "string" ? ":show-overflow-tooltip=\"true\"" : "";
string formatter = !string.IsNullOrEmpty(dbFieldInfo.DictType) ? $" :formatter=\"{columnName}Format\"" : "";
StringBuilder sb = new StringBuilder();
-
+ var sortField = genTable?.SortField ?? "";
//有排序字段
- if (!string.IsNullOrEmpty(genTable?.SortField.ToString()) && genTable?.SortField.ToString() == dbFieldInfo.CsharpField)
+ if (!string.IsNullOrEmpty(sortField.ToString()) && sortField.ToString() == dbFieldInfo.CsharpField && !dbFieldInfo.IsPk && CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType))
{
- sb.AppendLine($@" ");
+ sb.AppendLine($@" ");
sb.AppendLine(@" ");
sb.AppendLine($@" ");
sb.AppendLine($" {{{{scope.row.{columnName}}}}}");
@@ -238,7 +250,7 @@ namespace ZR.CodeGenerator
}
else if (dbFieldInfo.IsList && dbFieldInfo.HtmlType.Equals(GenConstants.HTML_IMAGE_UPLOAD))
{
- sb.AppendLine($" ");
+ sb.AppendLine($" ");
sb.AppendLine(" ");
sb.AppendLine($" ");
sb.AppendLine(" ");
diff --git a/ZR.CodeGenerator/CodeGeneratorTool.cs b/ZR.CodeGenerator/CodeGeneratorTool.cs
index eadb973..c863a5f 100644
--- a/ZR.CodeGenerator/CodeGeneratorTool.cs
+++ b/ZR.CodeGenerator/CodeGeneratorTool.cs
@@ -46,7 +46,7 @@ namespace ZR.CodeGenerator
///
public static void GenerateSingle(GenerateDto dto)
{
- string PKName = "id";
+ string PKName = "Id";
string PKType = "int";
ReplaceDto replaceDto = new();
replaceDto.ModelTypeName = dto.GenTable.ClassName;//表名对应C# 实体类名
@@ -66,7 +66,7 @@ namespace ZR.CodeGenerator
replaceDto.UploadFile = 1;
}
CodeGenerateTemplate.GetQueryDtoProperty(dbFieldInfo, replaceDto);
-
+
replaceDto.VueViewFormHtml += CodeGenerateTemplate.TplVueFormContent(dbFieldInfo);
replaceDto.VueViewListHtml += CodeGenerateTemplate.TplTableColumn(dbFieldInfo, dto.GenTable);
replaceDto.VueViewEditFormRuleContent += CodeGenerateTemplate.TplFormRules(dbFieldInfo);
@@ -177,7 +177,7 @@ namespace ZR.CodeGenerator
{
var fullPath = Path.Combine(generateDto.GenCodePath, _option.ApiControllerNamespace, "Controllers", generateDto.GenTable.ModuleName, $"{replaceDto.ModelTypeName}Controller.cs");
var tpl = FileHelper.ReadJtTemplate("TplControllers.txt");
-
+
tpl.Set("QueryCondition", replaceDto.QueryCondition);
var result = tpl.Render();
generateDto.GenCodes.Add(new GenCode(5, "Controller", fullPath, result));
@@ -278,10 +278,11 @@ namespace ZR.CodeGenerator
/// 业务名
public static string GetBusinessName(string tableName)
{
- int lastIndex = tableName.LastIndexOf("_");
+ int lastIndex = tableName.IndexOf("_");//_前缀长度
int nameLength = tableName.Length;
- string businessName = tableName[(nameLength - lastIndex + 1)..];
- return businessName.ToLower();
+ int subLength = (nameLength - lastIndex) - 1;
+ string businessName = tableName[(lastIndex + 1)..];
+ return businessName.Replace("_", "").ToLower();
}
///
@@ -396,7 +397,11 @@ namespace ZR.CodeGenerator
{
genTableColumn.IsList = true;
}
-
+ //时间类型初始化between范围查询
+ if (genTableColumn.CsharpType == GenConstants.TYPE_DATE)
+ {
+ genTableColumn.QueryType = "BETWEEN";
+ }
genTableColumns.Add(genTableColumn);
}
return genTableColumns;
@@ -420,6 +425,7 @@ namespace ZR.CodeGenerator
options.OutMode = OutMode.Auto;
//options.DisableeLogogram = true;//禁用简写
options.Data.Set("refs", "$");//特殊标签替换
+ options.Data.Set("confirm", "$");//特殊标签替换
options.Data.Set("replaceDto", replaceDto);
options.Data.Set("options", dto.GenOptions);
options.Data.Set("genTable", dto.GenTable);
diff --git a/ZR.Vue/.env.development b/ZR.Vue/.env.development
index e4fd273..d7d1cf0 100644
--- a/ZR.Vue/.env.development
+++ b/ZR.Vue/.env.development
@@ -3,7 +3,7 @@
ENV = 'development'
# ZR管理系统/开发环境
-VUE_APP_BASE_API = 'http://localhost:8888/'
+VUE_APP_BASE_API = '/dev-api'
# 路由前缀
VUE_APP_ROUTER_PREFIX = '/'
diff --git a/ZR.Vue/.env.staging b/ZR.Vue/.env.staging
new file mode 100644
index 0000000..184dcfe
--- /dev/null
+++ b/ZR.Vue/.env.staging
@@ -0,0 +1,8 @@
+# 测试环境配置
+ENV = 'staging'
+
+# ZR管理系统/生产环境
+VUE_APP_BASE_API = '/stage-api'
+
+# 路由前缀
+VUE_APP_ROUTER_PREFIX = '/'
diff --git a/ZR.Vue/src/main.js b/ZR.Vue/src/main.js
index c16beb0..fa6dc78 100644
--- a/ZR.Vue/src/main.js
+++ b/ZR.Vue/src/main.js
@@ -16,7 +16,7 @@ import './assets/icons' // icon
import './permission' // permission control
import { getDicts } from "@/api/system/dict/data";
import { getConfigKey } from "@/api/system/config";
-import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, download, handleTree } from "@/utils/ruoyi";
+import { parseTime, resetForm, addDateRange, addDateRange2, selectDictLabel, selectDictLabels, download, handleTree } from "@/utils/ruoyi";
//分页组件
import Pagination from "@/components/Pagination";
//自定义表格工具扩展
@@ -36,6 +36,7 @@ Vue.prototype.getConfigKey = getConfigKey
Vue.prototype.parseTime = parseTime
Vue.prototype.resetForm = resetForm
Vue.prototype.addDateRange = addDateRange
+Vue.prototype.addDateRange2 = addDateRange2
Vue.prototype.selectDictLabel = selectDictLabel
Vue.prototype.selectDictLabels = selectDictLabels
Vue.prototype.download = download
diff --git a/ZR.Vue/src/utils/ruoyi.js b/ZR.Vue/src/utils/ruoyi.js
index 5e04dae..fd86973 100644
--- a/ZR.Vue/src/utils/ruoyi.js
+++ b/ZR.Vue/src/utils/ruoyi.js
@@ -65,6 +65,17 @@ export function addDateRange(params, dateRange) {
return search;
}
+export function addDateRange2(dateRange, index) {
+ console.log(dateRange);
+ var time = "";
+ if (null != dateRange && '' != dateRange) {
+ if (dateRange.length <= 2) {
+ time = dateRange[index];
+ }
+ }
+ return time;
+}
+
// 回显数据字典
export function selectDictLabel(datas, value) {
var actions = [];
diff --git a/ZR.Vue/src/views/tool/gen/editTable.vue b/ZR.Vue/src/views/tool/gen/editTable.vue
index 3e03c8b..5f50c81 100644
--- a/ZR.Vue/src/views/tool/gen/editTable.vue
+++ b/ZR.Vue/src/views/tool/gen/editTable.vue
@@ -53,8 +53,7 @@
-
+
@@ -90,7 +89,7 @@
-
+
{{ dict.dictName }}
{{ dict.dictType }}
@@ -101,7 +100,7 @@
-
+
diff --git a/ZR.Vue/src/views/tool/gen/genInfoForm.vue b/ZR.Vue/src/views/tool/gen/genInfoForm.vue
index 1d48727..54ff5f5 100644
--- a/ZR.Vue/src/views/tool/gen/genInfoForm.vue
+++ b/ZR.Vue/src/views/tool/gen/genInfoForm.vue
@@ -75,7 +75,7 @@
- 排序字段
+ 查询排序字段
diff --git a/ZR.Vue/vue.config.js b/ZR.Vue/vue.config.js
index 4b9cde4..a366f0e 100644
--- a/ZR.Vue/vue.config.js
+++ b/ZR.Vue/vue.config.js
@@ -34,11 +34,11 @@ module.exports = {
open: true,
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
- '/api': {
- target: process.env.VUE_APP_BASE_API,
+ [process.env.VUE_APP_BASE_API]: {
+ target: 'http://localhost:8888/',// 后端接口地址
changeOrigin: true,
pathRewrite: {
- '^/api': ''//需要rewrite的
+ ['^' + process.env.VUE_APP_BASE_API]: ''//需要rewrite的
}
}
},