From 86cb7555ebfd6c3e03aeeaf310df7523abcff8ce Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: Thu, 02 Apr 2026 11:08:38 +0800
Subject: [PATCH] 代码生成支持表单布局选项
---
ruoyi-ui/src/views/tool/gen/genInfoForm.vue | 16
ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index.vue.vm | 192 +++++----
ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm | 201 +++++----
ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm | 183 +++++---
docker/copy.sh | 2
ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/domain/GenTable.java | 13
ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm | 175 +++++---
ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3ts/index.vue.vm | 175 +++++---
ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/VelocityUtils.java | 20 +
ruoyi-modules/ruoyi-gen/src/main/resources/mapper/generator/GenTableMapper.xml | 12
ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3ts/index-tree.vue.vm | 197 +++++----
sql/ry_20260402.sql | 1
12 files changed, 722 insertions(+), 465 deletions(-)
diff --git a/docker/copy.sh b/docker/copy.sh
index 3ab33f2..bbba009 100644
--- a/docker/copy.sh
+++ b/docker/copy.sh
@@ -9,7 +9,7 @@
# copy sql
echo "begin copy sql "
-cp ../sql/ry_20260321.sql ./mysql/db
+cp ../sql/ry_20260402.sql ./mysql/db
cp ../sql/ry_config_20260311.sql ./mysql/db
# copy html
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 5f42880..f682cfa 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
@@ -64,6 +64,9 @@
@NotBlank(message = "作者不能为空")
private String functionAuthor;
+ /** 表单布局(单列 双列 三列) */
+ private Integer formColNum;
+
/** 生成代码方式(0zip压缩包 1自定义路径) */
private String genType;
@@ -228,6 +231,16 @@
this.functionAuthor = functionAuthor;
}
+ public Integer getFormColNum()
+ {
+ return formColNum;
+ }
+
+ public void setFormColNum(Integer formColNum)
+ {
+ this.formColNum = formColNum;
+ }
+
public String getGenType()
{
return genType;
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 5741227..132af1c 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
@@ -60,6 +60,7 @@
velocityContext.put("basePackage", getPackagePrefix(packageName));
velocityContext.put("packageName", packageName);
velocityContext.put("author", genTable.getFunctionAuthor());
+ velocityContext.put("colSpan", getColSpan(genTable.getFormColNum()));
velocityContext.put("datetime", DateUtils.getDate());
velocityContext.put("pkColumn", genTable.getPkColumn());
velocityContext.put("importList", getImportList(genTable));
@@ -434,4 +435,23 @@
}
return num;
}
+
+ /**
+ * 获取表单 el-col span
+ *
+ * @param formColNum 表单布局方式(1单列 2双列 3三列)
+ * @return span 数值字符串
+ */
+ public static String getColSpan(int formColNum)
+ {
+ if (formColNum == 2)
+ {
+ return "12";
+ }
+ else if (formColNum == 3)
+ {
+ return "8";
+ }
+ return "24";
+ }
}
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 185530e..cdbad9f 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
@@ -18,6 +18,7 @@
<result property="businessName" column="business_name" />
<result property="functionName" column="function_name" />
<result property="functionAuthor" column="function_author" />
+ <result property="formColNum" column="form_col_num" />
<result property="genType" column="gen_type" />
<result property="genPath" column="gen_path" />
<result property="options" column="options" />
@@ -55,7 +56,7 @@
</resultMap>
<sql id="selectGenTableVo">
- 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
+ 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, form_col_num, 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">
@@ -112,7 +113,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.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,
+ 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.form_col_num, 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
@@ -120,7 +121,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.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,
+ 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.form_col_num, 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
@@ -128,7 +129,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.tpl_web_type, 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.form_col_num, 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
@@ -147,6 +148,7 @@
<if test="businessName != null and businessName != ''">business_name,</if>
<if test="functionName != null and functionName != ''">function_name,</if>
<if test="functionAuthor != null and functionAuthor != ''">function_author,</if>
+ <if test="formColNum != null">form_col_num,</if>
<if test="genType != null and genType != ''">gen_type,</if>
<if test="genPath != null and genPath != ''">gen_path,</if>
<if test="remark != null and remark != ''">remark,</if>
@@ -163,6 +165,7 @@
<if test="businessName != null and businessName != ''">#{businessName},</if>
<if test="functionName != null and functionName != ''">#{functionName},</if>
<if test="functionAuthor != null and functionAuthor != ''">#{functionAuthor},</if>
+ <if test="formColNum != null">#{formColNum},</if>
<if test="genType != null and genType != ''">#{genType},</if>
<if test="genPath != null and genPath != ''">#{genPath},</if>
<if test="remark != null and remark != ''">#{remark},</if>
@@ -180,6 +183,7 @@
<if test="subTableFkName != null">sub_table_fk_name = #{subTableFkName},</if>
<if test="className != null and className != ''">class_name = #{className},</if>
<if test="functionAuthor != null and functionAuthor != ''">function_author = #{functionAuthor},</if>
+ <if test="formColNum != null">form_col_num = #{formColNum},</if>
<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>
diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm
index 2bd9289..9cd31a4 100644
--- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm
+++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm
@@ -165,8 +165,16 @@
</el-table>
<!-- 添加或修改${functionName}对话框 -->
- <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
- <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+#if($table.formColNum == 2)
+#set($dialogWidth = "800px")
+#elseif($table.formColNum == 3)
+#set($dialogWidth = "1100px")
+#else
+#set($dialogWidth = "500px")
+#end
+ <el-dialog :title="title" :visible.sync="open" width="${dialogWidth}" append-to-body>
+ <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+ <el-row>
#foreach($column in $columns)
#set($field=$column.javaField)
#if($column.insert && !$column.pk)
@@ -179,100 +187,127 @@
#end
#set($dictType=$column.dictType)
#if("" != $treeParentCode && $column.javaField == $treeParentCode)
- <el-form-item label="${comment}" prop="${treeParentCode}">
- <treeselect v-model="form.${treeParentCode}" :options="${businessName}Options" :normalizer="normalizer" placeholder="请选择${comment}" />
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${treeParentCode}">
+ <treeselect v-model="form.${treeParentCode}" :options="${businessName}Options" :normalizer="normalizer" placeholder="请选择${comment}" />
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "input")
- <el-form-item label="${comment}" prop="${field}">
- <el-input v-model="form.${field}" placeholder="请输入${comment}" />
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-input v-model="form.${field}" placeholder="请输入${comment}" />
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "imageUpload")
- <el-form-item label="${comment}" prop="${field}">
- <image-upload v-model="form.${field}"/>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <image-upload v-model="form.${field}"/>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "fileUpload")
- <el-form-item label="${comment}" prop="${field}">
- <file-upload v-model="form.${field}"/>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <file-upload v-model="form.${field}"/>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "editor")
- <el-form-item label="${comment}">
- <editor v-model="form.${field}" :min-height="192"/>
- </el-form-item>
+ <el-col :span="24">
+ <el-form-item label="${comment}">
+ <editor v-model="form.${field}" :min-height="192"/>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "select" && "" != $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-select v-model="form.${field}" placeholder="请选择${comment}">
- <el-option
- v-for="dict in dict.type.${dictType}"
- :key="dict.value"
- :label="dict.label"
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-select v-model="form.${field}" placeholder="请选择${comment}">
+ <el-option
+ v-for="dict in dict.type.${dictType}"
+ :key="dict.value"
+ :label="dict.label"
#if($column.javaType == "Integer" || $column.javaType == "Long")
- :value="parseInt(dict.value)"
+ :value="parseInt(dict.value)"
#else
- :value="dict.value"
+ :value="dict.value"
#end
- ></el-option>
- </el-select>
- </el-form-item>
+ ></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "select" && $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-select v-model="form.${field}" placeholder="请选择${comment}">
- <el-option label="请选择字典生成" value="" />
- </el-select>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-select v-model="form.${field}" placeholder="请选择${comment}">
+ <el-option label="请选择字典生成" value="" />
+ </el-select>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "checkbox" && "" != $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-checkbox-group v-model="form.${field}">
- <el-checkbox
- v-for="dict in dict.type.${dictType}"
- :key="dict.value"
- :label="dict.value">
- {{dict.label}}
- </el-checkbox>
- </el-checkbox-group>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-checkbox-group v-model="form.${field}">
+ <el-checkbox
+ v-for="dict in dict.type.${dictType}"
+ :key="dict.value"
+ :label="dict.value">
+ {{dict.label}}
+ </el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "checkbox" && $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-checkbox-group v-model="form.${field}">
- <el-checkbox>请选择字典生成</el-checkbox>
- </el-checkbox-group>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-checkbox-group v-model="form.${field}">
+ <el-checkbox>请选择字典生成</el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "radio" && "" != $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-radio-group v-model="form.${field}">
- <el-radio
- v-for="dict in dict.type.${dictType}"
- :key="dict.value"
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-radio-group v-model="form.${field}">
+ <el-radio
+ v-for="dict in dict.type.${dictType}"
+ :key="dict.value"
#if($column.javaType == "Integer" || $column.javaType == "Long")
- :label="parseInt(dict.value)"
+ :label="parseInt(dict.value)"
#else
- :label="dict.value"
+ :label="dict.value"
#end
- >{{dict.label}}</el-radio>
- </el-radio-group>
- </el-form-item>
+ >{{dict.label}}</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "radio" && $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-radio-group v-model="form.${field}">
- <el-radio label="1">请选择字典生成</el-radio>
- </el-radio-group>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-radio-group v-model="form.${field}">
+ <el-radio label="1">请选择字典生成</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "datetime")
- <el-form-item label="${comment}" prop="${field}">
- <el-date-picker clearable
- v-model="form.${field}"
- type="date"
- value-format="yyyy-MM-dd"
- placeholder="选择${comment}">
- </el-date-picker>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-date-picker clearable
+ v-model="form.${field}"
+ type="date"
+ value-format="yyyy-MM-dd"
+ placeholder="选择${comment}">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "textarea")
- <el-form-item label="${comment}" prop="${field}">
- <el-input v-model="form.${field}" type="textarea" placeholder="请输入内容" />
- </el-form-item>
+ <el-col :span="24">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-input v-model="form.${field}" type="textarea" placeholder="请输入内容" />
+ </el-form-item>
+ </el-col>
#end
#end
#end
#end
+ </el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm
index 7253266..fcae738 100644
--- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm
+++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm
@@ -180,8 +180,16 @@
/>
<!-- 添加或修改${functionName}对话框 -->
- <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
- <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+#if($table.formColNum == 2)
+#set($dialogWidth = "800px")
+#elseif($table.formColNum == 3)
+#set($dialogWidth = "1100px")
+#else
+#set($dialogWidth = "500px")
+#end
+ <el-dialog :title="title" :visible.sync="open" width="${dialogWidth}" append-to-body>
+ <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+ <el-row>
#foreach($column in $columns)
#set($field=$column.javaField)
#if($column.insert && !$column.pk)
@@ -194,96 +202,121 @@
#end
#set($dictType=$column.dictType)
#if($column.htmlType == "input")
- <el-form-item label="${comment}" prop="${field}">
- <el-input v-model="form.${field}" placeholder="请输入${comment}" />
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-input v-model="form.${field}" placeholder="请输入${comment}" />
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "imageUpload")
- <el-form-item label="${comment}" prop="${field}">
- <image-upload v-model="form.${field}"/>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <image-upload v-model="form.${field}"/>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "fileUpload")
- <el-form-item label="${comment}" prop="${field}">
- <file-upload v-model="form.${field}"/>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <file-upload v-model="form.${field}"/>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "editor")
- <el-form-item label="${comment}">
- <editor v-model="form.${field}" :min-height="192"/>
- </el-form-item>
+ <el-col :span="24">
+ <el-form-item label="${comment}">
+ <editor v-model="form.${field}" :min-height="192"/>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "select" && "" != $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-select v-model="form.${field}" placeholder="请选择${comment}">
- <el-option
- v-for="dict in dict.type.${dictType}"
- :key="dict.value"
- :label="dict.label"
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-select v-model="form.${field}" placeholder="请选择${comment}">
+ <el-option
+ v-for="dict in dict.type.${dictType}"
+ :key="dict.value"
+ :label="dict.label"
#if($column.javaType == "Integer" || $column.javaType == "Long")
- :value="parseInt(dict.value)"
+ :value="parseInt(dict.value)"
#else
- :value="dict.value"
+ :value="dict.value"
#end
- ></el-option>
- </el-select>
- </el-form-item>
+ ></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "select" && $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-select v-model="form.${field}" placeholder="请选择${comment}">
- <el-option label="请选择字典生成" value="" />
- </el-select>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-select v-model="form.${field}" placeholder="请选择${comment}">
+ <el-option label="请选择字典生成" value="" />
+ </el-select>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "checkbox" && "" != $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-checkbox-group v-model="form.${field}">
- <el-checkbox
- v-for="dict in dict.type.${dictType}"
- :key="dict.value"
- :label="dict.value">
- {{dict.label}}
- </el-checkbox>
- </el-checkbox-group>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-checkbox-group v-model="form.${field}">
+ <el-checkbox
+ v-for="dict in dict.type.${dictType}"
+ :key="dict.value"
+ :label="dict.value">
+ {{dict.label}}
+ </el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "checkbox" && $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-checkbox-group v-model="form.${field}">
- <el-checkbox>请选择字典生成</el-checkbox>
- </el-checkbox-group>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-checkbox-group v-model="form.${field}">
+ <el-checkbox>请选择字典生成</el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "radio" && "" != $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-radio-group v-model="form.${field}">
- <el-radio
- v-for="dict in dict.type.${dictType}"
- :key="dict.value"
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-radio-group v-model="form.${field}">
+ <el-radio
+ v-for="dict in dict.type.${dictType}"
+ :key="dict.value"
#if($column.javaType == "Integer" || $column.javaType == "Long")
- :label="parseInt(dict.value)"
+ :label="parseInt(dict.value)"
#else
- :label="dict.value"
+ :label="dict.value"
#end
- >{{dict.label}}</el-radio>
- </el-radio-group>
- </el-form-item>
+ >{{dict.label}}</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "radio" && $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-radio-group v-model="form.${field}">
- <el-radio label="1">请选择字典生成</el-radio>
- </el-radio-group>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-radio-group v-model="form.${field}">
+ <el-radio label="1">请选择字典生成</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "datetime")
- <el-form-item label="${comment}" prop="${field}">
- <el-date-picker clearable
- v-model="form.${field}"
- type="date"
- value-format="yyyy-MM-dd"
- placeholder="请选择${comment}">
- </el-date-picker>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-date-picker clearable
+ v-model="form.${field}"
+ type="date"
+ value-format="yyyy-MM-dd"
+ placeholder="请选择${comment}">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "textarea")
- <el-form-item label="${comment}" prop="${field}">
- <el-input v-model="form.${field}" type="textarea" placeholder="请输入内容" />
- </el-form-item>
+ <el-col :span="24">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-input v-model="form.${field}" type="textarea" placeholder="请输入内容" />
+ </el-form-item>
+ </el-col>
#end
#end
#end
#end
+ </el-row>
#if($table.sub)
<el-divider content-position="center">${subTable.functionName}信息</el-divider>
<el-row :gutter="10" class="mb8">
diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm
index fabd921..5290236 100644
--- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm
+++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index-tree.vue.vm
@@ -144,8 +144,16 @@
</el-table>
<!-- 添加或修改${functionName}对话框 -->
- <el-dialog :title="title" v-model="open" width="500px" append-to-body>
- <el-form ref="${businessName}Ref" :model="form" :rules="rules" label-width="80px">
+#if($table.formColNum == 2)
+#set($dialogWidth = "800px")
+#elseif($table.formColNum == 3)
+#set($dialogWidth = "1100px")
+#else
+#set($dialogWidth = "500px")
+#end
+ <el-dialog :title="title" v-model="open" width="${dialogWidth}" append-to-body>
+ <el-form ref="${businessName}Ref" :model="form" :rules="rules" label-width="100px">
+ <el-row>
#foreach($column in $columns)
#set($field=$column.javaField)
#if($column.insert && !$column.pk)
@@ -158,107 +166,134 @@
#end
#set($dictType=$column.dictType)
#if("" != $treeParentCode && $column.javaField == $treeParentCode)
- <el-form-item label="${comment}" prop="${treeParentCode}">
- <el-tree-select
- v-model="form.${treeParentCode}"
- :data="${businessName}Options"
- :props="{ value: '${treeCode}', label: '${treeName}', children: 'children' }"
- value-key="${treeCode}"
- placeholder="请选择${comment}"
- check-strictly
- />
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${treeParentCode}">
+ <el-tree-select
+ v-model="form.${treeParentCode}"
+ :data="${businessName}Options"
+ :props="{ value: '${treeCode}', label: '${treeName}', children: 'children' }"
+ value-key="${treeCode}"
+ placeholder="请选择${comment}"
+ check-strictly
+ />
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "input")
- <el-form-item label="${comment}" prop="${field}">
- <el-input v-model="form.${field}" placeholder="请输入${comment}" />
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-input v-model="form.${field}" placeholder="请输入${comment}" />
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "imageUpload")
- <el-form-item label="${comment}" prop="${field}">
- <image-upload v-model="form.${field}"/>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <image-upload v-model="form.${field}"/>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "fileUpload")
- <el-form-item label="${comment}" prop="${field}">
- <file-upload v-model="form.${field}"/>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <file-upload v-model="form.${field}"/>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "editor")
- <el-form-item label="${comment}">
- <editor v-model="form.${field}" :min-height="192"/>
- </el-form-item>
+ <el-col :span="24">
+ <el-form-item label="${comment}">
+ <editor v-model="form.${field}" :min-height="192"/>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "select" && "" != $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-select v-model="form.${field}" placeholder="请选择${comment}">
- <el-option
- v-for="dict in ${dictType}"
- :key="dict.value"
- :label="dict.label"
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-select v-model="form.${field}" placeholder="请选择${comment}">
+ <el-option
+ v-for="dict in ${dictType}"
+ :key="dict.value"
+ :label="dict.label"
#if($column.javaType == "Integer" || $column.javaType == "Long")
- :value="parseInt(dict.value)"
+ :value="parseInt(dict.value)"
#else
- :value="dict.value"
+ :value="dict.value"
#end
- ></el-option>
- </el-select>
- </el-form-item>
+ ></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "select" && $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-select v-model="form.${field}" placeholder="请选择${comment}">
- <el-option label="请选择字典生成" value="" />
- </el-select>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-select v-model="form.${field}" placeholder="请选择${comment}">
+ <el-option label="请选择字典生成" value="" />
+ </el-select>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "checkbox" && "" != $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-checkbox-group v-model="form.${field}">
- <el-checkbox
- v-for="dict in ${dictType}"
- :key="dict.value"
- :label="dict.value">
- {{dict.label}}
- </el-checkbox>
- </el-checkbox-group>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-checkbox-group v-model="form.${field}">
+ <el-checkbox
+ v-for="dict in ${dictType}"
+ :key="dict.value"
+ :label="dict.value">
+ {{dict.label}}
+ </el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "checkbox" && $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-checkbox-group v-model="form.${field}">
- <el-checkbox>请选择字典生成</el-checkbox>
- </el-checkbox-group>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-checkbox-group v-model="form.${field}">
+ <el-checkbox>请选择字典生成</el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "radio" && "" != $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-radio-group v-model="form.${field}">
- <el-radio
- v-for="dict in ${dictType}"
- :key="dict.value"
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-radio-group v-model="form.${field}">
+ <el-radio
+ v-for="dict in ${dictType}"
+ :key="dict.value"
#if($column.javaType == "Integer" || $column.javaType == "Long")
- :label="parseInt(dict.value)"
+ :label="parseInt(dict.value)"
#else
- :label="dict.value"
+ :label="dict.value"
#end
- >{{dict.label}}</el-radio>
- </el-radio-group>
- </el-form-item>
+ >{{dict.label}}</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "radio" && $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-radio-group v-model="form.${field}">
- <el-radio label="1">请选择字典生成</el-radio>
- </el-radio-group>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-radio-group v-model="form.${field}">
+ <el-radio label="1">请选择字典生成</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "datetime")
- <el-form-item label="${comment}" prop="${field}">
- <el-date-picker clearable
- v-model="form.${field}"
- type="date"
- value-format="YYYY-MM-DD"
- placeholder="选择${comment}">
- </el-date-picker>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-date-picker clearable
+ v-model="form.${field}"
+ type="date"
+ value-format="YYYY-MM-DD"
+ placeholder="选择${comment}">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "textarea")
- <el-form-item label="${comment}" prop="${field}">
- <el-input v-model="form.${field}" type="textarea" placeholder="请输入内容" />
- </el-form-item>
+ <el-col :span="24">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-input v-model="form.${field}" type="textarea" placeholder="请输入内容" />
+ </el-form-item>
+ </el-col>
#end
#end
#end
#end
+ </el-row>
</el-form>
<template #footer>
<div class="dialog-footer">
@@ -444,13 +479,13 @@
#end
#end
if (form.value.${pkColumn.javaField} != null) {
- update${BusinessName}(form.value).then(response => {
+ update${BusinessName}(form.value).then(() => {
proxy.#[[$modal]]#.msgSuccess("修改成功")
open.value = false
getList()
})
} else {
- add${BusinessName}(form.value).then(response => {
+ add${BusinessName}(form.value).then(() => {
proxy.#[[$modal]]#.msgSuccess("新增成功")
open.value = false
getList()
diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index.vue.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index.vue.vm
index 1a9c517..59eb55d 100644
--- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index.vue.vm
+++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/index.vue.vm
@@ -163,8 +163,16 @@
/>
<!-- 添加或修改${functionName}对话框 -->
- <el-dialog :title="title" v-model="open" width="500px" append-to-body>
- <el-form ref="${businessName}Ref" :model="form" :rules="rules" label-width="80px">
+#if($table.formColNum == 2)
+#set($dialogWidth = "800px")
+#elseif($table.formColNum == 3)
+#set($dialogWidth = "1100px")
+#else
+#set($dialogWidth = "500px")
+#end
+ <el-dialog :title="title" v-model="open" width="${dialogWidth}" append-to-body>
+ <el-form ref="${businessName}Ref" :model="form" :rules="rules" label-width="100px">
+ <el-row>
#foreach($column in $columns)
#set($field=$column.javaField)
#if($column.insert && !$column.pk)
@@ -177,96 +185,121 @@
#end
#set($dictType=$column.dictType)
#if($column.htmlType == "input")
- <el-form-item label="${comment}" prop="${field}">
- <el-input v-model="form.${field}" placeholder="请输入${comment}" />
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-input v-model="form.${field}" placeholder="请输入${comment}" />
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "imageUpload")
- <el-form-item label="${comment}" prop="${field}">
- <image-upload v-model="form.${field}"/>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <image-upload v-model="form.${field}"/>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "fileUpload")
- <el-form-item label="${comment}" prop="${field}">
- <file-upload v-model="form.${field}"/>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <file-upload v-model="form.${field}"/>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "editor")
- <el-form-item label="${comment}">
- <editor v-model="form.${field}" :min-height="192"/>
- </el-form-item>
+ <el-col :span="24">
+ <el-form-item label="${comment}">
+ <editor v-model="form.${field}" :min-height="192"/>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "select" && "" != $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-select v-model="form.${field}" placeholder="请选择${comment}">
- <el-option
- v-for="dict in ${dictType}"
- :key="dict.value"
- :label="dict.label"
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-select v-model="form.${field}" placeholder="请选择${comment}">
+ <el-option
+ v-for="dict in ${dictType}"
+ :key="dict.value"
+ :label="dict.label"
#if($column.javaType == "Integer" || $column.javaType == "Long")
- :value="parseInt(dict.value)"
+ :value="parseInt(dict.value)"
#else
- :value="dict.value"
+ :value="dict.value"
#end
- ></el-option>
- </el-select>
- </el-form-item>
+ ></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "select" && $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-select v-model="form.${field}" placeholder="请选择${comment}">
- <el-option label="请选择字典生成" value="" />
- </el-select>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-select v-model="form.${field}" placeholder="请选择${comment}">
+ <el-option label="请选择字典生成" value="" />
+ </el-select>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "checkbox" && "" != $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-checkbox-group v-model="form.${field}">
- <el-checkbox
- v-for="dict in ${dictType}"
- :key="dict.value"
- :label="dict.value">
- {{dict.label}}
- </el-checkbox>
- </el-checkbox-group>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-checkbox-group v-model="form.${field}">
+ <el-checkbox
+ v-for="dict in ${dictType}"
+ :key="dict.value"
+ :label="dict.value">
+ {{dict.label}}
+ </el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "checkbox" && $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-checkbox-group v-model="form.${field}">
- <el-checkbox>请选择字典生成</el-checkbox>
- </el-checkbox-group>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-checkbox-group v-model="form.${field}">
+ <el-checkbox>请选择字典生成</el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "radio" && "" != $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-radio-group v-model="form.${field}">
- <el-radio
- v-for="dict in ${dictType}"
- :key="dict.value"
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-radio-group v-model="form.${field}">
+ <el-radio
+ v-for="dict in ${dictType}"
+ :key="dict.value"
#if($column.javaType == "Integer" || $column.javaType == "Long")
- :label="parseInt(dict.value)"
+ :label="parseInt(dict.value)"
#else
- :label="dict.value"
+ :label="dict.value"
#end
- >{{dict.label}}</el-radio>
- </el-radio-group>
- </el-form-item>
+ >{{dict.label}}</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "radio" && $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-radio-group v-model="form.${field}">
- <el-radio label="1">请选择字典生成</el-radio>
- </el-radio-group>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-radio-group v-model="form.${field}">
+ <el-radio label="1">请选择字典生成</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "datetime")
- <el-form-item label="${comment}" prop="${field}">
- <el-date-picker clearable
- v-model="form.${field}"
- type="date"
- value-format="YYYY-MM-DD"
- placeholder="请选择${comment}">
- </el-date-picker>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-date-picker clearable
+ v-model="form.${field}"
+ type="date"
+ value-format="YYYY-MM-DD"
+ placeholder="请选择${comment}">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "textarea")
- <el-form-item label="${comment}" prop="${field}">
- <el-input v-model="form.${field}" type="textarea" placeholder="请输入内容" />
- </el-form-item>
+ <el-col :span="24">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-input v-model="form.${field}" type="textarea" placeholder="请输入内容" />
+ </el-form-item>
+ </el-col>
#end
#end
#end
#end
+ </el-row>
#if($table.sub)
<el-divider content-position="center">${subTable.functionName}信息</el-divider>
<el-row :gutter="10" class="mb8">
@@ -277,9 +310,13 @@
<el-button type="danger" icon="Delete" @click="handleDelete${subClassName}">删除</el-button>
</el-col>
</el-row>
- <el-table :data="${subclassName}List" :row-class-name="row${subClassName}Index" @selection-change="handle${subClassName}SelectionChange" ref="${subclassName}">
+ <el-table :data="${subclassName}List" @selection-change="handle${subClassName}SelectionChange" ref="${subclassName}">
<el-table-column type="selection" width="50" align="center" />
- <el-table-column label="序号" align="center" prop="index" width="50"/>
+ <el-table-column label="序号" width="60">
+ <template #default="{ $index }">
+ {{ $index + 1 }}
+ </template>
+ </el-table-column>
#foreach($column in $subTable.columns)
#set($javaField=$column.javaField)
#set($parentheseIndex=$column.columnComment.indexOf("("))
@@ -515,13 +552,13 @@
form.value.${subclassName}List = ${subclassName}List.value
#end
if (form.value.${pkColumn.javaField} != null) {
- update${BusinessName}(form.value).then(response => {
+ update${BusinessName}(form.value).then(() => {
proxy.#[[$modal]]#.msgSuccess("修改成功")
open.value = false
getList()
})
} else {
- add${BusinessName}(form.value).then(response => {
+ add${BusinessName}(form.value).then(() => {
proxy.#[[$modal]]#.msgSuccess("新增成功")
open.value = false
getList()
@@ -543,11 +580,6 @@
}
#if($table.sub)
-/** ${subTable.functionName}序号 */
-function row${subClassName}Index({ row, rowIndex }) {
- row.index = rowIndex + 1
-}
-
/** ${subTable.functionName}添加按钮操作 */
function handleAdd${subClassName}() {
let obj = {}
diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3ts/index-tree.vue.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3ts/index-tree.vue.vm
index f1bc586..3e2f9bb 100644
--- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3ts/index-tree.vue.vm
+++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3ts/index-tree.vue.vm
@@ -144,8 +144,16 @@
</el-table>
<!-- 添加或修改${functionName}对话框 -->
- <el-dialog :title="title" v-model="open" width="500px" append-to-body>
- <el-form ref="${businessName}Ref" :model="form" :rules="rules" label-width="80px">
+#if($table.formColNum == 2)
+#set($dialogWidth = "800px")
+#elseif($table.formColNum == 3)
+#set($dialogWidth = "1100px")
+#else
+#set($dialogWidth = "500px")
+#end
+ <el-dialog :title="title" v-model="open" width="${dialogWidth}" append-to-body>
+ <el-form ref="${businessName}Ref" :model="form" :rules="rules" label-width="100px">
+ <el-row>
#foreach($column in $columns)
#set($field=$column.javaField)
#if($column.insert && !$column.pk)
@@ -158,107 +166,134 @@
#end
#set($dictType=$column.dictType)
#if("" != $treeParentCode && $column.javaField == $treeParentCode)
- <el-form-item label="${comment}" prop="${treeParentCode}">
- <el-tree-select
- v-model="form.${treeParentCode}"
- :data="${businessName}Options"
- :props="{ value: '${treeCode}', label: '${treeName}', children: 'children' }"
- value-key="${treeCode}"
- placeholder="请选择${comment}"
- check-strictly
- />
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${treeParentCode}">
+ <el-tree-select
+ v-model="form.${treeParentCode}"
+ :data="${businessName}Options"
+ :props="{ value: '${treeCode}', label: '${treeName}', children: 'children' }"
+ value-key="${treeCode}"
+ placeholder="请选择${comment}"
+ check-strictly
+ />
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "input")
- <el-form-item label="${comment}" prop="${field}">
- <el-input v-model="form.${field}" placeholder="请输入${comment}" />
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-input v-model="form.${field}" placeholder="请输入${comment}" />
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "imageUpload")
- <el-form-item label="${comment}" prop="${field}">
- <image-upload v-model="form.${field}"/>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <image-upload v-model="form.${field}"/>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "fileUpload")
- <el-form-item label="${comment}" prop="${field}">
- <file-upload v-model="form.${field}"/>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <file-upload v-model="form.${field}"/>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "editor")
- <el-form-item label="${comment}">
- <editor v-model="form.${field}" :min-height="192"/>
- </el-form-item>
+ <el-col :span="24">
+ <el-form-item label="${comment}">
+ <editor v-model="form.${field}" :min-height="192"/>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "select" && "" != $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-select v-model="form.${field}" placeholder="请选择${comment}">
- <el-option
- v-for="dict in ${dictType}"
- :key="dict.value"
- :label="dict.label"
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-select v-model="form.${field}" placeholder="请选择${comment}">
+ <el-option
+ v-for="dict in ${dictType}"
+ :key="dict.value"
+ :label="dict.label"
#if($column.javaType == "Integer" || $column.javaType == "Long")
- :value="parseInt(dict.value)"
+ :value="parseInt(dict.value)"
#else
- :value="dict.value"
+ :value="dict.value"
#end
- ></el-option>
- </el-select>
- </el-form-item>
+ ></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "select" && $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-select v-model="form.${field}" placeholder="请选择${comment}">
- <el-option label="请选择字典生成" value="" />
- </el-select>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-select v-model="form.${field}" placeholder="请选择${comment}">
+ <el-option label="请选择字典生成" value="" />
+ </el-select>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "checkbox" && "" != $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-checkbox-group v-model="form.${field}">
- <el-checkbox
- v-for="dict in ${dictType}"
- :key="dict.value"
- :label="dict.value">
- {{dict.label}}
- </el-checkbox>
- </el-checkbox-group>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-checkbox-group v-model="form.${field}">
+ <el-checkbox
+ v-for="dict in ${dictType}"
+ :key="dict.value"
+ :label="dict.value">
+ {{dict.label}}
+ </el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "checkbox" && $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-checkbox-group v-model="form.${field}">
- <el-checkbox>请选择字典生成</el-checkbox>
- </el-checkbox-group>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-checkbox-group v-model="form.${field}">
+ <el-checkbox>请选择字典生成</el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "radio" && "" != $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-radio-group v-model="form.${field}">
- <el-radio
- v-for="dict in ${dictType}"
- :key="dict.value"
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-radio-group v-model="form.${field}">
+ <el-radio
+ v-for="dict in ${dictType}"
+ :key="dict.value"
#if($column.javaType == "Integer" || $column.javaType == "Long")
- :label="parseInt(dict.value)"
+ :label="parseInt(dict.value)"
#else
- :label="dict.value"
+ :label="dict.value"
#end
- >{{dict.label}}</el-radio>
- </el-radio-group>
- </el-form-item>
+ >{{dict.label}}</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "radio" && $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-radio-group v-model="form.${field}">
- <el-radio label="1">请选择字典生成</el-radio>
- </el-radio-group>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-radio-group v-model="form.${field}">
+ <el-radio label="1">请选择字典生成</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "datetime")
- <el-form-item label="${comment}" prop="${field}">
- <el-date-picker clearable
- v-model="form.${field}"
- type="date"
- value-format="YYYY-MM-DD"
- placeholder="选择${comment}">
- </el-date-picker>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-date-picker clearable
+ v-model="form.${field}"
+ type="date"
+ value-format="YYYY-MM-DD"
+ placeholder="选择${comment}">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "textarea")
- <el-form-item label="${comment}" prop="${field}">
- <el-input v-model="form.${field}" type="textarea" placeholder="请输入内容" />
- </el-form-item>
+ <el-col :span="24">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-input v-model="form.${field}" type="textarea" placeholder="请输入内容" />
+ </el-form-item>
+ </el-col>
#end
#end
#end
#end
+ </el-row>
</el-form>
<template #footer>
<div class="dialog-footer">
diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3ts/index.vue.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3ts/index.vue.vm
index d0fa278..890ea59 100644
--- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3ts/index.vue.vm
+++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3ts/index.vue.vm
@@ -163,8 +163,16 @@
/>
<!-- 添加或修改${functionName}对话框 -->
- <el-dialog :title="title" v-model="open" width="500px" append-to-body>
- <el-form ref="${businessName}Ref" :model="form" :rules="rules" label-width="80px">
+#if($table.formColNum == 2)
+#set($dialogWidth = "800px")
+#elseif($table.formColNum == 3)
+#set($dialogWidth = "1100px")
+#else
+#set($dialogWidth = "500px")
+#end
+ <el-dialog :title="title" v-model="open" width="${dialogWidth}" append-to-body>
+ <el-form ref="${businessName}Ref" :model="form" :rules="rules" label-width="100px">
+ <el-row>
#foreach($column in $columns)
#set($field=$column.javaField)
#if($column.insert && !$column.pk)
@@ -177,96 +185,121 @@
#end
#set($dictType=$column.dictType)
#if($column.htmlType == "input")
- <el-form-item label="${comment}" prop="${field}">
- <el-input v-model="form.${field}" placeholder="请输入${comment}" />
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-input v-model="form.${field}" placeholder="请输入${comment}" />
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "imageUpload")
- <el-form-item label="${comment}" prop="${field}">
- <image-upload v-model="form.${field}"/>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <image-upload v-model="form.${field}"/>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "fileUpload")
- <el-form-item label="${comment}" prop="${field}">
- <file-upload v-model="form.${field}"/>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <file-upload v-model="form.${field}"/>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "editor")
- <el-form-item label="${comment}">
- <editor v-model="form.${field}" :min-height="192"/>
- </el-form-item>
+ <el-col :span="24">
+ <el-form-item label="${comment}">
+ <editor v-model="form.${field}" :min-height="192"/>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "select" && "" != $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-select v-model="form.${field}" placeholder="请选择${comment}">
- <el-option
- v-for="dict in ${dictType}"
- :key="dict.value"
- :label="dict.label"
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-select v-model="form.${field}" placeholder="请选择${comment}">
+ <el-option
+ v-for="dict in ${dictType}"
+ :key="dict.value"
+ :label="dict.label"
#if($column.javaType == "Integer" || $column.javaType == "Long")
- :value="parseInt(dict.value)"
+ :value="parseInt(dict.value)"
#else
- :value="dict.value"
+ :value="dict.value"
#end
- ></el-option>
- </el-select>
- </el-form-item>
+ ></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "select" && $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-select v-model="form.${field}" placeholder="请选择${comment}">
- <el-option label="请选择字典生成" value="" />
- </el-select>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-select v-model="form.${field}" placeholder="请选择${comment}">
+ <el-option label="请选择字典生成" value="" />
+ </el-select>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "checkbox" && "" != $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-checkbox-group v-model="form.${field}">
- <el-checkbox
- v-for="dict in ${dictType}"
- :key="dict.value"
- :label="dict.value">
- {{dict.label}}
- </el-checkbox>
- </el-checkbox-group>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-checkbox-group v-model="form.${field}">
+ <el-checkbox
+ v-for="dict in ${dictType}"
+ :key="dict.value"
+ :label="dict.value">
+ {{dict.label}}
+ </el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "checkbox" && $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-checkbox-group v-model="form.${field}">
- <el-checkbox>请选择字典生成</el-checkbox>
- </el-checkbox-group>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-checkbox-group v-model="form.${field}">
+ <el-checkbox>请选择字典生成</el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "radio" && "" != $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-radio-group v-model="form.${field}">
- <el-radio
- v-for="dict in ${dictType}"
- :key="dict.value"
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-radio-group v-model="form.${field}">
+ <el-radio
+ v-for="dict in ${dictType}"
+ :key="dict.value"
#if($column.javaType == "Integer" || $column.javaType == "Long")
- :label="parseInt(dict.value)"
+ :label="parseInt(dict.value)"
#else
- :label="dict.value"
+ :label="dict.value"
#end
- >{{dict.label}}</el-radio>
- </el-radio-group>
- </el-form-item>
+ >{{dict.label}}</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "radio" && $dictType)
- <el-form-item label="${comment}" prop="${field}">
- <el-radio-group v-model="form.${field}">
- <el-radio label="1">请选择字典生成</el-radio>
- </el-radio-group>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-radio-group v-model="form.${field}">
+ <el-radio label="1">请选择字典生成</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "datetime")
- <el-form-item label="${comment}" prop="${field}">
- <el-date-picker clearable
- v-model="form.${field}"
- type="date"
- value-format="YYYY-MM-DD"
- placeholder="请选择${comment}">
- </el-date-picker>
- </el-form-item>
+ <el-col :span="${colSpan}">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-date-picker clearable
+ v-model="form.${field}"
+ type="date"
+ value-format="YYYY-MM-DD"
+ placeholder="请选择${comment}">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
#elseif($column.htmlType == "textarea")
- <el-form-item label="${comment}" prop="${field}">
- <el-input v-model="form.${field}" type="textarea" placeholder="请输入内容" />
- </el-form-item>
+ <el-col :span="24">
+ <el-form-item label="${comment}" prop="${field}">
+ <el-input v-model="form.${field}" type="textarea" placeholder="请输入内容" />
+ </el-form-item>
+ </el-col>
#end
#end
#end
#end
+ </el-row>
#if($table.sub)
<el-divider content-position="center">${subTable.functionName}信息</el-divider>
<el-row :gutter="10" class="mb8">
diff --git a/ruoyi-ui/src/views/tool/gen/genInfoForm.vue b/ruoyi-ui/src/views/tool/gen/genInfoForm.vue
index e90b410..046abd6 100644
--- a/ruoyi-ui/src/views/tool/gen/genInfoForm.vue
+++ b/ruoyi-ui/src/views/tool/gen/genInfoForm.vue
@@ -69,6 +69,22 @@
</el-form-item>
</el-col>
+ <el-col :span="24">
+ <el-form-item prop="formColNum">
+ <span slot="label">
+ 表单布局
+ <el-tooltip content="选择表单的栅格布局方式" placement="top">
+ <i class="el-icon-question"></i>
+ </el-tooltip>
+ </span>
+ <el-select v-model="info.formColNum">
+ <el-option label="单列" :value="1" />
+ <el-option label="双列" :value="2" />
+ <el-option label="三列" :value="3" />
+ </el-select>
+ </el-form-item>
+ </el-col>
+
<el-col :span="12">
<el-form-item prop="genType">
<span slot="label">
diff --git a/sql/ry_20260321.sql b/sql/ry_20260402.sql
similarity index 99%
rename from sql/ry_20260321.sql
rename to sql/ry_20260402.sql
index 95469d8..23c766d 100644
--- a/sql/ry_20260321.sql
+++ b/sql/ry_20260402.sql
@@ -674,6 +674,7 @@
business_name varchar(30) comment '生成业务名',
function_name varchar(50) comment '生成功能名',
function_author varchar(50) comment '生成功能作者',
+ form_col_num int(1) default 1 comment '表单布局(单列 双列 三列)',
gen_type char(1) default '0' comment '生成代码方式(0zip压缩包 1自定义路径)',
gen_path varchar(200) default '/' comment '生成路径(不填默认项目路径)',
options varchar(1000) comment '其它生成选项',
--
Gitblit v1.9.3