From d0e9e07e9ca4ef40ac20b12a4410129adb025588 Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: Thu, 30 Nov 2023 09:46:27 +0800
Subject: [PATCH] 代码生成支持选择前端模板类型
---
ruoyi-ui/src/views/tool/gen/genInfoForm.vue | 41 +++++++++++++-------
/dev/null | 1
ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java | 6 +-
ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTable.java | 13 ++++++
sql/ry_20231130.sql | 1
ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/VelocityUtils.java | 16 +++++--
ruoyi-modules/ruoyi-gen/src/main/resources/mapper/generator/GenTableMapper.xml | 12 ++++--
7 files changed, 63 insertions(+), 27 deletions(-)
diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTable.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTable.java
index d08b732..eedcacb 100644
--- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTable.java
+++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTable.java
@@ -41,6 +41,9 @@
/** 使用的模板(crud单表操作 tree树表操作 sub主子表操作) */
private String tplCategory;
+ /** 前端类型(element-ui模版 element-plus模版) */
+ private String tplWebType;
+
/** 生成包路径 */
@NotBlank(message = "生成包路径不能为空")
private String packageName;
@@ -165,6 +168,16 @@
this.tplCategory = tplCategory;
}
+ public String getTplWebType()
+ {
+ return tplWebType;
+ }
+
+ public void setTplWebType(String tplWebType)
+ {
+ this.tplWebType = tplWebType;
+ }
+
public String getPackageName()
{
return packageName;
diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java
index 861c68c..e24da1b 100644
--- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java
+++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java
@@ -206,7 +206,7 @@
VelocityContext context = VelocityUtils.prepareContext(table);
// 获取模板列表
- List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory());
+ List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory(), table.getTplWebType());
for (String template : templates)
{
// 渲染模板
@@ -254,7 +254,7 @@
VelocityContext context = VelocityUtils.prepareContext(table);
// 获取模板列表
- List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory());
+ List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory(), table.getTplWebType());
for (String template : templates)
{
if (!StringUtils.containsAny(template, "sql.vm", "api.js.vm", "index.vue.vm", "index-tree.vue.vm"))
@@ -367,7 +367,7 @@
VelocityContext context = VelocityUtils.prepareContext(table);
// 获取模板列表
- List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory());
+ List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory(), table.getTplWebType());
for (String template : templates)
{
// 渲染模板
diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/VelocityUtils.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/VelocityUtils.java
index dcf54a9..2c8dcb1 100644
--- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/VelocityUtils.java
+++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/VelocityUtils.java
@@ -123,11 +123,17 @@
/**
* 获取模板信息
- *
+ * @param tplCategory 生成的模板
+ * @param tplWebType 前端类型
* @return 模板列表
*/
- public static List<String> getTemplateList(String tplCategory)
+ public static List<String> getTemplateList(String tplCategory, String tplWebType)
{
+ String useWebType = "vm/vue";
+ if ("element-plus".equals(tplWebType))
+ {
+ useWebType = "vm/vue/v3";
+ }
List<String> templates = new ArrayList<String>();
templates.add("vm/java/domain.java.vm");
templates.add("vm/java/mapper.java.vm");
@@ -139,15 +145,15 @@
templates.add("vm/js/api.js.vm");
if (GenConstants.TPL_CRUD.equals(tplCategory))
{
- templates.add("vm/vue/index.vue.vm");
+ templates.add(useWebType + "/index.vue.vm");
}
else if (GenConstants.TPL_TREE.equals(tplCategory))
{
- templates.add("vm/vue/index-tree.vue.vm");
+ templates.add(useWebType + "/index-tree.vue.vm");
}
else if (GenConstants.TPL_SUB.equals(tplCategory))
{
- templates.add("vm/vue/index.vue.vm");
+ templates.add(useWebType + "/index.vue.vm");
templates.add("vm/java/sub-domain.java.vm");
}
return templates;
diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/mapper/generator/GenTableMapper.xml b/ruoyi-modules/ruoyi-gen/src/main/resources/mapper/generator/GenTableMapper.xml
index f93a32b..69ac405 100644
--- a/ruoyi-modules/ruoyi-gen/src/main/resources/mapper/generator/GenTableMapper.xml
+++ b/ruoyi-modules/ruoyi-gen/src/main/resources/mapper/generator/GenTableMapper.xml
@@ -12,6 +12,7 @@
<result property="subTableFkName" column="sub_table_fk_name" />
<result property="className" column="class_name" />
<result property="tplCategory" column="tpl_category" />
+ <result property="tplWebType" column="tpl_web_type" />
<result property="packageName" column="package_name" />
<result property="moduleName" column="module_name" />
<result property="businessName" column="business_name" />
@@ -54,7 +55,7 @@
</resultMap>
<sql id="selectGenTableVo">
- select table_id, table_name, table_comment, sub_table_name, sub_table_fk_name, class_name, tpl_category, package_name, module_name, business_name, function_name, function_author, gen_type, gen_path, options, create_by, create_time, update_by, update_time, remark from gen_table
+ select table_id, table_name, table_comment, sub_table_name, sub_table_fk_name, class_name, tpl_category, tpl_web_type, package_name, module_name, business_name, function_name, function_author, gen_type, gen_path, options, create_by, create_time, update_by, update_time, remark from gen_table
</sql>
<select id="selectGenTableList" parameterType="GenTable" resultMap="GenTableResult">
@@ -111,7 +112,7 @@
</select>
<select id="selectGenTableById" parameterType="Long" resultMap="GenTableResult">
- SELECT t.table_id, t.table_name, t.table_comment, t.sub_table_name, t.sub_table_fk_name, t.class_name, t.tpl_category, t.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.gen_type, t.gen_path, t.options, t.remark,
+ SELECT t.table_id, t.table_name, t.table_comment, t.sub_table_name, t.sub_table_fk_name, t.class_name, t.tpl_category, t.tpl_web_type, t.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.gen_type, t.gen_path, t.options, t.remark,
c.column_id, c.column_name, c.column_comment, c.column_type, c.java_type, c.java_field, c.is_pk, c.is_increment, c.is_required, c.is_insert, c.is_edit, c.is_list, c.is_query, c.query_type, c.html_type, c.dict_type, c.sort
FROM gen_table t
LEFT JOIN gen_table_column c ON t.table_id = c.table_id
@@ -119,7 +120,7 @@
</select>
<select id="selectGenTableByName" parameterType="String" resultMap="GenTableResult">
- SELECT t.table_id, t.table_name, t.table_comment, t.sub_table_name, t.sub_table_fk_name, t.class_name, t.tpl_category, t.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.gen_type, t.gen_path, t.options, t.remark,
+ SELECT t.table_id, t.table_name, t.table_comment, t.sub_table_name, t.sub_table_fk_name, t.class_name, t.tpl_category, t.tpl_web_type, t.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.gen_type, t.gen_path, t.options, t.remark,
c.column_id, c.column_name, c.column_comment, c.column_type, c.java_type, c.java_field, c.is_pk, c.is_increment, c.is_required, c.is_insert, c.is_edit, c.is_list, c.is_query, c.query_type, c.html_type, c.dict_type, c.sort
FROM gen_table t
LEFT JOIN gen_table_column c ON t.table_id = c.table_id
@@ -127,7 +128,7 @@
</select>
<select id="selectGenTableAll" parameterType="String" resultMap="GenTableResult">
- SELECT t.table_id, t.table_name, t.table_comment, t.sub_table_name, t.sub_table_fk_name, t.class_name, t.tpl_category, t.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.options, t.remark,
+ SELECT t.table_id, t.table_name, t.table_comment, t.sub_table_name, t.sub_table_fk_name, t.class_name, t.tpl_category, t.tpl_web_type, t.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.options, t.remark,
c.column_id, c.column_name, c.column_comment, c.column_type, c.java_type, c.java_field, c.is_pk, c.is_increment, c.is_required, c.is_insert, c.is_edit, c.is_list, c.is_query, c.query_type, c.html_type, c.dict_type, c.sort
FROM gen_table t
LEFT JOIN gen_table_column c ON t.table_id = c.table_id
@@ -140,6 +141,7 @@
<if test="tableComment != null and tableComment != ''">table_comment,</if>
<if test="className != null and className != ''">class_name,</if>
<if test="tplCategory != null and tplCategory != ''">tpl_category,</if>
+ <if test="tplWebType != null and tplWebType != ''">tpl_web_type,</if>
<if test="packageName != null and packageName != ''">package_name,</if>
<if test="moduleName != null and moduleName != ''">module_name,</if>
<if test="businessName != null and businessName != ''">business_name,</if>
@@ -155,6 +157,7 @@
<if test="tableComment != null and tableComment != ''">#{tableComment},</if>
<if test="className != null and className != ''">#{className},</if>
<if test="tplCategory != null and tplCategory != ''">#{tplCategory},</if>
+ <if test="tplWebType != null and tplWebType != ''">#{tplWebType},</if>
<if test="packageName != null and packageName != ''">#{packageName},</if>
<if test="moduleName != null and moduleName != ''">#{moduleName},</if>
<if test="businessName != null and businessName != ''">#{businessName},</if>
@@ -180,6 +183,7 @@
<if test="genType != null and genType != ''">gen_type = #{genType},</if>
<if test="genPath != null and genPath != ''">gen_path = #{genPath},</if>
<if test="tplCategory != null and tplCategory != ''">tpl_category = #{tplCategory},</if>
+ <if test="tplWebType != null and tplWebType != ''">tpl_web_type = #{tplWebType},</if>
<if test="packageName != null and packageName != ''">package_name = #{packageName},</if>
<if test="moduleName != null and moduleName != ''">module_name = #{moduleName},</if>
<if test="businessName != null and businessName != ''">business_name = #{businessName},</if>
diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/readme.txt b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/readme.txt
deleted file mode 100644
index 10362d6..0000000
--- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-���ʹ�õ���RuoYi-Cloud-Vue3ǰ�ˣ���ô��Ҫ����һ�´�Ŀ¼��ģ��index.vue.vm��index-tree.vue.vm�ļ����ϼ�vueĿ¼��
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/tool/gen/genInfoForm.vue b/ruoyi-ui/src/views/tool/gen/genInfoForm.vue
index bf6382d..a15e073 100644
--- a/ruoyi-ui/src/views/tool/gen/genInfoForm.vue
+++ b/ruoyi-ui/src/views/tool/gen/genInfoForm.vue
@@ -12,6 +12,15 @@
</el-form-item>
</el-col>
<el-col :span="12">
+ <el-form-item prop="tplWebType">
+ <span slot="label">前端类型</span>
+ <el-select v-model="info.tplWebType">
+ <el-option label="Vue2 Element UI 模版" value="element-ui" />
+ <el-option label="Vue3 Element Plus 模版" value="element-plus" />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
<el-form-item prop="packageName">
<span slot="label">
生成包路径
@@ -60,6 +69,19 @@
</el-col>
<el-col :span="12">
+ <el-form-item prop="genType">
+ <span slot="label">
+ 生成代码方式
+ <el-tooltip content="默认为zip压缩包下载,也可以自定义生成路径" placement="top">
+ <i class="el-icon-question"></i>
+ </el-tooltip>
+ </span>
+ <el-radio v-model="info.genType" label="0">zip压缩包</el-radio>
+ <el-radio v-model="info.genType" label="1">自定义路径</el-radio>
+ </el-form-item>
+ </el-col>
+
+ <el-col :span="12">
<el-form-item>
<span slot="label">
上级菜单
@@ -75,19 +97,6 @@
:show-count="true"
placeholder="请选择系统菜单"
/>
- </el-form-item>
- </el-col>
-
- <el-col :span="12">
- <el-form-item prop="genType">
- <span slot="label">
- 生成代码方式
- <el-tooltip content="默认为zip压缩包下载,也可以自定义生成路径" placement="top">
- <i class="el-icon-question"></i>
- </el-tooltip>
- </span>
- <el-radio v-model="info.genType" label="0">zip压缩包</el-radio>
- <el-radio v-model="info.genType" label="1">自定义路径</el-radio>
</el-form-item>
</el-col>
@@ -255,10 +264,14 @@
}
};
},
- created() {},
watch: {
'info.subTableName': function(val) {
this.setSubTableColumns(val);
+ },
+ 'info.tplWebType': function(val) {
+ if (val === '') {
+ this.info.tplWebType = "element-ui";
+ }
}
},
methods: {
diff --git a/sql/ry_20230706.sql b/sql/ry_20231130.sql
similarity index 99%
rename from sql/ry_20230706.sql
rename to sql/ry_20231130.sql
index 46d1cbe..516363c 100644
--- a/sql/ry_20230706.sql
+++ b/sql/ry_20231130.sql
@@ -647,6 +647,7 @@
sub_table_fk_name varchar(64) default null comment '子表关联的外键名',
class_name varchar(100) default '' comment '实体类名称',
tpl_category varchar(200) default 'crud' comment '使用的模板(crud单表操作 tree树表操作)',
+ tpl_web_type varchar(30) default '' comment '前端模板类型(element-ui模版 element-plus模版)',
package_name varchar(100) comment '生成包路径',
module_name varchar(30) comment '生成模块名',
business_name varchar(30) comment '生成业务名',
--
Gitblit v1.9.3