diff --git a/_web/src/views/gen/codeGenerate/addForm.vue b/_web/src/views/gen/codeGenerate/addForm.vue index ae9dfa6a..3430635a 100644 --- a/_web/src/views/gen/codeGenerate/addForm.vue +++ b/_web/src/views/gen/codeGenerate/addForm.vue @@ -79,6 +79,40 @@ + + + + + {{ item.name }} + + + + + + + {{ id }} + + + + + import { codeGenerateInformationList, codeGenerateAdd } from '@/api/modular/gen/codeGenerateManage' + import { getAppList } from '@/api/modular/system/appManage' + import { getMenuTree } from '@/api/modular/system/menuManage' export default { data () { return { @@ -127,6 +163,8 @@ tablePrefixValue: 'N', tableNameValue: '', packageNameShow: true, + appData: [], + menuTreeData: [], form: this.$form.createForm(this) } }, @@ -137,6 +175,7 @@ this.codeGenerateInformationList() this.dataTypeItem() this.selectedByDefault() + this.getSysApplist() }, /** * 默认选中项 @@ -145,6 +184,7 @@ this.form.getFieldDecorator('packageName', { initialValue: 'vip.xiaonuo' }) this.form.getFieldDecorator('tablePrefix', { valuePropName: 'checked', initialValue: 'N' }) this.form.getFieldDecorator('generateType', { valuePropName: 'checked', initialValue: '1' }) + this.tablePrefixValue = 'N' }, /** * 获得所有数据库的表 @@ -154,6 +194,38 @@ this.tableNameData = res.data }) }, + /** + * 获取应用列表 + */ + getSysApplist () { + return getAppList().then((res) => { + if (res.success) { + this.appData = res.data + } else { + this.$message.warning(res.message) + } + }) + }, + /** + * 通过应用获取菜单 + */ + changeApplication (value) { + this.form.resetFields(`menuPid`, []) + getMenuTree({ 'application': value }).then((res) => { + if (res.success) { + this.menuTreeData = [{ + 'id': '-1', + 'parentId': '0', + 'title': '顶级', + 'value': '0', + 'pid': '0', + 'children': res.data + }] + } else { + this.$message.warning(res.message) + } + }) + }, /** * 获取字典数据 */ diff --git a/_web/src/views/gen/codeGenerate/editForm.vue b/_web/src/views/gen/codeGenerate/editForm.vue index 96dc3553..3843845a 100644 --- a/_web/src/views/gen/codeGenerate/editForm.vue +++ b/_web/src/views/gen/codeGenerate/editForm.vue @@ -80,6 +80,40 @@ + + + + + {{ item.name }} + + + + + + + {{ id }} + + + + + import { codeGenerateInformationList, codeGenerateEdit } from '@/api/modular/gen/codeGenerateManage' + import { getAppList } from '@/api/modular/system/appManage' + import { getMenuTree } from '@/api/modular/system/menuManage' export default { data () { return { @@ -128,6 +164,8 @@ tablePrefixValue: 'N', tableNameValue: '', packageNameShow: true, + appData: [], + menuTreeData: [], form: this.$form.createForm(this) } }, @@ -137,6 +175,7 @@ this.visible = true this.codeGenerateInformationList() this.dataTypeItem() + this.getSysApplist() setTimeout(() => { this.form.setFieldsValue( { @@ -148,10 +187,13 @@ busName: record.busName, generateType: record.generateType, authorName: record.authorName, - packageName: record.packageName + packageName: record.packageName, + appCode: record.appCode, + menuPid: record.menuPid } ) }, 100) + this.changeApplication(record.appCode) this.tableNameValue = record.tableName this.tablePrefixValue = record.tablePrefix }, @@ -163,6 +205,38 @@ this.tableNameData = res.data }) }, + /** + * 获取应用列表 + */ + getSysApplist () { + return getAppList().then((res) => { + if (res.success) { + this.appData = res.data + } else { + this.$message.warning(res.message) + } + }) + }, + /** + * 通过应用获取菜单 + */ + changeApplication (value) { + this.form.resetFields(`menuPid`, []) + getMenuTree({ 'application': value }).then((res) => { + if (res.success) { + this.menuTreeData = [{ + 'id': '-1', + 'parentId': '0', + 'title': '顶级', + 'value': '0', + 'pid': '0', + 'children': res.data + }] + } else { + this.$message.warning(res.message) + } + }) + }, /** * 获取字典数据 */ diff --git a/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/core/context/XnVelocityContext.java b/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/core/context/XnVelocityContext.java index e14e6200..b33fe6e8 100644 --- a/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/core/context/XnVelocityContext.java +++ b/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/core/context/XnVelocityContext.java @@ -86,6 +86,10 @@ public class XnVelocityContext { }); velocityContext.put("queryWhetherList", codeGenerateConfigList); + velocityContext.put("appCode", xnCodeGenParam.getAppCode()); + + velocityContext.put("menuPids", xnCodeGenParam.getMenuPids() + "[" + xnCodeGenParam.getMenuPid() + "],"); + // sql中id的创建 List idList = new ArrayList<>(); for (int a = 0; a <= 7; a++) { diff --git a/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/core/param/XnCodeGenParam.java b/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/core/param/XnCodeGenParam.java index 97270307..68a8c76f 100644 --- a/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/core/param/XnCodeGenParam.java +++ b/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/core/param/XnCodeGenParam.java @@ -93,4 +93,19 @@ public class XnCodeGenParam { */ private String busName; + /** + * 所属应用 + */ + private String appCode; + + /** + * 菜单上级 + */ + private String menuPid; + + /** + * 菜单上级父ids + */ + private String menuPids; + } diff --git a/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/modular/entity/CodeGenerate.java b/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/modular/entity/CodeGenerate.java index 8cf49084..4df8adb6 100644 --- a/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/modular/entity/CodeGenerate.java +++ b/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/modular/entity/CodeGenerate.java @@ -86,4 +86,15 @@ public class CodeGenerate extends BaseEntity { * 功能名(数据库表名称) */ private String tableComment; + + /** + * 所属应用 + */ + private String appCode; + + /** + * 菜单上级 + */ + private String menuPid; + } diff --git a/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/modular/param/CodeGenerateParam.java b/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/modular/param/CodeGenerateParam.java index c7538b26..802557d7 100644 --- a/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/modular/param/CodeGenerateParam.java +++ b/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/modular/param/CodeGenerateParam.java @@ -96,4 +96,16 @@ public class CodeGenerateParam extends BaseParam { @NotBlank(message = "功能名不能为空,请检查tableComment参数", groups = {BaseParam.add.class, edit.class}) private String tableComment; + /** + * 所属应用 + */ + @NotBlank(message = "所属应用不能为空,请检查appCode参数", groups = {BaseParam.add.class, edit.class}) + private String appCode; + + /** + * 菜单上级 + */ + @NotBlank(message = "菜单上级不能为空,请检查menuPid参数", groups = {BaseParam.add.class, edit.class}) + private String menuPid; + } diff --git a/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/modular/service/impl/CodeGenerateServiceImpl.java b/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/modular/service/impl/CodeGenerateServiceImpl.java index 636d5035..665d8f33 100644 --- a/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/modular/service/impl/CodeGenerateServiceImpl.java +++ b/snowy-base/snowy-gen/src/main/java/vip/xiaonuo/generate/modular/service/impl/CodeGenerateServiceImpl.java @@ -28,6 +28,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.baomidou.mybatisplus.extension.toolkit.SqlRunner; import org.apache.commons.io.IOUtils; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; @@ -57,6 +58,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.util.List; +import java.util.Map; import java.util.Properties; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -80,6 +82,8 @@ public class CodeGenerateServiceImpl extends ServiceImpl map = SqlRunner.db().selectOne(SELECT_SYS_MENU_SQL, codeGenerate.getMenuPid()); + param.setMenuPids(map.get("pids").toString()); return param; } diff --git a/snowy-base/snowy-gen/src/main/resources/template/XnMysql.sql.vm b/snowy-base/snowy-gen/src/main/resources/template/XnMysql.sql.vm index 2326ffbd..fd7779ca 100644 --- a/snowy-base/snowy-gen/src/main/resources/template/XnMysql.sql.vm +++ b/snowy-base/snowy-gen/src/main/resources/template/XnMysql.sql.vm @@ -4,35 +4,35 @@ #foreach ($id in $sqlMenuId) #if($foreach.count == 1) INSERT INTO `sys_menu` VALUES -('$id', '0', '[0],', '${functionName}', '${busName}_index', '1', null, '/${className}', 'main/${busName}/index', null, 'system_tool', '1', 'Y', null, null, '1', '100', null, '0', null, null, null, null); +('$id', '0', '${menuPids}', '${functionName}', '${busName}_index', '1', null, '/${className}', 'main/${busName}/index', null, '${appCode}', '1', 'Y', null, null, '1', '100', null, '0', null, null, null, null); #set ($pid=$id) #elseif($foreach.count == 2) INSERT INTO `sys_menu` VALUES -('$id', '$pid', '[0],[$pid],', '${functionName}查询', '${busName}_index_page', '2', null, null, null, '${className}:page', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); +('$id', '$pid', '${menuPids}[$pid],', '${functionName}查询', '${busName}_index_page', '2', null, null, null, '${className}:page', '${appCode}', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); #elseif($foreach.count == 3) INSERT INTO `sys_menu` VALUES -('$id', '$pid', '[0],[$pid],', '${functionName}新增', '${busName}_index_add', '2', null, null, null, '${className}:add', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); +('$id', '$pid', '${menuPids}[$pid],', '${functionName}新增', '${busName}_index_add', '2', null, null, null, '${className}:add', '${appCode}', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); #elseif($foreach.count == 4) INSERT INTO `sys_menu` VALUES -('$id', '$pid', '[0],[$pid],', '${functionName}编辑', '${busName}_index_edit', '2', null, null, null, '${className}:edit', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); +('$id', '$pid', '${menuPids}[$pid],', '${functionName}编辑', '${busName}_index_edit', '2', null, null, null, '${className}:edit', '${appCode}', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); #elseif($foreach.count == 5) INSERT INTO `sys_menu` VALUES -('$id', '$pid', '[0],[$pid],', '${functionName}删除', '${busName}_index_delete', '2', null, null, null, '${className}:delete', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); +('$id', '$pid', '${menuPids}[$pid],', '${functionName}删除', '${busName}_index_delete', '2', null, null, null, '${className}:delete', '${appCode}', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); #elseif($foreach.count == 6) INSERT INTO `sys_menu` VALUES -('$id', '$pid', '[0],[$pid],', '${functionName}查看', '${busName}_index_detail', '2', null, null, null, '${className}:detail', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); +('$id', '$pid', '${menuPids}[$pid],', '${functionName}查看', '${busName}_index_detail', '2', null, null, null, '${className}:detail', '${appCode}', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); #elseif($foreach.count == 7) INSERT INTO `sys_menu` VALUES -('$id', '$pid', '[0],[$pid],', '${functionName}列表', '${busName}_index_list', '2', null, null, null, '${className}:list', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); +('$id', '$pid', '${menuPids}[$pid],', '${functionName}列表', '${busName}_index_list', '2', null, null, null, '${className}:list', '${appCode}', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); #elseif($foreach.count == 8) INSERT INTO `sys_menu` VALUES -('$id', '$pid', '[0],[$pid],', '${functionName}导出', '${busName}_index_export', '2', null, null, null, '${className}:export', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); +('$id', '$pid', '${menuPids}[$pid],', '${functionName}导出', '${busName}_index_export', '2', null, null, null, '${className}:export', '${appCode}', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); #end #end \ No newline at end of file diff --git a/snowy-base/snowy-gen/src/main/resources/template/XnOracle.sql.vm b/snowy-base/snowy-gen/src/main/resources/template/XnOracle.sql.vm index 40b03a87..8f023577 100644 --- a/snowy-base/snowy-gen/src/main/resources/template/XnOracle.sql.vm +++ b/snowy-base/snowy-gen/src/main/resources/template/XnOracle.sql.vm @@ -4,35 +4,35 @@ #foreach ($id in $sqlMenuId) #if($foreach.count == 1) INSERT INTO "sys_menu" VALUES -("$id", "0", "[0],", "${functionName}", "${busName}_index", "1", null, "/${className}", "main/${busName}/index", null, "system_tool", "1", "Y", null, null, "1", "100", null, "0", null, null, null, null); +("$id", "0", "${menuPids}", "${functionName}", "${busName}_index", "1", null, "/${className}", "main/${busName}/index", null, "${appCode}", "1", "Y", null, null, "1", "100", null, "0", null, null, null, null); #set ($pid=$id) #elseif($foreach.count == 2) INSERT INTO `sys_menu` VALUES -("$id", "$pid", "[0],[$pid],", "${functionName}查询", "${busName}_index_page", "2", null, null, null, "${className}:page", "system_tool", "0", "Y", null, null, "1", "100", null, "0", null, null, null, null); +("$id", "$pid", "${menuPids}[$pid],", "${functionName}查询", "${busName}_index_page", "2", null, null, null, "${className}:page", "${appCode}", "0", "Y", null, null, "1", "100", null, "0", null, null, null, null); #elseif($foreach.count == 3) INSERT INTO `sys_menu` VALUES -("$id", "$pid", "[0],[$pid],", "${functionName}新增", "${busName}_index_add", "2", null, null, null, "${className}:add", "system_tool", "0", "Y", null, null, "1", "100", null, "0", null, null, null, null); +("$id", "$pid", "${menuPids}[$pid],", "${functionName}新增", "${busName}_index_add", "2", null, null, null, "${className}:add", "${appCode}", "0", "Y", null, null, "1", "100", null, "0", null, null, null, null); #elseif($foreach.count == 4) INSERT INTO `sys_menu` VALUES -("$id", "$pid", "[0],[$pid],", "${functionName}编辑", "${busName}_index_edit", "2", null, null, null, "${className}:edit", "system_tool", "0", "Y", null, null, "1", "100", null, "0", null, null, null, null); +("$id", "$pid", "${menuPids}[$pid],", "${functionName}编辑", "${busName}_index_edit", "2", null, null, null, "${className}:edit", "${appCode}", "0", "Y", null, null, "1", "100", null, "0", null, null, null, null); #elseif($foreach.count == 5) INSERT INTO `sys_menu` VALUES -("$id", "$pid", "[0],[$pid],", "${functionName}删除", "${busName}_index_delete", "2", null, null, null, "${className}:delete", "system_tool", "0", "Y", null, null, "1", "100", null, "0", null, null, null, null); +("$id", "$pid", "${menuPids}[$pid],", "${functionName}删除", "${busName}_index_delete", "2", null, null, null, "${className}:delete", "${appCode}", "0", "Y", null, null, "1", "100", null, "0", null, null, null, null); #elseif($foreach.count == 6) INSERT INTO `sys_menu` VALUES -("$id", "$pid", "[0],[$pid],", "${functionName}查看", "${busName}_index_detail", "2", null, null, null, "${className}:detail", "system_tool", "0", "Y", null, null, "1", "100", null, "0", null, null, null, null); +("$id", "$pid", "${menuPids}[$pid],", "${functionName}查看", "${busName}_index_detail", "2", null, null, null, "${className}:detail", "${appCode}", "0", "Y", null, null, "1", "100", null, "0", null, null, null, null); #elseif($foreach.count == 7) INSERT INTO "sys_menu" VALUES -("$id", "$pid", "[0],[$pid],", "${functionName}列表", "${busName}_index_list", "2", null, null, null, "${className}:list", "system_tool", "0", "Y", null, null, "1", "100", null, "0", null, null, null, null); +("$id", "$pid", "${menuPids}[$pid],", "${functionName}列表", "${busName}_index_list", "2", null, null, null, "${className}:list", "${appCode}", "0", "Y", null, null, "1", "100", null, "0", null, null, null, null); #elseif($foreach.count == 7) INSERT INTO "sys_menu" VALUES -("$id", "$pid", "[0],[$pid],", "${functionName}导出", "${busName}_index_export", "2", null, null, null, "${className}:export", "system_tool", "0", "Y", null, null, "1", "100", null, "0", null, null, null, null); +("$id", "$pid", "${menuPids}[$pid],", "${functionName}导出", "${busName}_index_export", "2", null, null, null, "${className}:export", "${appCode}", "0", "Y", null, null, "1", "100", null, "0", null, null, null, null); #end #end