Merge branch 'develop'
This commit is contained in:
commit
8fe059fd9b
@ -1,6 +1,7 @@
|
|||||||
using Infrastructure;
|
using Infrastructure;
|
||||||
using Infrastructure.Attribute;
|
using Infrastructure.Attribute;
|
||||||
using Infrastructure.Enums;
|
using Infrastructure.Enums;
|
||||||
|
using Infrastructure.Extensions;
|
||||||
using Mapster;
|
using Mapster;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
@ -105,11 +106,13 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
[ActionPermissionFilter(Permission = "tool:gen:query")]
|
[ActionPermissionFilter(Permission = "tool:gen:query")]
|
||||||
public IActionResult GetColumnList(long tableId)
|
public IActionResult GetColumnList(long tableId)
|
||||||
{
|
{
|
||||||
var tableColumns = GenTableColumnService.GenTableColumns(tableId);
|
|
||||||
var tableInfo = GenTableService.GetGenTableInfo(tableId);
|
var tableInfo = GenTableService.GetGenTableInfo(tableId);
|
||||||
var tables = GenTableService.GetGenTableAll();
|
var tables = GenTableService.GetGenTableAll();
|
||||||
|
if (tableInfo != null)
|
||||||
return SUCCESS(new { columns = tableColumns, info = tableInfo, tables });
|
{
|
||||||
|
tableInfo.Columns = GenTableColumnService.GenTableColumns(tableId);
|
||||||
|
}
|
||||||
|
return SUCCESS(new { info = tableInfo, tables });
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -202,6 +205,7 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
}
|
}
|
||||||
var genTable = genTableDto.Adapt<GenTable>().ToUpdate(HttpContext);
|
var genTable = genTableDto.Adapt<GenTable>().ToUpdate(HttpContext);
|
||||||
|
|
||||||
|
//将前端额外参数转成字符串存入Options中
|
||||||
genTable.Options = JsonConvert.SerializeObject(genTableDto.Params);
|
genTable.Options = JsonConvert.SerializeObject(genTableDto.Params);
|
||||||
DbResult<bool> result = GenTableService.UseTran(() =>
|
DbResult<bool> result = GenTableService.UseTran(() =>
|
||||||
{
|
{
|
||||||
@ -218,12 +222,14 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 预览代码
|
/// 预览代码
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="dto"></param>
|
/// <param name="tableId"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost("preview/{tableId}")]
|
[HttpPost("preview/{tableId}")]
|
||||||
[ActionPermissionFilter(Permission = "tool:gen:preview")]
|
[ActionPermissionFilter(Permission = "tool:gen:preview")]
|
||||||
public IActionResult Preview([FromBody] GenerateDto dto)
|
public IActionResult Preview(long tableId = 0)
|
||||||
{
|
{
|
||||||
|
GenerateDto dto = new();
|
||||||
|
dto.TableId = tableId;
|
||||||
if (dto == null || dto.TableId <= 0)
|
if (dto == null || dto.TableId <= 0)
|
||||||
{
|
{
|
||||||
throw new CustomException(ResultCode.CUSTOM_ERROR, "请求参数为空");
|
throw new CustomException(ResultCode.CUSTOM_ERROR, "请求参数为空");
|
||||||
@ -231,10 +237,9 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
var genTableInfo = GenTableService.GetGenTableInfo(dto.TableId);
|
var genTableInfo = GenTableService.GetGenTableInfo(dto.TableId);
|
||||||
genTableInfo.Columns = GenTableColumnService.GenTableColumns(dto.TableId);
|
genTableInfo.Columns = GenTableColumnService.GenTableColumns(dto.TableId);
|
||||||
|
|
||||||
|
dto.DbType = ConfigUtils.Instance.GetAppConfig(OptionsSetting.ConnBusDbType, 0);
|
||||||
dto.GenTable = genTableInfo;
|
dto.GenTable = genTableInfo;
|
||||||
dto.ZipPath = Path.Combine(WebHostEnvironment.WebRootPath, "Generatecode");
|
dto.IsPreview = true;
|
||||||
dto.GenCodePath = Path.Combine(dto.ZipPath, DateTime.Now.ToString("yyyyMMdd"));
|
|
||||||
dto.IsPreview = 1;
|
|
||||||
//生成代码
|
//生成代码
|
||||||
CodeGeneratorTool.Generate(dto);
|
CodeGeneratorTool.Generate(dto);
|
||||||
|
|
||||||
@ -251,23 +256,37 @@ namespace ZR.Admin.WebApi.Controllers
|
|||||||
[ActionPermissionFilter(Permission = "tool:gen:code")]
|
[ActionPermissionFilter(Permission = "tool:gen:code")]
|
||||||
public IActionResult CodeGenerate([FromBody] GenerateDto dto)
|
public IActionResult CodeGenerate([FromBody] GenerateDto dto)
|
||||||
{
|
{
|
||||||
if (dto.TableId <= 0)
|
if (dto?.TableId <= 0)
|
||||||
{
|
{
|
||||||
throw new CustomException(ResultCode.CUSTOM_ERROR, "请求参数为空");
|
throw new CustomException(ResultCode.CUSTOM_ERROR, "请求参数为空");
|
||||||
}
|
}
|
||||||
dto.ZipPath = Path.Combine(WebHostEnvironment.WebRootPath, "Generatecode");
|
|
||||||
dto.GenCodePath = Path.Combine(dto.ZipPath, DateTime.Now.ToString("yyyyMMdd"));
|
|
||||||
|
|
||||||
var genTableInfo = GenTableService.GetGenTableInfo(dto.TableId);
|
var genTableInfo = GenTableService.GetGenTableInfo(dto.TableId);
|
||||||
genTableInfo.Columns = GenTableColumnService.GenTableColumns(dto.TableId);
|
genTableInfo.Columns = GenTableColumnService.GenTableColumns(dto.TableId);
|
||||||
|
|
||||||
|
dto.DbType = ConfigUtils.Instance.GetAppConfig(OptionsSetting.ConnBusDbType, 0);
|
||||||
dto.GenTable = genTableInfo;
|
dto.GenTable = genTableInfo;
|
||||||
//生成代码
|
//自定义路径
|
||||||
|
if (genTableInfo.GenType == "1")
|
||||||
|
{
|
||||||
|
string tempPath = WebHostEnvironment.ContentRootPath;
|
||||||
|
|
||||||
|
//代码生成文件夹路径
|
||||||
|
dto.GenCodePath = genTableInfo.GenPath.IsEmpty() ? Directory.GetParent(tempPath).FullName : genTableInfo.GenPath;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dto.ZipPath = Path.Combine(WebHostEnvironment.WebRootPath, "Generatecode");
|
||||||
|
dto.GenCodePath = Path.Combine(dto.ZipPath, DateTime.Now.ToString("yyyyMMdd"));
|
||||||
|
}
|
||||||
|
//生成压缩包
|
||||||
|
string zipReturnFileName = $"ZrAdmin.NET-{genTableInfo.TableComment}-{DateTime.Now:MMddHHmmss}.zip";
|
||||||
|
|
||||||
|
//生成代码到指定文件夹
|
||||||
CodeGeneratorTool.Generate(dto);
|
CodeGeneratorTool.Generate(dto);
|
||||||
//下载文件
|
//下载文件
|
||||||
FileHelper.ZipGenCode(dto);
|
FileHelper.ZipGenCode(dto.ZipPath, dto.GenCodePath, zipReturnFileName);
|
||||||
|
|
||||||
return SUCCESS(new { path = "/Generatecode/" + dto.ZipFileName, fileName = dto.ZipFileName });
|
return SUCCESS(new { path = "/Generatecode/" + zipReturnFileName, fileName = dto.ZipFileName });
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -66,10 +66,8 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="Controllers\business\" />
|
|
||||||
<Folder Include="DataProtection\" />
|
<Folder Include="DataProtection\" />
|
||||||
<Folder Include="wwwroot\export\" />
|
<Folder Include="wwwroot\export\" />
|
||||||
<Folder Include="wwwroot\Generatecode\" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
-- 菜单
|
-- 菜单
|
||||||
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by, create_time)
|
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by, create_time)
|
||||||
VALUES ('${genTable.functionName}', ${parentId}, 999, '${genTable.BusinessName}', '${genTable.ModuleName}/${genTable.BusinessName}', 0, 0, 'C', '0', '0', '${replaceDto.PermissionPrefix}:list', '', 'system', sysdate());
|
VALUES ('${genTable.functionName}', ${parentId}, 999, '${genTable.BusinessName}', '${tool.FirstLowerCase(genTable.ModuleName)}/${genTable.BusinessName}', 0, 0, 'C', '0', '0', '${replaceDto.PermissionPrefix}:list', '', 'system', sysdate());
|
||||||
|
|
||||||
-- 按钮父菜单id
|
-- 按钮父菜单id
|
||||||
SELECT @menuId := LAST_INSERT_ID();
|
SELECT @menuId := LAST_INSERT_ID();
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
-- ${genTable.functionName}菜单
|
-- ${genTable.functionName}菜单
|
||||||
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by, create_time)
|
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by, create_time)
|
||||||
VALUES ('${genTable.functionName}', ${parentId}, 999, '${genTable.BusinessName}', '${genTable.ModuleName}/${genTable.BusinessName}', 0, 0, 'C', '0', '0', '${replaceDto.PermissionPrefix}:list', '', 'system', GETDATE());
|
VALUES ('${genTable.functionName}', ${parentId}, 999, '${genTable.BusinessName}', '${tool.FirstLowerCase(genTable.ModuleName)}/${genTable.BusinessName}', 0, 0, 'C', '0', '0', '${replaceDto.PermissionPrefix}:list', '', 'system', GETDATE());
|
||||||
|
|
||||||
-- 按钮父菜单id
|
-- 按钮父菜单id
|
||||||
declare @menuId int = @@identity
|
declare @menuId int = @@identity
|
||||||
|
|||||||
@ -80,6 +80,7 @@ $end
|
|||||||
return SUCCESS(response);
|
return SUCCESS(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$if(replaceDto.ShowBtnAdd)
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 添加${genTable.FunctionName}
|
/// 添加${genTable.FunctionName}
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -106,7 +107,9 @@ ${end}
|
|||||||
});
|
});
|
||||||
return ToResponse(response);
|
return ToResponse(response);
|
||||||
}
|
}
|
||||||
|
$end
|
||||||
|
|
||||||
|
$if(replaceDto.ShowBtnEdit)
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 更新${genTable.FunctionName}
|
/// 更新${genTable.FunctionName}
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -135,7 +138,9 @@ ${end}
|
|||||||
|
|
||||||
return ToResponse(response);
|
return ToResponse(response);
|
||||||
}
|
}
|
||||||
|
$end
|
||||||
|
|
||||||
|
$if(replaceDto.ShowBtnDelete)
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 删除${genTable.FunctionName}
|
/// 删除${genTable.FunctionName}
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -152,6 +157,7 @@ ${end}
|
|||||||
|
|
||||||
return ToResponse(response);
|
return ToResponse(response);
|
||||||
}
|
}
|
||||||
|
$end
|
||||||
|
|
||||||
$if(replaceDto.ShowBtnExport)
|
$if(replaceDto.ShowBtnExport)
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -72,7 +72,7 @@ $end
|
|||||||
$if(showCustomInput)
|
$if(showCustomInput)
|
||||||
changeSort
|
changeSort
|
||||||
$end
|
$end
|
||||||
} from '@/api/${genTable.ModuleName}/${lowerBusinessName}.js';
|
} from '@/api/${tool.FirstLowerCase(genTable.ModuleName)}/${lowerBusinessName}.js';
|
||||||
import Treeselect from "@riophae/vue-treeselect";
|
import Treeselect from "@riophae/vue-treeselect";
|
||||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
||||||
|
|
||||||
|
|||||||
@ -70,7 +70,7 @@ $end
|
|||||||
$if(showCustomInput)
|
$if(showCustomInput)
|
||||||
changeSort
|
changeSort
|
||||||
$end
|
$end
|
||||||
} from '@/api/${genTable.ModuleName}/${lowerBusinessName}.js';
|
} from '@/api/${tool.FirstLowerCase(genTable.ModuleName)}/${lowerBusinessName}.js';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "${lowerBusinessName}",
|
name: "${lowerBusinessName}",
|
||||||
|
|||||||
@ -44,12 +44,12 @@ namespace ZR.CodeGenerator
|
|||||||
string PKType = "int";
|
string PKType = "int";
|
||||||
ReplaceDto replaceDto = new();
|
ReplaceDto replaceDto = new();
|
||||||
replaceDto.ModelTypeName = dto.GenTable.ClassName;//表名对应C# 实体类名
|
replaceDto.ModelTypeName = dto.GenTable.ClassName;//表名对应C# 实体类名
|
||||||
replaceDto.PermissionPrefix = $"{dto.GenTable.ModuleName}:{dto.GenTable.ClassName.ToLower()}";//权限
|
replaceDto.PermissionPrefix = $"{dto.GenTable.ModuleName.ToLower()}:{dto.GenTable.ClassName.ToLower()}";//权限
|
||||||
replaceDto.Author = dto.GenTable.FunctionAuthor;
|
replaceDto.Author = dto.GenTable.FunctionAuthor;
|
||||||
replaceDto.ShowBtnAdd = dto.CheckedBtn.Any(f => f == 1);
|
replaceDto.ShowBtnAdd = dto.GenTable.CheckedBtn.Any(f => f == 1);
|
||||||
replaceDto.ShowBtnEdit = dto.CheckedBtn.Any(f => f == 2);
|
replaceDto.ShowBtnEdit = dto.GenTable.CheckedBtn.Any(f => f == 2);
|
||||||
replaceDto.ShowBtnDelete = dto.CheckedBtn.Any(f => f == 3);
|
replaceDto.ShowBtnDelete = dto.GenTable.CheckedBtn.Any(f => f == 3);
|
||||||
replaceDto.ShowBtnExport = dto.CheckedBtn.Any(f => f == 4);
|
replaceDto.ShowBtnExport = dto.GenTable.CheckedBtn.Any(f => f == 4);
|
||||||
|
|
||||||
//循环表字段信息
|
//循环表字段信息
|
||||||
foreach (GenTableColumn dbFieldInfo in dto.GenTable.Columns.OrderBy(x => x.Sort))
|
foreach (GenTableColumn dbFieldInfo in dto.GenTable.Columns.OrderBy(x => x.Sort))
|
||||||
@ -85,7 +85,7 @@ namespace ZR.CodeGenerator
|
|||||||
GenerateVueJs(replaceDto, dto);
|
GenerateVueJs(replaceDto, dto);
|
||||||
GenerateSql(replaceDto, dto);
|
GenerateSql(replaceDto, dto);
|
||||||
|
|
||||||
if (dto.IsPreview == 1) return;
|
if (dto.IsPreview) return;
|
||||||
|
|
||||||
foreach (var item in dto.GenCodes)
|
foreach (var item in dto.GenCodes)
|
||||||
{
|
{
|
||||||
@ -102,11 +102,10 @@ namespace ZR.CodeGenerator
|
|||||||
/// <param name="replaceDto">替换实体</param>
|
/// <param name="replaceDto">替换实体</param>
|
||||||
private static void GenerateModels(ReplaceDto replaceDto, GenerateDto generateDto)
|
private static void GenerateModels(ReplaceDto replaceDto, GenerateDto generateDto)
|
||||||
{
|
{
|
||||||
var fullPath = Path.Combine(generateDto.GenCodePath, _option.ModelsNamespace, "Models", _option.SubNamespace, replaceDto.ModelTypeName + ".cs");
|
|
||||||
|
|
||||||
var tpl = FileHelper.ReadJtTemplate("TplModel.txt");
|
var tpl = FileHelper.ReadJtTemplate("TplModel.txt");
|
||||||
var result = tpl.Render();
|
var result = tpl.Render();
|
||||||
|
|
||||||
|
string fullPath = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, _option.ModelsNamespace, "Models", _option.SubNamespace, replaceDto.ModelTypeName + ".cs");
|
||||||
generateDto.GenCodes.Add(new GenCode(1, "Model.cs", fullPath, result));
|
generateDto.GenCodes.Add(new GenCode(1, "Model.cs", fullPath, result));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,10 +116,11 @@ namespace ZR.CodeGenerator
|
|||||||
/// <param name="replaceDto">替换实体</param>
|
/// <param name="replaceDto">替换实体</param>
|
||||||
private static void GenerateInputDto(ReplaceDto replaceDto, GenerateDto generateDto)
|
private static void GenerateInputDto(ReplaceDto replaceDto, GenerateDto generateDto)
|
||||||
{
|
{
|
||||||
var fullPath = Path.Combine(generateDto.GenCodePath, _option.ModelsNamespace, "Dto", _option.SubNamespace, $"{replaceDto.ModelTypeName}Dto.cs");
|
|
||||||
var tpl = FileHelper.ReadJtTemplate("TplDto.txt");
|
var tpl = FileHelper.ReadJtTemplate("TplDto.txt");
|
||||||
|
|
||||||
var result = tpl.Render();
|
var result = tpl.Render();
|
||||||
|
var fullPath = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, _option.ModelsNamespace, "Dto", _option.SubNamespace, $"{replaceDto.ModelTypeName}Dto.cs");
|
||||||
|
|
||||||
generateDto.GenCodes.Add(new GenCode(2, "Dto.cs", fullPath, result));
|
generateDto.GenCodes.Add(new GenCode(2, "Dto.cs", fullPath, result));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -131,10 +131,10 @@ namespace ZR.CodeGenerator
|
|||||||
/// <param name="replaceDto">替换实体</param>
|
/// <param name="replaceDto">替换实体</param>
|
||||||
private static void GenerateRepository(ReplaceDto replaceDto, GenerateDto generateDto)
|
private static void GenerateRepository(ReplaceDto replaceDto, GenerateDto generateDto)
|
||||||
{
|
{
|
||||||
var fullPath = Path.Combine(generateDto.GenCodePath, _option.RepositoriesNamespace, _option.SubNamespace, $"{replaceDto.ModelTypeName}Repository.cs");
|
|
||||||
var tpl = FileHelper.ReadJtTemplate("TplRepository.txt");
|
var tpl = FileHelper.ReadJtTemplate("TplRepository.txt");
|
||||||
|
|
||||||
var result = tpl.Render();
|
var result = tpl.Render();
|
||||||
|
var fullPath = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, _option.RepositoriesNamespace, _option.SubNamespace, $"{replaceDto.ModelTypeName}Repository.cs");
|
||||||
|
|
||||||
generateDto.GenCodes.Add(new GenCode(3, "Repository.cs", fullPath, result));
|
generateDto.GenCodes.Add(new GenCode(3, "Repository.cs", fullPath, result));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -143,14 +143,15 @@ namespace ZR.CodeGenerator
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private static void GenerateService(ReplaceDto replaceDto, GenerateDto generateDto)
|
private static void GenerateService(ReplaceDto replaceDto, GenerateDto generateDto)
|
||||||
{
|
{
|
||||||
var fullPath = Path.Combine(generateDto.GenCodePath, _option.ServicesNamespace, _option.SubNamespace, $"{replaceDto.ModelTypeName}Service.cs");
|
|
||||||
var tpl = FileHelper.ReadJtTemplate("TplService.txt");
|
var tpl = FileHelper.ReadJtTemplate("TplService.txt");
|
||||||
var result = tpl.Render();
|
|
||||||
generateDto.GenCodes.Add(new GenCode(4, "Service.cs", fullPath, result));
|
|
||||||
|
|
||||||
var fullPath2 = Path.Combine(generateDto.GenCodePath, _option.IServicsNamespace, _option.SubNamespace, $"I{_option.SubNamespace}Service", $"I{replaceDto.ModelTypeName}Service.cs");
|
|
||||||
var tpl2 = FileHelper.ReadJtTemplate("TplIService.txt");
|
var tpl2 = FileHelper.ReadJtTemplate("TplIService.txt");
|
||||||
|
var result = tpl.Render();
|
||||||
var result2 = tpl2.Render();
|
var result2 = tpl2.Render();
|
||||||
|
|
||||||
|
var fullPath = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, _option.ServicesNamespace, _option.SubNamespace, $"{replaceDto.ModelTypeName}Service.cs");
|
||||||
|
var fullPath2 = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, _option.IServicsNamespace, _option.SubNamespace, $"I{_option.SubNamespace}Service", $"I{replaceDto.ModelTypeName}Service.cs");
|
||||||
|
|
||||||
|
generateDto.GenCodes.Add(new GenCode(4, "Service.cs", fullPath, result));
|
||||||
generateDto.GenCodes.Add(new GenCode(4, "IService.cs", fullPath2, result2));
|
generateDto.GenCodes.Add(new GenCode(4, "IService.cs", fullPath2, result2));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -159,11 +160,11 @@ namespace ZR.CodeGenerator
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private static void GenerateControllers(ReplaceDto replaceDto, GenerateDto generateDto)
|
private static void GenerateControllers(ReplaceDto replaceDto, GenerateDto generateDto)
|
||||||
{
|
{
|
||||||
var fullPath = Path.Combine(generateDto.GenCodePath, _option.ApiControllerNamespace, "Controllers", _option.SubNamespace, $"{replaceDto.ModelTypeName}Controller.cs");
|
|
||||||
var tpl = FileHelper.ReadJtTemplate("TplControllers.txt");
|
var tpl = FileHelper.ReadJtTemplate("TplControllers.txt");
|
||||||
|
|
||||||
tpl.Set("QueryCondition", replaceDto.QueryCondition);
|
tpl.Set("QueryCondition", replaceDto.QueryCondition);
|
||||||
var result = tpl.Render();
|
var result = tpl.Render();
|
||||||
|
|
||||||
|
var fullPath = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, _option.ApiControllerNamespace, "Controllers", _option.SubNamespace, $"{replaceDto.ModelTypeName}Controller.cs");
|
||||||
generateDto.GenCodes.Add(new GenCode(5, "Controller.cs", fullPath, result));
|
generateDto.GenCodes.Add(new GenCode(5, "Controller.cs", fullPath, result));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -171,7 +172,6 @@ namespace ZR.CodeGenerator
|
|||||||
/// 生成Vue页面
|
/// 生成Vue页面
|
||||||
private static void GenerateVueViews(ReplaceDto replaceDto, GenerateDto generateDto)
|
private static void GenerateVueViews(ReplaceDto replaceDto, GenerateDto generateDto)
|
||||||
{
|
{
|
||||||
var fullPath = Path.Combine(generateDto.GenCodePath, "ZR.Vue", "src", "views", generateDto.GenTable.ModuleName, $"{generateDto.GenTable.BusinessName}.vue");
|
|
||||||
string fileName = string.Empty;
|
string fileName = string.Empty;
|
||||||
switch (generateDto.GenTable.TplCategory)
|
switch (generateDto.GenTable.TplCategory)
|
||||||
{
|
{
|
||||||
@ -192,6 +192,8 @@ namespace ZR.CodeGenerator
|
|||||||
tpl.Set("lowerBusinessName", FirstLowerCase(generateDto.GenTable.BusinessName));
|
tpl.Set("lowerBusinessName", FirstLowerCase(generateDto.GenTable.BusinessName));
|
||||||
|
|
||||||
var result = tpl.Render();
|
var result = tpl.Render();
|
||||||
|
var fullPath = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, "ZR.Vue", "src", "views", FirstLowerCase(generateDto.GenTable.ModuleName), $"{generateDto.GenTable.BusinessName}.vue");
|
||||||
|
|
||||||
generateDto.GenCodes.Add(new GenCode(6, "index.vue", fullPath, result));
|
generateDto.GenCodes.Add(new GenCode(6, "index.vue", fullPath, result));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -203,10 +205,10 @@ namespace ZR.CodeGenerator
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static void GenerateVueJs(ReplaceDto replaceDto, GenerateDto generateDto)
|
public static void GenerateVueJs(ReplaceDto replaceDto, GenerateDto generateDto)
|
||||||
{
|
{
|
||||||
string fullPath = Path.Combine(generateDto.GenCodePath, "ZR.Vue", "src", "api", generateDto.GenTable.ModuleName, FirstLowerCase(generateDto.GenTable.BusinessName) + ".js");
|
|
||||||
var tpl = FileHelper.ReadJtTemplate("TplVueApi.txt");
|
var tpl = FileHelper.ReadJtTemplate("TplVueApi.txt");
|
||||||
|
|
||||||
var result = tpl.Render();
|
var result = tpl.Render();
|
||||||
|
|
||||||
|
string fullPath = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, "ZR.Vue", "src", "api", FirstLowerCase(generateDto.GenTable.ModuleName), FirstLowerCase(generateDto.GenTable.BusinessName) + ".js");
|
||||||
generateDto.GenCodes.Add(new GenCode(7, "api.js", fullPath, result));
|
generateDto.GenCodes.Add(new GenCode(7, "api.js", fullPath, result));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -217,8 +219,6 @@ namespace ZR.CodeGenerator
|
|||||||
/// <param name="generateDto"></param>
|
/// <param name="generateDto"></param>
|
||||||
public static void GenerateSql(ReplaceDto replaceDto, GenerateDto generateDto)
|
public static void GenerateSql(ReplaceDto replaceDto, GenerateDto generateDto)
|
||||||
{
|
{
|
||||||
string fullPath = Path.Combine(generateDto.GenCodePath, generateDto.GenTable.BusinessName + ".sql");
|
|
||||||
|
|
||||||
var tempName = "";
|
var tempName = "";
|
||||||
switch (generateDto.DbType)
|
switch (generateDto.DbType)
|
||||||
{
|
{
|
||||||
@ -234,6 +234,8 @@ namespace ZR.CodeGenerator
|
|||||||
var tpl = FileHelper.ReadJtTemplate($"{tempName}.txt");
|
var tpl = FileHelper.ReadJtTemplate($"{tempName}.txt");
|
||||||
tpl.Set("parentId", generateDto.GenTable.ParentMenuId ?? 0);
|
tpl.Set("parentId", generateDto.GenTable.ParentMenuId ?? 0);
|
||||||
var result = tpl.Render();
|
var result = tpl.Render();
|
||||||
|
string fullPath = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, generateDto.GenTable.BusinessName + ".sql");
|
||||||
|
|
||||||
generateDto.GenCodes.Add(new GenCode(8, "sql", fullPath, result));
|
generateDto.GenCodes.Add(new GenCode(8, "sql", fullPath, result));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,13 +1,8 @@
|
|||||||
using JinianNet.JNTemplate;
|
using JinianNet.JNTemplate;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.IO.Compression;
|
using System.IO.Compression;
|
||||||
using System.Linq;
|
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using ZR.CodeGenerator.Model;
|
|
||||||
|
|
||||||
namespace ZR.CodeGenerator
|
namespace ZR.CodeGenerator
|
||||||
{
|
{
|
||||||
@ -123,31 +118,31 @@ namespace ZR.CodeGenerator
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 压缩代码
|
/// 压缩代码
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="dto"></param>
|
/// <param name="zipPath"></param>
|
||||||
|
/// <param name="genCodePath"></param>
|
||||||
|
/// <param name="zipFileName">压缩后的文件名</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static string ZipGenCode(GenerateDto dto)
|
public static bool ZipGenCode(string zipPath, string genCodePath,string zipFileName)
|
||||||
{
|
{
|
||||||
|
if (string.IsNullOrEmpty(zipPath)) return false;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
//生成压缩包
|
CreateDirectory(genCodePath);
|
||||||
string zipReturnFileName = "ZrAdmin.NET" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".zip";
|
string zipFileFullName = Path.Combine(zipPath, zipFileName);
|
||||||
|
if (File.Exists(zipFileFullName))
|
||||||
CreateDirectory(dto.GenCodePath);
|
|
||||||
string zipFileName = Path.Combine(dto.ZipPath, zipReturnFileName);
|
|
||||||
if (File.Exists(zipFileName))
|
|
||||||
{
|
{
|
||||||
File.Delete(zipFileName);
|
File.Delete(zipFileFullName);
|
||||||
}
|
}
|
||||||
|
|
||||||
ZipFile.CreateFromDirectory(dto.GenCodePath, zipFileName);
|
ZipFile.CreateFromDirectory(genCodePath, zipFileFullName);
|
||||||
DeleteDirectory(dto.GenCodePath);
|
DeleteDirectory(genCodePath);
|
||||||
dto.ZipFileName = zipReturnFileName;
|
|
||||||
return zipReturnFileName;
|
return true;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Console.WriteLine("压缩文件出错。" + ex.Message);
|
Console.WriteLine("压缩文件出错。" + ex.Message);
|
||||||
return "";
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,7 @@ namespace ZR.CodeGenerator.Model
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 是否预览代码
|
/// 是否预览代码
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int IsPreview { get; set; }
|
public bool IsPreview { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 生成代码的数据库类型 0、mysql 1、sqlserver
|
/// 生成代码的数据库类型 0、mysql 1、sqlserver
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -17,7 +17,7 @@ namespace ZR.CodeGenerator.Model
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 生成的按钮功能
|
/// 生成的按钮功能
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int[] CheckedBtn { get; set; }
|
public int[] CheckedBtn { get; set; } = System.Array.Empty<int>();
|
||||||
public GenTable GenTable { get; set; }
|
public GenTable GenTable { get; set; }
|
||||||
public CodeGenerateOption GenOptions { get; set; }
|
public CodeGenerateOption GenOptions { get; set; }
|
||||||
#region 存储路径
|
#region 存储路径
|
||||||
@ -37,6 +37,11 @@ namespace ZR.CodeGenerator.Model
|
|||||||
/// 代码生成压缩包名称
|
/// 代码生成压缩包名称
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string ZipFileName { get; set; }
|
public string ZipFileName { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 生成代码方式(0zip压缩包 1自定义路径)
|
||||||
|
/// </summary>
|
||||||
|
public string GenType { get; set; }
|
||||||
|
public string GenPath { get; set; } = "";
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -20,13 +20,7 @@ namespace ZR.Model.System.Dto
|
|||||||
public string FunctionName { get; set; }
|
public string FunctionName { get; set; }
|
||||||
public string FunctionAuthor { get; set; }
|
public string FunctionAuthor { get; set; }
|
||||||
public string GenType { get; set; }
|
public string GenType { get; set; }
|
||||||
public string Options { get; set; }
|
public string GenPath { get; set; }
|
||||||
/// <summary>
|
|
||||||
/// 上级菜单id
|
|
||||||
/// </summary>
|
|
||||||
//public int? ParentMenuId { get; set; }
|
|
||||||
//public string SortField { get; set; }
|
|
||||||
//public string SortType { get; set; }
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 额外参数
|
/// 额外参数
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -36,6 +30,7 @@ namespace ZR.Model.System.Dto
|
|||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 额外参数
|
/// 额外参数
|
||||||
|
/// ****注意里面参数统一首字母小写*****
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Options
|
public class Options
|
||||||
{
|
{
|
||||||
@ -45,6 +40,10 @@ namespace ZR.Model.System.Dto
|
|||||||
public int? parentMenuId { get; set; }
|
public int? parentMenuId { get; set; }
|
||||||
public string sortField { get; set; }
|
public string sortField { get; set; }
|
||||||
public string sortType { get; set; }
|
public string sortType { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 额外参数字符串
|
||||||
|
/// </summary>
|
||||||
|
public string checkedBtn { get; set; }
|
||||||
}
|
}
|
||||||
public class GenTableColumnDto
|
public class GenTableColumnDto
|
||||||
{
|
{
|
||||||
|
|||||||
@ -68,6 +68,7 @@ namespace ZR.Model.System.Generate
|
|||||||
/// 生成代码方式(0zip压缩包 1自定义路径)
|
/// 生成代码方式(0zip压缩包 1自定义路径)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string GenType { get; set; }
|
public string GenType { get; set; }
|
||||||
|
public string GenPath { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 其他生成选项
|
/// 其他生成选项
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -95,6 +96,11 @@ namespace ZR.Model.System.Generate
|
|||||||
|
|
||||||
[SqlSugar.SugarColumn(IsIgnore = true)]
|
[SqlSugar.SugarColumn(IsIgnore = true)]
|
||||||
public object TreeParentCode { get; set; }
|
public object TreeParentCode { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 生成的按钮功能
|
||||||
|
/// </summary>
|
||||||
|
[SqlSugar.SugarColumn(IsIgnore = true)]
|
||||||
|
public int[] CheckedBtn { get; set; } = new int[] { 1, 2, 3 };
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -349,6 +349,12 @@ namespace ZR.Repository
|
|||||||
|
|
||||||
return source.ToPage(parm);
|
return source.ToPage(parm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PagedInfo<T> GetPages(Expression<Func<T, bool>> where, PagerInfo parm, Expression<Func<T, object>> order, string orderByType)
|
||||||
|
{
|
||||||
|
return GetPages(where, parm, order, orderByType == "desc" ? OrderByType.Desc : OrderByType.Asc);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查询所有数据(无分页,请慎用)
|
/// 查询所有数据(无分页,请慎用)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -87,6 +87,7 @@ namespace ZR.Repository
|
|||||||
PagedInfo<T> GetPages(Expression<Func<T, bool>> where, PagerInfo parm);
|
PagedInfo<T> GetPages(Expression<Func<T, bool>> where, PagerInfo parm);
|
||||||
|
|
||||||
PagedInfo<T> GetPages(Expression<Func<T, bool>> where, PagerInfo parm, Expression<Func<T, object>> order, OrderByType orderEnum = OrderByType.Asc);
|
PagedInfo<T> GetPages(Expression<Func<T, bool>> where, PagerInfo parm, Expression<Func<T, object>> order, OrderByType orderEnum = OrderByType.Asc);
|
||||||
|
PagedInfo<T> GetPages(Expression<Func<T, bool>> where, PagerInfo parm, Expression<Func<T, object>> order, string orderByType);
|
||||||
|
|
||||||
bool Any(Expression<Func<T, bool>> expression);
|
bool Any(Expression<Func<T, bool>> expression);
|
||||||
|
|
||||||
|
|||||||
@ -16,8 +16,4 @@
|
|||||||
<PackageReference Include="SqlSugar.IOC" Version="1.7.0" />
|
<PackageReference Include="SqlSugar.IOC" Version="1.7.0" />
|
||||||
<PackageReference Include="SqlSugarCoreNoDrive" Version="5.0.5.1" />
|
<PackageReference Include="SqlSugarCoreNoDrive" Version="5.0.5.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Folder Include="Repositories\" />
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@ -5,6 +5,7 @@ using SqlSugar;
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using ZR.Common;
|
||||||
using ZR.Model;
|
using ZR.Model;
|
||||||
using ZR.Model.System.Generate;
|
using ZR.Model.System.Generate;
|
||||||
using ZR.Repository.System;
|
using ZR.Repository.System;
|
||||||
@ -89,6 +90,9 @@ namespace ZR.Service.System
|
|||||||
genTable.TreeParentCode = options.GetValueOrDefault("treeParentCode") ?? "";
|
genTable.TreeParentCode = options.GetValueOrDefault("treeParentCode") ?? "";
|
||||||
genTable.TreeName = options.GetValueOrDefault("treeName") ?? "";
|
genTable.TreeName = options.GetValueOrDefault("treeName") ?? "";
|
||||||
genTable.TreeCode = options.GetValueOrDefault("treeCode") ?? "";
|
genTable.TreeCode = options.GetValueOrDefault("treeCode") ?? "";
|
||||||
|
|
||||||
|
var checkdBtn = options.GetValueOrDefault("checkedBtn");
|
||||||
|
genTable.CheckedBtn = Tools.SpitIntArrary(checkdBtn.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,23 +1,5 @@
|
|||||||
import request from '@/utils/request'
|
import request from '@/utils/request';
|
||||||
|
|
||||||
// 预览生成代码
|
|
||||||
// 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,
|
|
||||||
// })
|
|
||||||
// }
|
|
||||||
/**
|
/**
|
||||||
* 获取数据库
|
* 获取数据库
|
||||||
*/
|
*/
|
||||||
@ -43,7 +25,7 @@ export function listDbTable(data) {
|
|||||||
export async function codeGenerator(data) {
|
export async function codeGenerator(data) {
|
||||||
return await request({
|
return await request({
|
||||||
url: 'tool/gen/genCode',
|
url: 'tool/gen/genCode',
|
||||||
method: 'post',
|
method: 'POST',
|
||||||
data: data,
|
data: data,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -103,11 +85,11 @@ export function updateGenTable(data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 预览生成代码
|
// 预览生成代码
|
||||||
export function previewTable(tableId, data) {
|
export function previewTable(tableId) {
|
||||||
return request({
|
return request({
|
||||||
url: '/tool/gen/preview/' + tableId,
|
url: '/tool/gen/preview/' + tableId,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
// data: data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -35,7 +35,7 @@
|
|||||||
<el-table-column prop="id" label="文件id" align="center" width="80" />
|
<el-table-column prop="id" label="文件id" align="center" width="80" />
|
||||||
<el-table-column prop="fileName" label="文件名" align="center">
|
<el-table-column prop="fileName" label="文件名" align="center">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-popover :content="scope.row.fileUrl" placement="top-start" title="路径" width="200" trigger="hover">
|
<el-popover :content="scope.row.fileUrl" placement="top-start" title="路径" trigger="hover">
|
||||||
<a slot="reference" :href="scope.row.accessUrl" class="el-link--primary"
|
<a slot="reference" :href="scope.row.accessUrl" class="el-link--primary"
|
||||||
style="word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color: #1890ff;font-size: 13px;" target="_blank">
|
style="word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color: #1890ff;font-size: 13px;" target="_blank">
|
||||||
{{ scope.row.fileName }}
|
{{ scope.row.fileName }}
|
||||||
@ -70,7 +70,7 @@
|
|||||||
<el-dialog :title="title" :lock-scroll="false" :visible.sync="open" width="400px">
|
<el-dialog :title="title" :lock-scroll="false" :visible.sync="open" width="400px">
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="135px" label-position="left">
|
<el-form ref="form" :model="form" :rules="rules" label-width="135px" label-position="left">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :lg="12">
|
<el-col :lg="24">
|
||||||
<el-form-item label="文件名" prop="fileName">
|
<el-form-item label="文件名" prop="fileName">
|
||||||
<el-input v-model="form.fileName" placeholder="请输入文件名" />
|
<el-input v-model="form.fileName" placeholder="请输入文件名" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -104,7 +104,7 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
<!-- <el-button type="primary" @click="submitForm">确 定</el-button> -->
|
||||||
<el-button @click="cancel">取 消</el-button>
|
<el-button @click="cancel">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@ -235,8 +235,6 @@ export default {
|
|||||||
created() {
|
created() {
|
||||||
// 列表数据查询
|
// 列表数据查询
|
||||||
this.getList();
|
this.getList();
|
||||||
|
|
||||||
var dictParams = [];
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 查询数据
|
// 查询数据
|
||||||
@ -329,6 +327,9 @@ export default {
|
|||||||
//上传成功方法
|
//上传成功方法
|
||||||
handleUploadSuccess(columnName, filelist) {
|
handleUploadSuccess(columnName, filelist) {
|
||||||
this.form[columnName] = filelist;
|
this.form[columnName] = filelist;
|
||||||
|
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
},
|
},
|
||||||
// 存储类型字典翻译
|
// 存储类型字典翻译
|
||||||
storeTypeFormat(row, column) {
|
storeTypeFormat(row, column) {
|
||||||
|
|||||||
@ -8,12 +8,13 @@
|
|||||||
<gen-info-form ref="genInfo" :info="info" :tables="tables" :menus="menus" :columns="columns" />
|
<gen-info-form ref="genInfo" :info="info" :tables="tables" :menus="menus" :columns="columns" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="字段信息" name="cloum">
|
<el-tab-pane label="字段信息" name="cloum">
|
||||||
<el-table ref="dragTable" :data="columns" row-key="columnId" :max-height="tableHeight">
|
<el-table ref="dragTable" v-loading="loading" :data="columns" row-key="columnId" :max-height="tableHeight">
|
||||||
<el-table-column label="序号" type="index" min-width="5%" class-name="allowDrag" />
|
<el-table-column label="序号" type="index" min-width="5%" class-name="allowDrag" />
|
||||||
<el-table-column label="字段列名" prop="columnName" min-width="10%" :show-overflow-tooltip="true" />
|
<el-table-column label="字段列名" prop="columnName" min-width="10%" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="字段描述" min-width="10%">
|
<el-table-column label="字段描述" min-width="10%">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-input v-model="scope.row.columnComment" :ref='scope.row.columnId' @keydown.native="nextFocus(scope.row,scope.$index, $event)"></el-input>
|
<el-input v-model="scope.row.columnComment" :ref='scope.row.columnId' @keydown.native="nextFocus(scope.row,scope.$index, $event)">
|
||||||
|
</el-input>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="物理类型" prop="columnType" min-width="10%" :show-overflow-tooltip="true" />
|
<el-table-column label="物理类型" prop="columnType" min-width="10%" :show-overflow-tooltip="true" />
|
||||||
@ -57,7 +58,7 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="查询方式" min-width="10%">
|
<el-table-column label="查询方式" min-width="10%">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-select v-model="scope.row.queryType" :disabled="scope.row.htmlType == 'datetime'">
|
<el-select v-model="scope.row.queryType" :disabled="scope.row.htmlType == 'datetime'" v-if="scope.row.isQuery">
|
||||||
<el-option label="=" value="EQ" />
|
<el-option label="=" value="EQ" />
|
||||||
<el-option label="!=" value="NE" />
|
<el-option label="!=" value="NE" />
|
||||||
<el-option label=">" value="GT" />
|
<el-option label=">" value="GT" />
|
||||||
@ -93,7 +94,8 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="字典类型" min-width="12%">
|
<el-table-column label="字典类型" min-width="12%">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-select v-model="scope.row.dictType" clearable filterable placeholder="请选择" v-if="scope.row.htmlType == 'select' || scope.row.htmlType == 'radio' || scope.row.htmlType =='checkbox'">
|
<el-select v-model="scope.row.dictType" clearable filterable placeholder="请选择"
|
||||||
|
v-if="scope.row.htmlType == 'select' || scope.row.htmlType == 'radio' || scope.row.htmlType =='checkbox'">
|
||||||
<el-option v-for="dict in dictOptions" :key="dict.dictType" :label="dict.dictName" :value="dict.dictType">
|
<el-option v-for="dict in dictOptions" :key="dict.dictType" :label="dict.dictName" :value="dict.dictType">
|
||||||
<span style="float: left">{{ dict.dictName }}</span>
|
<span style="float: left">{{ dict.dictName }}</span>
|
||||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ dict.dictType }}</span>
|
<span style="float: right; color: #8492a6; font-size: 13px">{{ dict.dictType }}</span>
|
||||||
@ -106,9 +108,9 @@
|
|||||||
</el-tabs>
|
</el-tabs>
|
||||||
<el-form label-width="100px">
|
<el-form label-width="100px">
|
||||||
<el-form-item style="text-align: center;margin-left:-100px;margin-top:10px;">
|
<el-form-item style="text-align: center;margin-left:-100px;margin-top:10px;">
|
||||||
<el-button type="primary" @click="submitForm()">提交</el-button>
|
<el-button type="primary" icon="el-icon-check" @click="submitForm()">提交</el-button>
|
||||||
<el-button type="success" @click="handleQuery()">刷新</el-button>
|
<el-button type="success" icon="el-icon-refresh" @click="handleQuery()">刷新</el-button>
|
||||||
<el-button @click="close()">返回</el-button>
|
<el-button icon="el-icon-back" @click="close()">返回</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -143,6 +145,7 @@ export default {
|
|||||||
menus: [],
|
menus: [],
|
||||||
// 表详细信息
|
// 表详细信息
|
||||||
info: {},
|
info: {},
|
||||||
|
loading: true,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -155,7 +158,8 @@ export default {
|
|||||||
if (tableId) {
|
if (tableId) {
|
||||||
// 获取表详细信息
|
// 获取表详细信息
|
||||||
getGenTable(tableId).then((res) => {
|
getGenTable(tableId).then((res) => {
|
||||||
this.columns = res.data.columns;
|
this.loading = false;
|
||||||
|
this.columns = res.data.info.columns;
|
||||||
this.info = res.data.info;
|
this.info = res.data.info;
|
||||||
this.tables = res.data.tables; //子表
|
this.tables = res.data.tables; //子表
|
||||||
});
|
});
|
||||||
@ -178,11 +182,15 @@ export default {
|
|||||||
if (validateResult) {
|
if (validateResult) {
|
||||||
const genTable = Object.assign({}, basicForm.model, genForm.model);
|
const genTable = Object.assign({}, basicForm.model, genForm.model);
|
||||||
genTable.columns = this.columns;
|
genTable.columns = this.columns;
|
||||||
|
// 额外参数拼接
|
||||||
genTable.params = {
|
genTable.params = {
|
||||||
treeCode: genTable.treeCode,
|
treeCode: genTable.treeCode,
|
||||||
treeName: genTable.treeName,
|
treeName: genTable.treeName,
|
||||||
treeParentCode: genTable.treeParentCode,
|
treeParentCode: genTable.treeParentCode,
|
||||||
parentMenuId: genTable.parentMenuId,
|
parentMenuId: genTable.parentMenuId,
|
||||||
|
sortField: genTable.sortField,
|
||||||
|
sortType: genTable.sortType,
|
||||||
|
checkedBtn: genTable.checkedBtn.toString(),
|
||||||
};
|
};
|
||||||
console.log("genForm", genTable);
|
console.log("genForm", genTable);
|
||||||
|
|
||||||
|
|||||||
@ -5,10 +5,10 @@
|
|||||||
<el-form-item prop="tplCategory">
|
<el-form-item prop="tplCategory">
|
||||||
<span slot="label">生成模板</span>
|
<span slot="label">生成模板</span>
|
||||||
<el-select v-model="info.tplCategory" @change="tplSelectChange">
|
<el-select v-model="info.tplCategory" @change="tplSelectChange">
|
||||||
<el-option label="单表(增删改查)" value="crud" />
|
<el-option label="单表(增删改查)" value="crud" />
|
||||||
<!-- <el-option label="单表查询" value="select" /> -->
|
<!-- <el-option label="单表查询" value="select" /> -->
|
||||||
<el-option label="树表(增删改查)" value="tree" />
|
<el-option label="树表(增删改查)" value="tree" />
|
||||||
<!-- <el-option label="导航查询" value="subNav"></el-option> -->
|
<!-- <el-option label="导航查询" value="subNav"></el-option> -->
|
||||||
<!-- <el-option label="主子表(增删改查)" value="sub" /> -->
|
<!-- <el-option label="主子表(增删改查)" value="sub" /> -->
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -34,7 +34,7 @@
|
|||||||
<i class="el-icon-question"></i>
|
<i class="el-icon-question"></i>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</span>
|
</span>
|
||||||
<el-input v-model="info.moduleName" auto-complete=""/>
|
<el-input v-model="info.moduleName" auto-complete="" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
@ -94,12 +94,12 @@
|
|||||||
<el-form-item prop="genType">
|
<el-form-item prop="genType">
|
||||||
<span slot="label">
|
<span slot="label">
|
||||||
生成代码方式
|
生成代码方式
|
||||||
<!-- <el-tooltip content="默认为zip压缩包下载,也可以自定义生成路径" placement="top">
|
<el-tooltip content="默认为zip压缩包下载" placement="top">
|
||||||
<i class="el-icon-question"></i>
|
<i class="el-icon-question"></i>
|
||||||
</el-tooltip> -->
|
</el-tooltip>
|
||||||
</span>
|
</span>
|
||||||
<el-radio v-model="info.genType" label="0">zip压缩包</el-radio>
|
<el-radio v-model="info.genType" label="0">zip压缩包</el-radio>
|
||||||
<!-- <el-radio v-model="info.genType" label="1">自定义路径</el-radio> -->
|
<el-radio v-model="info.genType" label="1">自定义路径</el-radio>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
@ -124,6 +124,24 @@
|
|||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :lg="24">
|
||||||
|
<el-form-item label="显示按钮">
|
||||||
|
<el-checkbox-group v-model="checkedBtn" @change="checkedBtnSelect">
|
||||||
|
<el-checkbox :label="1">
|
||||||
|
<el-tag type="primary">添加</el-tag>
|
||||||
|
</el-checkbox>
|
||||||
|
<el-checkbox :label="2">
|
||||||
|
<el-tag type="success">修改</el-tag>
|
||||||
|
</el-checkbox>
|
||||||
|
<el-checkbox :label="3">
|
||||||
|
<el-tag type="danger">删除</el-tag>
|
||||||
|
</el-checkbox>
|
||||||
|
<el-checkbox :label="4">
|
||||||
|
<el-tag type="warning">导出</el-tag>
|
||||||
|
</el-checkbox>
|
||||||
|
</el-checkbox-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row v-show="info.tplCategory == 'tree'">
|
<el-row v-show="info.tplCategory == 'tree'">
|
||||||
@ -234,6 +252,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
checkedBtn: [],
|
||||||
subColumns: [],
|
subColumns: [],
|
||||||
rules: {
|
rules: {
|
||||||
tplCategory: [
|
tplCategory: [
|
||||||
@ -265,6 +284,10 @@ export default {
|
|||||||
"info.subTableName": function (val) {
|
"info.subTableName": function (val) {
|
||||||
this.setSubTableColumns(val);
|
this.setSubTableColumns(val);
|
||||||
},
|
},
|
||||||
|
"info.checkedBtn": function (val) {
|
||||||
|
console.log(val + ',checkedBtn');
|
||||||
|
this.checkedBtn = val;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 转换菜单数据结构 */
|
/** 转换菜单数据结构 */
|
||||||
@ -282,6 +305,9 @@ export default {
|
|||||||
subSelectChange(value) {
|
subSelectChange(value) {
|
||||||
this.info.subTableFkName = "";
|
this.info.subTableFkName = "";
|
||||||
},
|
},
|
||||||
|
checkedBtnSelect(value) {
|
||||||
|
this.info.checkedBtn = value;
|
||||||
|
},
|
||||||
/** 选择生成模板触发 */
|
/** 选择生成模板触发 */
|
||||||
tplSelectChange(value) {
|
tplSelectChange(value) {
|
||||||
if (value !== "sub") {
|
if (value !== "sub") {
|
||||||
@ -291,7 +317,6 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 设置关联外键 */
|
/** 设置关联外键 */
|
||||||
setSubTableColumns(value) {
|
setSubTableColumns(value) {
|
||||||
console.log(value);
|
|
||||||
if (value == null || value == undefined || value == "") {
|
if (value == null || value == undefined || value == "") {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,11 +37,11 @@
|
|||||||
<el-table-column prop="updateTime" label="更新时间" />
|
<el-table-column prop="updateTime" label="更新时间" />
|
||||||
<el-table-column label="操作" align="center" width="350">
|
<el-table-column label="操作" align="center" width="350">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" icon="el-icon-view" @click="handleShowDialog(scope.row, 'preview')" v-hasPermi="['tool:gen:preview']">预览</el-button>
|
<el-button type="text" icon="el-icon-view" @click="handlePreview(scope.row)" v-hasPermi="['tool:gen:preview']">预览</el-button>
|
||||||
<el-button type="text" icon="el-icon-edit" @click="handleEditTable(scope.row)" v-hasPermi="['tool:gen:edit']">编辑</el-button>
|
<el-button type="text" icon="el-icon-edit" @click="handleEditTable(scope.row)" v-hasPermi="['tool:gen:edit']">编辑</el-button>
|
||||||
<el-button type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['tool:gen:remove']">删除</el-button>
|
<el-button type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['tool:gen:remove']">删除</el-button>
|
||||||
<el-button type="text" icon="el-icon-refresh" @click="handleSynchDb(scope.row)" v-hasPermi="['tool:gen:edit']">同步</el-button>
|
<el-button type="text" icon="el-icon-refresh" @click="handleSynchDb(scope.row)" v-hasPermi="['tool:gen:edit']">同步</el-button>
|
||||||
<el-button type="text" icon="el-icon-download" @click="handleShowDialog(scope.row, 'generate')" v-hasPermi="['tool:gen:code']">生成代码
|
<el-button type="text" icon="el-icon-download" @click="handleGenTable(scope.row)" v-hasPermi="['tool:gen:code']">生成代码
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -59,35 +59,6 @@
|
|||||||
</el-tabs>
|
</el-tabs>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<import-table ref="import" @ok="handleSearch" />
|
<import-table ref="import" @ok="handleSearch" />
|
||||||
|
|
||||||
<el-dialog :visible.sync="showGenerate" :title="preview.title" width="800px">
|
|
||||||
<el-form ref="codeGenerateForm" label-width="140px">
|
|
||||||
<el-form-item label="显示按钮">
|
|
||||||
<el-checkbox-group v-model="checkedBtnForm">
|
|
||||||
<el-checkbox :label="1" :disabled=true>
|
|
||||||
<el-tag type="primary">添加</el-tag>
|
|
||||||
</el-checkbox>
|
|
||||||
<el-checkbox :label="2" :disabled=true>
|
|
||||||
<el-tag type="success">修改</el-tag>
|
|
||||||
</el-checkbox>
|
|
||||||
<el-checkbox :label="3" :disabled=true>
|
|
||||||
<el-tag type="danger">删除</el-tag>
|
|
||||||
</el-checkbox>
|
|
||||||
<el-checkbox :label="4">
|
|
||||||
<el-tag type="warning">导出</el-tag>
|
|
||||||
</el-checkbox>
|
|
||||||
</el-checkbox-group>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="数据库类型">
|
|
||||||
<el-radio v-model="dbType" :label="0">mySql</el-radio>
|
|
||||||
<el-radio v-model="dbType" :label="1">sqlServer</el-radio>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
<div slot="footer" class="dialog-footer">
|
|
||||||
<el-button type="primary" @click="handleGenerate">确 定</el-button>
|
|
||||||
<el-button @click="cancel">取 消</el-button>
|
|
||||||
</div>
|
|
||||||
</el-dialog>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -122,8 +93,6 @@ export default {
|
|||||||
activeName: "0",
|
activeName: "0",
|
||||||
},
|
},
|
||||||
showGenerate: false,
|
showGenerate: false,
|
||||||
// 显示的button
|
|
||||||
checkedBtnForm: [1, 2, 3],
|
|
||||||
rules: {},
|
rules: {},
|
||||||
// 表数据
|
// 表数据
|
||||||
tableData: [],
|
tableData: [],
|
||||||
@ -171,39 +140,26 @@ export default {
|
|||||||
},
|
},
|
||||||
// 代码预览
|
// 代码预览
|
||||||
handlePreview(row) {
|
handlePreview(row) {
|
||||||
var seachdata = {
|
this.$refs["codeform"].validate((valid) => {
|
||||||
tableId: this.currentSelected.tableId,
|
if (!valid) {
|
||||||
checkedBtn: this.checkedBtnForm,
|
this.msgError("请先完成表格");
|
||||||
dbType: this.dbType,
|
return;
|
||||||
};
|
|
||||||
previewTable(row.tableId, seachdata).then((res) => {
|
|
||||||
if (res.code === 200) {
|
|
||||||
this.showGenerate = false;
|
|
||||||
this.preview.open = true;
|
|
||||||
this.preview.data = res.data;
|
|
||||||
}
|
}
|
||||||
|
previewTable(row.tableId).then((res) => {
|
||||||
|
if (res.code === 200) {
|
||||||
|
this.showGenerate = false;
|
||||||
|
this.preview.open = true;
|
||||||
|
this.preview.data = res.data;
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 打开对话框、预览、生成
|
|
||||||
handleShowDialog(row, type) {
|
|
||||||
this.showGenerate = true;
|
|
||||||
if (type == "generate") {
|
|
||||||
this.preview.title = "代码生成";
|
|
||||||
}
|
|
||||||
if (type == "preview") {
|
|
||||||
this.preview.title = "预览";
|
|
||||||
}
|
|
||||||
this.currentSelected = row;
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
* 点击生成服务端代码
|
* 点击生成服务端代码
|
||||||
*/
|
*/
|
||||||
handleGenerate: async function () {
|
handleGenTable(row) {
|
||||||
console.log(JSON.stringify(this.currentSelected));
|
console.log(JSON.stringify(this.currentSelected));
|
||||||
if (this.preview.title == "预览") {
|
this.currentSelected = row;
|
||||||
this.handlePreview(this.currentSelected);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!this.currentSelected) {
|
if (!this.currentSelected) {
|
||||||
this.msgError("请先选择要生成代码的数据表");
|
this.msgError("请先选择要生成代码的数据表");
|
||||||
return false;
|
return false;
|
||||||
@ -221,21 +177,19 @@ export default {
|
|||||||
var seachdata = {
|
var seachdata = {
|
||||||
tableId: this.currentSelected.tableId,
|
tableId: this.currentSelected.tableId,
|
||||||
tableName: this.currentSelected.name,
|
tableName: this.currentSelected.name,
|
||||||
checkedBtn: this.checkedBtnForm,
|
|
||||||
dbType: this.dbType,
|
|
||||||
// queryColumn: this.checkedQueryColumn,
|
// queryColumn: this.checkedQueryColumn,
|
||||||
};
|
};
|
||||||
console.log(JSON.stringify(seachdata));
|
console.log(JSON.stringify(seachdata));
|
||||||
|
|
||||||
codeGenerator(seachdata)
|
codeGenerator(seachdata)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
const { code, data } = res;
|
const { data } = res;
|
||||||
if (code == 200) {
|
this.showGenerate = false;
|
||||||
this.showGenerate = false;
|
if (row.genType === "1") {
|
||||||
|
this.msgSuccess("成功生成到自定义路径:" + row.genPath);
|
||||||
|
} else {
|
||||||
this.msgSuccess("恭喜你,代码生成完成!");
|
this.msgSuccess("恭喜你,代码生成完成!");
|
||||||
this.download(data.path);
|
this.download(data.path);
|
||||||
} else {
|
|
||||||
this.msgError(res.msg);
|
|
||||||
}
|
}
|
||||||
pageLoading.close();
|
pageLoading.close();
|
||||||
})
|
})
|
||||||
@ -251,7 +205,7 @@ export default {
|
|||||||
this.showGenerate = false;
|
this.showGenerate = false;
|
||||||
this.currentSelected = {};
|
this.currentSelected = {};
|
||||||
},
|
},
|
||||||
// 导入代码生成
|
/** 打开导入表弹窗 */
|
||||||
openImportTable() {
|
openImportTable() {
|
||||||
this.$refs.import.show();
|
this.$refs.import.show();
|
||||||
},
|
},
|
||||||
|
|||||||
@ -54,8 +54,8 @@ CREATE TABLE `sys_Tasks_log` (
|
|||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Records of sys_Tasks_log
|
-- Records of sys_Tasks_log
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
INSERT INTO `sys_Tasks_log` VALUES (196, '1410905433996136448', '测试任务', 'SYSTEM', 'Succeed', '0', NULL, '2021-08-02 15:10:00', 'ZRTasks.Job_SyncTest', 18);
|
INSERT INTO `sys_Tasks_log` VALUES (196, '1410905433996136448', '测试任务', 'SYSTEM', 'Succeed', '0', NULL, SYSDATE(), 'ZRTasks.Job_SyncTest', 18);
|
||||||
INSERT INTO `sys_Tasks_log` VALUES (197, '1410905433996136448', '测试任务', 'SYSTEM', 'Succeed', '0', NULL, '2021-08-02 15:20:00', 'ZRTasks.Job_SyncTest', 14);
|
INSERT INTO `sys_Tasks_log` VALUES (197, '1410905433996136448', '测试任务', 'SYSTEM', 'Succeed', '0', NULL, SYSDATE(), 'ZRTasks.Job_SyncTest', 14);
|
||||||
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
@ -197,17 +197,17 @@ CREATE TABLE `sys_dict_type` (
|
|||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Records of sys_dict_type
|
-- Records of sys_dict_type
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
INSERT INTO `sys_dict_type` VALUES (1, '用户性别', 'sys_user_sex', '0', 'Y', 'admin', '2021-02-24 10:55:26', '', NULL, '用户性别列表');
|
INSERT INTO `sys_dict_type` VALUES (1, '用户性别', 'sys_user_sex', '0', 'Y', 'admin', SYSDATE(), '', NULL, '用户性别列表');
|
||||||
INSERT INTO `sys_dict_type` VALUES (2, '菜单状态', 'sys_show_hide', '0', 'Y', 'admin', '2021-02-24 10:55:26', '', NULL, '菜单状态列表');
|
INSERT INTO `sys_dict_type` VALUES (2, '菜单状态', 'sys_show_hide', '0', 'Y', 'admin', SYSDATE(), '', NULL, '菜单状态列表');
|
||||||
INSERT INTO `sys_dict_type` VALUES (3, '系统开关', 'sys_normal_disable', '0', 'Y', 'admin', '2021-02-24 10:55:26', '', NULL, '系统开关列表');
|
INSERT INTO `sys_dict_type` VALUES (3, '系统开关', 'sys_normal_disable', '0', 'Y', 'admin', SYSDATE(), '', NULL, '系统开关列表');
|
||||||
INSERT INTO `sys_dict_type` VALUES (4, '任务状态', 'sys_job_status', '0', 'Y', 'admin', '2021-02-24 10:55:26', '', NULL, '任务状态列表');
|
INSERT INTO `sys_dict_type` VALUES (4, '任务状态', 'sys_job_status', '0', 'Y', 'admin', SYSDATE(), '', NULL, '任务状态列表');
|
||||||
INSERT INTO `sys_dict_type` VALUES (5, '任务分组', 'sys_job_group', '0', 'Y', 'admin', '2021-02-24 10:55:26', '', NULL, '任务分组列表');
|
INSERT INTO `sys_dict_type` VALUES (5, '任务分组', 'sys_job_group', '0', 'Y', 'admin', SYSDATE(), '', NULL, '任务分组列表');
|
||||||
INSERT INTO `sys_dict_type` VALUES (6, '系统是否', 'sys_yes_no', '0', 'Y', 'admin', '2021-02-24 10:55:26', '', NULL, '系统是否列表');
|
INSERT INTO `sys_dict_type` VALUES (6, '系统是否', 'sys_yes_no', '0', 'Y', 'admin', SYSDATE(), '', NULL, '系统是否列表');
|
||||||
INSERT INTO `sys_dict_type` VALUES (7, '通知类型', 'sys_notice_type', '0', 'Y', 'admin', '2021-02-24 10:55:26', '', NULL, '通知类型列表');
|
INSERT INTO `sys_dict_type` VALUES (7, '通知类型', 'sys_notice_type', '0', 'Y', 'admin', SYSDATE(), '', NULL, '通知类型列表');
|
||||||
INSERT INTO `sys_dict_type` VALUES (8, '通知状态', 'sys_notice_status', '0', 'Y', 'admin', '2021-02-24 10:55:26', '', NULL, '通知状态列表');
|
INSERT INTO `sys_dict_type` VALUES (8, '通知状态', 'sys_notice_status', '0', 'Y', 'admin', SYSDATE(), '', NULL, '通知状态列表');
|
||||||
INSERT INTO `sys_dict_type` VALUES (9, '操作类型', 'sys_oper_type', '0', 'Y', 'admin', '2021-02-24 10:55:26', '', NULL, '操作类型列表');
|
INSERT INTO `sys_dict_type` VALUES (9, '操作类型', 'sys_oper_type', '0', 'Y', 'admin', SYSDATE(), '', NULL, '操作类型列表');
|
||||||
INSERT INTO `sys_dict_type` VALUES (10, '系统状态', 'sys_common_status', '0', 'Y', 'admin', '2021-02-24 10:55:27', '', NULL, '登录状态列表');
|
INSERT INTO `sys_dict_type` VALUES (10, '系统状态', 'sys_common_status', '0', 'Y', 'admin', SYSDATE(), '', NULL, '登录状态列表');
|
||||||
INSERT INTO `sys_dict_type` VALUES (11, '文章状态', 'sys_article_status', '0', 'Y', 'admin', '2021-08-19 10:34:33', '', NULL, NULL);
|
INSERT INTO `sys_dict_type` VALUES (11, '文章状态', 'sys_article_status', '0', 'Y', 'admin', SYSDATE(), '', NULL, NULL);
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|
||||||
@ -440,19 +440,19 @@ CREATE TABLE `sys_post` (
|
|||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Records of sys_post
|
-- Records of sys_post
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
INSERT INTO `sys_post` VALUES (1, 'CEO', '董事长', 1, '0', 'admin', '2021-04-20 20:43:23', '', NULL, '');
|
INSERT INTO `sys_post` VALUES (1, 'CEO', '董事长', 1, '0', '', SYSDATE(), '', NULL, '');
|
||||||
INSERT INTO `sys_post` VALUES (2, 'SE', '项目经理', 2, '0', 'admin', '2021-04-20 20:43:23', '', NULL, '');
|
INSERT INTO `sys_post` VALUES (2, 'SE', '项目经理', 2, '0', '', SYSDATE(), '', NULL, '');
|
||||||
INSERT INTO `sys_post` VALUES (3, 'HR', '人力资源', 3, '0', 'admin', '2021-04-20 20:43:23', '', NULL, '');
|
INSERT INTO `sys_post` VALUES (3, 'HR', '人力资源', 3, '0', '', SYSDATE(), '', NULL, '');
|
||||||
INSERT INTO `sys_post` VALUES (4, 'USER', '普通员工', 4, '0', 'admin', '2021-04-20 20:43:23', 'admin', '2021-07-07 14:56:39', '普通用户');
|
INSERT INTO `sys_post` VALUES (4, 'USER', '普通员工', 4, '0', '', SYSDATE(), '', NULL, '');
|
||||||
INSERT INTO `sys_post` VALUES (6, 'PM', '人事经理', 0, '0', NULL, '2021-07-07 15:01:20', 'admin', '2021-07-12 15:31:45', NULL);
|
INSERT INTO `sys_post` VALUES (6, 'PM', '人事经理', 0, '0', NULL, SYSDATE(), '', NULL, NULL);
|
||||||
INSERT INTO `sys_post` VALUES (7, 'GM', '总经理', 0, '0', NULL, '2021-07-09 18:29:25', '', NULL, NULL);
|
INSERT INTO `sys_post` VALUES (7, 'GM', '总经理', 0, '0', NULL, SYSDATE(), '', NULL, NULL);
|
||||||
INSERT INTO `sys_post` VALUES (8, 'COO', '首席运营官', 0, '0', NULL, '2021-07-09 18:30:06', '', NULL, NULL);
|
INSERT INTO `sys_post` VALUES (8, 'COO', '首席运营官', 0, '0', NULL, SYSDATE(), '', NULL, NULL);
|
||||||
INSERT INTO `sys_post` VALUES (9, 'CFO', '首席财务官', 0, '0', NULL, '2021-07-09 18:30:28', '', NULL, NULL);
|
INSERT INTO `sys_post` VALUES (9, 'CFO', '首席财务官', 0, '0', NULL, SYSDATE(), '', NULL, NULL);
|
||||||
INSERT INTO `sys_post` VALUES (10, 'CTO', '首席技术官', 0, '0', NULL, '2021-07-09 18:30:53', '', NULL, NULL);
|
INSERT INTO `sys_post` VALUES (10, 'CTO', '首席技术官', 0, '0', NULL, SYSDATE(), '', NULL, NULL);
|
||||||
INSERT INTO `sys_post` VALUES (11, 'HRD', '人力资源总监', 0, '0', NULL, '2021-07-09 18:31:19', '', NULL, NULL);
|
INSERT INTO `sys_post` VALUES (11, 'HRD', '人力资源总监', 0, '0', NULL, SYSDATE(), '', NULL, NULL);
|
||||||
INSERT INTO `sys_post` VALUES (12, 'VP', '副总裁', 0, '0', NULL, '2021-07-09 18:31:31', '', NULL, NULL);
|
INSERT INTO `sys_post` VALUES (12, 'VP', '副总裁', 0, '0', NULL, SYSDATE(), '', NULL, NULL);
|
||||||
INSERT INTO `sys_post` VALUES (13, 'OD', '运营总监', 0, '0', NULL, '2021-07-09 18:31:55', '', NULL, NULL);
|
INSERT INTO `sys_post` VALUES (13, 'OD', '运营总监', 0, '0', NULL, SYSDATE(), '', NULL, NULL);
|
||||||
INSERT INTO `sys_post` VALUES (14, 'MD', '市场总监', 0, '0', NULL, '2021-07-09 18:32:16', '', NULL, NULL);
|
INSERT INTO `sys_post` VALUES (14, 'MD', '市场总监', 0, '0', NULL, SYSDATE(), '', NULL, NULL);
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for sys_role
|
-- Table structure for sys_role
|
||||||
@ -479,8 +479,8 @@ CREATE TABLE `sys_role` (
|
|||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Records of sys_role
|
-- Records of sys_role
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
INSERT INTO `sys_role` VALUES (1, '超级管理员', 'admin', 1, '1', 1, 0, '0', '0', 'admin', '2020-11-26 11:53:16', '', NULL, '超级管理员');
|
INSERT INTO `sys_role` VALUES (1, '超级管理员', 'admin', 1, '1', 1, 0, '0', '0', 'admin', SYSDATE(), 'system', NULL, '超级管理员');
|
||||||
INSERT INTO `sys_role` VALUES (2, '普通角色', 'common', 2, '2', 1, 0, '0', '0', 'admin', '2020-11-26 11:53:16', 'admin', '2021-08-02 15:05:29', '普通角色');
|
INSERT INTO `sys_role` VALUES (2, '普通角色', 'common', 2, '2', 1, 0, '0', '0', 'admin', SYSDATE(), 'system', NULL, '普通角色');
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for sys_role_dept
|
-- Table structure for sys_role_dept
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user