Merge pull request '优化代码生成器代码预览时可查看对应菜单种子数据' (#133) from 616036448/Admin.NET.Pro:main into main
Reviewed-on: http://101.43.53.74:3000/Admin.NET/Admin.NET.Pro/pulls/133
This commit is contained in:
commit
6d63f25703
@ -374,7 +374,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
|
|||||||
if (string.IsNullOrEmpty(input.GenerateType))
|
if (string.IsNullOrEmpty(input.GenerateType))
|
||||||
input.GenerateType = "200";
|
input.GenerateType = "200";
|
||||||
|
|
||||||
string outputPath = Path.Combine(App.WebHostEnvironment.WebRootPath, "CodeGen", input.TableName!);
|
string outputPath = Path.Combine(App.WebHostEnvironment.WebRootPath, "codeGen", input.TableName!);
|
||||||
if (Directory.Exists(outputPath))
|
if (Directory.Exists(outputPath))
|
||||||
Directory.Delete(outputPath, true);
|
Directory.Delete(outputPath, true);
|
||||||
|
|
||||||
@ -428,22 +428,50 @@ public class SysCodeGenService : IDynamicApiController, ITransient
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 模板
|
// 模板
|
||||||
var templateAllList = GetTemplateList(input);
|
var templateList = GetTemplateList(input);
|
||||||
var templateList = templateAllList.Where(t => t.Type != CodeGenTypeEnum.SeedData).ToList();
|
|
||||||
var templatePath = Path.Combine(App.WebHostEnvironment.WebRootPath, "template");
|
var templatePath = Path.Combine(App.WebHostEnvironment.WebRootPath, "template");
|
||||||
|
|
||||||
|
// 获得菜单
|
||||||
|
var menuList = await GetMenus(input.TableName!, input.BusName!, input.MenuPid ?? 0, input.MenuIcon!, input.PagePath!, tableFieldList);
|
||||||
|
|
||||||
for (var i = 0; i < templateList.Count; i++)
|
for (var i = 0; i < templateList.Count; i++)
|
||||||
{
|
{
|
||||||
|
string tResult = string.Empty;//模板生成结果
|
||||||
|
|
||||||
var templateFilePath = Path.Combine(templatePath, templateList[i].Name);
|
var templateFilePath = Path.Combine(templatePath, templateList[i].Name);
|
||||||
if (!File.Exists(templateFilePath)) continue;
|
if (!File.Exists(templateFilePath)) continue;
|
||||||
var tContent = File.ReadAllText(templateFilePath);
|
var tContent = File.ReadAllText(templateFilePath);
|
||||||
var tResult = await _viewEngine.RunCompileFromCachedAsync(tContent, data, builderAction: builder =>
|
|
||||||
|
if (templateList[i].Type == CodeGenTypeEnum.SeedData)
|
||||||
|
{
|
||||||
|
//种子模板
|
||||||
|
var seedData = new
|
||||||
|
{
|
||||||
|
AuthorName = input.AuthorName!,//作者
|
||||||
|
BusName = input.BusName!,//业务名称
|
||||||
|
NameSpace = input.NameSpace!,//命名空间
|
||||||
|
ClassName = input.TableName!,//类名称
|
||||||
|
input.ConfigId,
|
||||||
|
MenuList = menuList,//菜单集合
|
||||||
|
};
|
||||||
|
tResult = await _viewEngine.RunCompileAsync(tContent, seedData, builderAction: builder =>
|
||||||
{
|
{
|
||||||
builder.AddAssemblyReferenceByName("System.Linq");
|
builder.AddAssemblyReferenceByName("System.Linq");
|
||||||
builder.AddAssemblyReferenceByName("System.Collections");
|
builder.AddAssemblyReferenceByName("System.Collections");
|
||||||
builder.AddUsing("System.Collections.Generic");
|
builder.AddUsing("System.Collections.Generic");
|
||||||
builder.AddUsing("System.Linq");
|
builder.AddUsing("System.Linq");
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tResult = await _viewEngine.RunCompileFromCachedAsync(tContent, data, builderAction: builder =>
|
||||||
|
{
|
||||||
|
builder.AddAssemblyReferenceByName("System.Linq");
|
||||||
|
builder.AddAssemblyReferenceByName("System.Collections");
|
||||||
|
builder.AddUsing("System.Collections.Generic");
|
||||||
|
builder.AddUsing("System.Linq");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
string targetFile = templateList[i].OutputFile
|
string targetFile = templateList[i].OutputFile
|
||||||
.Replace("{PagePath}", input.PagePath)
|
.Replace("{PagePath}", input.PagePath)
|
||||||
@ -471,54 +499,8 @@ public class SysCodeGenService : IDynamicApiController, ITransient
|
|||||||
}
|
}
|
||||||
if (input.GenerateMenu)
|
if (input.GenerateMenu)
|
||||||
{
|
{
|
||||||
var menus = await AddMenu(input.TableName!, input.BusName!, input.MenuPid ?? 0, input.MenuIcon!, input.PagePath!, tableFieldList);
|
//添加菜单
|
||||||
|
await AddMenu(menuList, input.MenuPid ?? 0);
|
||||||
//获得种子模板
|
|
||||||
var seedDataTemplates = templateAllList.Where(t => t.Type == CodeGenTypeEnum.SeedData).ToList();
|
|
||||||
for (var i = 0; i < seedDataTemplates.Count; i++)
|
|
||||||
{
|
|
||||||
var templateFilePath = Path.Combine(templatePath, seedDataTemplates[i].Name);
|
|
||||||
if (!File.Exists(templateFilePath)) continue;
|
|
||||||
var tContent = File.ReadAllText(templateFilePath);
|
|
||||||
var seedData = new
|
|
||||||
{
|
|
||||||
AuthorName = input.AuthorName!,//作者
|
|
||||||
BusName = input.BusName!,//业务名称
|
|
||||||
NameSpace = input.NameSpace!,//命名空间
|
|
||||||
ClassName = input.TableName!,//类名称
|
|
||||||
input.ConfigId,
|
|
||||||
MenuList = menus,//菜单集合
|
|
||||||
};
|
|
||||||
var tResult = await _viewEngine.RunCompileAsync(tContent, seedData, builderAction: builder =>
|
|
||||||
{
|
|
||||||
builder.AddAssemblyReferenceByName("System.Linq");
|
|
||||||
builder.AddAssemblyReferenceByName("System.Collections");
|
|
||||||
builder.AddUsing("System.Collections.Generic");
|
|
||||||
builder.AddUsing("System.Linq");
|
|
||||||
});
|
|
||||||
|
|
||||||
string targetFile = seedDataTemplates[i].OutputFile
|
|
||||||
.Replace("{PagePath}", input.PagePath)
|
|
||||||
.Replace("{TableName}", input.TableName)
|
|
||||||
.Replace("{TableNameLower}", ToFirstLetterLowerCase(input.TableName!));
|
|
||||||
|
|
||||||
string tmpPath;
|
|
||||||
if (!input.GenerateType.StartsWith('1'))
|
|
||||||
{
|
|
||||||
tmpPath = Path.Combine(new DirectoryInfo(App.WebHostEnvironment.ContentRootPath).Parent!.FullName, input.NameSpace);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tmpPath = Path.Combine(outputPath, input!.NameSpace!);
|
|
||||||
}
|
|
||||||
|
|
||||||
targetFile = Path.Combine(tmpPath, targetFile);
|
|
||||||
|
|
||||||
var dirPath = new DirectoryInfo(targetFile).Parent!.FullName;
|
|
||||||
if (!Directory.Exists(dirPath))
|
|
||||||
Directory.CreateDirectory(dirPath);
|
|
||||||
File.WriteAllText(targetFile, tResult, Encoding.UTF8);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 非ZIP压缩返回空
|
// 非ZIP压缩返回空
|
||||||
@ -531,7 +513,7 @@ public class SysCodeGenService : IDynamicApiController, ITransient
|
|||||||
if (File.Exists(downloadPath))
|
if (File.Exists(downloadPath))
|
||||||
File.Delete(downloadPath);
|
File.Delete(downloadPath);
|
||||||
ZipFile.CreateFromDirectory(outputPath, downloadPath);
|
ZipFile.CreateFromDirectory(outputPath, downloadPath);
|
||||||
return new { url = $"{App.HttpContext.Request.Scheme}://{App.HttpContext.Request.Host.Value}/CodeGen/{input.TableName}.zip" };
|
return new { url = $"{App.HttpContext.Request.Scheme}://{App.HttpContext.Request.Host.Value}/codeGen/{input.TableName}.zip" };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -592,23 +574,51 @@ public class SysCodeGenService : IDynamicApiController, ITransient
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 获取模板文件并替换
|
// 获取模板文件并替换
|
||||||
var templateAllList = GetTemplateList(input);
|
var templateList = GetTemplateList(input);
|
||||||
var templateList = templateAllList.Where(t => t.Type != CodeGenTypeEnum.SeedData).ToList();
|
|
||||||
var templatePath = Path.Combine(App.WebHostEnvironment.WebRootPath, "template");
|
var templatePath = Path.Combine(App.WebHostEnvironment.WebRootPath, "template");
|
||||||
|
|
||||||
var result = new Dictionary<string, string>();
|
var result = new Dictionary<string, string>();
|
||||||
for (var i = 0; i < templateList.Count; i++)
|
for (var i = 0; i < templateList.Count; i++)
|
||||||
{
|
{
|
||||||
|
string tResult = string.Empty;//模板生成结果
|
||||||
|
|
||||||
var templateFilePath = Path.Combine(templatePath, templateList[i].Name);
|
var templateFilePath = Path.Combine(templatePath, templateList[i].Name);
|
||||||
if (!File.Exists(templateFilePath)) continue;
|
if (!File.Exists(templateFilePath)) continue;
|
||||||
var tContent = File.ReadAllText(templateFilePath);
|
var tContent = File.ReadAllText(templateFilePath);
|
||||||
var tResult = await _viewEngine.RunCompileFromCachedAsync(tContent, data, builderAction: builder =>
|
|
||||||
|
if (templateList[i].Type == CodeGenTypeEnum.SeedData)
|
||||||
|
{
|
||||||
|
// 种子模板
|
||||||
|
// 获得菜单
|
||||||
|
var menuList = await GetMenus(input.TableName!, input.BusName!, input.MenuPid ?? 0, input.MenuIcon!, input.PagePath!, tableFieldList);
|
||||||
|
var seedData = new
|
||||||
|
{
|
||||||
|
AuthorName = input.AuthorName!,//作者
|
||||||
|
BusName = input.BusName!,//业务名称
|
||||||
|
NameSpace = input.NameSpace!,//命名空间
|
||||||
|
ClassName = input.TableName!,//类名称
|
||||||
|
input.ConfigId,
|
||||||
|
MenuList = menuList,//菜单集合
|
||||||
|
};
|
||||||
|
tResult = await _viewEngine.RunCompileAsync(tContent, seedData, builderAction: builder =>
|
||||||
{
|
{
|
||||||
builder.AddAssemblyReferenceByName("System.Linq");
|
builder.AddAssemblyReferenceByName("System.Linq");
|
||||||
builder.AddAssemblyReferenceByName("System.Collections");
|
builder.AddAssemblyReferenceByName("System.Collections");
|
||||||
builder.AddUsing("System.Collections.Generic");
|
builder.AddUsing("System.Collections.Generic");
|
||||||
builder.AddUsing("System.Linq");
|
builder.AddUsing("System.Linq");
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tResult = await _viewEngine.RunCompileFromCachedAsync(tContent, data, builderAction: builder =>
|
||||||
|
{
|
||||||
|
builder.AddAssemblyReferenceByName("System.Linq");
|
||||||
|
builder.AddAssemblyReferenceByName("System.Collections");
|
||||||
|
builder.AddUsing("System.Collections.Generic");
|
||||||
|
builder.AddUsing("System.Linq");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
result.Add(templateList[i].Name?.TrimEnd(".vm")!, tResult);
|
result.Add(templateList[i].Name?.TrimEnd(".vm")!, tResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -642,29 +652,18 @@ public class SysCodeGenService : IDynamicApiController, ITransient
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 增加菜单
|
/// 增加菜单
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="className"></param>
|
/// <param name="menus"></param>
|
||||||
/// <param name="busName"></param>
|
|
||||||
/// <param name="pid"></param>
|
/// <param name="pid"></param>
|
||||||
/// <param name="menuIcon"></param>
|
|
||||||
/// <param name="pagePath"></param>
|
|
||||||
/// <param name="tableFieldList"></param>
|
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private async Task<List<SysMenu>> AddMenu(string className, string busName, long pid, string menuIcon, string pagePath, List<CodeGenConfig> tableFieldList)
|
private async Task AddMenu(List<SysMenu> menus, long pid)
|
||||||
{
|
{
|
||||||
|
|
||||||
var pPath = string.Empty;
|
var pPath = string.Empty;
|
||||||
// 若 pid=0 为顶级则创建菜单目录
|
// 若 pid=0 为顶级则创建菜单目录
|
||||||
if (pid == 0)
|
if (pid == 0)
|
||||||
{
|
{
|
||||||
// 目录
|
// 顶级目录
|
||||||
var menuType0 = new SysMenu
|
var menuType0 = menus.Where(u => u.Type == MenuTypeEnum.Dir && u.Pid == 0).FirstOrDefault();
|
||||||
{
|
|
||||||
Pid = 0,
|
|
||||||
Title = busName + "管理",
|
|
||||||
Type = MenuTypeEnum.Dir,
|
|
||||||
Icon = "robot",
|
|
||||||
Path = "/" + className.ToLower(),
|
|
||||||
Component = "Layout",
|
|
||||||
};
|
|
||||||
// 若先前存在则删除本级和下级
|
// 若先前存在则删除本级和下级
|
||||||
var menuList0 = await _db.Queryable<SysMenu>().Where(u => u.Title == menuType0.Title && u.Type == menuType0.Type).ToListAsync();
|
var menuList0 = await _db.Queryable<SysMenu>().Where(u => u.Title == menuType0.Title && u.Type == menuType0.Type).ToListAsync();
|
||||||
if (menuList0.Count > 0)
|
if (menuList0.Count > 0)
|
||||||
@ -680,25 +679,11 @@ public class SysCodeGenService : IDynamicApiController, ITransient
|
|||||||
await _db.Deleteable<SysMenu>().Where(u => listIds.Contains(u.Id)).ExecuteCommandAsync();
|
await _db.Deleteable<SysMenu>().Where(u => listIds.Contains(u.Id)).ExecuteCommandAsync();
|
||||||
await _db.Deleteable<SysRoleMenu>().Where(u => listIds.Contains(u.MenuId)).ExecuteCommandAsync();
|
await _db.Deleteable<SysRoleMenu>().Where(u => listIds.Contains(u.MenuId)).ExecuteCommandAsync();
|
||||||
}
|
}
|
||||||
pid = (await _db.Insertable(menuType0).ExecuteReturnEntityAsync()).Id;
|
await _db.Insertable(menuType0).ExecuteReturnEntityAsync();
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var pMenu = await _db.Queryable<SysMenu>().SingleAsync(u => u.Id == pid) ?? throw Oops.Oh(ErrorCodeEnum.D1505);
|
|
||||||
pPath = pMenu.Path;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 菜单
|
// 菜单
|
||||||
var menuType = new SysMenu
|
var menuType = menus.Where(u => u.Type == MenuTypeEnum.Menu).FirstOrDefault();
|
||||||
{
|
|
||||||
Pid = pid,
|
|
||||||
Title = busName + "管理",
|
|
||||||
Name = className[..1].ToLower() + className[1..],
|
|
||||||
Type = MenuTypeEnum.Menu,
|
|
||||||
Icon = menuIcon,
|
|
||||||
Path = pPath + "/" + className.ToLower(),
|
|
||||||
Component = "/" + pagePath + "/" + className[..1].ToLower() + className[1..] + "/index",
|
|
||||||
};
|
|
||||||
// 若先前存在则删除本级和下级
|
// 若先前存在则删除本级和下级
|
||||||
var menuListCurrent = await _db.Queryable<SysMenu>().Where(u => u.Title == menuType.Title && u.Type == menuType.Type).ToListAsync();
|
var menuListCurrent = await _db.Queryable<SysMenu>().Where(u => u.Title == menuType.Title && u.Type == menuType.Type).ToListAsync();
|
||||||
if (menuListCurrent.Count > 0)
|
if (menuListCurrent.Count > 0)
|
||||||
@ -714,94 +699,168 @@ public class SysCodeGenService : IDynamicApiController, ITransient
|
|||||||
await _db.Deleteable<SysMenu>().Where(u => listIds.Contains(u.Id)).ExecuteCommandAsync();
|
await _db.Deleteable<SysMenu>().Where(u => listIds.Contains(u.Id)).ExecuteCommandAsync();
|
||||||
await _db.Deleteable<SysRoleMenu>().Where(u => listIds.Contains(u.MenuId)).ExecuteCommandAsync();
|
await _db.Deleteable<SysRoleMenu>().Where(u => listIds.Contains(u.MenuId)).ExecuteCommandAsync();
|
||||||
}
|
}
|
||||||
|
await _db.Insertable(menus).ExecuteCommandAsync();
|
||||||
|
}
|
||||||
|
|
||||||
var menuPid = (await _db.Insertable(menuType).ExecuteReturnEntityAsync()).Id;
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获得菜单列表
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="className"></param>
|
||||||
|
/// <param name="busName"></param>
|
||||||
|
/// <param name="pid"></param>
|
||||||
|
/// <param name="menuIcon"></param>
|
||||||
|
/// <param name="pagePath"></param>
|
||||||
|
/// <param name="tableFieldList"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private async Task<List<SysMenu>> GetMenus(string className, string busName, long pid, string menuIcon, string pagePath, List<CodeGenConfig> tableFieldList)
|
||||||
|
{
|
||||||
|
var pPath = string.Empty;
|
||||||
|
// 若 pid=0 为顶级则创建菜单目录
|
||||||
|
SysMenu menuType0 = null;
|
||||||
|
long tempPid = pid;//暂存原始pid
|
||||||
|
if (pid == 0)
|
||||||
|
{
|
||||||
|
// 目录
|
||||||
|
menuType0 = new SysMenu
|
||||||
|
{
|
||||||
|
Id = YitIdHelper.NextId(),
|
||||||
|
Pid = 0,
|
||||||
|
Title = busName + "管理",
|
||||||
|
Type = MenuTypeEnum.Dir,
|
||||||
|
Icon = "robot",
|
||||||
|
Path = "/" + className.ToLower() + "/dir",
|
||||||
|
Name = className[..1].ToLower() + className[1..] + "Dir",
|
||||||
|
Component = "Layout",
|
||||||
|
OrderNo = 100,
|
||||||
|
CreateTime = DateTime.Now
|
||||||
|
};
|
||||||
|
pid = menuType0.Id;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var pMenu = await _db.Queryable<SysMenu>().FirstAsync(u => u.Id == pid) ?? throw Oops.Oh(ErrorCodeEnum.D1505);
|
||||||
|
pPath = pMenu.Path;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 菜单
|
||||||
|
var menuType = new SysMenu
|
||||||
|
{
|
||||||
|
Id = YitIdHelper.NextId(),
|
||||||
|
Pid = pid,
|
||||||
|
Title = busName + "管理",
|
||||||
|
Name = className[..1].ToLower() + className[1..],
|
||||||
|
Type = MenuTypeEnum.Menu,
|
||||||
|
Icon = menuIcon,
|
||||||
|
Path = pPath + "/" + className.ToLower(),
|
||||||
|
Component = "/" + pagePath + "/" + className[..1].ToLower() + className[1..] + "/index",
|
||||||
|
CreateTime = DateTime.Now
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var menuPid = menuType.Id;
|
||||||
int menuOrder = 100;
|
int menuOrder = 100;
|
||||||
// 按钮-page
|
// 按钮-page
|
||||||
var menuTypePage = new SysMenu
|
var menuTypePage = new SysMenu
|
||||||
{
|
{
|
||||||
|
Id = YitIdHelper.NextId(),
|
||||||
Pid = menuPid,
|
Pid = menuPid,
|
||||||
Title = "查询",
|
Title = "查询",
|
||||||
Type = MenuTypeEnum.Btn,
|
Type = MenuTypeEnum.Btn,
|
||||||
Permission = className[..1].ToLower() + className[1..] + "/page",
|
Permission = className[..1].ToLower() + className[1..] + "/page",
|
||||||
OrderNo = menuOrder
|
OrderNo = menuOrder,
|
||||||
|
CreateTime = DateTime.Now
|
||||||
};
|
};
|
||||||
menuOrder += 10;
|
menuOrder += 10;
|
||||||
|
|
||||||
// 按钮-detail
|
// 按钮-detail
|
||||||
var menuTypeDetail = new SysMenu
|
var menuTypeDetail = new SysMenu
|
||||||
{
|
{
|
||||||
|
Id = YitIdHelper.NextId(),
|
||||||
Pid = menuPid,
|
Pid = menuPid,
|
||||||
Title = "详情",
|
Title = "详情",
|
||||||
Type = MenuTypeEnum.Btn,
|
Type = MenuTypeEnum.Btn,
|
||||||
Permission = className[..1].ToLower() + className[1..] + "/detail",
|
Permission = className[..1].ToLower() + className[1..] + "/detail",
|
||||||
OrderNo = menuOrder
|
OrderNo = menuOrder,
|
||||||
|
CreateTime = DateTime.Now
|
||||||
};
|
};
|
||||||
menuOrder += 10;
|
menuOrder += 10;
|
||||||
|
|
||||||
// 按钮-add
|
// 按钮-add
|
||||||
var menuTypeAdd = new SysMenu
|
var menuTypeAdd = new SysMenu
|
||||||
{
|
{
|
||||||
|
Id = YitIdHelper.NextId(),
|
||||||
Pid = menuPid,
|
Pid = menuPid,
|
||||||
Title = "增加",
|
Title = "增加",
|
||||||
Type = MenuTypeEnum.Btn,
|
Type = MenuTypeEnum.Btn,
|
||||||
Permission = className[..1].ToLower() + className[1..] + "/add",
|
Permission = className[..1].ToLower() + className[1..] + "/add",
|
||||||
OrderNo = menuOrder
|
OrderNo = menuOrder,
|
||||||
|
CreateTime = DateTime.Now
|
||||||
};
|
};
|
||||||
menuOrder += 10;
|
menuOrder += 10;
|
||||||
|
|
||||||
// 按钮-delete
|
// 按钮-delete
|
||||||
var menuTypeDelete = new SysMenu
|
var menuTypeDelete = new SysMenu
|
||||||
{
|
{
|
||||||
|
Id = YitIdHelper.NextId(),
|
||||||
Pid = menuPid,
|
Pid = menuPid,
|
||||||
Title = "删除",
|
Title = "删除",
|
||||||
Type = MenuTypeEnum.Btn,
|
Type = MenuTypeEnum.Btn,
|
||||||
Permission = className[..1].ToLower() + className[1..] + "/delete",
|
Permission = className[..1].ToLower() + className[1..] + "/delete",
|
||||||
OrderNo = menuOrder
|
OrderNo = menuOrder,
|
||||||
|
CreateTime = DateTime.Now
|
||||||
};
|
};
|
||||||
menuOrder += 10;
|
menuOrder += 10;
|
||||||
|
|
||||||
// 按钮-update
|
// 按钮-update
|
||||||
var menuTypeUpdate = new SysMenu
|
var menuTypeUpdate = new SysMenu
|
||||||
{
|
{
|
||||||
|
Id = YitIdHelper.NextId(),
|
||||||
Pid = menuPid,
|
Pid = menuPid,
|
||||||
Title = "编辑",
|
Title = "编辑",
|
||||||
Type = MenuTypeEnum.Btn,
|
Type = MenuTypeEnum.Btn,
|
||||||
Permission = className[..1].ToLower() + className[1..] + "/update",
|
Permission = className[..1].ToLower() + className[1..] + "/update",
|
||||||
OrderNo = menuOrder
|
OrderNo = menuOrder,
|
||||||
|
CreateTime = DateTime.Now
|
||||||
};
|
};
|
||||||
menuOrder += 10;
|
menuOrder += 10;
|
||||||
|
|
||||||
// 按钮-print
|
// 按钮-print
|
||||||
var menuTypePrint = new SysMenu
|
var menuTypePrint = new SysMenu
|
||||||
{
|
{
|
||||||
|
Id = YitIdHelper.NextId(),
|
||||||
Pid = menuPid,
|
Pid = menuPid,
|
||||||
Title = "打印",
|
Title = "打印",
|
||||||
Type = MenuTypeEnum.Btn,
|
Type = MenuTypeEnum.Btn,
|
||||||
Permission = className[..1].ToLower() + className[1..] + "/print",
|
Permission = className[..1].ToLower() + className[1..] + "/print",
|
||||||
OrderNo = menuOrder
|
OrderNo = menuOrder,
|
||||||
|
CreateTime = DateTime.Now
|
||||||
};
|
};
|
||||||
menuOrder += 10;
|
menuOrder += 10;
|
||||||
|
|
||||||
// 按钮-import
|
// 按钮-import
|
||||||
var menuTypeImport = new SysMenu
|
var menuTypeImport = new SysMenu
|
||||||
{
|
{
|
||||||
|
Id = YitIdHelper.NextId(),
|
||||||
Pid = menuPid,
|
Pid = menuPid,
|
||||||
Title = "导入",
|
Title = "导入",
|
||||||
Type = MenuTypeEnum.Btn,
|
Type = MenuTypeEnum.Btn,
|
||||||
Permission = className[..1].ToLower() + className[1..] + "/import",
|
Permission = className[..1].ToLower() + className[1..] + "/import",
|
||||||
OrderNo = menuOrder
|
OrderNo = menuOrder,
|
||||||
|
CreateTime = DateTime.Now
|
||||||
};
|
};
|
||||||
menuOrder += 10;
|
menuOrder += 10;
|
||||||
|
|
||||||
// 按钮-export
|
// 按钮-export
|
||||||
var menuTypeExport = new SysMenu
|
var menuTypeExport = new SysMenu
|
||||||
{
|
{
|
||||||
|
Id = YitIdHelper.NextId(),
|
||||||
Pid = menuPid,
|
Pid = menuPid,
|
||||||
Title = "导出",
|
Title = "导出",
|
||||||
Type = MenuTypeEnum.Btn,
|
Type = MenuTypeEnum.Btn,
|
||||||
Permission = className[..1].ToLower() + className[1..] + "/export",
|
Permission = className[..1].ToLower() + className[1..] + "/export",
|
||||||
OrderNo = menuOrder
|
OrderNo = menuOrder,
|
||||||
|
CreateTime = DateTime.Now
|
||||||
};
|
};
|
||||||
menuOrder += 10;
|
menuOrder += 10;
|
||||||
|
|
||||||
@ -813,11 +872,13 @@ public class SysCodeGenService : IDynamicApiController, ITransient
|
|||||||
{
|
{
|
||||||
var menuType1 = new SysMenu
|
var menuType1 = new SysMenu
|
||||||
{
|
{
|
||||||
|
Id = YitIdHelper.NextId(),
|
||||||
Pid = menuPid,
|
Pid = menuPid,
|
||||||
Title = "外键" + @column.ColumnName,
|
Title = "外键" + @column.ColumnName,
|
||||||
Type = MenuTypeEnum.Btn,
|
Type = MenuTypeEnum.Btn,
|
||||||
Permission = className[..1].ToLower() + className[1..] + "/" + column.FkEntityName + column.ColumnName + "Dropdown",
|
Permission = className[..1].ToLower() + className[1..] + "/" + column.FkEntityName + column.ColumnName + "Dropdown",
|
||||||
OrderNo = menuOrder
|
OrderNo = menuOrder,
|
||||||
|
CreateTime = DateTime.Now
|
||||||
};
|
};
|
||||||
menuOrder += 10;
|
menuOrder += 10;
|
||||||
menuList.Add(menuType1);
|
menuList.Add(menuType1);
|
||||||
@ -827,11 +888,13 @@ public class SysCodeGenService : IDynamicApiController, ITransient
|
|||||||
{
|
{
|
||||||
var menuType1 = new SysMenu
|
var menuType1 = new SysMenu
|
||||||
{
|
{
|
||||||
|
Id = YitIdHelper.NextId(),
|
||||||
Pid = menuPid,
|
Pid = menuPid,
|
||||||
Title = "树型" + @column.ColumnName,
|
Title = "树型" + @column.ColumnName,
|
||||||
Type = MenuTypeEnum.Btn,
|
Type = MenuTypeEnum.Btn,
|
||||||
Permission = className[..1].ToLower() + className[1..] + "/" + column.FkEntityName + "Tree",
|
Permission = className[..1].ToLower() + className[1..] + "/" + column.FkEntityName + "Tree",
|
||||||
OrderNo = menuOrder
|
OrderNo = menuOrder,
|
||||||
|
CreateTime = DateTime.Now
|
||||||
};
|
};
|
||||||
menuOrder += 10;
|
menuOrder += 10;
|
||||||
menuList.Add(menuType1);
|
menuList.Add(menuType1);
|
||||||
@ -841,17 +904,23 @@ public class SysCodeGenService : IDynamicApiController, ITransient
|
|||||||
{
|
{
|
||||||
var menuType1 = new SysMenu
|
var menuType1 = new SysMenu
|
||||||
{
|
{
|
||||||
|
Id = YitIdHelper.NextId(),
|
||||||
Pid = menuPid,
|
Pid = menuPid,
|
||||||
Title = "上传" + @column.ColumnName,
|
Title = "上传" + @column.ColumnName,
|
||||||
Type = MenuTypeEnum.Btn,
|
Type = MenuTypeEnum.Btn,
|
||||||
Permission = className[..1].ToLower() + className[1..] + "/Upload" + column.ColumnName,
|
Permission = className[..1].ToLower() + className[1..] + "/Upload" + column.ColumnName,
|
||||||
OrderNo = menuOrder
|
OrderNo = menuOrder,
|
||||||
|
CreateTime = DateTime.Now
|
||||||
};
|
};
|
||||||
menuOrder += 10;
|
menuOrder += 10;
|
||||||
menuList.Add(menuType1);
|
menuList.Add(menuType1);
|
||||||
}
|
}
|
||||||
await _db.Insertable(menuList).ExecuteCommandAsync();
|
|
||||||
menuList.Insert(0, menuType);
|
menuList.Insert(0, menuType);
|
||||||
|
if (tempPid == 0)
|
||||||
|
{
|
||||||
|
//顶级目录需要添加目录本身
|
||||||
|
menuList.Insert(0, menuType0);
|
||||||
|
}
|
||||||
return menuList;
|
return menuList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -10,6 +10,7 @@ namespace @(@Model.NameSpace).SeedData;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// @(@Model.BusName)系统菜单表种子数据
|
/// @(@Model.BusName)系统菜单表种子数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[IncreSeed]
|
||||||
public class @(@Model.ClassName)SeedData : ISqlSugarEntitySeedData<SysMenu>
|
public class @(@Model.ClassName)SeedData : ISqlSugarEntitySeedData<SysMenu>
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -23,6 +24,9 @@ public class @(@Model.ClassName)SeedData : ISqlSugarEntitySeedData<SysMenu>
|
|||||||
|
|
||||||
#region @(@Model.BusName)
|
#region @(@Model.BusName)
|
||||||
@foreach (var menu in Model.MenuList){
|
@foreach (var menu in Model.MenuList){
|
||||||
|
@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){
|
@if((int)menu.Type==2){
|
||||||
@: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) });
|
@: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) });
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user