代码生成支持mysql脚本生成菜单权限

This commit is contained in:
izory 2021-09-24 10:09:18 +08:00
parent b8c5231740
commit 3a418df47f
6 changed files with 58 additions and 20 deletions

View File

@ -0,0 +1,23 @@
-- 菜单
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by,create_time, update_by, update_time, remark)
VALUES ('{FunctionName}', 0, 1, '/{ModuleName}/{ModelTypeName}', '{ModuleName}/{ViewsFileName}/index', 0, 0, 'C', '0', '0', '{Permission}:list', '#', '', sysdate(), '', NULL, '{ModelTypeDesc}菜单');
-- 按钮父菜单id
SELECT @menuId := LAST_INSERT_ID();
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by,create_time, update_by, update_time, remark)
VALUES ('查询', @menuId, 1, '#', NULL, 0, 0, 'F', '0', '0', '{Permission}:query', '', '', sysdate(), '', NULL, '');
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by,create_time, update_by, update_time, remark)
VALUES ('新增', @menuId, 1, '#', NULL, 0, 0, 'F', '0', '0', '{Permission}:add', '', '', sysdate(), '', NULL, NULL);
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by,create_time, update_by, update_time, remark)
VALUES ('删除', @menuId, 2, '#', NULL, 0, 0, 'F', '0', '0', '{Permission}:delete', '', '', sysdate(), '', NULL, NULL);
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by,create_time, update_by, update_time, remark)
VALUES ('修改', @menuId, 3, '#', NULL, 0, 0, 'F', '0', '0', '{Permission}:update', '', '', sysdate(), '', NULL, NULL);
SELECT * FROM sys_menu WHERE parentId = @menuId;
SELECT * FROM sys_menu WHERE menuId = @menuId;

View File

@ -1,6 +1,6 @@
-- 菜单 -- 菜单
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by,create_time, update_by, update_time, remark) INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by,create_time, update_by, update_time, remark)
VALUES ('{FunctionName}', 0, 1, '/{ModuleName}/{ModelTypeName}', '{ModuleName}/{ViewsFileName}/index', 0, 0, 'C', '0', '0', '', '{Permission}:list', '', GETDATE(), '', NULL, '{ModelTypeDesc}'); VALUES ('{FunctionName}', 0, 1, '/{ModuleName}/{ModelTypeName}', '{ModuleName}/{ViewsFileName}/index', 0, 0, 'C', '0', '0', '{Permission}:list', '#', '', GETDATE(), '', NULL, '{ModelTypeDesc}');
-- 按钮父菜单id -- 按钮父菜单id
declare @menuId int = @@identity declare @menuId int = @@identity
@ -17,3 +17,7 @@ VALUES ('删除', @menuId, 2, '#', NULL, 0, 0, 'F', '0', '0', '{Permission}:dele
INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by,create_time, update_by, update_time, remark) INSERT INTO sys_menu(menuName, parentId, orderNum, path, component, isFrame, isCache, menuType, visible, status, perms, icon, create_by,create_time, update_by, update_time, remark)
VALUES ('修改', @menuId, 3, '#', NULL, 0, 0, 'F', '0', '0', '{Permission}:update', '', '', GETDATE(), '', NULL, NULL); VALUES ('修改', @menuId, 3, '#', NULL, 0, 0, 'F', '0', '0', '{Permission}:update', '', '', GETDATE(), '', NULL, NULL);
GO
SELECT * FROM sys_menu WHERE parentId = @menuId;
SELECT * FROM sys_menu WHERE menuId = @menuId;

View File

