优化代码生成导入菜单,去掉默认导入没有用的打印、导入、导出、菜单,但是种子数据中生成该菜单,用户自行决定是否导入该菜单

This commit is contained in:
轻风2016 2024-12-06 11:06:49 +08:00
parent 81006dde67
commit 176fc1e735
2 changed files with 38 additions and 42 deletions

View File

@ -609,6 +609,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
ClassName = input.TableName!, // 类名称
input.ConfigId,
MenuList = menuList, // 菜单集合
PrintType = input.PrintType!
};
tResult = await _viewEngine.RunCompileAsync(tContent, seedData, builderAction: builder =>
{
@ -725,6 +726,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
// 若 pid=0 为顶级则创建菜单目录
SysMenu menuType0 = null;
long tempPid = pid;
List<SysMenu> menuList = new List<SysMenu>();
if (pid == 0)
{
// 目录
@ -777,6 +779,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
CreateTime = DateTime.Now
};
menuOrder += 10;
menuList.Add(menuTypePage);
// 按钮-detail
var menuTypeDetail = new SysMenu
@ -790,6 +793,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
CreateTime = DateTime.Now
};
menuOrder += 10;
menuList.Add(menuTypeDetail);
// 按钮-add
var menuTypeAdd = new SysMenu
@ -803,6 +807,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
CreateTime = DateTime.Now
};
menuOrder += 10;
menuList.Add(menuTypeAdd);
// 按钮-delete
var menuTypeDelete = new SysMenu
@ -816,6 +821,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
CreateTime = DateTime.Now
};
menuOrder += 10;
menuList.Add(menuTypeDelete);
// 按钮-update
var menuTypeUpdate = new SysMenu
@ -829,47 +835,8 @@ public class SysCodeGenService : IDynamicApiController, ITransient
CreateTime = DateTime.Now
};
menuOrder += 10;
// 按钮-print
var menuTypePrint = new SysMenu
{
Id = YitIdHelper.NextId(),
Pid = menuPid,
Title = "打印",
Type = MenuTypeEnum.Btn,
Permission = className[..1].ToLower() + className[1..] + "/print",
OrderNo = menuOrder,
CreateTime = DateTime.Now
};
menuOrder += 10;
// 按钮-import
var menuTypeImport = new SysMenu
{
Id = YitIdHelper.NextId(),
Pid = menuPid,
Title = "导入",
Type = MenuTypeEnum.Btn,
Permission = className[..1].ToLower() + className[1..] + "/import",
OrderNo = menuOrder,
CreateTime = DateTime.Now
};
menuOrder += 10;
// 按钮-export
var menuTypeExport = new SysMenu
{
Id = YitIdHelper.NextId(),
Pid = menuPid,
Title = "导出",
Type = MenuTypeEnum.Btn,
Permission = className[..1].ToLower() + className[1..] + "/export",
OrderNo = menuOrder,
CreateTime = DateTime.Now
};
menuOrder += 10;
var menuList = new List<SysMenu>() { menuTypePage, menuTypeDetail, menuTypeAdd, menuTypeDelete, menuTypeUpdate, menuTypePrint, menuTypeImport, menuTypeExport };
menuList.Add(menuTypeUpdate);
// 加入ForeignKey、Upload、ApiTreeSelector 等接口的权限
// 在生成表格时有些字段只是查询时显示不需要填写WhetherAddUpdate所以这些字段没必要生成相应接口
var fkTableList = tableFieldList.Where(u => u.EffectType == "ForeignKey" && (u.WhetherAddUpdate == "Y" || u.QueryWhether == "Y")).ToList();

View File

@ -3,7 +3,13 @@
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
@{
long lastId=0;
long pid=0;
int zindex=0;
int orderNo=0;
string createTime="";
}
namespace @(@Model.NameSpace).SeedData;
@ -24,18 +30,41 @@ public class @(@Model.ClassName)SeedData : ISqlSugarEntitySeedData<SysMenu>
#region @(@Model.BusName)
@foreach (var menu in Model.MenuList){
@{
zindex=zindex+1;
}
@if((int)menu.Type==1){
@:list.Add(new SysMenu { Id = @(menu.Id), Pid = @(menu.Pid), Title = "@(menu.Title)", Path = "@(menu.Path)", Name = "@(menu.Name)", Component = "Layout", Icon = "@(menu.Icon)", Type = MenuTypeEnum.Dir, CreateTime = DateTime.Parse("@(menu.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"))"), OrderNo = @(menu.OrderNo) });
}
@if((int)menu.Type==2){
@{
pid=menu.Id;
}
@:list.Add(new SysMenu { Id = @(menu.Id), Pid = @(menu.Pid), Title = "@(menu.Title)", Path = "@(menu.Path)", Name = "@(menu.Name)", Component = "@(menu.Component)", Icon = "@(menu.Icon)", Type = MenuTypeEnum.Menu, CreateTime = DateTime.Parse("@(menu.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"))"), OrderNo = @(menu.OrderNo) });
}
@if((int)menu.Type==3) {
@:list.Add(new SysMenu { Id = @(menu.Id), Pid = @(menu.Pid), Title = "@(menu.Title)", Permission = "@(menu.Permission)", Type = MenuTypeEnum.Btn, CreateTime = DateTime.Parse("@(menu.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"))"), OrderNo = @(menu.OrderNo) });
}
@if(zindex==Model.MenuList.Count){
lastId=menu.Id-18888;
orderNo=menu.OrderNo;
createTime=menu.CreateTime.ToString("yyyy-MM-dd HH:mm:ss");
}
}
@if(@Model.PrintType != "off"){
@:list.Add(new SysMenu { Id = @(lastId+1), Pid = @(pid), Title = "打印", Permission = "@(LowerFirstLetter(@Model.ClassName))/print", Type = MenuTypeEnum.Btn, CreateTime = DateTime.Parse("@(createTime)"), OrderNo = @(orderNo+10) });
}
// list.Add(new SysMenu { Id = @(lastId+2), Pid = @(pid), Title = "导入", Permission = "@(LowerFirstLetter(@Model.ClassName))/import", Type = MenuTypeEnum.Btn, CreateTime = DateTime.Parse("@(createTime)"), OrderNo = @(orderNo+20) });
// list.Add(new SysMenu { Id = @(lastId+3), Pid = @(pid), Title = "导出", Permission = "@(LowerFirstLetter(@Model.ClassName))/export", Type = MenuTypeEnum.Btn, CreateTime = DateTime.Parse("@(createTime)"), OrderNo = @(orderNo+30) });
#endregion
return list;
}
}
@{
string LowerFirstLetter(string text)
{
return text.ToString()[..1].ToLower() + text[1..]; // 首字母小写
}
}