作者 RuoYi

代码生成子表支持日期/字典配置

@@ -271,6 +271,23 @@ public class VelocityUtils @@ -271,6 +271,23 @@ public class VelocityUtils
271 { 271 {
272 List<GenTableColumn> columns = genTable.getColumns(); 272 List<GenTableColumn> columns = genTable.getColumns();
273 Set<String> dicts = new HashSet<String>(); 273 Set<String> dicts = new HashSet<String>();
  274 + addDicts(dicts, columns);
  275 + if (StringUtils.isNotNull(genTable.getSubTable()))
  276 + {
  277 + List<GenTableColumn> subColumns = genTable.getSubTable().getColumns();
  278 + addDicts(dicts, subColumns);
  279 + }
  280 + return StringUtils.join(dicts, ", ");
  281 + }
  282 +
  283 + /**
  284 + * 添加字典列表
  285 + *
  286 + * @param dicts 字典列表
  287 + * @param columns 列集合
  288 + */
  289 + public static void addDicts(Set<String> dicts, List<GenTableColumn> columns)
  290 + {
274 for (GenTableColumn column : columns) 291 for (GenTableColumn column : columns)
275 { 292 {
276 if (!column.isSuperColumn() && StringUtils.isNotEmpty(column.getDictType()) && StringUtils.equalsAny( 293 if (!column.isSuperColumn() && StringUtils.isNotEmpty(column.getDictType()) && StringUtils.equalsAny(
@@ -280,7 +297,6 @@ public class VelocityUtils @@ -280,7 +297,6 @@ public class VelocityUtils
280 dicts.add("'" + column.getDictType() + "'"); 297 dicts.add("'" + column.getDictType() + "'");
281 } 298 }
282 } 299 }
283 - return StringUtils.join(dicts, ", ");  
284 } 300 }
285 301
286 /** 302 /**
@@ -44,7 +44,7 @@ @@ -44,7 +44,7 @@
44 v-model="queryParams.${column.javaField}" 44 v-model="queryParams.${column.javaField}"
45 type="date" 45 type="date"
46 value-format="yyyy-MM-dd" 46 value-format="yyyy-MM-dd"
47 - placeholder="选择${comment}"> 47 + placeholder="选择${comment}">
48 </el-date-picker> 48 </el-date-picker>
49 </el-form-item> 49 </el-form-item>
50 #elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN") 50 #elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
@@ -269,7 +269,7 @@ @@ -269,7 +269,7 @@
269 v-model="form.${field}" 269 v-model="form.${field}"
270 type="date" 270 type="date"
271 value-format="yyyy-MM-dd" 271 value-format="yyyy-MM-dd"
272 - placeholder="选择${comment}"> 272 + placeholder="选择${comment}">
273 </el-date-picker> 273 </el-date-picker>
274 </el-form-item> 274 </el-form-item>
275 #elseif($column.htmlType == "textarea") 275 #elseif($column.htmlType == "textarea")
@@ -302,12 +302,39 @@ @@ -302,12 +302,39 @@
302 #set($comment=$column.columnComment) 302 #set($comment=$column.columnComment)
303 #end 303 #end
304 #if($column.pk || $javaField == ${subTableFkclassName}) 304 #if($column.pk || $javaField == ${subTableFkclassName})
305 -#elseif($column.list && "" != $javaField)  
306 - <el-table-column label="$comment" prop="${javaField}"> 305 +#elseif($column.list && $column.htmlType == "input")
  306 + <el-table-column label="$comment" prop="${javaField}" width="150">
307 <template slot-scope="scope"> 307 <template slot-scope="scope">
308 <el-input v-model="scope.row.$javaField" placeholder="请输入$comment" /> 308 <el-input v-model="scope.row.$javaField" placeholder="请输入$comment" />
309 </template> 309 </template>
310 </el-table-column> 310 </el-table-column>
  311 +#elseif($column.list && $column.htmlType == "datetime")
  312 + <el-table-column label="$comment" prop="${javaField}" width="240">
  313 + <template slot-scope="scope">
  314 + <el-date-picker clearable v-model="scope.row.$javaField" type="date" value-format="yyyy-MM-dd" placeholder="请选择$comment" />
  315 + </template>
  316 + </el-table-column>
  317 +#elseif($column.list && ($column.htmlType == "select" || $column.htmlType == "radio") && "" != $column.dictType)
  318 + <el-table-column label="$comment" prop="${javaField}" width="150">
  319 + <template slot-scope="scope">
  320 + <el-select v-model="scope.row.$javaField" placeholder="请选择$comment">
  321 + <el-option
  322 + v-for="dict in dict.type.$column.dictType"
  323 + :key="dict.value"
  324 + :label="dict.label"
  325 + :value="dict.value"
  326 + ></el-option>
  327 + </el-select>
  328 + </template>
  329 + </el-table-column>
  330 +#elseif($column.list && ($column.htmlType == "select" || $column.htmlType == "radio") && "" == $column.dictType)
  331 + <el-table-column label="$comment" prop="${javaField}" width="150">
  332 + <template slot-scope="scope">
  333 + <el-select v-model="scope.row.$javaField" placeholder="请选择$comment">
  334 + <el-option label="请选择字典生成" value="" />
  335 + </el-select>
  336 + </template>
  337 + </el-table-column>
311 #end 338 #end
312 #end 339 #end
313 </el-table> 340 </el-table>
@@ -43,7 +43,7 @@ @@ -43,7 +43,7 @@
43 v-model="queryParams.${column.javaField}" 43 v-model="queryParams.${column.javaField}"
44 type="date" 44 type="date"
45 value-format="YYYY-MM-DD" 45 value-format="YYYY-MM-DD"
46 - placeholder="选择${comment}"> 46 + placeholder="选择${comment}">
47 </el-date-picker> 47 </el-date-picker>
48 </el-form-item> 48 </el-form-item>
49 #elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN") 49 #elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
@@ -260,7 +260,7 @@ @@ -260,7 +260,7 @@
260 v-model="form.${field}" 260 v-model="form.${field}"
261 type="date" 261 type="date"
262 value-format="YYYY-MM-DD" 262 value-format="YYYY-MM-DD"
263 - placeholder="选择${comment}"> 263 + placeholder="选择${comment}">
264 </el-date-picker> 264 </el-date-picker>
265 </el-form-item> 265 </el-form-item>
266 #elseif($column.htmlType == "textarea") 266 #elseif($column.htmlType == "textarea")
@@ -293,12 +293,44 @@ @@ -293,12 +293,44 @@
293 #set($comment=$column.columnComment) 293 #set($comment=$column.columnComment)
294 #end 294 #end
295 #if($column.pk || $javaField == ${subTableFkclassName}) 295 #if($column.pk || $javaField == ${subTableFkclassName})
296 -#elseif($column.list && "" != $javaField)  
297 - <el-table-column label="$comment" prop="${javaField}"> 296 +#elseif($column.list && $column.htmlType == "input")
  297 + <el-table-column label="$comment" prop="${javaField}" width="150">
298 <template #default="scope"> 298 <template #default="scope">
299 <el-input v-model="scope.row.$javaField" placeholder="请输入$comment" /> 299 <el-input v-model="scope.row.$javaField" placeholder="请输入$comment" />
300 </template> 300 </template>
301 </el-table-column> 301 </el-table-column>
  302 +#elseif($column.list && $column.htmlType == "datetime")
  303 + <el-table-column label="$comment" prop="${javaField}" width="240">
  304 + <template #default="scope">
  305 + <el-date-picker clearable
  306 + v-model="scope.row.$javaField"
  307 + type="date"
  308 + value-format="YYYY-MM-DD"
  309 + placeholder="请选择$comment">
  310 + </el-date-picker>
  311 + </template>
  312 + </el-table-column>
  313 +#elseif($column.list && ($column.htmlType == "select" || $column.htmlType == "radio") && "" != $column.dictType)
  314 + <el-table-column label="$comment" prop="${javaField}" width="150">
  315 + <template #default="scope">
  316 + <el-select v-model="scope.row.$javaField" placeholder="请选择$comment">
  317 + <el-option
  318 + v-for="dict in $column.dictType"
  319 + :key="dict.value"
  320 + :label="dict.label"
  321 + :value="dict.value"
  322 + ></el-option>
  323 + </el-select>
  324 + </template>
  325 + </el-table-column>
  326 +#elseif($column.list && ($column.htmlType == "select" || $column.htmlType == "radio") && "" == $column.dictType)
  327 + <el-table-column label="$comment" prop="${javaField}" width="150">
  328 + <template #default="scope">
  329 + <el-select v-model="scope.row.$javaField" placeholder="请选择$comment">
  330 + <el-option label="请选择字典生成" value="" />
  331 + </el-select>
  332 + </template>
  333 + </el-table-column>
302 #end 334 #end
303 #end 335 #end
304 </el-table> 336 </el-table>
@@ -165,7 +165,7 @@ @@ -165,7 +165,7 @@
165 </el-col> 165 </el-col>
166 <el-col :span="12"> 166 <el-col :span="12">
167 <el-form-item label="任务分组" prop="jobGroup"> 167 <el-form-item label="任务分组" prop="jobGroup">
168 - <el-select v-model="form.jobGroup" placeholder="请选择"> 168 + <el-select v-model="form.jobGroup" placeholder="请选择任务分组">
169 <el-option 169 <el-option
170 v-for="dict in dict.type.sys_job_group" 170 v-for="dict in dict.type.sys_job_group"
171 :key="dict.value" 171 :key="dict.value"
@@ -135,7 +135,7 @@ @@ -135,7 +135,7 @@
135 </el-col> 135 </el-col>
136 <el-col :span="12"> 136 <el-col :span="12">
137 <el-form-item label="公告类型" prop="noticeType"> 137 <el-form-item label="公告类型" prop="noticeType">
138 - <el-select v-model="form.noticeType" placeholder="请选择"> 138 + <el-select v-model="form.noticeType" placeholder="请选择公告类型">
139 <el-option 139 <el-option
140 v-for="dict in dict.type.sys_notice_type" 140 v-for="dict in dict.type.sys_notice_type"
141 :key="dict.value" 141 :key="dict.value"
@@ -248,7 +248,7 @@ @@ -248,7 +248,7 @@
248 <el-row> 248 <el-row>
249 <el-col :span="12"> 249 <el-col :span="12">
250 <el-form-item label="用户性别"> 250 <el-form-item label="用户性别">
251 - <el-select v-model="form.sex" placeholder="请选择"> 251 + <el-select v-model="form.sex" placeholder="请选择性别">
252 <el-option 252 <el-option
253 v-for="dict in dict.type.sys_user_sex" 253 v-for="dict in dict.type.sys_user_sex"
254 :key="dict.value" 254 :key="dict.value"
@@ -273,7 +273,7 @@ @@ -273,7 +273,7 @@
273 <el-row> 273 <el-row>
274 <el-col :span="12"> 274 <el-col :span="12">
275 <el-form-item label="岗位"> 275 <el-form-item label="岗位">
276 - <el-select v-model="form.postIds" multiple placeholder="请选择"> 276 + <el-select v-model="form.postIds" multiple placeholder="请选择岗位">
277 <el-option 277 <el-option
278 v-for="item in postOptions" 278 v-for="item in postOptions"
279 :key="item.postId" 279 :key="item.postId"
@@ -286,7 +286,7 @@ @@ -286,7 +286,7 @@
286 </el-col> 286 </el-col>
287 <el-col :span="12"> 287 <el-col :span="12">
288 <el-form-item label="角色"> 288 <el-form-item label="角色">
289 - <el-select v-model="form.roleIds" multiple placeholder="请选择"> 289 + <el-select v-model="form.roleIds" multiple placeholder="请选择角色">
290 <el-option 290 <el-option
291 v-for="item in roleOptions" 291 v-for="item in roleOptions"
292 :key="item.roleId" 292 :key="item.roleId"