From 75b5b5a6e177de1c2e0cda65b3d7af7f592ac392 Mon Sep 17 00:00:00 2001 From: lin <290541200@qq.com> Date: Mon, 14 Dec 2020 17:50:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=AC=E6=AC=A1=E6=8F=90=E4=BA=A4=20?= =?UTF-8?q?=E7=94=9F=E6=88=90=E4=BB=A3=E7=A0=81=E6=A8=A1=E5=9D=97=20?= =?UTF-8?q?=E5=8F=AA=E8=AF=BB=20=E9=BB=98=E8=AE=A4=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/templates/index.html | 2 +- .../templates/platform/econtype/add.html | 200 +++---- .../templates/platform/econtype/edit.html | 65 ++- .../ruoyi/common/constant/GenConstants.java | 5 +- .../com/ruoyi/generator/domain/GenTable.java | 13 + .../generator/domain/GenTableColumn.java | 24 +- .../service/impl/GenTableServiceImpl.java | 9 + .../com/ruoyi/generator/util/GenUtils.java | 19 + .../ruoyi/generator/util/VelocityUtils.java | 207 +++---- .../mapper/generator/GenTableColumnMapper.xml | 10 +- .../mapper/generator/GenTableMapper.xml | 25 +- .../resources/templates/tool/gen/edit.html | 41 +- .../src/main/resources/vm/html/add.html.vm | 535 ++++++++++-------- .../main/resources/vm/html/col2/add.html.vm | 312 ++++++++++ .../main/resources/vm/html/col2/edit.html.vm | 307 ++++++++++ .../resources/vm/html/col2/formedittpl.vm | 87 +++ .../main/resources/vm/html/col2/formtpl.vm | 104 ++++ .../src/main/resources/vm/html/formtpl.vm | 115 ---- sql/脚本/2020/12/12/生成代码添加字段.sql | 3 + 19 files changed, 1442 insertions(+), 641 deletions(-) create mode 100644 ruoyi-generator/src/main/resources/vm/html/col2/add.html.vm create mode 100644 ruoyi-generator/src/main/resources/vm/html/col2/edit.html.vm create mode 100644 ruoyi-generator/src/main/resources/vm/html/col2/formedittpl.vm create mode 100644 ruoyi-generator/src/main/resources/vm/html/col2/formtpl.vm delete mode 100644 ruoyi-generator/src/main/resources/vm/html/formtpl.vm create mode 100644 sql/脚本/2020/12/12/生成代码添加字段.sql diff --git a/ruoyi-admin/src/main/resources/templates/index.html b/ruoyi-admin/src/main/resources/templates/index.html index 037df1b79..65b4a41c6 100644 --- a/ruoyi-admin/src/main/resources/templates/index.html +++ b/ruoyi-admin/src/main/resources/templates/index.html @@ -4,7 +4,7 @@ - 若依系统首页 + yds系统首页 diff --git a/ruoyi-admin/src/main/resources/templates/platform/econtype/add.html b/ruoyi-admin/src/main/resources/templates/platform/econtype/add.html index ac2824219..dc73b681c 100644 --- a/ruoyi-admin/src/main/resources/templates/platform/econtype/add.html +++ b/ruoyi-admin/src/main/resources/templates/platform/econtype/add.html @@ -1,135 +1,95 @@ - - + - - - - - - - + -
-
+
+ -
+
-
- -
- -
-
+
-
- -
-
- - + +
+ +
+ + + +
+ +
-
-
+ +
+ + +
+
+ + +
+
- - - - - - -
- -
-
- -
-
-
+
+ +
+ +
+
+ +
+ + +
+ +
+ +
+
+ + +
+
- -
- -
-
- -
-
-
-
+
-
+ +
+ +
-
- -
- -
-
+ + +
+
+ + +
+
+ +
+
- - - -
- -
- -
-
- - - - - - -
- -
- -
-
- - - - - - -
- -
- -
-
- - - - -
- - - +
- - + + $("input[name='createTime']").datetimepicker({ + format: "yyyy-mm-dd", + minView: "month", + autoclose: true + }); + + $("input[name='updateTime']").datetimepicker({ + format: "yyyy-mm-dd", + minView: "month", + autoclose: true + }); + - + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/platform/econtype/edit.html b/ruoyi-admin/src/main/resources/templates/platform/econtype/edit.html index 8193d6efb..78d34aa25 100644 --- a/ruoyi-admin/src/main/resources/templates/platform/econtype/edit.html +++ b/ruoyi-admin/src/main/resources/templates/platform/econtype/edit.html @@ -8,48 +8,67 @@
-
- + + +
+
+
- + +
+ + + +
+
-
- -
- -
-
-
- +
+ + +
+
+
- +
+ +
-
- -
- +
+
+
+
+ +
+ +
-
- +
+ + +
+
+
- +
-
-
- + + +
- +
+
+
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java index c6b8339db..f40f26a27 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java @@ -42,8 +42,11 @@ public class GenConstants public static final String[] COLUMNTYPE_NUMBER = { "tinyint", "smallint", "mediumint", "int", "number", "integer", "bit", "bigint", "float", "double", "decimal" }; + /** 页面上 默认只读的字段 */ + public static final String[] COLUMNNAME_INI_READONLY = { "doc_num", "create_by", "create_time", "update_by", "update_time", "del_flag" }; + /** 页面不需要编辑字段 */ - public static final String[] COLUMNNAME_NOT_EDIT = { "id", "create_by", "create_time", "del_flag" }; + public static final String[] COLUMNNAME_NOT_EDIT = { "id", "create_by", "create_time", "update_by", "update_time", "del_flag" }; /** 页面不需要显示的列表字段 */ public static final String[] COLUMNNAME_NOT_LIST = { "id", "create_by", "create_time", "del_flag", "update_by", diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java index 2abb94fa1..76d73c5cb 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java @@ -64,6 +64,9 @@ public class GenTable extends BaseEntity /** 生成代码方式(0zip压缩包 1自定义路径) */ private String genType; + /** 界面上form的列数 1一列,2二列,3三列 4四列 */ + private String formCols; + /** 生成路径(不填默认项目路径) */ private String genPath; @@ -225,6 +228,16 @@ public class GenTable extends BaseEntity this.genType = genType; } + public String getFormCols() + { + return formCols; + } + + public void setFormCols(String formCols) + { + this.formCols = formCols; + } + public String getGenPath() { return genPath; diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java index c4bc8f4fa..ab85c5ac5 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java @@ -50,6 +50,9 @@ public class GenTableColumn extends BaseEntity /** 是否编辑字段(1是) */ private String isEdit; + /** 是否 只读字段(1是) */ + private String isReadonly; + /** 是否列表字段(1是) */ private String isList; @@ -222,6 +225,25 @@ public class GenTableColumn extends BaseEntity { return isInsert != null && StringUtils.equals("1", isInsert); } + public void setIsReadonly(String isReadonly) + { + this.isReadonly = isReadonly; + } + + public String getIsReadonly() + { + return isReadonly; + } + + public boolean isReadonly() + { + return isReadonly(this.isReadonly); + } + + public boolean isReadonly(String isReadonly) + { + return isReadonly != null && StringUtils.equals("1", isReadonly); + } public void setIsEdit(String isEdit) { @@ -332,7 +354,7 @@ public class GenTableColumn extends BaseEntity { return StringUtils.equalsAnyIgnoreCase(javaField, // BaseEntity - "remark", + "remark","delFlag", // TreeEntity "parentName", "parentId", "orderNum", "ancestors"); } diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/impl/GenTableServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/impl/GenTableServiceImpl.java index 80b3a0a56..192258d2e 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/impl/GenTableServiceImpl.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/impl/GenTableServiceImpl.java @@ -354,6 +354,15 @@ public class GenTableServiceImpl implements IGenTableService List templates = VelocityUtils.getTemplateList(table.getTplCategory()); for (String template : templates) { + // form 2列 + if (table.getFormCols().equals("2") ) { + if ( template.contains("add.html.vm") ) { + template = "vm/html/col2/add.html.vm"; + } else if ( template.contains("edit.html.vm") ) { + template = "vm/html/col2/edit.html.vm"; + } + } + // 渲染模板 StringWriter sw = new StringWriter(); Template tpl = Velocity.getTemplate(template, Constants.UTF8); diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java index ba42e1418..2f17ed153 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java @@ -87,6 +87,15 @@ public class GenUtils { column.setIsEdit(GenConstants.REQUIRE); } + + // 只读字段 + if ( arraysContains(GenConstants.COLUMNNAME_INI_READONLY, columnName) ) + { + column.setIsReadonly("1"); + } else { + column.setIsReadonly("0"); + } + // 列表字段 if (!arraysContains(GenConstants.COLUMNNAME_NOT_LIST, columnName) && !column.isPk()) { @@ -98,6 +107,16 @@ public class GenUtils column.setIsQuery(GenConstants.REQUIRE); } + // 设置自定义编号 所有的选项都为0 + if ( columnName.contains("_custom_num") ){ + column.setIsInsert("0"); + column.setIsEdit("0"); + column.setIsQuery("0"); + column.setIsList("0"); + column.setIsRequired("0"); + } + + // 查询字段类型 if (StringUtils.endsWithIgnoreCase(columnName, "name")) { diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java index 3d9f92545..517428a60 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java @@ -3,6 +3,7 @@ package com.ruoyi.generator.util; import java.util.ArrayList; import java.util.HashSet; import java.util.List; + import org.apache.velocity.VelocityContext; import com.alibaba.fastjson.JSONObject; import com.ruoyi.common.constant.GenConstants; @@ -12,27 +13,33 @@ import com.ruoyi.generator.config.GenConfig; import com.ruoyi.generator.domain.GenTable; import com.ruoyi.generator.domain.GenTableColumn; -public class VelocityUtils -{ - /** 项目空间路径 */ +public class VelocityUtils { + /** + * 项目空间路径 + */ private static final String PROJECT_PATH = "main/java"; - /** mybatis空间路径 */ + /** + * mybatis空间路径 + */ private static final String MYBATIS_PATH = "main/resources/mapper"; - /** html空间路径 */ + /** + * html空间路径 + */ private static final String TEMPLATES_PATH = "main/resources/templates"; - - /** 默认上级菜单,系统工具 */ + + /** + * 默认上级菜单,系统工具 + */ private static final String DEFAULT_PARENT_MENU_ID = "3"; /** * 设置模板变量信息 - * + * * @return 模板列表 */ - public static VelocityContext prepareContext(GenTable genTable) - { + public static VelocityContext prepareContext(GenTable genTable) { String moduleName = genTable.getModuleName(); String businessName = genTable.getBusinessName(); String packageName = genTable.getPackageName(); @@ -57,39 +64,36 @@ public class VelocityUtils // 取出页面需要的字段ing List tempcolumns = genTable.getColumns(); - List effectivecols = new ArrayList ();//定义一个list对象 - for(GenTableColumn tcolumn : tempcolumns) { + List effectivecols = new ArrayList();//定义一个list对象 + for (GenTableColumn tcolumn : tempcolumns) { if (tcolumn.isInsert() && !tcolumn.isPk()) if (tcolumn.isUsableColumn() || !tcolumn.isSuperColumn()) - effectivecols.add(tcolumn) ; - } ; + effectivecols.add(tcolumn); + } + ; velocityContext.put("effectivecols", effectivecols); velocityContext.put("columns", genTable.getColumns()); velocityContext.put("table", genTable); setMenuVelocityContext(velocityContext, genTable); - if (GenConstants.TPL_TREE.equals(tplCategory)) - { + if (GenConstants.TPL_TREE.equals(tplCategory)) { setTreeVelocityContext(velocityContext, genTable); } - if (GenConstants.TPL_SUB.equals(tplCategory)) - { + if (GenConstants.TPL_SUB.equals(tplCategory)) { setSubVelocityContext(velocityContext, genTable); } return velocityContext; } - public static void setMenuVelocityContext(VelocityContext context, GenTable genTable) - { + public static void setMenuVelocityContext(VelocityContext context, GenTable genTable) { String options = genTable.getOptions(); JSONObject paramsObj = JSONObject.parseObject(options); String parentMenuId = getParentMenuId(paramsObj); context.put("parentMenuId", parentMenuId); } - public static void setTreeVelocityContext(VelocityContext context, GenTable genTable) - { + public static void setTreeVelocityContext(VelocityContext context, GenTable genTable) { String options = genTable.getOptions(); JSONObject paramsObj = JSONObject.parseObject(options); String treeCode = getTreecode(paramsObj); @@ -100,18 +104,15 @@ public class VelocityUtils context.put("treeParentCode", treeParentCode); context.put("treeName", treeName); context.put("expandColumn", getExpandColumn(genTable)); - if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) - { + if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) { context.put("tree_parent_code", paramsObj.getString(GenConstants.TREE_PARENT_CODE)); } - if (paramsObj.containsKey(GenConstants.TREE_NAME)) - { + if (paramsObj.containsKey(GenConstants.TREE_NAME)) { context.put("tree_name", paramsObj.getString(GenConstants.TREE_NAME)); } } - public static void setSubVelocityContext(VelocityContext context, GenTable genTable) - { + public static void setSubVelocityContext(VelocityContext context, GenTable genTable) { GenTable subTable = genTable.getSubTable(); String subTableName = genTable.getSubTableName(); String subTableFkName = genTable.getSubTableFkName(); @@ -130,11 +131,10 @@ public class VelocityUtils /** * 获取模板信息 - * + * * @return 模板列表 */ - public static List getTemplateList(String tplCategory) - { + public static List getTemplateList(String tplCategory) { List templates = new ArrayList(); templates.add("vm/java/domain.java.vm"); templates.add("vm/java/mapper.java.vm"); @@ -142,17 +142,12 @@ public class VelocityUtils templates.add("vm/java/serviceImpl.java.vm"); templates.add("vm/java/controller.java.vm"); templates.add("vm/xml/mapper.xml.vm"); - if (GenConstants.TPL_CRUD.equals(tplCategory)) - { + if (GenConstants.TPL_CRUD.equals(tplCategory)) { templates.add("vm/html/list.html.vm"); - } - else if (GenConstants.TPL_TREE.equals(tplCategory)) - { + } else if (GenConstants.TPL_TREE.equals(tplCategory)) { templates.add("vm/html/tree.html.vm"); templates.add("vm/html/list-tree.html.vm"); - } - else if (GenConstants.TPL_SUB.equals(tplCategory)) - { + } else if (GenConstants.TPL_SUB.equals(tplCategory)) { templates.add("vm/html/list.html.vm"); templates.add("vm/java/sub-domain.java.vm"); } @@ -165,8 +160,7 @@ public class VelocityUtils /** * 获取文件名 */ - public static String getFileName(String template, GenTable genTable) - { + public static String getFileName(String template, GenTable genTable) { // 文件名称 String fileName = ""; // 包路径 @@ -182,56 +176,32 @@ public class VelocityUtils String mybatisPath = MYBATIS_PATH + "/" + moduleName; String htmlPath = TEMPLATES_PATH + "/" + moduleName + "/" + businessName; - if (template.contains("domain.java.vm")) - { + if (template.contains("domain.java.vm")) { fileName = StringUtils.format("{}/domain/{}.java", javaPath, className); } - if (template.contains("sub-domain.java.vm") && StringUtils.equals(GenConstants.TPL_SUB, genTable.getTplCategory())) - { + if (template.contains("sub-domain.java.vm") && StringUtils.equals(GenConstants.TPL_SUB, genTable.getTplCategory())) { fileName = StringUtils.format("{}/domain/{}.java", javaPath, genTable.getSubTable().getClassName()); - } - else if (template.contains("mapper.java.vm")) - { + } else if (template.contains("mapper.java.vm")) { fileName = StringUtils.format("{}/mapper/{}Mapper.java", javaPath, className); - } - else if (template.contains("service.java.vm")) - { + } else if (template.contains("service.java.vm")) { fileName = StringUtils.format("{}/service/I{}Service.java", javaPath, className); - } - else if (template.contains("serviceImpl.java.vm")) - { + } else if (template.contains("serviceImpl.java.vm")) { fileName = StringUtils.format("{}/service/impl/{}ServiceImpl.java", javaPath, className); - } - else if (template.contains("controller.java.vm")) - { + } else if (template.contains("controller.java.vm")) { fileName = StringUtils.format("{}/controller/{}Controller.java", javaPath, className); - } - else if (template.contains("mapper.xml.vm")) - { + } else if (template.contains("mapper.xml.vm")) { fileName = StringUtils.format("{}/{}Mapper.xml", mybatisPath, className); - } - else if (template.contains("list.html.vm")) - { + } else if (template.contains("list.html.vm")) { fileName = StringUtils.format("{}/{}.html", htmlPath, businessName); - } - else if (template.contains("list-tree.html.vm")) - { + } else if (template.contains("list-tree.html.vm")) { fileName = StringUtils.format("{}/{}.html", htmlPath, businessName); - } - else if (template.contains("tree.html.vm")) - { + } else if (template.contains("tree.html.vm")) { fileName = StringUtils.format("{}/tree.html", htmlPath); - } - else if (template.contains("add.html.vm")) - { + } else if (template.contains("add.html.vm")) { fileName = StringUtils.format("{}/add.html", htmlPath); - } - else if (template.contains("edit.html.vm")) - { + } else if (template.contains("edit.html.vm")) { fileName = StringUtils.format("{}/edit.html", htmlPath); - } - else if (template.contains("sql.vm")) - { + } else if (template.contains("sql.vm")) { fileName = businessName + "Menu.sql"; } return fileName; @@ -239,11 +209,10 @@ public class VelocityUtils /** * 获取项目文件路径 - * + * * @return 路径 */ - public static String getProjectPath() - { + public static String getProjectPath() { String packageName = GenConfig.getPackageName(); StringBuffer projectPath = new StringBuffer(); projectPath.append("main/java/"); @@ -254,12 +223,11 @@ public class VelocityUtils /** * 获取包前缀 - * + * * @param packageName 包名称 * @return 包前缀名称 */ - public static String getPackagePrefix(String packageName) - { + public static String getPackagePrefix(String packageName) { int lastIndex = packageName.lastIndexOf("."); String basePackage = StringUtils.substring(packageName, 0, lastIndex); return basePackage; @@ -267,27 +235,21 @@ public class VelocityUtils /** * 根据列类型获取导入包 - * + * * @param genTable 业务表对象 * @return 返回需要导入的包列表 */ - public static HashSet getImportList(GenTable genTable) - { + public static HashSet getImportList(GenTable genTable) { List columns = genTable.getColumns(); GenTable subGenTable = genTable.getSubTable(); HashSet importList = new HashSet(); - if (StringUtils.isNotNull(subGenTable)) - { + if (StringUtils.isNotNull(subGenTable)) { importList.add("java.util.List"); } - for (GenTableColumn column : columns) - { - if (!column.isSuperColumn() && GenConstants.TYPE_DATE.equals(column.getJavaType())) - { + for (GenTableColumn column : columns) { + if (!column.isSuperColumn() && GenConstants.TYPE_DATE.equals(column.getJavaType())) { importList.add("java.util.Date"); - } - else if (!column.isSuperColumn() && GenConstants.TYPE_BIGDECIMAL.equals(column.getJavaType())) - { + } else if (!column.isSuperColumn() && GenConstants.TYPE_BIGDECIMAL.equals(column.getJavaType())) { importList.add("java.math.BigDecimal"); } } @@ -296,26 +258,23 @@ public class VelocityUtils /** * 获取权限前缀 - * - * @param moduleName 模块名称 + * + * @param moduleName 模块名称 * @param businessName 业务名称 * @return 返回权限前缀 */ - public static String getPermissionPrefix(String moduleName, String businessName) - { + public static String getPermissionPrefix(String moduleName, String businessName) { return StringUtils.format("{}:{}", moduleName, businessName); } /** * 获取上级菜单ID字段 - * + * * @param options 生成其他选项 * @return 上级菜单ID字段 */ - public static String getParentMenuId(JSONObject paramsObj) - { - if (StringUtils.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.PARENT_MENU_ID)) - { + public static String getParentMenuId(JSONObject paramsObj) { + if (StringUtils.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.PARENT_MENU_ID)) { return paramsObj.getString(GenConstants.PARENT_MENU_ID); } return DEFAULT_PARENT_MENU_ID; @@ -323,14 +282,12 @@ public class VelocityUtils /** * 获取树编码 - * + * * @param options 生成其他选项 * @return 树编码 */ - public static String getTreecode(JSONObject paramsObj) - { - if (paramsObj.containsKey(GenConstants.TREE_CODE)) - { + public static String getTreecode(JSONObject paramsObj) { + if (paramsObj.containsKey(GenConstants.TREE_CODE)) { return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_CODE)); } return StringUtils.EMPTY; @@ -338,14 +295,12 @@ public class VelocityUtils /** * 获取树父编码 - * + * * @param options 生成其他选项 * @return 树父编码 */ - public static String getTreeParentCode(JSONObject paramsObj) - { - if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) - { + public static String getTreeParentCode(JSONObject paramsObj) { + if (paramsObj.containsKey(GenConstants.TREE_PARENT_CODE)) { return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_PARENT_CODE)); } return StringUtils.EMPTY; @@ -353,14 +308,12 @@ public class VelocityUtils /** * 获取树名称 - * + * * @param options 生成其他选项 * @return 树名称 */ - public static String getTreeName(JSONObject paramsObj) - { - if (paramsObj.containsKey(GenConstants.TREE_NAME)) - { + public static String getTreeName(JSONObject paramsObj) { + if (paramsObj.containsKey(GenConstants.TREE_NAME)) { return StringUtils.toCamelCase(paramsObj.getString(GenConstants.TREE_NAME)); } return StringUtils.EMPTY; @@ -368,24 +321,20 @@ public class VelocityUtils /** * 获取需要在哪一列上面显示展开按钮 - * + * * @param genTable 业务表对象 * @return 展开按钮列序号 */ - public static int getExpandColumn(GenTable genTable) - { + public static int getExpandColumn(GenTable genTable) { String options = genTable.getOptions(); JSONObject paramsObj = JSONObject.parseObject(options); String treeName = paramsObj.getString(GenConstants.TREE_NAME); int num = 0; - for (GenTableColumn column : genTable.getColumns()) - { - if (column.isList()) - { + for (GenTableColumn column : genTable.getColumns()) { + if (column.isList()) { num++; String columnName = column.getColumnName(); - if (columnName.equals(treeName)) - { + if (columnName.equals(treeName)) { break; } } diff --git a/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml index cab47441a..b916bf676 100644 --- a/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml +++ b/ruoyi-generator/src/main/resources/mapper/generator/GenTableColumnMapper.xml @@ -15,6 +15,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -30,7 +31,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, dict_type, sort, create_by, create_time, update_by, update_time from gen_table_column + select column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit,is_readonly, is_list, is_query, query_type, html_type, dict_type, sort, create_by, create_time, update_by, update_time from gen_table_column @@ -98,24 +100,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
@@ -73,6 +73,21 @@
+ +
+
+
+ +
+ + + + +
+
+
+
+
@@ -301,7 +316,7 @@ onReorderRow: onReorderRow, columns: [{ title: "序号", - width: "5%", + width: "6%", formatter: function (value, row, index) { // 编号隐藏域 var columnIdHtml = $.common.sprintf("", index, row.columnId); @@ -361,7 +376,7 @@ { field: 'isInsert', title: '插入', - width: "5%", + width: "6%", formatter: function (value, row, index) { var isCheck = value == 1 ? 'checked' : ''; var html = $.common.sprintf("", index, isCheck); @@ -371,7 +386,7 @@ { field: 'isEdit', title: '编辑', - width: "5%", + width: "6%", formatter: function (value, row, index) { var isCheck = value == 1 ? 'checked' : ''; var html = $.common.sprintf("", index, isCheck); @@ -381,7 +396,7 @@ { field: 'isList', title: '列表', - width: "5%", + width: "6%", formatter: function (value, row, index) { var isCheck = value == 1 ? 'checked' : ''; var html = $.common.sprintf("", index, isCheck); @@ -391,7 +406,7 @@ { field: 'isQuery', title: '查询', - width: "5%", + width: "6%", formatter: function (value, row, index) { var isCheck = value == 1 ? 'checked' : ''; var html = $.common.sprintf("", index, isCheck); @@ -410,17 +425,27 @@ { field: 'isRequired', title: '必填', - width: "5%", + width: "6%", formatter: function (value, row, index) { var isCheck = value == 1 ? 'checked' : ''; var html = $.common.sprintf("", index, isCheck); return html; } }, + { + field: 'isReadonly', + title: '只读', + width: "6%", + formatter: function (value, row, index) { + var isCheck = value == 1 ? 'checked' : ''; + var html = $.common.sprintf("", index, isCheck); + return html; + } + }, { field: 'htmlType', title: '显示类型', - width: "12%", + width: "11%", formatter: function (value, row, index) { var data = [{ index: index, htmlType: value }]; return $("#htmlTypeTpl").tmpl(data).html(); diff --git a/ruoyi-generator/src/main/resources/vm/html/add.html.vm b/ruoyi-generator/src/main/resources/vm/html/add.html.vm index 22be586ec..584464384 100644 --- a/ruoyi-generator/src/main/resources/vm/html/add.html.vm +++ b/ruoyi-generator/src/main/resources/vm/html/add.html.vm @@ -2,85 +2,161 @@ - #foreach($column in $columns) - #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "datetime") - - #break - #end - #end - #foreach($column in $columns) - #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "upload") - - #break - #end - #end - #foreach($column in $columns) - #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "summernote") - - #break - #end - #end +#foreach($column in $columns) +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "datetime") + +#break +#end +#end +#foreach($column in $columns) +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "upload") + +#break +#end +#end +#foreach($column in $columns) +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "summernote") + +#break +#end +#end -
-
- #if($table.sub) +
+ +#if($table.sub)

${functionName}信息

- #end - - #set($cumvar=0) - #set($field=$column.javaField) -
- #foreach($column in $effectivecols) - #set($field=$column.javaField) - ##if($column.insert && !$column.pk) - ##if(($column.usableColumn) || (!$column.superColumn)) - #set($parentheseIndex=$column.columnComment.indexOf("(")) - #if($parentheseIndex != -1) - #set($comment=$column.columnComment.substring(0, $parentheseIndex)) - #else - #set($comment=$column.columnComment) - #end - #set($dictType=$column.dictType) - - #set($cumvar=$cumvar+1) - #if($cumvar%2==1) - #parse("vm/html/formtpl.vm") - #end - - ##end - ##end - #end -
- - #set($cumvar=0) - #set($field=$column.javaField) -
- #foreach($column in $effectivecols) - #set($field=$column.javaField) - ##if($column.insert && !$column.pk) - ##if(($column.usableColumn) || (!$column.superColumn)) - #set($parentheseIndex=$column.columnComment.indexOf("(")) - #if($parentheseIndex != -1) - #set($comment=$column.columnComment.substring(0, $parentheseIndex)) - #else - #set($comment=$column.columnComment) - #end - #set($dictType=$column.dictType) - - #set($cumvar=$cumvar+1) - - #if($cumvar%2==0) - #parse("vm/html/formtpl.vm") - #end - - ##end - ##end - #end -
- - - #if($table.sub) +#end +#foreach($column in $columns) +#set($field=$column.javaField) +#if($column.insert && !$column.pk) +#if(($column.usableColumn) || (!$column.superColumn)) +#set($parentheseIndex=$column.columnComment.indexOf("(")) +#if($parentheseIndex != -1) +#set($comment=$column.columnComment.substring(0, $parentheseIndex)) +#else +#set($comment=$column.columnComment) +#end +#set($dictType=$column.dictType) +#if("" != $treeParentCode && $column.javaField == $treeParentCode) +
+ +
+
+#set($BusinessName=$businessName.substring(0,1).toUpperCase() + ${businessName.substring(1)}) +#set($treeId = "${className}?.${treeCode}") + + + +
+
+
+#elseif($column.htmlType == "input") +
+ +
+ +
+
+#elseif($column.htmlType == "upload") +
+ +
+ +
+ +
+
+
+#elseif($column.htmlType == "summernote") +
+ +
+ +
+
+
+#elseif($column.htmlType == "select" && "" != $dictType) +
+ +
+ +
+
+#elseif($column.htmlType == "select" && $dictType) +
+ +
+ + 代码生成请选择字典属性 +
+
+#elseif($column.htmlType == "checkbox" && "" != $dictType) +
+ +
+ +
+
+#elseif($column.htmlType == "checkbox" && $dictType) +
+ +
+ + 代码生成请选择字典属性 +
+
+#elseif($column.htmlType == "radio" && "" != $dictType) +
+ +
+
+ + +
+
+
+#elseif($column.htmlType == "radio" && $dictType) +
+ +
+
+ + +
+ 代码生成请选择字典属性 +
+
+#elseif($column.htmlType == "datetime") +
+ +
+
+ + +
+
+
+#elseif($column.htmlType == "textarea") +
+ +
+ +
+
+#end +#end +#end +#end +#if($table.sub)

${subTable.functionName}信息

@@ -91,113 +167,112 @@
- #end -
-
- - #foreach($column in $columns) - #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "datetime") - - #break - #end - #end - #foreach($column in $columns) - #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "upload") - - #break - #end - #end - #foreach($column in $columns) - #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "summernote") - - #break - #end - #end - +#end + \ No newline at end of file diff --git a/ruoyi-generator/src/main/resources/vm/html/col2/add.html.vm b/ruoyi-generator/src/main/resources/vm/html/col2/add.html.vm new file mode 100644 index 000000000..374c614d3 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/html/col2/add.html.vm @@ -0,0 +1,312 @@ + + + + +#foreach($column in $columns) +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "datetime") + + #break +#end +#end +#foreach($column in $columns) +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "upload") + + #break +#end +#end +#foreach($column in $columns) +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "summernote") + + #break +#end +#end + + +
+
+#if($table.sub) +

${functionName}信息

+#end + +
+#set($cumvar=0) +#set($field=$column.javaField) +#set($colcount=$effectivecols.size()) +#foreach($column in $effectivecols) +#set($field=$column.javaField) +#set($parentheseIndex=$column.columnComment.indexOf("(")) +#if($parentheseIndex != -1) +#set($comment=$column.columnComment.substring(0, $parentheseIndex)) +#else +#set($comment=$column.columnComment) +#end +#set($dictType=$column.dictType) + +#set($cumvar=$cumvar+1) +#if($column.htmlType == "textarea") +#if($cumvar%2==0) +
+#end +
+ +
+ +
+
+#else +#if($cumvar%2==1) +
+#end +#parse("\vm\html\col2\formtpl.vm") +#if($cumvar%2==0 || ($cumvar>=$colcount)) +
+#end +#end +#end + +#* +
## col-md-6 + #foreach($column in $effectivecols) + #set($field=$column.javaField) + ##if($column.insert && !$column.pk) + ##if(($column.usableColumn) || (!$column.superColumn)) + #set($parentheseIndex=$column.columnComment.indexOf("(")) + #if($parentheseIndex != -1) + #set($comment=$column.columnComment.substring(0, $parentheseIndex)) + #else + #set($comment=$column.columnComment) + #end + #set($dictType=$column.dictType) + + ##set($cumvar=$cumvar+1) + ##if($cumvar%2==1) + #parse("vm/html/formtpl.vm") + ##end + + ##end + ##end + #end +*# + + + #if($table.sub) +

${subTable.functionName}信息

+
+
+ + +
+
+
+
+
+ #end + +
+ + #foreach($column in $columns) + #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "datetime") + + #break + #end + #end + #foreach($column in $columns) + #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "upload") + + #break + #end + #end + #foreach($column in $columns) + #if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "summernote") + + #break + #end + #end + + + \ No newline at end of file diff --git a/ruoyi-generator/src/main/resources/vm/html/col2/edit.html.vm b/ruoyi-generator/src/main/resources/vm/html/col2/edit.html.vm new file mode 100644 index 000000000..5443e6fcf --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/html/col2/edit.html.vm @@ -0,0 +1,307 @@ + + + + +#foreach($column in $columns) +#if($column.edit && !$column.superColumn && !$column.pk && $column.htmlType == "datetime") + +#break +#end +#end +#foreach($column in $columns) +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "upload") + +#break +#end +#end +#foreach($column in $columns) +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "summernote") + +#break +#end +#end + + +
+
+#if($table.sub) +

${functionName}信息

+#end + + +#set($cumvar=0) +#set($colcount=$effectivecols.size()) +#foreach($column in $effectivecols) +#if($column.edit && !$column.pk) +#if(($column.usableColumn) || (!$column.superColumn)) +#set($parentheseIndex=$column.columnComment.indexOf("(")) +#if($parentheseIndex != -1) +#set($comment=$column.columnComment.substring(0, $parentheseIndex)) +#else +#set($comment=$column.columnComment) +#end +#set($field=$column.javaField) +#set($dictType=$column.dictType) + +#set($cumvar=$cumvar+1) +#if($column.htmlType == "textarea") +#if($cumvar%2==0) +
+
+#end +
+
+
+ +
+ +
+
+
+
+#else +#if($cumvar%2==1) +
+
+#end +#parse("\vm\html\col2\formedittpl.vm") +#if($cumvar%2==0 || ($cumvar>=$colcount)) +
+
+#end +#end + +#end +#end +#end +#if($table.sub) +

${subTable.functionName}信息

+
+
+ + +
+
+
+
+
+#end + + + +#foreach($column in $columns) +#if($column.edit && !$column.superColumn && !$column.pk && $column.htmlType == "datetime") + +#break +#end +#end +#foreach($column in $columns) +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "upload") + +#break +#end +#end +#foreach($column in $columns) +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "summernote") + +#break +#end +#end + + + \ No newline at end of file diff --git a/ruoyi-generator/src/main/resources/vm/html/col2/formedittpl.vm b/ruoyi-generator/src/main/resources/vm/html/col2/formedittpl.vm new file mode 100644 index 000000000..92a459882 --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/html/col2/formedittpl.vm @@ -0,0 +1,87 @@ +#if("" != $treeParentCode && $column.javaField == $treeParentCode) + + +
+
+ #set($BusinessName=$businessName.substring(0,1).toUpperCase() + ${businessName.substring(1)}) + #set($treeId = "${className}?.${treeCode}") + + + +
+
+#elseif($column.htmlType == "input") + +
+ +
+#elseif($column.htmlType == "upload") + +
+ +
+ +
+
+#elseif($column.htmlType == "summernote") + +
+ +
+
+#elseif($column.htmlType == "select" && "" != $dictType) + +
+ +
+#elseif($column.htmlType == "select" && $dictType) + +
+ + 代码生成请选择字典属性 +
+#elseif($column.htmlType == "checkbox" && "" != $dictType) + +
+ +
+#elseif($column.htmlType == "checkbox" && $dictType) + +
+ + 代码生成请选择字典属性 +
+#elseif($column.htmlType == "radio" && "" != $dictType) + +
+
+ + +
+
+#elseif($column.htmlType == "radio" && $dictType) + +
+
+ + +
+ 代码生成请选择字典属性 +
+#elseif($column.htmlType == "datetime") + +
+
+ + +
+
+#end \ No newline at end of file diff --git a/ruoyi-generator/src/main/resources/vm/html/col2/formtpl.vm b/ruoyi-generator/src/main/resources/vm/html/col2/formtpl.vm new file mode 100644 index 000000000..6bcbc2b8c --- /dev/null +++ b/ruoyi-generator/src/main/resources/vm/html/col2/formtpl.vm @@ -0,0 +1,104 @@ +#if("" != $treeParentCode && $column.javaField == $treeParentCode) + + +
+
+ #set($BusinessName=$businessName.substring(0,1).toUpperCase() + ${businessName.substring(1)}) + #set($treeId = "${className}?.${treeCode}") + + + +
+
+#elseif($column.htmlType == "input") + + +
+ +
+#elseif($column.htmlType == "upload") + +
+ +
+ +
+
+#elseif($column.htmlType == "summernote") + + +
+ +
+
+ +#elseif($column.htmlType == "select" && "" != $dictType) + + +
+ +
+ +#elseif($column.htmlType == "select" && $dictType) + + +
+ + 代码生成请选择字典属性 +
+ +#elseif($column.htmlType == "checkbox" && "" != $dictType) + + +
+ +
+ +#elseif($column.htmlType == "checkbox" && $dictType) + + +
+ + 代码生成请选择字典属性 +
+ +#elseif($column.htmlType == "radio" && "" != $dictType) + + +
+
+ + +
+
+ +#elseif($column.htmlType == "radio" && $dictType) + + +
+
+ + +
+ 代码生成请选择字典属性 +
+ +#elseif($column.htmlType == "datetime") + + +
+
+ + +
+
+ +#end \ No newline at end of file diff --git a/ruoyi-generator/src/main/resources/vm/html/formtpl.vm b/ruoyi-generator/src/main/resources/vm/html/formtpl.vm deleted file mode 100644 index 61153d7fe..000000000 --- a/ruoyi-generator/src/main/resources/vm/html/formtpl.vm +++ /dev/null @@ -1,115 +0,0 @@ -#if("" != $treeParentCode && $column.javaField == $treeParentCode) -
- -
-
- #set($BusinessName=$businessName.substring(0,1).toUpperCase() + ${businessName.substring(1)}) - #set($treeId = "${className}?.${treeCode}") - - - -
-
-
-#elseif($column.htmlType == "input") -
- -
- -
-
-#elseif($column.htmlType == "upload") -
- -
- -
- -
-
-
-#elseif($column.htmlType == "summernote") -
- -
- -
-
-
-#elseif($column.htmlType == "select" && "" != $dictType) -
- -
- -
-
-#elseif($column.htmlType == "select" && $dictType) -
- -
- - 代码生成请选择字典属性 -
-
-#elseif($column.htmlType == "checkbox" && "" != $dictType) -
- -
- -
-
-#elseif($column.htmlType == "checkbox" && $dictType) -
- -
- - 代码生成请选择字典属性 -
-
-#elseif($column.htmlType == "radio" && "" != $dictType) -
- -
-
- - -
-
-
-#elseif($column.htmlType == "radio" && $dictType) -
- -
-
- - -
- 代码生成请选择字典属性 -
-
-#elseif($column.htmlType == "datetime") -
- -
-
- - -
-
-
-#elseif($column.htmlType == "textarea") -
- -
- -
-
-#end \ No newline at end of file diff --git a/sql/脚本/2020/12/12/生成代码添加字段.sql b/sql/脚本/2020/12/12/生成代码添加字段.sql new file mode 100644 index 000000000..cb7ae7adb --- /dev/null +++ b/sql/脚本/2020/12/12/生成代码添加字段.sql @@ -0,0 +1,3 @@ + -- 生成代码 + alter table gen_table add form_cols char(1) default '2' COMMENT '表单列示 1单列 2两列 3三列 4四列' ; + alter table gen_table_column add `is_readonly` char(1) DEFAULT 0 COMMENT '是否自读字段(0否 1是)' ;