✨ 代码生成自动添加菜单
This commit is contained in:
parent
cdd4b42f0a
commit
ac38886f60
@ -12,6 +12,7 @@ using ZR.CodeGenerator.Model;
|
||||
using ZR.CodeGenerator.Service;
|
||||
using ZR.Common;
|
||||
using ZR.Model;
|
||||
using ZR.Model.System;
|
||||
using ZR.Model.System.Dto;
|
||||
using ZR.Model.System.Generate;
|
||||
using ZR.Service.System.IService;
|
||||
@ -28,16 +29,18 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
private readonly CodeGeneraterService _CodeGeneraterService = new CodeGeneraterService();
|
||||
private readonly IGenTableService GenTableService;
|
||||
private readonly IGenTableColumnService GenTableColumnService;
|
||||
|
||||
private readonly ISysMenuService SysMenuService;
|
||||
private readonly IWebHostEnvironment WebHostEnvironment;
|
||||
public CodeGeneratorController(
|
||||
IGenTableService genTableService,
|
||||
IGenTableColumnService genTableColumnService,
|
||||
IWebHostEnvironment webHostEnvironment)
|
||||
IWebHostEnvironment webHostEnvironment,
|
||||
ISysMenuService sysMenuService)
|
||||
{
|
||||
GenTableService = genTableService;
|
||||
GenTableColumnService = genTableColumnService;
|
||||
WebHostEnvironment = webHostEnvironment;
|
||||
SysMenuService = sysMenuService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -275,7 +278,10 @@ namespace ZR.Admin.WebApi.Controllers
|
||||
CodeGeneratorTool.Generate(dto);
|
||||
//下载文件
|
||||
FileUtil.ZipGenCode(dto.ZipPath, dto.GenCodePath, zipReturnFileName);
|
||||
|
||||
if (genTableInfo.Options.GenerateMenu)
|
||||
{
|
||||
SysMenuService.AddSysMenu(genTableInfo, dto.ReplaceDto.PermissionPrefix, dto.ReplaceDto.ShowBtnEdit, dto.ReplaceDto.ShowBtnExport);
|
||||
}
|
||||
return SUCCESS(new { path = "/Generatecode/" + zipReturnFileName, fileName = dto.ZipFileName });
|
||||
}
|
||||
|
||||
|
||||
@ -79,7 +79,7 @@ namespace ZR.CodeGenerator
|
||||
}
|
||||
GenerateVueJs(dto);
|
||||
GenerateSql(dto);
|
||||
|
||||
dto.ReplaceDto = replaceDto;
|
||||
if (dto.IsPreview) return;
|
||||
|
||||
foreach (var item in dto.GenCodes)
|
||||
|
||||
@ -58,6 +58,7 @@ namespace ZR.CodeGenerator.Model
|
||||
/// </summary>
|
||||
public string VueParentPath { get; set; }
|
||||
#endregion
|
||||
public ReplaceDto ReplaceDto { get; set; }
|
||||
}
|
||||
|
||||
public class GenCode
|
||||
|
||||
@ -107,5 +107,9 @@ namespace ZR.Model.System.Generate
|
||||
/// 是否生成仓储层
|
||||
/// </summary>
|
||||
public int GenerateRepo { get; set; }
|
||||
/// <summary>
|
||||
/// 自动生成菜单
|
||||
/// </summary>
|
||||
public bool GenerateMenu { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
using ZR.Model.System.Dto;
|
||||
using ZR.Model.System;
|
||||
using ZR.Model.System.Vo;
|
||||
using ZR.Model.System.Generate;
|
||||
|
||||
namespace ZR.Service.System.IService
|
||||
{
|
||||
@ -37,6 +38,8 @@ namespace ZR.Service.System.IService
|
||||
List<RouterVo> BuildMenus(List<SysMenu> menus);
|
||||
|
||||
List<TreeSelectVo> BuildMenuTreeSelect(List<SysMenu> menus);
|
||||
|
||||
void AddSysMenu(GenTable genTableInfo, string permPrefix, bool showEdit, bool showExport);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@ -7,8 +7,10 @@ using System.Linq;
|
||||
using ZR.Common;
|
||||
using ZR.Model.System;
|
||||
using ZR.Model.System.Dto;
|
||||
using ZR.Model.System.Generate;
|
||||
using ZR.Model.System.Vo;
|
||||
using ZR.Service.System.IService;
|
||||
using static System.Runtime.InteropServices.JavaScript.JSType;
|
||||
|
||||
namespace ZR.Service
|
||||
{
|
||||
@ -561,5 +563,114 @@ namespace ZR.Service
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
public void AddSysMenu(GenTable genTableInfo, string permPrefix, bool showEdit, bool showExport)
|
||||
{
|
||||
var menu = GetFirst(f => f.MenuName == genTableInfo.FunctionName);
|
||||
if (menu is null)
|
||||
{
|
||||
menu = new()
|
||||
{
|
||||
MenuName = genTableInfo.FunctionName,
|
||||
ParentId = genTableInfo.Options.ParentMenuId,
|
||||
OrderNum = 0,
|
||||
Path = genTableInfo.BusinessName,
|
||||
Component = $"{genTableInfo.ModuleName.FirstLowerCase()}/{genTableInfo.BusinessName}",
|
||||
Perms = $"{permPrefix}:list",
|
||||
IsFrame = "0",
|
||||
IsCache = "1",
|
||||
MenuType = "C",
|
||||
Visible = "0",
|
||||
Status = "0",
|
||||
Icon = "icon1",
|
||||
Create_by = "system",
|
||||
};
|
||||
menu.MenuId = AddMenu(menu);
|
||||
}
|
||||
|
||||
List<SysMenu> menuList = new();
|
||||
|
||||
SysMenu menuQuery = new()
|
||||
{
|
||||
MenuName = "查询",
|
||||
ParentId = menu.MenuId,
|
||||
OrderNum = 1,
|
||||
Perms = $"{permPrefix}:query",
|
||||
IsFrame = "0",
|
||||
MenuType = "F",
|
||||
Visible = "0",
|
||||
Status = "0",
|
||||
Icon = "",
|
||||
};
|
||||
SysMenu menuAdd = new()
|
||||
{
|
||||
MenuName = "新增",
|
||||
ParentId = menu.MenuId,
|
||||
OrderNum = 2,
|
||||
Perms = $"{permPrefix}:add",
|
||||
IsFrame = "0",
|
||||
MenuType = "F",
|
||||
Visible = "0",
|
||||
Status = "0",
|
||||
Icon = "",
|
||||
};
|
||||
SysMenu menuDel = new()
|
||||
{
|
||||
MenuName = "删除",
|
||||
ParentId = menu.MenuId,
|
||||
OrderNum = 3,
|
||||
Perms = $"{permPrefix}:delete",
|
||||
IsFrame = "0",
|
||||
MenuType = "F",
|
||||
Visible = "0",
|
||||
Status = "0",
|
||||
Icon = "",
|
||||
};
|
||||
|
||||
SysMenu menuEdit = new()
|
||||
{
|
||||
MenuName = "修改",
|
||||
ParentId = menu.MenuId,
|
||||
OrderNum = 4,
|
||||
Perms = $"{permPrefix}:edit",
|
||||
IsFrame = "0",
|
||||
MenuType = "F",
|
||||
Visible = "0",
|
||||
Status = "0",
|
||||
Icon = "",
|
||||
};
|
||||
|
||||
SysMenu menuExport = new()
|
||||
{
|
||||
MenuName = "导出",
|
||||
ParentId = menu.MenuId,
|
||||
OrderNum = 5,
|
||||
Perms = $"{permPrefix}:export",
|
||||
IsFrame = "0",
|
||||
MenuType = "F",
|
||||
Visible = "0",
|
||||
Status = "0",
|
||||
Icon = "",
|
||||
};
|
||||
|
||||
menuList.Add(menuQuery);
|
||||
menuList.Add(menuAdd);
|
||||
menuList.Add(menuDel);
|
||||
if (showEdit)
|
||||
{
|
||||
menuList.Add(menuEdit);
|
||||
}
|
||||
if (showExport)
|
||||
{
|
||||
menuList.Add(menuExport);
|
||||
}
|
||||
//Insert(menuList);
|
||||
|
||||
var x = Storageable(menuList)
|
||||
.WhereColumns(it => new { it.MenuName, it.ParentId })
|
||||
.ToStorage();
|
||||
x.AsInsertable.ExecuteCommand();//插入可插入部分;
|
||||
x.AsUpdateable.ExecuteCommand();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user