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