From 111389ca5cb04e35eb7ddc22423ea6b04dd55809 Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期四, 24 二月 2022 09:27:28 +0800
Subject: [PATCH] 代码生成子表支持日期/字典配置
---
src/main/java/com/ruoyi/project/tool/gen/util/VelocityUtils.java | 18 ++++++++
src/main/resources/vm/vue/index.vue.vm | 35 +++++++++++++++--
src/main/resources/vm/vue/v3/index.vue.vm | 40 ++++++++++++++++++--
3 files changed, 84 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/ruoyi/project/tool/gen/util/VelocityUtils.java b/src/main/java/com/ruoyi/project/tool/gen/util/VelocityUtils.java
index 751e53b..4a31ebf 100644
--- a/src/main/java/com/ruoyi/project/tool/gen/util/VelocityUtils.java
+++ b/src/main/java/com/ruoyi/project/tool/gen/util/VelocityUtils.java
@@ -271,6 +271,23 @@
{
List<GenTableColumn> columns = genTable.getColumns();
Set<String> dicts = new HashSet<String>();
+ addDicts(dicts, columns);
+ if (StringUtils.isNotNull(genTable.getSubTable()))
+ {
+ List<GenTableColumn> subColumns = genTable.getSubTable().getColumns();
+ addDicts(dicts, subColumns);
+ }
+ return StringUtils.join(dicts, ", ");
+ }
+
+ /**
+ * 娣诲姞瀛楀吀鍒楄〃
+ *
+ * @param dicts 瀛楀吀鍒楄〃
+ * @param columns 鍒楅泦鍚�
+ */
+ public static void addDicts(Set<String> dicts, List<GenTableColumn> columns)
+ {
for (GenTableColumn column : columns)
{
if (!column.isSuperColumn() && StringUtils.isNotEmpty(column.getDictType()) && StringUtils.equalsAny(
@@ -280,7 +297,6 @@
dicts.add("'" + column.getDictType() + "'");
}
}
- return StringUtils.join(dicts, ", ");
}
/**
diff --git a/src/main/resources/vm/vue/index.vue.vm b/src/main/resources/vm/vue/index.vue.vm
index e7687b7..f034d7d 100644
--- a/src/main/resources/vm/vue/index.vue.vm
+++ b/src/main/resources/vm/vue/index.vue.vm
@@ -44,7 +44,7 @@
v-model="queryParams.${column.javaField}"
type="date"
value-format="yyyy-MM-dd"
- placeholder="閫夋嫨${comment}">
+ placeholder="璇烽�夋嫨${comment}">
</el-date-picker>
</el-form-item>
#elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
@@ -269,7 +269,7 @@
v-model="form.${field}"
type="date"
value-format="yyyy-MM-dd"
- placeholder="閫夋嫨${comment}">
+ placeholder="璇烽�夋嫨${comment}">
</el-date-picker>
</el-form-item>
#elseif($column.htmlType == "textarea")
@@ -302,12 +302,39 @@
#set($comment=$column.columnComment)
#end
#if($column.pk || $javaField == ${subTableFkclassName})
-#elseif($column.list && "" != $javaField)
- <el-table-column label="$comment" prop="${javaField}">
+#elseif($column.list && $column.htmlType == "input")
+ <el-table-column label="$comment" prop="${javaField}" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.$javaField" placeholder="璇疯緭鍏�$comment" />
</template>
</el-table-column>
+#elseif($column.list && $column.htmlType == "datetime")
+ <el-table-column label="$comment" prop="${javaField}" width="240">
+ <template slot-scope="scope">
+ <el-date-picker clearable v-model="scope.row.$javaField" type="date" value-format="yyyy-MM-dd" placeholder="璇烽�夋嫨$comment" />
+ </template>
+ </el-table-column>
+#elseif($column.list && ($column.htmlType == "select" || $column.htmlType == "radio") && "" != $column.dictType)
+ <el-table-column label="$comment" prop="${javaField}" width="150">
+ <template slot-scope="scope">
+ <el-select v-model="scope.row.$javaField" placeholder="璇烽�夋嫨$comment">
+ <el-option
+ v-for="dict in dict.type.$column.dictType"
+ :key="dict.value"
+ :label="dict.label"
+ :value="dict.value"
+ ></el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+#elseif($column.list && ($column.htmlType == "select" || $column.htmlType == "radio") && "" == $column.dictType)
+ <el-table-column label="$comment" prop="${javaField}" width="150">
+ <template slot-scope="scope">
+ <el-select v-model="scope.row.$javaField" placeholder="璇烽�夋嫨$comment">
+ <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" />
+ </el-select>
+ </template>
+ </el-table-column>
#end
#end
</el-table>
diff --git a/src/main/resources/vm/vue/v3/index.vue.vm b/src/main/resources/vm/vue/v3/index.vue.vm
index 7379844..e14dc00 100644
--- a/src/main/resources/vm/vue/v3/index.vue.vm
+++ b/src/main/resources/vm/vue/v3/index.vue.vm
@@ -43,7 +43,7 @@
v-model="queryParams.${column.javaField}"
type="date"
value-format="YYYY-MM-DD"
- placeholder="閫夋嫨${comment}">
+ placeholder="璇烽�夋嫨${comment}">
</el-date-picker>
</el-form-item>
#elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
@@ -260,7 +260,7 @@
v-model="form.${field}"
type="date"
value-format="YYYY-MM-DD"
- placeholder="閫夋嫨${comment}">
+ placeholder="璇烽�夋嫨${comment}">
</el-date-picker>
</el-form-item>
#elseif($column.htmlType == "textarea")
@@ -293,12 +293,44 @@
#set($comment=$column.columnComment)
#end
#if($column.pk || $javaField == ${subTableFkclassName})
-#elseif($column.list && "" != $javaField)
- <el-table-column label="$comment" prop="${javaField}">
+#elseif($column.list && $column.htmlType == "input")
+ <el-table-column label="$comment" prop="${javaField}" width="150">
<template #default="scope">
<el-input v-model="scope.row.$javaField" placeholder="璇疯緭鍏�$comment" />
</template>
</el-table-column>
+#elseif($column.list && $column.htmlType == "datetime")
+ <el-table-column label="$comment" prop="${javaField}" width="240">
+ <template #default="scope">
+ <el-date-picker clearable
+ v-model="scope.row.$javaField"
+ type="date"
+ value-format="YYYY-MM-DD"
+ placeholder="璇烽�夋嫨$comment">
+ </el-date-picker>
+ </template>
+ </el-table-column>
+#elseif($column.list && ($column.htmlType == "select" || $column.htmlType == "radio") && "" != $column.dictType)
+ <el-table-column label="$comment" prop="${javaField}" width="150">
+ <template #default="scope">
+ <el-select v-model="scope.row.$javaField" placeholder="璇烽�夋嫨$comment">
+ <el-option
+ v-for="dict in $column.dictType"
+ :key="dict.value"
+ :label="dict.label"
+ :value="dict.value"
+ ></el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+#elseif($column.list && ($column.htmlType == "select" || $column.htmlType == "radio") && "" == $column.dictType)
+ <el-table-column label="$comment" prop="${javaField}" width="150">
+ <template #default="scope">
+ <el-select v-model="scope.row.$javaField" placeholder="璇烽�夋嫨$comment">
+ <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" />
+ </el-select>
+ </template>
+ </el-table-column>
#end
#end
</el-table>
--
Gitblit v1.9.3