From 44fe62903ed3b4ccec9f87d44642f8c949db162a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Sun, 27 Mar 2022 19:34:00 +0800 Subject: [PATCH 01/10] update Dockerfile --- ZR.Admin.WebApi/Dockerfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ZR.Admin.WebApi/Dockerfile b/ZR.Admin.WebApi/Dockerfile index 91f4597..0f0f4be 100644 --- a/ZR.Admin.WebApi/Dockerfile +++ b/ZR.Admin.WebApi/Dockerfile @@ -4,7 +4,7 @@ WORKDIR /app #创建挂载目录,用于将程序部署在服务器本地 #VOLUME /app #设置docker容器对外暴露端口 -EXPOSE 5000 +EXPOSE 8888 VOLUME /app/logs #COPY bin/Release/net5.0/publish/ app/ COPY . app/ @@ -15,5 +15,7 @@ RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 复制发布文件到工作目录 #COPY . app/ +WORKDIR /app -ENTRYPOINT ["dotnet", "ZR.Admin.WebApi.dll"] \ No newline at end of file +#等价于 dotnet ZR.Admin.WebApi.dll,如果不指定启动端口默认在docker里面启动端口是80端口 +ENTRYPOINT ["dotnet", "ZR.Admin.WebApi.dll", "--server.urls","http://*:8888"] \ No newline at end of file From de43e4964e47106735693c8b176882273243a7d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Sun, 27 Mar 2022 22:05:19 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=A0vue3=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=94=9F=E6=88=90=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wwwroot/CodeGenTemplate/v3/README.txt | 0 .../wwwroot/CodeGenTemplate/v3/Vue3.txt | 552 ++++++++++++++++++ ZR.CodeGenerator/CodeGenerateTemplate.cs | 202 ++++--- ZR.CodeGenerator/CodeGeneratorTool.cs | 36 +- 4 files changed, 687 insertions(+), 103 deletions(-) create mode 100644 ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/README.txt create mode 100644 ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue3.txt diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/README.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/README.txt new file mode 100644 index 0000000..e69de29 diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue3.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue3.txt new file mode 100644 index 0000000..b3cc1b4 --- /dev/null +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue3.txt @@ -0,0 +1,552 @@ +锘 + + + \ No newline at end of file diff --git a/ZR.CodeGenerator/CodeGenerateTemplate.cs b/ZR.CodeGenerator/CodeGenerateTemplate.cs index 03fcdbc..b3820d9 100644 --- a/ZR.CodeGenerator/CodeGenerateTemplate.cs +++ b/ZR.CodeGenerator/CodeGenerateTemplate.cs @@ -34,26 +34,23 @@ namespace ZR.CodeGenerator sb.AppendLine(" "); sb.AppendLine($" {{{{form.{columnName}}}}}"); sb.AppendLine(" "); - return sb.ToString(); } - - //鏍 - if (genTable.TplCategory.Equals("tree", StringComparison.OrdinalIgnoreCase) && genTable.TreeParentCode != null && dbFieldInfo.CsharpField.Equals(genTable.TreeParentCode)) + else if (genTable.TplCategory.Equals("tree", StringComparison.OrdinalIgnoreCase) && genTable.TreeParentCode != null && dbFieldInfo.CsharpField.Equals(genTable.TreeParentCode)) { + //鏍 sb.AppendLine(@" "); sb.AppendLine($@" "); sb.AppendLine($@" "); sb.AppendLine(@" "); sb.AppendLine(@" "); - return sb.ToString(); } //涓婚敭銆侀潪鑷瑕佹彃鍏ワ紝涓嶈兘缂栬緫 - if (dbFieldInfo.IsPk || dbFieldInfo.IsIncrement) + else if (dbFieldInfo.IsPk || dbFieldInfo.IsIncrement) { sb.AppendLine(" "); sb.AppendLine($" "); //涓婚敭闈炶嚜澧 鏄剧ずinput - if (dbFieldInfo.IsPk && !dbFieldInfo.IsIncrement) + if (!dbFieldInfo.IsIncrement) { sb.AppendLine($" "); } @@ -64,105 +61,106 @@ namespace ZR.CodeGenerator sb.AppendLine(" "); sb.AppendLine(" "); - return sb.ToString(); - } - if (dbFieldInfo.HtmlType == GenConstants.HTML_INPUT_NUMBER) - { - //鏁板瓧妗 - sb.AppendLine(" "); - sb.AppendLine($" "); - sb.AppendLine($" "); - sb.AppendLine(" "); - sb.AppendLine(" "); - } - else if (dbFieldInfo.HtmlType == GenConstants.HTML_DATETIME) - { - //鏃堕棿 - sb.AppendLine(" "); - sb.AppendLine($" "); - sb.AppendLine($" "); - sb.AppendLine(" "); - sb.AppendLine(" "); - } - else if (dbFieldInfo.HtmlType == GenConstants.HTML_IMAGE_UPLOAD) - { - //鍥剧墖 - sb.AppendLine(" "); - sb.AppendLine($" "); - sb.AppendLine($@" "); - sb.AppendLine(" "); - sb.AppendLine(" "); - } - else if (dbFieldInfo.HtmlType == GenConstants.HTML_FILE_UPLOAD) - { - //鏂囦欢 - sb.AppendLine(" "); - sb.AppendLine($" "); - sb.AppendLine($@" "); - sb.AppendLine(" "); - sb.AppendLine(" "); - } - else if (dbFieldInfo.HtmlType == GenConstants.HTML_RADIO) - { - //鍗曢夋寜閽 - sb.AppendLine(" "); - sb.AppendLine($" "); - sb.AppendLine($" "); - sb.AppendLine($" {{{{item.dictLabel}}}}"); - sb.AppendLine(" "); - sb.AppendLine(" "); - sb.AppendLine(" "); - } - else if (dbFieldInfo.HtmlType == GenConstants.HTML_TEXTAREA) - { - //鏂囨湰鍩 - sb.AppendLine(" "); - sb.AppendLine($" "); - sb.AppendLine($" "); - sb.AppendLine(" "); - sb.AppendLine(" "); - } - else if (dbFieldInfo.HtmlType == GenConstants.HTML_EDITOR) - { - //缂栬緫鍣 - sb.AppendLine(" "); - sb.AppendLine($" "); - sb.AppendLine($" "); - sb.AppendLine(" "); - sb.AppendLine(" "); - } - else if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT) - { - //涓嬫媺妗 - sb.AppendLine(" "); - sb.AppendLine($" "); - sb.AppendLine($" "); - sb.AppendLine($" "); - sb.AppendLine(" "); - sb.AppendLine(" "); - sb.AppendLine(" "); - } - else if (dbFieldInfo.HtmlType == GenConstants.HTML_CHECKBOX) - { - //澶氶夋 - sb.AppendLine(" "); - sb.AppendLine($" "); - sb.AppendLine($" "); - sb.AppendLine($" {{{{item.dictLabel}}}}"); - sb.AppendLine(" "); - sb.AppendLine(" "); - sb.AppendLine(" "); } else { - string inputNumTxt = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? ".number" : ""; - sb.AppendLine(" "); - sb.AppendLine($" "); - sb.AppendLine($" "); - sb.AppendLine(" "); - sb.AppendLine(" "); + if (dbFieldInfo.HtmlType == GenConstants.HTML_INPUT_NUMBER) + { + //鏁板瓧妗 + sb.AppendLine(" "); + sb.AppendLine($" "); + sb.AppendLine($" "); + sb.AppendLine(" "); + sb.AppendLine(" "); + } + else if (dbFieldInfo.HtmlType == GenConstants.HTML_DATETIME) + { + //鏃堕棿 + sb.AppendLine(" "); + sb.AppendLine($" "); + sb.AppendLine($" "); + sb.AppendLine(" "); + sb.AppendLine(" "); + } + else if (dbFieldInfo.HtmlType == GenConstants.HTML_IMAGE_UPLOAD) + { + //鍥剧墖 + sb.AppendLine(" "); + sb.AppendLine($" "); + sb.AppendLine($@" "); + sb.AppendLine(" "); + sb.AppendLine(" "); + } + else if (dbFieldInfo.HtmlType == GenConstants.HTML_FILE_UPLOAD) + { + //鏂囦欢 + sb.AppendLine(" "); + sb.AppendLine($" "); + sb.AppendLine($@" "); + sb.AppendLine(" "); + sb.AppendLine(" "); + } + else if (dbFieldInfo.HtmlType == GenConstants.HTML_RADIO) + { + //鍗曢夋寜閽 + sb.AppendLine(" "); + sb.AppendLine($" "); + sb.AppendLine($" "); + sb.AppendLine($" {{{{item.dictLabel}}}}"); + sb.AppendLine(" "); + sb.AppendLine(" "); + sb.AppendLine(" "); + } + else if (dbFieldInfo.HtmlType == GenConstants.HTML_TEXTAREA) + { + //鏂囨湰鍩 + sb.AppendLine(" "); + sb.AppendLine($" "); + sb.AppendLine($" "); + sb.AppendLine(" "); + sb.AppendLine(" "); + } + else if (dbFieldInfo.HtmlType == GenConstants.HTML_EDITOR) + { + //缂栬緫鍣 + sb.AppendLine(" "); + sb.AppendLine($" "); + sb.AppendLine($" "); + sb.AppendLine(" "); + sb.AppendLine(" "); + } + else if (dbFieldInfo.HtmlType == GenConstants.HTML_SELECT) + { + //涓嬫媺妗 + sb.AppendLine(" "); + sb.AppendLine($" "); + sb.AppendLine($" "); + sb.AppendLine($" "); + sb.AppendLine(" "); + sb.AppendLine(" "); + sb.AppendLine(" "); + } + else if (dbFieldInfo.HtmlType == GenConstants.HTML_CHECKBOX) + { + //澶氶夋 + sb.AppendLine(" "); + sb.AppendLine($" "); + sb.AppendLine($" "); + sb.AppendLine($" {{{{item.dictLabel}}}}"); + sb.AppendLine(" "); + sb.AppendLine(" "); + sb.AppendLine(" "); + } + else + { + string inputNumTxt = CodeGeneratorTool.IsNumber(dbFieldInfo.CsharpType) ? ".number" : ""; + sb.AppendLine(" "); + sb.AppendLine($" "); + sb.AppendLine($" "); + sb.AppendLine(" "); + sb.AppendLine(" "); + } } - return sb.ToString(); } diff --git a/ZR.CodeGenerator/CodeGeneratorTool.cs b/ZR.CodeGenerator/CodeGeneratorTool.cs index 29805e2..55aaeea 100644 --- a/ZR.CodeGenerator/CodeGeneratorTool.cs +++ b/ZR.CodeGenerator/CodeGeneratorTool.cs @@ -85,6 +85,7 @@ namespace ZR.CodeGenerator GenerateService(replaceDto, dto); GenerateControllers(replaceDto, dto); GenerateVueViews(replaceDto, dto); + GenerateVue3Views(replaceDto, dto); GenerateVueJs(replaceDto, dto); GenerateSql(replaceDto, dto); @@ -201,7 +202,40 @@ namespace ZR.CodeGenerator generateDto.GenCodes.Add(new GenCode(6, "index.vue", fullPath, result)); } + /// + /// vue3 + /// + /// + /// + private static void GenerateVue3Views(ReplaceDto replaceDto, GenerateDto generateDto) + { + string fileName = string.Empty; + switch (generateDto.GenTable.TplCategory) + { + case "tree": + fileName = "TplTreeVue.txt"; + break; + case "crud": + fileName = "Vue3.txt"; + break; + case "select": + fileName = "TplVueSelect.txt"; + break; + default: + break; + } + fileName = Path.Combine("v3", fileName); + var tpl = FileHelper.ReadJtTemplate(fileName); + //tpl.Set("vueQueryFormHtml", replaceDto.VueQueryFormHtml); + //tpl.Set("VueViewEditFormRuleContent", replaceDto.VueViewEditFormRuleContent);//娣诲姞銆佷慨鏀硅〃鍗曢獙璇佽鍒 + //tpl.Set("VueViewFormContent", replaceDto.VueViewFormHtml);//娣诲姞銆佷慨鏀硅〃鍗 + //tpl.Set("VueViewListContent", replaceDto.VueViewListHtml);//鏌ヨ table鍒 + var result = tpl.Render(); + var fullPath = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, "ZR.Vue3", "src", "views", generateDto.GenTable.ModuleName.FirstLowerCase(), $"{generateDto.GenTable.BusinessName.FirstUpperCase()}.vue"); + //Console.WriteLine(result); + generateDto.GenCodes.Add(new GenCode(16, "index.vue", fullPath, result)); + } /// /// 鐢熸垚vue椤甸潰api /// @@ -466,7 +500,7 @@ namespace ZR.CodeGenerator /// private static void InitJntTemplate(GenerateDto dto, ReplaceDto replaceDto) { - //Engine.Current.Clean(); + Engine.Current.Clean(); dto.GenTable.Columns = dto.GenTable.Columns.OrderBy(x => x.Sort).ToList(); bool showCustomInput = dto.GenTable.Columns.Any(f => f.HtmlType.Equals(GenConstants.HTML_CUSTOM_INPUT, StringComparison.OrdinalIgnoreCase)); //jnt妯℃澘寮曟搸鍏ㄥ眬鍙橀噺 From dd22af8c4f19516ac385a714b25484344e19b436 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Tue, 29 Mar 2022 16:45:11 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=A4=B4=E5=83=8F?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../System/SysProfileController.cs | 26 +++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/ZR.Admin.WebApi/Controllers/System/SysProfileController.cs b/ZR.Admin.WebApi/Controllers/System/SysProfileController.cs index 4ec55bf..25f2b6b 100644 --- a/ZR.Admin.WebApi/Controllers/System/SysProfileController.cs +++ b/ZR.Admin.WebApi/Controllers/System/SysProfileController.cs @@ -15,6 +15,8 @@ using ZR.Common; using ZR.Model.System.Dto; using ZR.Model.System; using ZR.Service.System.IService; +using Infrastructure.Extensions; +using System.Threading.Tasks; namespace ZR.Admin.WebApi.Controllers.System { @@ -27,6 +29,7 @@ namespace ZR.Admin.WebApi.Controllers.System private readonly ISysRoleService RoleService; private readonly ISysUserPostService UserPostService; private readonly ISysDeptService DeptService; + private readonly ISysFileService FileService; private OptionsSetting OptionsSetting; private IWebHostEnvironment hostEnvironment; @@ -35,6 +38,7 @@ namespace ZR.Admin.WebApi.Controllers.System ISysRoleService roleService, ISysUserPostService postService, ISysDeptService deptService, + ISysFileService sysFileService, IOptions options, IWebHostEnvironment hostEnvironment) { @@ -42,6 +46,7 @@ namespace ZR.Admin.WebApi.Controllers.System RoleService = roleService; UserPostService = postService; DeptService = deptService; + FileService = sysFileService; OptionsSetting = options.Value; this.hostEnvironment = hostEnvironment; } @@ -124,28 +129,17 @@ namespace ZR.Admin.WebApi.Controllers.System [HttpPost("Avatar")] [ActionPermissionFilter(Permission = "common")] [Log(Title = "淇敼澶村儚", BusinessType = BusinessType.UPDATE, IsSaveRequestData = false)] - public IActionResult Avatar([FromForm(Name = "picture")] IFormFile formFile) + public async Task Avatar([FromForm(Name = "picture")] IFormFile formFile) { LoginUser loginUser = Framework.JwtUtil.GetLoginUser(HttpContext); - if (formFile == null) throw new CustomException("璇烽夋嫨鏂囦欢"); string fileExt = Path.GetExtension(formFile.FileName); - string savePath = Path.Combine(hostEnvironment.WebRootPath, FileUtil.GetdirPath("uploads")); + string fileName = FileUtil.HashFileName() + (fileExt.IsEmpty() ? ".png" : fileExt); + SysFile file = await FileService.SaveFileToLocal(hostEnvironment.WebRootPath, fileName, "", HttpContext.GetName(), formFile); - if (!Directory.Exists(savePath)) { Directory.CreateDirectory(savePath); } - - string fileName = FileUtil.HashFileName() + fileExt; - string finalFilePath = savePath + fileName; - - using (var stream = new FileStream(finalFilePath, FileMode.Create)) - { - formFile.CopyTo(stream); - } - string accessUrl = $"{OptionsSetting.Upload.UploadUrl}/{FileUtil.GetdirPath("uploads")}{fileName}"; - - UserService.UpdatePhoto(new SysUser() { Avatar = accessUrl, UserId = loginUser.UserId }); - return SUCCESS(new { imgUrl = accessUrl }); + UserService.UpdatePhoto(new SysUser() { Avatar = file.AccessUrl, UserId = loginUser.UserId }); + return SUCCESS(new { imgUrl = file.AccessUrl }); } } } From 9ead3570715922e5277fdfd5af27247991411319 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Tue, 29 Mar 2022 16:52:54 +0800 Subject: [PATCH 04/10] =?UTF-8?q?fix=20upload=E6=9C=AC=E5=9C=B0=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E8=BF=94=E5=9B=9E=E6=96=87=E4=BB=B6=E5=90=8D=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ZR.Admin.WebApi/Controllers/CommonController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ZR.Admin.WebApi/Controllers/CommonController.cs b/ZR.Admin.WebApi/Controllers/CommonController.cs index 18e2433..c9e44a6 100644 --- a/ZR.Admin.WebApi/Controllers/CommonController.cs +++ b/ZR.Admin.WebApi/Controllers/CommonController.cs @@ -139,7 +139,7 @@ namespace ZR.Admin.WebApi.Controllers return SUCCESS(new { url = file.AccessUrl, - fileName, + fileName = file.FileName, fileId = file.Id.ToString() }); } From f59b2577035d970d2cf0858e06d57a93266b7cf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Tue, 29 Mar 2022 18:28:20 +0800 Subject: [PATCH 05/10] update CodeGeneratorTool --- ZR.CodeGenerator/CodeGeneratorTool.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ZR.CodeGenerator/CodeGeneratorTool.cs b/ZR.CodeGenerator/CodeGeneratorTool.cs index 55aaeea..615f964 100644 --- a/ZR.CodeGenerator/CodeGeneratorTool.cs +++ b/ZR.CodeGenerator/CodeGeneratorTool.cs @@ -500,7 +500,7 @@ namespace ZR.CodeGenerator /// private static void InitJntTemplate(GenerateDto dto, ReplaceDto replaceDto) { - Engine.Current.Clean(); + //Engine.Current.Clean(); dto.GenTable.Columns = dto.GenTable.Columns.OrderBy(x => x.Sort).ToList(); bool showCustomInput = dto.GenTable.Columns.Any(f => f.HtmlType.Equals(GenConstants.HTML_CUSTOM_INPUT, StringComparison.OrdinalIgnoreCase)); //jnt妯℃澘寮曟搸鍏ㄥ眬鍙橀噺 From 1a914c3c5d829ca86464d37a167836900d60904b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Thu, 31 Mar 2022 10:02:08 +0800 Subject: [PATCH 06/10] =?UTF-8?q?fix=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90bu?= =?UTF-8?q?g?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CodeGenTemplate/v3/{Vue3.txt => Vue.txt} | 10 +++++----- ZR.CodeGenerator/CodeGeneratorTool.cs | 15 ++++++++------- 2 files changed, 13 insertions(+), 12 deletions(-) rename ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/{Vue3.txt => Vue.txt} (98%) diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue3.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt similarity index 98% rename from ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue3.txt rename to ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt index b3cc1b4..a7df99d 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue3.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt @@ -186,13 +186,13 @@ $elseif(column.HtmlType == "datetime") $elseif(column.HtmlType == "imageUpload") - + $elseif(column.HtmlType == "fileUpload") - + $elseif(column.HtmlType == "radio") @@ -398,7 +398,7 @@ $end }) .then(() => { handleQuery(); - proxy.msgSuccess("鍒犻櫎鎴愬姛"); + proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛"); }) .catch(() => {}); } @@ -432,7 +432,7 @@ $end if (form.value.${replaceDto.FistLowerPk} != undefined && opertype.value === 2) { update${genTable.BusinessName}(form.value) .then((res) => { - proxy.msgSuccess("淇敼鎴愬姛"); + proxy.$modal.msgSuccess("淇敼鎴愬姛"); open.value = false; getList(); }) @@ -442,7 +442,7 @@ $end } else { add${genTable.BusinessName}(form.value) .then((res) => { - proxy.msgSuccess("鏂板鎴愬姛"); + proxy.$modal.msgSuccess("鏂板鎴愬姛"); open.value = false; getList(); }) diff --git a/ZR.CodeGenerator/CodeGeneratorTool.cs b/ZR.CodeGenerator/CodeGeneratorTool.cs index 615f964..f07295d 100644 --- a/ZR.CodeGenerator/CodeGeneratorTool.cs +++ b/ZR.CodeGenerator/CodeGeneratorTool.cs @@ -212,16 +212,17 @@ namespace ZR.CodeGenerator string fileName = string.Empty; switch (generateDto.GenTable.TplCategory) { - case "tree": - fileName = "TplTreeVue.txt"; - break; + //case "tree": + // fileName = "TplTreeVue.txt"; + // break; case "crud": - fileName = "Vue3.txt"; - break; - case "select": - fileName = "TplVueSelect.txt"; + fileName = "Vue.txt"; break; + //case "select": + // fileName = "TplVueSelect.txt"; + // break; default: + fileName = "Vue.txt"; break; } fileName = Path.Combine("v3", fileName); From 3636e8e5d72d6356dc76d0695742edd0be4579d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Thu, 31 Mar 2022 10:02:08 +0800 Subject: [PATCH 07/10] =?UTF-8?q?fix=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90bu?= =?UTF-8?q?g?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CodeGenTemplate/v3/{Vue3.txt => Vue.txt} | 10 +++++----- ZR.CodeGenerator/CodeGeneratorTool.cs | 16 +++++++++------- 2 files changed, 14 insertions(+), 12 deletions(-) rename ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/{Vue3.txt => Vue.txt} (98%) diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue3.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt similarity index 98% rename from ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue3.txt rename to ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt index b3cc1b4..d1f186f 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue3.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt @@ -186,13 +186,13 @@ $elseif(column.HtmlType == "datetime") $elseif(column.HtmlType == "imageUpload") - + $elseif(column.HtmlType == "fileUpload") - + $elseif(column.HtmlType == "radio") @@ -398,7 +398,7 @@ $end }) .then(() => { handleQuery(); - proxy.msgSuccess("鍒犻櫎鎴愬姛"); + proxy.${modal}modal.msgSuccess("鍒犻櫎鎴愬姛"); }) .catch(() => {}); } @@ -432,7 +432,7 @@ $end if (form.value.${replaceDto.FistLowerPk} != undefined && opertype.value === 2) { update${genTable.BusinessName}(form.value) .then((res) => { - proxy.msgSuccess("淇敼鎴愬姛"); + proxy.${modal}modal.msgSuccess("淇敼鎴愬姛"); open.value = false; getList(); }) @@ -442,7 +442,7 @@ $end } else { add${genTable.BusinessName}(form.value) .then((res) => { - proxy.msgSuccess("鏂板鎴愬姛"); + proxy.${modal}modal.msgSuccess("鏂板鎴愬姛"); open.value = false; getList(); }) diff --git a/ZR.CodeGenerator/CodeGeneratorTool.cs b/ZR.CodeGenerator/CodeGeneratorTool.cs index 615f964..1f8e228 100644 --- a/ZR.CodeGenerator/CodeGeneratorTool.cs +++ b/ZR.CodeGenerator/CodeGeneratorTool.cs @@ -212,16 +212,17 @@ namespace ZR.CodeGenerator string fileName = string.Empty; switch (generateDto.GenTable.TplCategory) { - case "tree": - fileName = "TplTreeVue.txt"; - break; + //case "tree": + // fileName = "TplTreeVue.txt"; + // break; case "crud": - fileName = "Vue3.txt"; - break; - case "select": - fileName = "TplVueSelect.txt"; + fileName = "Vue.txt"; break; + //case "select": + // fileName = "TplVueSelect.txt"; + // break; default: + fileName = "Vue.txt"; break; } fileName = Path.Combine("v3", fileName); @@ -512,6 +513,7 @@ namespace ZR.CodeGenerator options.OutMode = OutMode.Auto; //options.DisableeLogogram = true;//绂佺敤绠鍐 options.Data.Set("refs", "$");//鐗规畩鏍囩鏇挎崲 + options.Data.Set("modal", "$");//鐗规畩鏍囩鏇挎崲 options.Data.Set("index", "$");//鐗规畩鏍囩鏇挎崲 options.Data.Set("confirm", "$");//鐗规畩鏍囩鏇挎崲 options.Data.Set("nextTick", "$"); From 990c1996a3a788ddd302a8767b185a6795d09ef7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Thu, 31 Mar 2022 13:42:50 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ZR.Vue/src/views/login.vue | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ZR.Vue/src/views/login.vue b/ZR.Vue/src/views/login.vue index 5e3b75b..890e416 100644 --- a/ZR.Vue/src/views/login.vue +++ b/ZR.Vue/src/views/login.vue @@ -126,8 +126,7 @@ export default { this.$store .dispatch("Login", this.loginForm) .then(() => { - this.msgSuccess("鐧婚檰鎴愬姛"); - this.loading = true; + this.msgSuccess("鐧诲綍鎴愬姛"); this.$router.push({ path: this.redirect || "/" }); }) .catch((error) => { From 7377a3e16752447cee25e174e58d168a94fa9c86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Fri, 1 Apr 2022 20:25:58 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B2=97=E4=BD=8D?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/System/SysPostController.cs | 6 ++- ZR.Vue/src/components/TopNav/index.vue | 2 +- .../src/layout/components/Sidebar/index.vue | 41 ++++++++++--------- ZR.Vue/src/views/system/user/index.vue | 9 +--- 4 files changed, 28 insertions(+), 30 deletions(-) diff --git a/ZR.Admin.WebApi/Controllers/System/SysPostController.cs b/ZR.Admin.WebApi/Controllers/System/SysPostController.cs index 5deb34a..9143d49 100644 --- a/ZR.Admin.WebApi/Controllers/System/SysPostController.cs +++ b/ZR.Admin.WebApi/Controllers/System/SysPostController.cs @@ -9,6 +9,7 @@ using Infrastructure.Attribute; using Infrastructure.Enums; using Infrastructure; using ZR.Service.System.IService; +using ZR.Common; namespace ZR.Admin.WebApi.Controllers.System { @@ -106,9 +107,10 @@ namespace ZR.Admin.WebApi.Controllers.System [HttpDelete("{id}")] [ActionPermissionFilter(Permission = "system:post:remove")] [Log(Title = "宀椾綅鍒犻櫎", BusinessType = BusinessType.DELETE)] - public IActionResult Delete(int id = 0) + public IActionResult Delete(string id) { - return ToResponse(ToJson(PostService.Delete(id))); + int[] ids = Tools.SpitIntArrary(id); + return ToResponse(ToJson(PostService.Delete(ids))); } /// diff --git a/ZR.Vue/src/components/TopNav/index.vue b/ZR.Vue/src/components/TopNav/index.vue index e92d381..16632e0 100644 --- a/ZR.Vue/src/components/TopNav/index.vue +++ b/ZR.Vue/src/components/TopNav/index.vue @@ -97,7 +97,7 @@ export default { if (routes.length === 0) { activePath = this.currentIndex || this.defaultRouter(); - console.log("activePath", activePath); + console.log("activePath", activePath); this.activeRoutes(activePath); } return activePath; diff --git a/ZR.Vue/src/layout/components/Sidebar/index.vue b/ZR.Vue/src/layout/components/Sidebar/index.vue index 06dc015..0b1e16e 100644 --- a/ZR.Vue/src/layout/components/Sidebar/index.vue +++ b/ZR.Vue/src/layout/components/Sidebar/index.vue @@ -1,11 +1,12 @@ diff --git a/ZR.Vue/src/views/system/user/index.vue b/ZR.Vue/src/views/system/user/index.vue index b9a205e..c5fcc82 100644 --- a/ZR.Vue/src/views/system/user/index.vue +++ b/ZR.Vue/src/views/system/user/index.vue @@ -41,14 +41,10 @@ 鏂板 - + 瀵煎叆 @@ -59,7 +55,6 @@ - From 2bc336ebb2362e84d2df27816617e9c589285f46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com> Date: Sun, 3 Apr 2022 13:00:30 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=A0http=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/System/TasksController.cs | 34 ++++-- ZR.Model/System/Dto/TasksDto.cs | 11 +- ZR.Model/System/SysTasksQz.cs | 8 ++ ZR.Tasks/JobFactory.cs | 6 +- ZR.Tasks/TaskScheduler/Job_HttpRequest.cs | 33 ++++++ ZR.Vue/src/views/monitor/job/index.vue | 110 +++++++++++------- document/admin-mysql.sql | 2 + document/admin-sqlserver.sql | 2 + 8 files changed, 149 insertions(+), 57 deletions(-) create mode 100644 ZR.Tasks/TaskScheduler/Job_HttpRequest.cs diff --git a/ZR.Admin.WebApi/Controllers/System/TasksController.cs b/ZR.Admin.WebApi/Controllers/System/TasksController.cs index 651ca6e..754eef6 100644 --- a/ZR.Admin.WebApi/Controllers/System/TasksController.cs +++ b/ZR.Admin.WebApi/Controllers/System/TasksController.cs @@ -15,6 +15,7 @@ using ZR.Model.System; using ZR.Service.System.IService; using ZR.Tasks; using Snowflake.Core; +using Infrastructure.Extensions; namespace ZR.Admin.WebApi.Controllers { @@ -62,14 +63,14 @@ namespace ZR.Admin.WebApi.Controllers /// /// 缂栫爜 /// - [HttpGet("{id}")] + [HttpGet("get")] public IActionResult Get(string id) { if (!string.IsNullOrEmpty(id)) { return SUCCESS(_tasksQzService.GetId(id)); } - return SUCCESS(_tasksQzService.GetAll()); + return SUCCESS(null); } /// @@ -90,7 +91,10 @@ namespace ZR.Admin.WebApi.Controllers { throw new CustomException($"cron琛ㄨ揪寮忎笉姝g‘"); } - + if (string.IsNullOrEmpty(parm.ApiUrl) && parm.TaskType == 2) + { + throw new CustomException($"鍦板潃涓嶈兘涓虹┖"); + } //浠 Dto 鏄犲皠鍒 瀹炰綋 var tasksQz = parm.Adapt().ToCreate(); var worker = new IdWorker(1, 1); @@ -98,7 +102,13 @@ namespace ZR.Admin.WebApi.Controllers tasksQz.ID = worker.NextId().ToString(); tasksQz.IsStart = false; tasksQz.Create_by = HttpContext.GetName(); - + tasksQz.TaskType = parm.TaskType; + tasksQz.ApiUrl = parm.ApiUrl; + if (parm.ApiUrl.IfNotEmpty() && parm.TaskType == 2) + { + tasksQz.AssemblyName = "ZR.Tasks"; + tasksQz.ClassName = "TaskScheduler.HttpResultfulJob"; + } return SUCCESS(_tasksQzService.Add(tasksQz)); } @@ -125,7 +135,15 @@ namespace ZR.Admin.WebApi.Controllers throw new CustomException($"cron琛ㄨ揪寮忎笉姝g‘"); } var tasksQz = _tasksQzService.GetFirst(m => m.ID == parm.ID); - + if (string.IsNullOrEmpty(parm.ApiUrl) && parm.TaskType == 2) + { + throw new CustomException($"api鍦板潃涓嶈兘涓虹┖"); + } + if (parm.ApiUrl.IfNotEmpty() && parm.TaskType == 2) + { + parm.AssemblyName = "ZR.Tasks"; + parm.ClassName = "TaskScheduler.HttpResultfulJob"; + } if (tasksQz.IsStart) { throw new CustomException($"璇ヤ换鍔℃鍦ㄨ繍琛屼腑锛岃鍏堝仠姝㈠湪鏇存柊"); @@ -142,10 +160,12 @@ namespace ZR.Admin.WebApi.Controllers TriggerType = parm.TriggerType, IntervalSecond = parm.IntervalSecond, JobParams = parm.JobParams, - Update_by = User.Identity.Name, + Update_by = HttpContextExtension.GetName(HttpContext), Update_time = DateTime.Now, BeginTime = parm.BeginTime, - EndTime = parm.EndTime + EndTime = parm.EndTime, + TaskType = parm.TaskType, + ApiUrl = parm.ApiUrl, }); if (response > 0) { diff --git a/ZR.Model/System/Dto/TasksDto.cs b/ZR.Model/System/Dto/TasksDto.cs index 3fa3cdf..9b0d9a9 100644 --- a/ZR.Model/System/Dto/TasksDto.cs +++ b/ZR.Model/System/Dto/TasksDto.cs @@ -112,6 +112,11 @@ namespace ZR.Model.System.Dto /// [Display(Name = "浼犲叆鍙傛暟")] public string JobParams { get; set; } + public string ApiUrl { get; set; } + /// + /// 1銆佺▼搴忛泦浠诲姟 2銆乤piUrl浠诲姟 + /// + public int TaskType { get; set; } } /// @@ -219,6 +224,10 @@ namespace ZR.Model.System.Dto /// [Display(Name = "浼犲叆鍙傛暟")] public string JobParams { get; set; } + public string ApiUrl { get; set; } + /// + /// 1銆佺▼搴忛泦浠诲姟 2銆乤piUrl浠诲姟 + /// + public int TaskType { get; set; } } - } diff --git a/ZR.Model/System/SysTasksQz.cs b/ZR.Model/System/SysTasksQz.cs index 58deb98..2827394 100644 --- a/ZR.Model/System/SysTasksQz.cs +++ b/ZR.Model/System/SysTasksQz.cs @@ -157,5 +157,13 @@ namespace ZR.Model.System /// 鏈鍚庤繍琛屾椂闂 /// public DateTime? LastRunTime { get; set; } + /// + /// api鎵ц鍦板潃 + /// + public string ApiUrl { get; set; } + /// + /// 浠诲姟绫诲瀷 1绋嬪簭闆2缃戠粶璇锋眰 + /// + public int TaskType { get; set; } } } diff --git a/ZR.Tasks/JobFactory.cs b/ZR.Tasks/JobFactory.cs index 13e3d50..1317ee3 100644 --- a/ZR.Tasks/JobFactory.cs +++ b/ZR.Tasks/JobFactory.cs @@ -7,7 +7,7 @@ namespace ZR.Tasks { public class JobFactory : IJobFactory { - private NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); + private readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); /// /// 娉ㄥ叆鍙嶅皠鑾峰彇渚濊禆瀵硅薄 @@ -42,12 +42,10 @@ namespace ZR.Tasks public void ReturnJob(IJob job) { - var disposable = job as IDisposable; - if (disposable != null) + if (job is IDisposable disposable) { disposable.Dispose(); } - } } } diff --git a/ZR.Tasks/TaskScheduler/Job_HttpRequest.cs b/ZR.Tasks/TaskScheduler/Job_HttpRequest.cs new file mode 100644 index 0000000..b65a9ad --- /dev/null +++ b/ZR.Tasks/TaskScheduler/Job_HttpRequest.cs @@ -0,0 +1,33 @@ +锘縰sing Infrastructure; +using Infrastructure.Attribute; +using Quartz; +using Quartz.Impl; +using Quartz.Impl.Triggers; +using System.Threading.Tasks; +using ZR.Service.System.IService; + +namespace ZR.Tasks.TaskScheduler +{ + [AppService(ServiceType = typeof(Job_HttpRequest), ServiceLifetime = LifeTime.Scoped)] + internal class Job_HttpRequest : JobBase, IJob + { + private readonly ISysTasksQzService tasksQzService; + + public Job_HttpRequest(ISysTasksQzService tasksQzService) + { + this.tasksQzService = tasksQzService; + } + public async Task Execute(IJobExecutionContext context) + { + await ExecuteJob(context, async () => await Run(context)); + } + public async Task Run(IJobExecutionContext context) + { + AbstractTrigger trigger = (context as JobExecutionContextImpl).Trigger as AbstractTrigger; + var info = await tasksQzService.GetByIdAsync(trigger.Name); + + var result = await HttpHelper.HttpPostAsync("http://" + info.ApiUrl, info.JobParams); + //Console.WriteLine(result); + } + } +} diff --git a/ZR.Vue/src/views/monitor/job/index.vue b/ZR.Vue/src/views/monitor/job/index.vue index d24036b..f08e1b8 100644 --- a/ZR.Vue/src/views/monitor/job/index.vue +++ b/ZR.Vue/src/views/monitor/job/index.vue @@ -77,46 +77,71 @@ - +
{{form.id}}
- + - + - + - - - + + + + 鎵ц绋嬪簭闆 + 鎵цurl + - - - + + + + + + - + + + + + + + + 浼犲叆鍙傛暟 + - +