diff --git a/ZR.Admin.WebApi/Controllers/CodeGeneratorController.cs b/ZR.Admin.WebApi/Controllers/CodeGeneratorController.cs index 49cb10b..7cffe87 100644 --- a/ZR.Admin.WebApi/Controllers/CodeGeneratorController.cs +++ b/ZR.Admin.WebApi/Controllers/CodeGeneratorController.cs @@ -1,20 +1,15 @@ using Infrastructure; using Infrastructure.Attribute; using Infrastructure.Enums; -using Infrastructure.Model; using Microsoft.AspNetCore.Mvc; using SqlSugar; -using System; using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; +using ZR.Admin.WebApi.Filters; using ZR.CodeGenerator; using ZR.CodeGenerator.Model; using ZR.CodeGenerator.Service; using ZR.Model; using ZR.Model.Vo; -using ZR.Service.IService; -using ZR.Service.System; namespace ZR.Admin.WebApi.Controllers { @@ -24,11 +19,6 @@ namespace ZR.Admin.WebApi.Controllers [Route("tool/gen")] public class CodeGeneratorController : BaseController { - //public ICodeGeneratorService CodeGeneratorService; - //public CodeGeneratorController(ICodeGeneratorService codeGeneratorService) - //{ - // CodeGeneratorService = codeGeneratorService; - //} private CodeGeneraterService _CodeGeneraterService = new CodeGeneraterService(); /// @@ -36,7 +26,7 @@ namespace ZR.Admin.WebApi.Controllers /// /// [HttpGet("getDbList")] - //[YuebonAuthorize("GetListDataBase")] + [ActionPermissionFilter(Permission = "tool:gen:list")] public IActionResult GetListDataBase() { var dbList = _CodeGeneraterService.GetAllDataBases(); @@ -51,7 +41,8 @@ namespace ZR.Admin.WebApi.Controllers /// 表名 /// 分页信息 /// - [HttpGet("FindListTable")] + [HttpGet("getTableList")] + [ActionPermissionFilter(Permission = "tool:gen:list")] public IActionResult FindListTable(string dbName, string tableName, PagerInfo pager) { List list = _CodeGeneraterService.GetAllTables(dbName, tableName, pager); @@ -66,7 +57,8 @@ namespace ZR.Admin.WebApi.Controllers /// /// /// - [HttpGet("QueryColumnInfo")] + [HttpGet("getColumnInfo")] + [ActionPermissionFilter(Permission = "tool:gen:list")] public IActionResult QueryColumnInfo(string dbName, string tableName) { if (string.IsNullOrEmpty(dbName) || string.IsNullOrEmpty(tableName)) @@ -80,18 +72,19 @@ namespace ZR.Admin.WebApi.Controllers /// /// 数据传输对象 /// - [HttpGet("Generate")] - [Log(Title = "代码生成", BusinessType = BusinessType.OTHER)] - public IActionResult Generate([FromQuery] GenerateDto dto) + [HttpPost("genCode")] + [Log(Title = "代码生成", BusinessType = BusinessType.GENCODE)] + [ActionPermissionFilter(Permission = "tool:gen:code")] + public IActionResult Generate([FromBody] GenerateDto dto) { - if (string.IsNullOrEmpty(dto.tables)) + if (string.IsNullOrEmpty(dto.tableName)) { throw new CustomException(ResultCode.CUSTOM_ERROR, "请求参数为空"); } - DbTableInfo dbTableInfo = new() { Name = dto.tables }; + DbTableInfo dbTableInfo = new() { Name = dto.tableName }; CodeGeneratorTool.Generate(dbTableInfo, dto); - return SUCCESS(1); + return SUCCESS(dbTableInfo); } } } diff --git a/ZR.Admin.WebApi/Filters/ActionPermissionFilter.cs b/ZR.Admin.WebApi/Filters/ActionPermissionFilter.cs index 88258d7..08cad61 100644 --- a/ZR.Admin.WebApi/Filters/ActionPermissionFilter.cs +++ b/ZR.Admin.WebApi/Filters/ActionPermissionFilter.cs @@ -54,7 +54,7 @@ namespace ZR.Admin.WebApi.Filters bool isDemoMode = ConfigUtils.Instance.GetAppConfig("DemoMode", false); //演示公开环境屏蔽权限 - string[] denyPerms = new string[] { "update", "add", "remove", "add", "edit", "delete", "import", "run", "start", "stop", "clear" }; + string[] denyPerms = new string[] { "update", "add", "remove", "add", "edit", "delete", "import", "run", "start", "stop", "clear", "gen" }; if (isDemoMode && (denyPerms.Any(f => Permission.ToLower().Contains(f.ToLower())) || Permission.Equals("system"))) { context.Result = new JsonResult(new { code = ResultCode.FORBIDDEN, msg = "演示模式 , 不允许操作" }); diff --git a/ZR.CodeGenerator/CodeGeneratorTool.cs b/ZR.CodeGenerator/CodeGeneratorTool.cs index 9c51eb8..8269080 100644 --- a/ZR.CodeGenerator/CodeGeneratorTool.cs +++ b/ZR.CodeGenerator/CodeGeneratorTool.cs @@ -64,7 +64,7 @@ namespace ZR.CodeGenerator public static void GenerateSingle(List listField, DbTableInfo tableInfo, GenerateDto dto) { bool ifExsitedCovered = dto.coverd; - var modelTypeName = GetModelName(tableInfo.Name).Replace(_option.ReplaceTableNameStr, "");//表名 + var modelTypeName = GetModelName(tableInfo.Name); var modelTypeDesc = tableInfo.Description;//表描述 var primaryKey = "id";//主键 @@ -107,7 +107,7 @@ namespace ZR.CodeGenerator } if (dto.genFiles.Contains(1)) { - GenerateModels(_option.ModelsNamespace, modelTypeName, tableInfo.Name, modelContent, modelTypeDesc, keyTypeName, ifExsitedCovered); + //GenerateModels(_option.ModelsNamespace, modelTypeName, tableInfo.Name, modelContent, modelTypeDesc, keyTypeName, ifExsitedCovered); } if (dto.genFiles.Contains(2)) { @@ -478,16 +478,14 @@ namespace ZR.CodeGenerator /// 如果目标文件存在,是否覆盖。默认为false private static void GenerateVueViews(string modelTypeName, string primaryKey, string modelTypeDesc, string vueViewListContent, string vueViewFromContent, string vueViewEditFromContent, string vueViewEditFromBindContent, string vueViewSaveBindContent, string vueViewEditFromRuleContent, bool ifExsitedCovered = false) { - var servicesNamespace = _option.DtosNamespace; - var path = "..\\CodeGenerate\\"; - var parentPath = path.Substring(0, path.LastIndexOf("\\")); - var servicesPath = parentPath + "\\" + _option.BaseNamespace + "\\" + servicesNamespace; + var parentPath = "..\\CodeGenerate";//若要生成到项目中将路径改成 “..\\ZR.Vue\\src” + var servicesPath = parentPath + "\\views\\" + FirstLowerCase(modelTypeName); if (!Directory.Exists(servicesPath)) { - servicesPath = parentPath + "\\" + _option.BaseNamespace + "\\views\\" + FirstLowerCase(modelTypeName); Directory.CreateDirectory(servicesPath); } var fullPath = servicesPath + "\\" + "index.vue"; + Console.WriteLine(fullPath); if (File.Exists(fullPath) && !ifExsitedCovered) return; var content = ReadTemplate("VueTemplate.txt"); @@ -505,7 +503,11 @@ namespace ZR.CodeGenerator .Replace("{VueViewEditFromRuleContent}", vueViewEditFromRuleContent); WriteAndSave(fullPath, content); + //api js + servicesPath = parentPath + "\\api\\"; + Directory.CreateDirectory(servicesPath); fullPath = servicesPath + "\\" + FirstLowerCase(modelTypeName) + ".js"; + Console.WriteLine(fullPath); if (File.Exists(fullPath) && !ifExsitedCovered) return; content = ReadTemplate("VueJsTemplate.txt"); diff --git a/ZR.CodeGenerator/Model/GenerateDto.cs b/ZR.CodeGenerator/Model/GenerateDto.cs index be9e00f..60399fc 100644 --- a/ZR.CodeGenerator/Model/GenerateDto.cs +++ b/ZR.CodeGenerator/Model/GenerateDto.cs @@ -8,7 +8,7 @@ namespace ZR.CodeGenerator.Model { public class GenerateDto { - public string queryColumn { get; set; } + public string[] queryColumn { get; set; } /// /// /// @@ -20,7 +20,7 @@ namespace ZR.CodeGenerator.Model /// /// 要生成代码的表 /// - public string tables { get; set; } + public string tableName { get; set; } /// /// 要删除表名的字符串用 /// diff --git a/ZR.Vue/public/index.html b/ZR.Vue/public/index.html index 6d64bf9..c896b69 100644 --- a/ZR.Vue/public/index.html +++ b/ZR.Vue/public/index.html @@ -1,13 +1,16 @@ - - - - - - - <%= webpackConfig.name %> - - - -
-
-
-
-
-
正在加载系统资源,请耐心等待
-
-
- + + + +
+
+
+
+
+
Loading...
+
+
+ + diff --git a/ZR.Vue/src/api/login.js b/ZR.Vue/src/api/system/login.js similarity index 100% rename from ZR.Vue/src/api/login.js rename to ZR.Vue/src/api/system/login.js diff --git a/ZR.Vue/src/api/tool/gen.js b/ZR.Vue/src/api/tool/gen.js index 348f6c3..93d7a27 100644 --- a/ZR.Vue/src/api/tool/gen.js +++ b/ZR.Vue/src/api/tool/gen.js @@ -1,92 +1,23 @@ import request from '@/utils/request' -// 查询生成表数据 -export function listTable(query) { - return request({ - url: '/tool/gen/list', - method: 'get', - params: query - }) -} -// 查询db数据库列表 -export function listDbTable(query) { - return request({ - url: '/tool/gen/db/list', - method: 'get', - params: query - }) -} - -// 查询表详细信息 -export function getGenTable(tableId) { - return request({ - url: '/tool/gen/' + tableId, - method: 'get' - }) -} - -// 修改代码生成信息 -export function updateGenTable(data) { - return request({ - url: '/tool/gen', - method: 'put', - data: data - }) -} - -// 导入表 -export function importTable(data) { - return request({ - url: '/tool/gen/importTable', - method: 'post', - params: data - }) -} - // 预览生成代码 -export function previewTable(tableId) { - return request({ - url: '/tool/gen/preview/' + tableId, - method: 'get' - }) -} - -// 删除表数据 -export function delTable(tableId) { - return request({ - url: '/tool/gen/' + tableId, - method: 'delete' - }) -} - -// 生成代码(自定义路径) -export function genCode(tableName) { - return request({ - url: '/tool/gen/genCode/' + tableName, - method: 'get' - }) -} - -// 同步数据库 -export function synchDb(tableName) { - return request({ - url: 'tool/gen/synchDb/' + tableName, - method: 'get' - }) -} - -/**新的代码生成 */ +// export function previewTable(tableId) { +// return request({ +// url: '/tool/gen/preview/' + tableId, +// method: 'get' +// }) +// } /** * 创建数据库连接 */ -export function createGetDBConn(data) { - return request({ - url: 'tool/gen/CreateDBConn', - method: 'post', - data: data, - }) -} +// export function createGetDBConn(data) { +// return request({ +// url: 'tool/gen/CreateDBConn', +// method: 'post', +// data: data, +// }) +// } /** * 获取数据库 */ @@ -101,7 +32,7 @@ export function codeGetDBList() { */ export function codeGetTableList(data) { return request({ - url: 'tool/gen/FindListTable', + url: 'tool/gen/getTableList', method: 'get', params: data, }) @@ -111,10 +42,9 @@ export function codeGetTableList(data) { */ export async function codeGenerator(data) { return await request({ - url: '/tool/gen/Generate', + url: 'tool/gen/genCode', method: 'post', data: data, - timeout: 0, }) } @@ -125,30 +55,30 @@ export async function codeGenerator(data) { */ export function queryColumnInfo(data) { return request({ - url: 'tool/gen/queryColumnInfo', + url: 'tool/gen/getColumnInfo', method: 'GET', params: data, }) } -/** - * -* 数据库解密 -*/ -export function dbtoolsConnStrDecrypt(data) { - return request({ - url: 'DbTools/ConnStrDecrypt', - method: 'post', - params: data, - }) -} -/** - * 数据库加密 - */ -export function dbtoolsConnStrEncrypt(data) { - return request({ - url: 'DbTools/ConnStrEncrypt', - method: 'post', - params: data, - }) -} +// /** +// * +// * 数据库解密 +// */ +// export function dbtoolsConnStrDecrypt(data) { +// return request({ +// url: 'DbTools/ConnStrDecrypt', +// method: 'post', +// params: data, +// }) +// } +// /** +// * 数据库加密 +// */ +// export function dbtoolsConnStrEncrypt(data) { +// return request({ +// url: 'DbTools/ConnStrEncrypt', +// method: 'post', +// params: data, +// }) +// } diff --git a/ZR.Vue/src/store/modules/user.js b/ZR.Vue/src/store/modules/user.js index cc944ee..7a95dbd 100644 --- a/ZR.Vue/src/store/modules/user.js +++ b/ZR.Vue/src/store/modules/user.js @@ -1,4 +1,4 @@ -import { login, logOut, getInfo } from '@/api/login' +import { login, logOut, getInfo } from '@/api/system/login' import { getToken, setToken, removeToken } from '@/utils/auth' const user = { diff --git a/ZR.Vue/src/views/index.vue b/ZR.Vue/src/views/index.vue index c1be6dd..41a28d7 100644 --- a/ZR.Vue/src/views/index.vue +++ b/ZR.Vue/src/views/index.vue @@ -23,7 +23,7 @@
技术选型
- +

后端技术

  • NET5
  • @@ -35,7 +35,7 @@
  • ...
- +

前端技术

  • Vue
  • diff --git a/ZR.Vue/src/views/login.vue b/ZR.Vue/src/views/login.vue index 4b241eb..9bfb2ec 100644 --- a/ZR.Vue/src/views/login.vue +++ b/ZR.Vue/src/views/login.vue @@ -36,7 +36,7 @@