@ -62,7 +62,7 @@ namespace ZR.CodeGenerator
replaceDto.ModelTypeName = tableInfo.ClassName;//表名对应C# 实体类名 replaceDto.ModelTypeName = tableInfo.ClassName;//表名对应C# 实体类名
replaceDto.TableName = tableInfo.TableName;//表名 replaceDto.TableName = tableInfo.TableName;//表名
replaceDto.TableDesc = tableInfo.TableComment;//表说明描述 replaceDto.TableDesc = tableInfo.TableComment;//表说明描述
replaceDto.Permission = tableInfo.ClassName.ToLower();//权限 replaceDto.Permission = $"{tableInfo.ModuleName}:{tableInfo.ClassName.ToLower()}";//权限
replaceDto.ViewsFileName = FirstLowerCase(replaceDto.ModelTypeName); replaceDto.ViewsFileName = FirstLowerCase(replaceDto.ModelTypeName);
//循环表字段信息 //循环表字段信息
foreach (GenTableColumn dbFieldInfo in listField) foreach (GenTableColumn dbFieldInfo in listField)
@ -393,7 +393,19 @@ namespace ZR.CodeGenerator
if (File.Exists(fullPath) && !generateDto.coverd) if (File.Exists(fullPath) && !generateDto.coverd)
return Tuple.Create(fullPath, ""); return Tuple.Create(fullPath, "");
var content = ReadTemplate("SqlTemplate.txt") var tempName = "";
switch (generateDto.DbType)
{
case 0:
tempName = "MySqlTemplate";
break;
case 1:
tempName = "SqlTemplate";
break;
default:
break;
}
var content = ReadTemplate($"{tempName}.txt")
.Replace("{ModelTypeName}", replaceDto.ModelTypeName) .Replace("{ModelTypeName}", replaceDto.ModelTypeName)
.Replace("{Permission}", replaceDto.Permission) .Replace("{Permission}", replaceDto.Permission)
.Replace("{ModelTypeDesc}", replaceDto.TableDesc) .Replace("{ModelTypeDesc}", replaceDto.TableDesc)

View File

@ -20,6 +20,10 @@ namespace ZR.CodeGenerator.Model
/// 如果目标文件存在是否覆盖。默认为false /// 如果目标文件存在是否覆盖。默认为false
/// </summary> /// </summary>
public bool coverd { get; set; } = true; public bool coverd { get; set; } = true;
/// <summary>
/// 生成代码的数据库类型 0、mysql 1、sqlserver
/// </summary>
public int DbType { get; set; }
public GenTable GenTable { get; set; } public GenTable GenTable { get; set; }
#region #region
//public string ModelPath { get; set; } //public string ModelPath { get; set; }

View File

@ -11,7 +11,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item prop="baseNameSpace"> <el-form-item prop="baseNameSpace">
<span slot="label"> <span slot="label">
@ -76,9 +76,9 @@
<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> -->

View File

@ -63,6 +63,11 @@
<el-radio v-model="coverd" :label="false"></el-radio> <el-radio v-model="coverd" :label="false"></el-radio>
</el-form-item> </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> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleGenerate"> </el-button> <el-button type="primary" @click="handleGenerate"> </el-button>
@ -87,21 +92,11 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 20, pageSize: 20,
dbName: "",
tableName: "", tableName: "",
baseSpace: "",
replaceTableNameStr: "",
}, },
showGenerate: false, showGenerate: false,
checkedCodeGenerateForm: [1, 2, 3, 4, 5, 6, 7], checkedCodeGenerateForm: [1, 2, 3, 4, 5, 6, 7],
rules: { rules: {},
dbName: [
{ required: true, message: "请选择数据库名称", trigger: "blur" },
],
replaceTableNameStr: [
{ min: 0, max: 50, message: "长度小于50个字符", trigger: "blur" },
],
},
// //
tableData: [], tableData: [],
// //
@ -109,13 +104,12 @@ export default {
total: 0, total: 0,
// //
currentSelected: {}, currentSelected: {},
selectedDataBase: [],
//
// columnData: [],
// //
checkedQueryColumn: [], checkedQueryColumn: [],
// //
coverd: true, coverd: true,
// SQL
dbType: 0,
// //
tableIds: [], tableIds: [],
// //
@ -176,6 +170,7 @@ export default {
tableName: this.currentSelected.name, tableName: this.currentSelected.name,
genFiles: this.checkedCodeGenerateForm, genFiles: this.checkedCodeGenerateForm,
coverd: this.coverd, coverd: this.coverd,
dbType: this.dbType,
queryColumn: this.checkedQueryColumn, queryColumn: this.checkedQueryColumn,
}; };
console.log(JSON.stringify(seachdata)); console.log(JSON.stringify(seachdata));