作者 RuoYi

代码生成支持上传控件

@@ -74,6 +74,9 @@ public class GenConstants @@ -74,6 +74,9 @@ public class GenConstants
74 /** 日期控件 */ 74 /** 日期控件 */
75 public static final String HTML_DATETIME = "datetime"; 75 public static final String HTML_DATETIME = "datetime";
76 76
  77 + /** 上传控件 */
  78 + public static final String HTML_UPLOAD_IMAGE = "uploadImage";
  79 +
77 /** 富文本控件 */ 80 /** 富文本控件 */
78 public static final String HTML_EDITOR = "editor"; 81 public static final String HTML_EDITOR = "editor";
79 82
@@ -59,7 +59,7 @@ public class GenTableColumn extends BaseEntity @@ -59,7 +59,7 @@ public class GenTableColumn extends BaseEntity
59 /** 查询方式(EQ等于、NE不等于、GT大于、LT小于、LIKE模糊、BETWEEN范围) */ 59 /** 查询方式(EQ等于、NE不等于、GT大于、LT小于、LIKE模糊、BETWEEN范围) */
60 private String queryType; 60 private String queryType;
61 61
62 - /** 显示类型(input文本框、textarea文本域、select下拉框、checkbox复选框、radio单选框、datetime日期控件、editor富文本控件) */ 62 + /** 显示类型(input文本框、textarea文本域、select下拉框、checkbox复选框、radio单选框、datetime日期控件、upload上传控件、editor富文本控件) */
63 private String htmlType; 63 private String htmlType;
64 64
65 /** 字典类型 */ 65 /** 字典类型 */
@@ -111,6 +111,11 @@ public class GenUtils @@ -111,6 +111,11 @@ public class GenUtils
111 { 111 {
112 column.setHtmlType(GenConstants.HTML_SELECT); 112 column.setHtmlType(GenConstants.HTML_SELECT);
113 } 113 }
  114 + // 文件字段设置上传控件
  115 + else if (StringUtils.endsWithIgnoreCase(columnName, "image"))
  116 + {
  117 + column.setHtmlType(GenConstants.HTML_UPLOAD_IMAGE);
  118 + }
114 // 内容字段设置富文本控件 119 // 内容字段设置富文本控件
115 else if (StringUtils.endsWithIgnoreCase(columnName, "content")) 120 else if (StringUtils.endsWithIgnoreCase(columnName, "content"))
116 { 121 {
@@ -139,6 +139,10 @@ @@ -139,6 +139,10 @@
139 <el-form-item label="${comment}" prop="${field}"> 139 <el-form-item label="${comment}" prop="${field}">
140 <el-input v-model="form.${field}" placeholder="请输入${comment}" /> 140 <el-input v-model="form.${field}" placeholder="请输入${comment}" />
141 </el-form-item> 141 </el-form-item>
  142 +#elseif($column.htmlType == "uploadImage")
  143 + <el-form-item label="${comment}">
  144 + <uploadImage v-model="form.${field}"/>
  145 + </el-form-item>
142 #elseif($column.htmlType == "editor") 146 #elseif($column.htmlType == "editor")
143 <el-form-item label="${comment}"> 147 <el-form-item label="${comment}">
144 <editor v-model="form.${field}" :min-height="192"/> 148 <editor v-model="form.${field}" :min-height="192"/>
@@ -226,6 +230,12 @@ import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${Busin @@ -226,6 +230,12 @@ import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${Busin
226 import Treeselect from "@riophae/vue-treeselect"; 230 import Treeselect from "@riophae/vue-treeselect";
227 import "@riophae/vue-treeselect/dist/vue-treeselect.css"; 231 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
228 #foreach($column in $columns) 232 #foreach($column in $columns)
  233 +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "uploadImage")
  234 +import UploadImage from '@/components/UploadImage';
  235 +#break
  236 +#end
  237 +#end
  238 +#foreach($column in $columns)
229 #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor") 239 #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor")
230 import Editor from '@/components/Editor'; 240 import Editor from '@/components/Editor';
231 #break 241 #break
@@ -236,6 +246,12 @@ export default { @@ -236,6 +246,12 @@ export default {
236 name: "${BusinessName}", 246 name: "${BusinessName}",
237 components: { 247 components: {
238 #foreach($column in $columns) 248 #foreach($column in $columns)
  249 +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "uploadImage")
  250 + UploadImage,
  251 +#break
  252 +#end
  253 +#end
  254 +#foreach($column in $columns)
239 #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor") 255 #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor")
240 Editor, 256 Editor,
241 #break 257 #break
@@ -168,6 +168,10 @@ @@ -168,6 +168,10 @@
168 <el-form-item label="${comment}" prop="${field}"> 168 <el-form-item label="${comment}" prop="${field}">
169 <el-input v-model="form.${field}" placeholder="请输入${comment}" /> 169 <el-input v-model="form.${field}" placeholder="请输入${comment}" />
170 </el-form-item> 170 </el-form-item>
  171 +#elseif($column.htmlType == "uploadImage")
  172 + <el-form-item label="${comment}">
  173 + <uploadImage v-model="form.${field}"/>
  174 + </el-form-item>
171 #elseif($column.htmlType == "editor") 175 #elseif($column.htmlType == "editor")
172 <el-form-item label="${comment}"> 176 <el-form-item label="${comment}">
173 <editor v-model="form.${field}" :min-height="192"/> 177 <editor v-model="form.${field}" :min-height="192"/>
@@ -253,6 +257,12 @@ @@ -253,6 +257,12 @@
253 <script> 257 <script>
254 import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName}, export${BusinessName} } from "@/api/${moduleName}/${businessName}"; 258 import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName}, export${BusinessName} } from "@/api/${moduleName}/${businessName}";
255 #foreach($column in $columns) 259 #foreach($column in $columns)
  260 +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "uploadImage")
  261 +import UploadImage from '@/components/UploadImage';
  262 +#break
  263 +#end
  264 +#end
  265 +#foreach($column in $columns)
256 #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor") 266 #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor")
257 import Editor from '@/components/Editor'; 267 import Editor from '@/components/Editor';
258 #break 268 #break
@@ -261,12 +271,20 @@ import Editor from '@/components/Editor'; @@ -261,12 +271,20 @@ import Editor from '@/components/Editor';
261 271
262 export default { 272 export default {
263 name: "${BusinessName}", 273 name: "${BusinessName}",
  274 + components: {
  275 +#foreach($column in $columns)
  276 +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "uploadImage")
  277 + UploadImage,
  278 +#break
  279 +#end
  280 +#end
264 #foreach($column in $columns) 281 #foreach($column in $columns)
265 #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor") 282 #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor")
266 - components: { Editor }, 283 + Editor,
267 #break 284 #break
268 #end 285 #end
269 #end 286 #end
  287 + },
270 data() { 288 data() {
271 return { 289 return {
272 // 遮罩层 290 // 遮罩层
@@ -90,6 +90,7 @@ @@ -90,6 +90,7 @@
90 <el-option label="单选框" value="radio" /> 90 <el-option label="单选框" value="radio" />
91 <el-option label="复选框" value="checkbox" /> 91 <el-option label="复选框" value="checkbox" />
92 <el-option label="日期控件" value="datetime" /> 92 <el-option label="日期控件" value="datetime" />
  93 + <el-option label="上传控件" value="uploadImage" />
93 <el-option label="富文本控件" value="editor" /> 94 <el-option label="富文本控件" value="editor" />
94 </el-select> 95 </el-select>
95 </template> 96 </template>