瀏覽代碼

Merge branch 'master' of http://192.168.101.10:13000/boman/boman-framwork

sr 4 年之前
父節點
當前提交
d8fa1a0d6d
共有 24 個文件被更改,包括 714 次插入328 次删除
  1. 26 0
      boman-api/boman-api-system/src/main/java/com/boman/system/api/RemoteSysMenuService.java
  2. 6 6
      boman-api/boman-api-system/src/main/java/com/boman/system/api/domain/SysMenu.java
  3. 10 0
      boman-modules/boman-gen/src/main/java/com/boman/gen/controller/GenController.java
  4. 39 0
      boman-modules/boman-gen/src/main/java/com/boman/gen/domain/GenTable.java
  5. 50 0
      boman-modules/boman-gen/src/main/java/com/boman/gen/domain/GenTableColumn.java
  6. 129 0
      boman-modules/boman-gen/src/main/java/com/boman/gen/service/GenTableServiceImpl.java
  7. 7 0
      boman-modules/boman-gen/src/main/java/com/boman/gen/service/IGenTableService.java
  8. 40 15
      boman-modules/boman-gen/src/main/resources/mapper/generator/GenTableColumnMapper.xml
  9. 16 4
      boman-modules/boman-gen/src/main/resources/mapper/generator/GenTableMapper.xml
  10. 0 6
      boman-modules/boman-system/pom.xml
  11. 1 12
      boman-modules/boman-system/src/main/java/com/boman/system/controller/SysMenuController.java
  12. 2 1
      boman-modules/boman-system/src/main/java/com/boman/system/domain/vo/TreeSelect.java
  13. 1 2
      boman-modules/boman-system/src/main/java/com/boman/system/mapper/SysMenuMapper.java
  14. 2 9
      boman-modules/boman-system/src/main/java/com/boman/system/service/ISysMenuService.java
  15. 1 133
      boman-modules/boman-system/src/main/java/com/boman/system/service/impl/SysMenuServiceImpl.java
  16. 2 2
      boman-modules/boman-system/src/main/java/com/boman/system/service/impl/SysScheduleServiceImpl.java
  17. 13 0
      boman-web-core/src/main/java/com/boman/web/core/constant/FormDataConstant.java
  18. 39 2
      boman-web-core/src/main/java/com/boman/web/core/service/TableServiceCmdService.java
  19. 9 0
      ruoyi-ui/src/api/tool/gen.js
  20. 55 13
      ruoyi-ui/src/views/system/table/index.vue
  21. 72 18
      ruoyi-ui/src/views/tool/gen/basicInfoForm.vue
  22. 14 75
      ruoyi-ui/src/views/tool/gen/editTable.vue
  23. 19 19
      ruoyi-ui/src/views/tool/gen/genInfoForm.vue
  24. 161 11
      ruoyi-ui/src/views/tool/gen/index.vue

+ 26 - 0
boman-api/boman-api-system/src/main/java/com/boman/system/api/RemoteSysMenuService.java

@@ -0,0 +1,26 @@
+package com.boman.system.api;
+
+import com.boman.common.core.constant.ServiceNameConstants;
+import com.boman.common.core.web.domain.AjaxResult;
+import com.boman.system.api.domain.SysMenu;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * @author tjf
+ * @Date: 2021/04/13/9:53
+ */
+@FeignClient(contextId = "remoteSysMenuService", value = ServiceNameConstants.SYSTEM_SERVICE)
+public interface RemoteSysMenuService {
+
+    /**
+     * 新增菜单
+     * @param menu 菜单
+     * @return
+     */
+    @PostMapping("/menu")
+    public AjaxResult add(@Validated @RequestBody SysMenu menu);
+
+}

+ 6 - 6
boman-modules/boman-system/src/main/java/com/boman/system/domain/SysMenu.java → boman-api/boman-api-system/src/main/java/com/boman/system/api/domain/SysMenu.java

@@ -1,13 +1,13 @@
-package com.boman.system.domain;
+package com.boman.system.api.domain;
 
-import java.util.ArrayList;
-import java.util.List;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.Size;
+import com.boman.common.core.web.domain.BaseEntity;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 
-import com.boman.common.core.web.domain.BaseEntity;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 菜单权限表 sys_menu

+ 10 - 0
boman-modules/boman-gen/src/main/java/com/boman/gen/controller/GenController.java

@@ -208,4 +208,14 @@ public class GenController extends BaseController {
         response.setContentType("application/octet-stream; charset=UTF-8");
         IOUtils.write(data, response.getOutputStream());
     }
+
+    /**
+     * @Description 数据表 新增功能
+     * @Author: tjf
+     * @Date: 2021/3/24
+     */
+    @PostMapping("/addTable")
+    public AjaxResult add(@Validated @RequestBody GenTable genTable) {
+        return genTableService.insertGenTable(genTable);
+    }
 }

+ 39 - 0
boman-modules/boman-gen/src/main/java/com/boman/gen/domain/GenTable.java

@@ -130,6 +130,21 @@ public class GenTable extends BaseEntity
      */
     private String triggerSubmit;
 
+    /**
+     * 实际数据库名称
+     */
+    private String realTableName;
+
+    /**
+     * 过滤条件
+     */
+    private String filterConditions;
+
+    /**
+     * 扩展属性
+     */
+    private String extendedAttributes;
+
 
     /** 树编码字段 */
     private String treeCode;
@@ -146,6 +161,30 @@ public class GenTable extends BaseEntity
     /** 上级菜单名称字段 */
     private String parentMenuName;
 
+    public String getRealTableName() {
+        return realTableName;
+    }
+
+    public void setRealTableName(String realTableName) {
+        this.realTableName = realTableName;
+    }
+
+    public String getFilterConditions() {
+        return filterConditions;
+    }
+
+    public void setFilterConditions(String filterConditions) {
+        this.filterConditions = filterConditions;
+    }
+
+    public String getExtendedAttributes() {
+        return extendedAttributes;
+    }
+
+    public void setExtendedAttributes(String extendedAttributes) {
+        this.extendedAttributes = extendedAttributes;
+    }
+
     public String getTriggerCreate() {
         return triggerCreate;
     }

+ 50 - 0
boman-modules/boman-gen/src/main/java/com/boman/gen/domain/GenTableColumn.java

@@ -92,6 +92,56 @@ public class GenTableColumn extends BaseEntity
     /** hr的孩子们 */
     private List<GenTableColumn> hrChildren;
 
+    /**
+     * 字段排序规则
+     */
+    private String mask;
+    /**
+     * 默认值
+     */
+    private String defaultValue;
+
+    /**
+     * 行数
+     */
+    private String numRows;
+    /**
+     * 列数
+     */
+    private String numColumns;
+
+    public String getMask() {
+        return mask;
+    }
+
+    public void setMask(String mask) {
+        this.mask = mask;
+    }
+
+    public String getDefaultValue() {
+        return defaultValue;
+    }
+
+    public void setDefaultValue(String defaultValue) {
+        this.defaultValue = defaultValue;
+    }
+
+    public String getNumRows() {
+        return numRows;
+    }
+
+    public void setNumRows(String numRows) {
+        this.numRows = numRows;
+    }
+
+    public String getNumColumns() {
+        return numColumns;
+    }
+
+    public void setNumColumns(String numColumns) {
+        this.numColumns = numColumns;
+    }
+
     public String getForeignKey() {
         return foreignKey;
     }

+ 129 - 0
boman-modules/boman-gen/src/main/java/com/boman/gen/service/GenTableServiceImpl.java

@@ -11,6 +11,11 @@ import java.util.stream.Collectors;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
+import com.boman.common.core.constant.UserConstants;
+import com.boman.common.core.utils.DateUtils;
+import com.boman.common.core.web.domain.AjaxResult;
+import com.boman.system.api.RemoteSysMenuService;
+import com.boman.system.api.domain.SysMenu;
 import org.apache.commons.io.IOUtils;
 import org.apache.velocity.Template;
 import org.apache.velocity.VelocityContext;
@@ -51,6 +56,9 @@ public class GenTableServiceImpl implements IGenTableService {
 
     @Autowired
     private GenTableColumnMapper genTableColumnMapper;
+
+    @Autowired
+    private RemoteSysMenuService remoteSysMenuService;
     /**
      * 查询业务信息
      *
@@ -373,6 +381,127 @@ public class GenTableServiceImpl implements IGenTableService {
         }
     }
 
+    /**
+     * 代码生成业务表新增
+     * 注意解决事务问题
+     *
+     * @param genTable
+     * @return
+     */
+    @Override
+    public AjaxResult insertGenTable(GenTable genTable) {
+        //新增表成功的时候,新增字段公共字段
+        int i = genTableMapper.insertGenTable(genTable);
+        if (i > 0) {
+            insertCommonColumn(genTable.getTableId());
+            //判断是否是菜单
+            isMenu(genTable);
+            return AjaxResult.success();
+        }
+        return AjaxResult.error();
+    }
+
+    /**
+     * 新建表时新增对应公共字段
+     *
+     * @param tableId
+     */
+    public void insertCommonColumn(Long tableId) {
+        GenTableColumn genTableColumnLog = new GenTableColumn();
+        GenTableColumn genTableColumnBaseInfo = new GenTableColumn();
+
+        genTableColumnLog.setTableId(tableId);
+        genTableColumnLog.setColumnName("log_info");
+        genTableColumnLog.setColumnComment("日志信息");
+        genTableColumnLog.setColumnType("varchar(255)");
+        genTableColumnLog.setIsPk("0");
+        genTableColumnLog.setIsIncrement("0");
+        genTableColumnLog.setIsInsert("1");
+        genTableColumnLog.setQueryType("LIKE");
+        genTableColumnLog.setHtmlType("input");
+        genTableColumnLog.setSort(7);
+        genTableColumnLog.setCreateBy("admin");
+        genTableColumnLog.setCreateTime(DateUtils.getNowDate());
+        genTableColumnMapper.insertGenTableColumn(genTableColumnLog);
+
+        genTableColumnBaseInfo.setTableId(tableId);
+        genTableColumnBaseInfo.setColumnName("base_info");
+        genTableColumnBaseInfo.setColumnComment("基本信息");
+        genTableColumnBaseInfo.setColumnType("varchar(255)");
+        genTableColumnBaseInfo.setIsPk("0");
+        genTableColumnBaseInfo.setIsIncrement("0");
+        genTableColumnBaseInfo.setIsInsert("1");
+        genTableColumnBaseInfo.setQueryType("LIKE");
+        genTableColumnBaseInfo.setHtmlType("input");
+        genTableColumnBaseInfo.setSort(8);
+        genTableColumnBaseInfo.setCreateBy("admin");
+        genTableColumnBaseInfo.setCreateTime(DateUtils.getNowDate());
+        genTableColumnMapper.insertGenTableColumn(genTableColumnBaseInfo);
+
+
+        String[] columnName = new String[]{"id", "create_by", "create_time", "update_by", "update_time", "is_del"};
+        String[] columnComment = new String[]{"编号","创建者", "创建时间", "更新者", "更新时间", "是否删除"};
+        String[] columnType = new String[]{"bigint(20)","varchar(64)", "datetime", "varchar(64)", "datetime", "char(1)"};
+        String[] htmlType = new String[]{"input", "input", "datetime", "input", "datetime", "select"};
+        for (int i = 0; i < columnName.length; i++) {
+            GenTableColumn genTableColumn = new GenTableColumn();
+            genTableColumn.setTableId(tableId);
+            genTableColumn.setColumnName(columnName[i]);
+            genTableColumn.setColumnComment(columnComment[i]);
+            genTableColumn.setColumnType(columnType[i]);
+            genTableColumn.setIsPk("0");
+            genTableColumn.setIsIncrement("0");
+            genTableColumn.setIsInsert("1");
+            genTableColumn.setQueryType("EQ");
+            genTableColumn.setHtmlType(htmlType[i]);
+            genTableColumn.setSort(i + 1);
+            genTableColumn.setCreateBy("admin");
+            genTableColumn.setCreateTime(DateUtils.getNowDate());
+            genTableColumn.setHrParentId(genTableColumnBaseInfo.getColumnId());
+            if (i == 0){
+                genTableColumn.setIsIncrement("1");
+                genTableColumn.setHrParentId(genTableColumnLog.getColumnId());
+            }
+            genTableColumnMapper.insertGenTableColumn(genTableColumn);
+        }
+    }
+
+    /**
+     * 判断是否是菜单
+     * @param genTable
+     */
+    public void isMenu(GenTable genTable) {
+        String isMenu = genTable.getIsMenu();
+        if (StringUtils.isNotBlank(isMenu) && isMenu.equals(UserConstants.NOT_UNIQUE)) {
+            //先生成主菜单
+            SysMenu sysMenu = new SysMenu();
+            //表描述当菜单名称
+            sysMenu.setMenuName(genTable.getTableComment());
+            sysMenu.setParentId(0L);
+            sysMenu.setOrderNum("1");
+            //路由地址
+            sysMenu.setPath(genTable.getBusinessName());
+            sysMenu.setComponent(genTable.getModuleName() + "/" + genTable.getTableComment() + "/index");
+            sysMenu.setMenuType("C");
+            sysMenu.setIcon("system");
+            sysMenu.setCreateBy(SecurityUtils.getUsername());
+            sysMenu.setSysTableName(genTable.getTableName());
+            remoteSysMenuService.add(sysMenu);
+            //是菜单,生成crud按钮
+            for (int i = 0; i < Constants.MENU_NAME.length; i++) {
+                String[] menuName = Constants.MENU_NAME;
+                SysMenu menu = new SysMenu();
+                menu.setParentId(sysMenu.getId());
+                menu.setMenuName(menuName[i]);
+                menu.setOrderNum(String.valueOf(i+1));
+                menu.setMenuType("F");
+                menu.setIcon("#");
+                sysMenu.setCreateBy(SecurityUtils.getUsername());
+                remoteSysMenuService.add(menu);
+            }
+        }
+    }
+
     /**
      * 设置主键列信息
      *

+ 7 - 0
boman-modules/boman-gen/src/main/java/com/boman/gen/service/IGenTableService.java

@@ -128,4 +128,11 @@ public interface IGenTableService
      * @param genTable 业务信息
      */
     public void validateEdit(GenTable genTable);
+
+    /**
+     * 代码生成业务新增
+     * @param genTable
+     * @return
+     */
+    public AjaxResult insertGenTable(GenTable genTable);
 }

+ 40 - 15
boman-modules/boman-gen/src/main/resources/mapper/generator/GenTableColumnMapper.xml

@@ -29,10 +29,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateBy"       column="update_by"      />
         <result property="updateTime"     column="update_time"    />
         <result property="hrParentId"     column="hr_parent_id"    />
+        <result property="mask"     column="mask"    />
+        <result property="defaultValue"     column="default_value"    />
+        <result property="numRows"     column="num_rows"    />
+        <result property="numColumns"     column="num_columns"    />
     </resultMap>
 	
 	<sql id="selectGenTableColumnVo">
-        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, foreign_key, dict_type, sort, create_by, create_time, update_by, update_time, hr_parent_id 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_list, is_query, query_type, html_type, foreign_key, dict_type, sort, create_by, create_time, update_by, update_time, hr_parent_id, mask, default_value, num_rows, num_columns from gen_table_column
     </sql>
 	
     <select id="selectGenTableColumnListByTableId" parameterType="GenTableColumn" resultMap="GenTableColumnResult">
@@ -83,6 +87,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			<if test="dictType != null and dictType != ''">dict_type,</if>
 			<if test="sort != null">sort,</if>
 			<if test="createBy != null and createBy != ''">create_by,</if>
+			<if test="hrParentId != null and hrParentId != ''">hr_parent_id,</if>
+			<if test="mask != null and mask != ''">mask,</if>
+			<if test="defaultValue != null and defaultValue != ''">default_value,</if>
+			<if test="numRows != null and numRows != ''">num_rows,</if>
+			<if test="numColumns != null and numColumns != ''">num_columns,</if>
 			create_time
          )values(
 			<if test="tableId != null and tableId != ''">#{tableId},</if>
@@ -104,6 +113,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			<if test="dictType != null and dictType != ''">#{dictType},</if>
 			<if test="sort != null">#{sort},</if>
 			<if test="createBy != null and createBy != ''">#{createBy},</if>
+			<if test="hrParentId != null and hrParentId != ''">#{hrParentId},</if>
+			<if test="mask != null and mask != ''">#{mask},</if>
+			<if test="defaultValue != null and defaultValue != ''">#{defaultValue},</if>
+			<if test="numRows != null and numRows != ''">#{numRows},</if>
+			<if test="numColumns != null and numColumns != ''">#{numColumns},</if>
 			sysdate()
          )
     </insert>
@@ -111,20 +125,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <update id="updateGenTableColumn" parameterType="GenTableColumn">
         update gen_table_column
         <set>
-            column_comment = #{columnComment},
-            java_type = #{javaType},
-            java_field = #{javaField},
-            is_insert = #{isInsert},
-            is_edit = #{isEdit},
-            is_list = #{isList},
-            is_query = #{isQuery},
-            is_required = #{isRequired},
-            query_type = #{queryType},
-            html_type = #{htmlType},
-            dict_type = #{dictType},
-            foreign_key = #{foreignKey},
-            sort = #{sort},
-            update_by = #{updateBy},
+            <if test="tableId != null and tableId != ''">#{tableId},</if>
+            <if test="columnName != null and columnName != ''">#{columnName},</if>
+            <if test="columnComment != null and columnComment != ''">column_comment = #{columnComment},</if>
+            <if test="columnType != null and columnType != ''">#{columnType},</if>
+            <if test="javaType != null and javaType != ''">java_type = #{javaType},</if>
+            <if test="javaField != null and javaField != ''">java_field = #{javaField},</if>
+            <if test="isPk != null and isPk != ''">#{isPk},</if>
+            <if test="isIncrement != null and isIncrement != ''">#{isIncrement},</if>
+            <if test="isRequired != null and isRequired != ''">is_required = #{isRequired},</if>
+            <if test="isInsert != null and isInsert != ''">is_insert = #{isInsert},</if>
+            <if test="isEdit != null and isEdit != ''">is_edit = #{isEdit},</if>
+            <if test="isList != null and isList != ''">is_list = #{isList},</if>
+            <if test="isQuery != null and isQuery != ''">is_query = #{isQuery},</if>
+            <if test="queryType != null and queryType != ''">query_type = #{queryType},</if>
+            <if test="htmlType != null and htmlType != ''">html_type = #{htmlType},</if>
+            <if test="foreignKey != null">foreign_key = #{foreignKey},</if>
+            <if test="dictType != null and dictType != ''">dict_type = #{dictType},</if>
+            <if test="sort != null">sort = #{sort},</if>
+            <if test="createBy != null and createBy != ''">create_by = #{createBy},</if>
+            <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+            <if test="hrParentId != null and hrParentId != ''">hr_parent_id = #{hrParentId},</if>
+            <if test="mask != null and mask != ''">mask = #{mask},</if>
+            <if test="defaultValue != null and defaultValue != ''">default_value = #{defaultValue},</if>
+            <if test="numRows != null and numRows != ''">num_rows = #{numRows},</if>
+            <if test="numColumns != null and numColumns != ''">num_columns = #{numColumns},</if>
             update_time = sysdate()
         </set>
         where column_id = #{columnId}

+ 16 - 4
boman-modules/boman-gen/src/main/resources/mapper/generator/GenTableMapper.xml

@@ -34,6 +34,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="triggerUpdate"         column="trigger_update"            />
 		<result property="triggerDelete"         column="trigger_delete"            />
 		<result property="triggerSubmit"         column="trigger_submit"            />
+		<result property="realTableName"         column="real_table_name"            />
+		<result property="filterConditions"         column="filter_conditions"            />
+		<result property="extendedAttributes"         column="extended_attributes"            />
 		<collection  property="columns"  javaType="java.util.List"  resultMap="GenTableColumnResult" />
 	</resultMap>
 	
@@ -64,7 +67,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	
 	<sql id="selectGenTableVo">
         select table_id, table_name, table_comment, sub_table_name, sub_table_fk_name, class_name, tpl_category, package_name, module_name, business_name, function_name, function_author, gen_type, gen_path, options,
-         create_by, create_time, update_by, update_time, remark, is_menu, menu_role, ak_column, dk_column, trigger_create, trigger_retrieve, trigger_update, trigger_delete, trigger_submit from gen_table
+         create_by, create_time, update_by, update_time, remark, is_menu, menu_role, ak_column, dk_column, trigger_create, trigger_retrieve, trigger_update, trigger_delete, trigger_submit, real_table_name, filter_conditions, extended_attributes from gen_table
     </sql>
     
     <select id="selectGenTableList" parameterType="GenTable" resultMap="GenTableResult">
@@ -123,7 +126,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</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.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.gen_type, t.gen_path, t.options, t.remark, t.is_menu, t.menu_role, t.ak_column, t.dk_column, t.trigger_create, t.trigger_retrieve, t.trigger_update, t.trigger_delete, t.trigger_submit,
+	    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.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.gen_type, t.gen_path, t.options, t.remark, t.is_menu, t.menu_role, t.ak_column, t.dk_column, t.trigger_create, t.trigger_retrieve, t.trigger_update, t.trigger_delete, t.trigger_submit, t.real_table_name, t.filter_conditions, t.extended_attributes,
 			   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
@@ -131,7 +134,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</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.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.gen_type, t.gen_path, t.options, t.remark, t.is_menu, t.menu_role, t.ak_column, t.dk_column, t.trigger_create, t.trigger_retrieve, t.trigger_update, t.trigger_delete, t.trigger_submit,
+	    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.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.gen_type, t.gen_path, t.options, t.remark, t.is_menu, t.menu_role, t.ak_column, t.dk_column, t.trigger_create, t.trigger_retrieve, t.trigger_update, t.trigger_delete, t.trigger_submit, t.real_table_name, t.filter_conditions, t.extended_attributes
 			   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
@@ -139,7 +142,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</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.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.options, t.remark, t.is_menu, t.menu_role, t.ak_column, t.dk_column, t.trigger_create, t.trigger_retrieve, t.trigger_update, t.trigger_delete, t.trigger_submit,
+	    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.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.options, t.remark, t.is_menu, t.menu_role, t.ak_column, t.dk_column, t.trigger_create, t.trigger_retrieve, t.trigger_update, t.trigger_delete, t.trigger_submit, t.real_table_name, t.filter_conditions, t.extended_attributes
 			   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
@@ -169,6 +172,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			<if test="triggerUpdate != null and triggerUpdate != ''">trigger_update,</if>
 			<if test="triggerDelete != null and triggerDelete != ''">trigger_delete,</if>
 			<if test="triggerSubmit != null and triggerSubmit !=''">trigger_submit,</if>
+ 			<if test="realTableName != null and realTableName != ''">real_table_name,</if>
+ 			<if test="filterConditions != null and filterConditions != ''">filter_conditions,</if>
+ 			<if test="extendedAttributes != null and extendedAttributes != ''">extended_attributes,</if>
  			<if test="createBy != null and createBy != ''">create_by,</if>
 			create_time
          )values(
@@ -193,6 +199,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			<if test="triggerUpdate != null and triggerUpdate != ''">#{triggerUpdate},</if>
 			<if test="triggerDelete != null and triggerDelete != ''">#{triggerDelete},</if>
 			<if test="triggerSubmit != null and triggerSubmit !=''">#{triggerSubmit},</if>
+ 			<if test="realTableName != null and realTableName != ''">#{realTableName},</if>
+ 			<if test="filterConditions != null and filterConditions != ''">#{filterConditions},</if>
+ 			<if test="extendedAttributes != null and extendedAttributes != ''">#{extendedAttributes},</if>
  			<if test="createBy != null and createBy != ''">#{createBy},</if>
 			sysdate()
          )
@@ -226,6 +235,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			<if test="triggerUpdate != null and triggerUpdate != ''">trigger_update = #{triggerUpdate},</if>
 			<if test="triggerDelete != null and triggerDelete != ''">trigger_delete = #{triggerDelete},</if>
 			<if test="triggerSubmit != null and triggerSubmit !=''">trigger_submit = #{triggerSubmit},</if>
+			<if test="realTableName != null and realTableName !=''">real_table_name = #{realTableName},</if>
+			<if test="filterConditions != null and filterConditions !=''">filter_conditions = #{filterConditions},</if>
+			<if test="extendedAttributes != null and extendedAttributes !=''">extended_attributes = #{extendedAttributes},</if>
             update_time = sysdate()
         </set>
         where table_id = #{tableId}

+ 0 - 6
boman-modules/boman-system/pom.xml

@@ -84,12 +84,6 @@
             <version>1.9.4</version>
         </dependency>
 
-        <dependency>
-            <groupId>com.boman</groupId>
-            <artifactId>boman-modules-gen</artifactId>
-            <version>2.5.0</version>
-        </dependency>
-
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>

+ 1 - 12
boman-modules/boman-system/src/main/java/com/boman/system/controller/SysMenuController.java

@@ -2,7 +2,7 @@ package com.boman.system.controller;
 
 import java.util.List;
 
-import com.boman.gen.domain.GenTable;
+import com.boman.system.api.domain.SysMenu;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.DeleteMapping;
@@ -22,7 +22,6 @@ import com.boman.common.core.web.domain.AjaxResult;
 import com.boman.common.log.annotation.Log;
 import com.boman.common.log.enums.BusinessType;
 import com.boman.common.security.annotation.PreAuthorize;
-import com.boman.system.domain.SysMenu;
 import com.boman.system.service.ISysMenuService;
 
 /**
@@ -161,14 +160,4 @@ public class SysMenuController extends BaseController
         List<SysMenu> menus = menuService.selectMenuTreeById(userId);
         return AjaxResult.success(menuService.buildMenus(menus));
     }
-
-    /**
-     * @Description 数据表 新增功能
-     * @Author: tjf
-     * @Date: 2021/3/24
-     */
-    @PostMapping("/addTable")
-    public AjaxResult add(@Validated @RequestBody GenTable genTable) {
-        return menuService.insertGenTable(genTable);
-    }
 }

+ 2 - 1
boman-modules/boman-system/src/main/java/com/boman/system/domain/vo/TreeSelect.java

@@ -3,9 +3,10 @@ package com.boman.system.domain.vo;
 import java.io.Serializable;
 import java.util.List;
 import java.util.stream.Collectors;
+
+import com.boman.system.api.domain.SysMenu;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.boman.system.api.domain.SysDept;
-import com.boman.system.domain.SysMenu;
 
 /**
  * Treeselect树结构实体类

+ 1 - 2
boman-modules/boman-system/src/main/java/com/boman/system/mapper/SysMenuMapper.java

@@ -2,10 +2,9 @@ package com.boman.system.mapper;
 
 import java.util.List;
 
+import com.boman.system.api.domain.SysMenu;
 import org.apache.ibatis.annotations.Param;
 
-import com.boman.system.domain.SysMenu;
-
 /**
  * 菜单表 数据层
  * 

+ 2 - 9
boman-modules/boman-system/src/main/java/com/boman/system/service/ISysMenuService.java

@@ -3,9 +3,8 @@ package com.boman.system.service;
 import java.util.List;
 import java.util.Set;
 
-import com.boman.common.core.web.domain.AjaxResult;
-import com.boman.gen.domain.GenTable;
-import com.boman.system.domain.SysMenu;
+
+import com.boman.system.api.domain.SysMenu;
 import com.boman.system.domain.vo.RouterVo;
 import com.boman.system.domain.vo.TreeSelect;
 
@@ -137,10 +136,4 @@ public interface ISysMenuService
      */
     public String checkMenuNameUnique(SysMenu menu);
 
-    /**
-     * 代码生成业务新增
-     * @param genTable
-     * @return
-     */
-    public AjaxResult insertGenTable(GenTable genTable);
 }

+ 1 - 133
boman-modules/boman-system/src/main/java/com/boman/system/service/impl/SysMenuServiceImpl.java

@@ -9,13 +9,7 @@ import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import com.boman.common.core.constant.Constants;
-import com.boman.common.core.utils.DateUtils;
-import com.boman.common.core.web.domain.AjaxResult;
-import com.boman.gen.domain.GenTable;
-import com.boman.gen.domain.GenTableColumn;
-import com.boman.gen.mapper.GenTableColumnMapper;
-import com.boman.gen.mapper.GenTableMapper;
+import com.boman.system.api.domain.SysMenu;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.boman.common.core.constant.UserConstants;
@@ -23,7 +17,6 @@ import com.boman.common.core.utils.SecurityUtils;
 import com.boman.common.core.utils.StringUtils;
 import com.boman.system.api.domain.SysRole;
 import com.boman.system.api.domain.SysUser;
-import com.boman.system.domain.SysMenu;
 import com.boman.system.domain.vo.MetaVo;
 import com.boman.system.domain.vo.RouterVo;
 import com.boman.system.domain.vo.TreeSelect;
@@ -51,12 +44,6 @@ public class SysMenuServiceImpl implements ISysMenuService
     @Autowired
     private SysRoleMenuMapper roleMenuMapper;
 
-    @Autowired
-    private GenTableColumnMapper genTableColumnMapper;
-
-    @Autowired
-    private GenTableMapper genTableMapper;
-
     /**
      * 根据用户查询系统菜单列表
      * 
@@ -482,123 +469,4 @@ public class SysMenuServiceImpl implements ISysMenuService
     {
         return getChildList(list, t).size() > 0 ? true : false;
     }
-
-
-    /**
-     * 代码生成业务表新增
-     * 注意解决事务问题
-     *
-     * @param genTable
-     * @return
-     */
-    @Override
-    public AjaxResult insertGenTable(GenTable genTable) {
-        //新增表成功的时候,新增字段公共字段
-        int i = genTableMapper.insertGenTable(genTable);
-        if (i > 0) {
-            insertCommonColumn(genTable.getTableId());
-            //判断是否是菜单
-            isMenu(genTable);
-            return AjaxResult.success();
-        }
-        return AjaxResult.error();
-    }
-
-    /**
-     * 新建表时新增对应公共字段
-     *
-     * @param tableId
-     */
-    public void insertCommonColumn(Long tableId) {
-        GenTableColumn genTableColumnLog = new GenTableColumn();
-        GenTableColumn genTableColumnBaseInfo = new GenTableColumn();
-
-        genTableColumnLog.setTableId(tableId);
-        genTableColumnLog.setColumnName("log_info");
-        genTableColumnLog.setColumnComment("日志信息");
-        genTableColumnLog.setColumnType("varchar(255)");
-        genTableColumnLog.setIsPk("0");
-        genTableColumnLog.setIsIncrement("0");
-        genTableColumnLog.setIsInsert("1");
-        genTableColumnLog.setQueryType("LIKE");
-        genTableColumnLog.setHtmlType("input");
-        genTableColumnLog.setSort(7);
-        genTableColumnLog.setCreateBy("admin");
-        genTableColumnLog.setCreateTime(DateUtils.getNowDate());
-        genTableColumnMapper.insertGenTableColumn(genTableColumnLog);
-
-        genTableColumnBaseInfo.setTableId(tableId);
-        genTableColumnBaseInfo.setColumnName("base_info");
-        genTableColumnBaseInfo.setColumnComment("基本信息");
-        genTableColumnBaseInfo.setColumnType("varchar(255)");
-        genTableColumnBaseInfo.setIsPk("0");
-        genTableColumnBaseInfo.setIsIncrement("0");
-        genTableColumnBaseInfo.setIsInsert("1");
-        genTableColumnBaseInfo.setQueryType("LIKE");
-        genTableColumnBaseInfo.setHtmlType("input");
-        genTableColumnBaseInfo.setSort(8);
-        genTableColumnBaseInfo.setCreateBy("admin");
-        genTableColumnBaseInfo.setCreateTime(DateUtils.getNowDate());
-        genTableColumnMapper.insertGenTableColumn(genTableColumnBaseInfo);
-
-
-        String[] columnName = new String[]{"id", "create_by", "create_time", "update_by", "update_time", "is_del"};
-        String[] columnComment = new String[]{"编号","创建者", "创建时间", "更新者", "更新时间", "是否删除"};
-        String[] columnType = new String[]{"bigint(20)","varchar(64)", "datetime", "varchar(64)", "datetime", "char(1)"};
-        String[] htmlType = new String[]{"input", "input", "datetime", "input", "datetime", "select"};
-        for (int i = 0; i < columnName.length; i++) {
-            GenTableColumn genTableColumn = new GenTableColumn();
-            genTableColumn.setTableId(tableId);
-            genTableColumn.setColumnName(columnName[i]);
-            genTableColumn.setColumnComment(columnComment[i]);
-            genTableColumn.setColumnType(columnType[i]);
-            genTableColumn.setIsPk("0");
-            genTableColumn.setIsIncrement("0");
-            genTableColumn.setIsInsert("1");
-            genTableColumn.setQueryType("EQ");
-            genTableColumn.setHtmlType(htmlType[i]);
-            genTableColumn.setSort(i + 1);
-            genTableColumn.setCreateBy("admin");
-            genTableColumn.setCreateTime(DateUtils.getNowDate());
-            genTableColumn.setHrParentId(genTableColumnBaseInfo.getColumnId());
-            if (i == 0){
-                genTableColumn.setIsIncrement("1");
-                genTableColumn.setHrParentId(genTableColumnLog.getColumnId());
-            }
-            genTableColumnMapper.insertGenTableColumn(genTableColumn);
-        }
-    }
-
-    //判断是否是菜单
-    public void isMenu(GenTable genTable) {
-        String isMenu = genTable.getIsMenu();
-        if (StringUtils.isNotBlank(isMenu) && isMenu.equals(UserConstants.NOT_UNIQUE)) {
-            //先生成主菜单
-            SysMenu sysMenu = new SysMenu();
-            //表描述当菜单名称
-            sysMenu.setMenuName(genTable.getTableComment());
-            sysMenu.setParentId(0L);
-            sysMenu.setOrderNum("1");
-            //路由地址
-            sysMenu.setPath(genTable.getBusinessName());
-            sysMenu.setComponent(genTable.getModuleName() + "/" + genTable.getTableComment() + "/index");
-            sysMenu.setMenuType("C");
-            sysMenu.setIcon("system");
-            sysMenu.setCreateBy(SecurityUtils.getUsername());
-            sysMenu.setSysTableName(genTable.getTableName());
-            menuMapper.insertMenu(sysMenu);
-            //是菜单,生成crud按钮
-            for (int i = 0; i < Constants.MENU_NAME.length; i++) {
-                String[] menuName = Constants.MENU_NAME;
-                SysMenu menu = new SysMenu();
-                menu.setParentId(sysMenu.getId());
-                menu.setMenuName(menuName[i]);
-                menu.setOrderNum(String.valueOf(i+1));
-                menu.setMenuType("F");
-                menu.setIcon("#");
-                sysMenu.setCreateBy(SecurityUtils.getUsername());
-                menuMapper.insertMenu(menu);
-            }
-        }
-    }
 }

+ 2 - 2
boman-modules/boman-system/src/main/java/com/boman/system/service/impl/SysScheduleServiceImpl.java

@@ -42,10 +42,10 @@ public class SysScheduleServiceImpl implements ISysScheduleService {
             for (Map.Entry<String, Object> entry : entries) {
                 String key = entry.getKey();
                 if ("begin_time".equals(key)) {
-                    beginTime = LocalDate.parse(DateUtils.stampToTime(entry.getValue().toString()), formatter);
+                    beginTime = LocalDate.parse(entry.getValue().toString());
                     num++;
                 } else if ("end_time".equals(key)) {
-                    endTime = LocalDate.parse(DateUtils.stampToTime(entry.getValue().toString()), formatter);
+                    endTime = LocalDate.parse(entry.getValue().toString());
                     num++;
                 } else if (num == 2) {
                     if (beginTime != null && endTime != null) {

+ 13 - 0
boman-web-core/src/main/java/com/boman/web/core/constant/FormDataConstant.java

@@ -140,6 +140,19 @@ public class FormDataConstant {
     /**  hr 日志、基础信息..... */
     public static final String HR = "hr";
 
+    /**  返回单对象时,封装的name..... */
+    public static final String SINGLE_OBJ_NAME = "name";
+
+    /**  返回单对象时,封装的value..... */
+    public static final String SINGLE_OBJ_VALUE = "value";
+
+    /**  返回单对象时,封装的type,input、radio、checkbox、select.....中的其中一种 */
+    public static final String SINGLE_OBJ_TYPE = "type";
+
+    /**  返回单对象时,封装的types,input、radio、checkbox、select.....
+     * 其中一种对应的所有值,比如:radio:要把男和女对应的信息全部返回给前台 */
+    public static final String SINGLE_OBJ_TYPES = "types";
+
 
 
 }

+ 39 - 2
boman-web-core/src/main/java/com/boman/web/core/service/TableServiceCmdService.java

@@ -28,6 +28,7 @@ import com.boman.web.core.service.update.IBaseUpdateService;
 import com.boman.web.core.utils.IdUtils;
 import com.google.common.base.Strings;
 import com.google.common.collect.Lists;
+import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.lang3.BooleanUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -282,10 +283,46 @@ public class TableServiceCmdService {
         fixedData = ifNullSetEmpty(fixedData);
         Long id = fixedData.getLong(FormDataConstant.ID);
         requireNonNull(id);
-
+        List<GenTableColumn> columns = genTable.getColumns();
         // 默认查所有字段,不支持自定义
         JSONObject jsonObject = selectService.selectById(genTable.getTableName(), pkName, id);
-        return AjaxResult.success(jsonObject);
+        // name=username, value=zhangsan, type=input, types=[{},{}]
+        handlerDate(Collections.singletonList(jsonObject), columns);
+        List<JSONObject> result = packSingleObj(jsonObject, columns);
+        return AjaxResult.success(result);
+    }
+
+    /**
+     * 功能描述: 单对象查询,封装成此类型返给前台:name=username, value=zhangsan, type=input, types=[{},{}]
+     *
+     * @param jsonObject 数据库查出的字段名称对应字段值
+     * @param columns    该表对应的所有的字段的信息
+     * @return java.util.List<com.alibaba.fastjson.JSONObject>
+     */
+    private List<JSONObject> packSingleObj(JSONObject jsonObject, List<GenTableColumn> columns) {
+        if (MapUtils.isEmpty(jsonObject)) {
+            return Collections.emptyList();
+        }
+
+        List<JSONObject> result = Lists.newArrayListWithCapacity(jsonObject.size());
+        for (GenTableColumn column : columns) {
+            JSONObject map = new JSONObject();
+            for (Map.Entry<String, Object> entry : jsonObject.entrySet()) {
+                if (column.getColumnName().equalsIgnoreCase(entry.getKey())) {
+                    map.put(SINGLE_OBJ_NAME, column.getColumnName());
+                    map.put(SINGLE_OBJ_VALUE, entry.getValue());
+                    String htmlType = column.getHtmlType();
+                    map.put(SINGLE_OBJ_TYPE, htmlType);
+                    if (NEED_QUERY_DICT_LIST.contains(htmlType)) {
+                        map.put(SINGLE_OBJ_TYPES, remoteDictDataService.listByType(column.getDictType()));
+                    }
+
+                    result.add(map);
+                }
+            }
+        }
+
+        return result;
     }
 
     /**

+ 9 - 0
ruoyi-ui/src/api/tool/gen.js

@@ -17,6 +17,15 @@ export function listDbTable(query) {
   })
 }
 
+// 新增
+export function addMenu(data) {
+  return request({
+    url: '/boman-gen/gen/addTable',
+    method: 'post',
+    data: data
+  })
+}
+
 // 查询表详细信息
 export function getGenTable(tableId) {
   return request({

+ 55 - 13
ruoyi-ui/src/views/system/table/index.vue

@@ -4,7 +4,7 @@
       <p>单表</p>
       <el-divider></el-divider>
       <div class="table_headerBtun" v-if="queryData.buttonList">
-        <el-button type="primary" plain v-for="(item,index) in queryData.buttonList.split('')" :key="index" @click="handleQuery()">{{item | btnConversion}}</el-button>
+        <el-button type="primary" plain v-for="(item,index) in queryData.buttonList.split('')" :key="index" @click="handleQuery(item)">{{item | btnConversion}}</el-button>
       </div>
     </div>
     <!-- 内容 -->
@@ -43,14 +43,18 @@
         queryData: {},
         // 查询参数
         queryParams: {
-          pageNum: 1,
-          pageSize: 10,
+
         },
         labletit: '查询参数1233',
         tableZbie:{
           table:'obj_test'
         },
-        taleLisst:[]
+        taleLisst:[],
+        forme:{
+          table:'',
+          objId:-1,
+          fixedData:{}
+        },
       };
     },
     filters:{
@@ -89,15 +93,33 @@
 
       },
       /** 搜索按钮操作 */
-      handleQuery() {
-         console.log(this.taleLisst,4)
-        for(let item of this.taleLisst){
-          if(item.htmlType == 'checkbox' || item.htmlType == 'imageUpload' || item.htmlType == 'fileUpload'){
-            this.queryParams[item.columnName] = this.$refs[item.columnName][0].config
-          } else{
-            this.queryParams[item.columnName] = this.$refs[item.columnName][0].config[item.columnName]
-          }
-        }
+      handleQuery(index) {
+         console.log(index,4)
+         for(let item of this.taleLisst){
+           for(var i = 0 ; i < item.hrChildren.length ; i++){
+             if(item.hrChildren[i].htmlType == 'checkbox' || item.hrChildren[i].htmlType == 'imageUpload' || item.hrChildren[i].htmlType == 'fileUpload'){
+               this.queryParams[item.hrChildren[i].columnName] = this.$refs[item.hrChildren[i].columnName][0].config
+             } else{
+               this.queryParams[item.hrChildren[i].columnName] = this.$refs[item.hrChildren[i].columnName][0].config[item.hrChildren[i].columnName]
+             }
+           }
+         }
+         if(index == 'D'){
+           //删除
+           this.handleDelete(index)
+         }else if(index == 'S'){
+           //提交  保存
+           this.forme.table = 'obj_test'
+           this.forme.objId = -1
+           this.forme.fixedData = this.queryParams
+           this.submitForm()
+         }else if(index == 'M'){
+           this.forme.table = 'obj_test'
+           this.forme.objId = 1
+           this.forme.fixedData = this.queryParams
+           this.submitForm()
+         }
+
         console.log(this.queryParams)
         // this.getList();
       },
@@ -133,6 +155,26 @@
         this.handleDelete(index)
       }
       },
+      /** 提交按钮 */
+      submitForm: function() {
+        // this.$refs["form"].validate(valid => {
+          // if (valid) {
+            if (this.forme.objId != -1) {
+              updateType(this.forme).then(response => {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                // this.getList();
+              });
+            } else {
+              addType(this.forme).then(response => {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                // this.getList();
+              });
+            }
+          // }
+        // });
+      },
       //删除
       handleDelete(row) {
         this.$confirm('是否确认删除名称为"' + row + '"的数据项?', "警告", {

+ 72 - 18
ruoyi-ui/src/views/tool/gen/basicInfoForm.vue

@@ -1,30 +1,87 @@
 <template>
   <el-form ref="basicInfoForm" :model="info" :rules="rules" label-width="150px">
-    <el-row>
+    <el-row :gutter="20">
       <el-col :span="12">
         <el-form-item label="表名称" prop="tableName">
-          <el-input placeholder="请输入仓库名称" v-model="info.tableName" />
+          <el-input v-model="info.tableName" placeholder="请输入表名称" />
         </el-form-item>
       </el-col>
       <el-col :span="12">
+        <el-form-item label="实际数据库表" prop="className">
+          <el-input v-model="info.className" placeholder="请输入实际数据库表" />
+        </el-form-item>
+      </el-col>
+      <el-col :span="24">
         <el-form-item label="表描述" prop="tableComment">
-          <el-input placeholder="请输入" v-model="info.tableComment" />
+          <el-input v-model="info.tableComment" placeholder="请输入表描述" />
         </el-form-item>
       </el-col>
-
       <el-col :span="12">
-        <el-form-item label="实体类名称" prop="className">
-          <el-input placeholder="请输入" v-model="info.className" />
+        <el-form-item  label="是否菜单" >
+          <el-radio-group v-model="info.isMenu">
+            <el-radio label="Y">是</el-radio>
+            <el-radio label="N">否</el-radio>
+          </el-radio-group>
         </el-form-item>
       </el-col>
       <el-col :span="12">
-        <el-form-item label="作者" prop="functionAuthor">
-          <el-input placeholder="请输入" v-model="info.functionAuthor" />
+        <el-form-item  label="菜单权限" prop="menuRole">
+          <el-input v-model="info.menuRole" placeholder="请输入菜单权限" />
         </el-form-item>
       </el-col>
-      <el-col :span="24">
-        <el-form-item label="备注" prop="remark">
-          <el-input type="textarea" :rows="3" v-model="info.remark"></el-input>
+      <el-col :span="12" >
+        <el-form-item label="新增程序" prop="triggerCreate">
+          <el-input v-model="info.triggerCreate" placeholder="请输入新增程序" />
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item  label="检索程序" prop="triggerRetrieve">
+          <el-input v-model="info.triggerRetrieve" placeholder="请输入检索程序" maxlength="50" />
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item  label="微改程序" prop="triggerUpdate">
+          <el-input v-model="info.triggerUpdate" placeholder="请输入微改程序" maxlength="50" />
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item  label="删除程序" prop="triggerDelete">
+          <el-input v-model="info.triggerDelete" placeholder="请输入删除程序" maxlength="50" />
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item  label="提交程序" prop="triggerSubmit">
+          <el-input v-model="info.triggerSubmit" placeholder="请输入提交程序" maxlength="50" />
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item  label="过滤条件" prop="filterConditions">
+          <el-input v-model="info.filterConditions" placeholder="请输入过滤条件" maxlength="50" />
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item   label="显示字段" prop="dkColumn">
+          <el-input  :disabled="true" v-model="info.dkColumn" placeholder="请输入显示字段" maxlength="50" />
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item  label="输入字段" prop="akColumn">
+          <el-input :disabled="true" v-model="info.akColumn" placeholder="请输入输入字段" maxlength="50" />
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item   label="主键" prop="tablePrimaryKey">
+          <el-input :disabled="true" v-model="info.tablePrimaryKey" placeholder="请输入主键" maxlength="50" />
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item  label="扩展属性" prop="extendedAttributes">
+            <el-input v-model="info.extendedAttributes" type="textarea" placeholder="请输入内容"></el-input>
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item  label="备注" prop="remark">
+            <el-input v-model="info.remark" type="textarea" placeholder="请输入内容"></el-input>
         </el-form-item>
       </el-col>
     </el-row>
@@ -43,16 +100,13 @@ export default {
     return {
       rules: {
         tableName: [
-          { required: true, message: "请输入表名称", trigger: "blur" }
+          { required: true, message: "表名称不能为空", trigger: "blur" }
         ],
         tableComment: [
-          { required: true, message: "请输入表描述", trigger: "blur" }
-        ],
-        className: [
-          { required: true, message: "请输入实体类名称", trigger: "blur" }
+          { required: true, message: "表描述不能为空", trigger: "blur" }
         ],
-        functionAuthor: [
-          { required: true, message: "请输入作者", trigger: "blur" }
+        menuRole: [
+          { required: true, message: "菜单权限不能为空", trigger: "blur" }
         ]
       }
     };

+ 14 - 75
ruoyi-ui/src/views/tool/gen/editTable.vue

@@ -13,48 +13,23 @@
             min-width="10%"
             :show-overflow-tooltip="true"
           />
-          <el-table-column label="字段描述" min-width="10%">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.columnComment"></el-input>
-            </template>
-          </el-table-column>
+          <el-table-column label="字段描述" align="center" prop="columnComment" min-width="10%"  />
           <el-table-column
             label="物理类型"
             prop="columnType"
             min-width="10%"
             :show-overflow-tooltip="true"
           />
-          <el-table-column label="Java类型" min-width="11%">
-            <template slot-scope="scope">
-              <el-select v-model="scope.row.javaType">
-                <el-option label="Long" value="Long" />
-                <el-option label="String" value="String" />
-                <el-option label="Integer" value="Integer" />
-                <el-option label="Double" value="Double" />
-                <el-option label="BigDecimal" value="BigDecimal" />
-                <el-option label="Date" value="Date" />
-              </el-select>
-            </template>
-          </el-table-column>
-          <el-table-column label="java属性" min-width="10%">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.javaField"></el-input>
-            </template>
-          </el-table-column>
-
-          <el-table-column label="插入" min-width="5%">
-            <template slot-scope="scope">
-              <el-checkbox true-label="1" v-model="scope.row.isInsert"></el-checkbox>
-            </template>
-          </el-table-column>
-          <el-table-column label="编辑" min-width="5%">
+          <el-table-column label="字段显示规则" align="center" prop="mask" min-width="11%"/>
+          <el-table-column label="排序" min-width="5%" align="center" prop="sort"/>
+          <el-table-column label="输入字段" min-width="10%">
             <template slot-scope="scope">
-              <el-checkbox true-label="1" v-model="scope.row.isEdit"></el-checkbox>
+              <el-checkbox true-label="1" v-model="scope.row.isIn"></el-checkbox>
             </template>
           </el-table-column>
-          <el-table-column label="列表" min-width="5%">
+          <el-table-column label="显示字段" min-width="10%">
             <template slot-scope="scope">
-              <el-checkbox true-label="1" v-model="scope.row.isList"></el-checkbox>
+              <el-checkbox true-label="1" v-model="scope.row.isOut"></el-checkbox>
             </template>
           </el-table-column>
           <el-table-column label="查询" min-width="5%">
@@ -62,54 +37,17 @@
               <el-checkbox true-label="1" v-model="scope.row.isQuery"></el-checkbox>
             </template>
           </el-table-column>
-          <el-table-column label="查询方式" min-width="10%">
-            <template slot-scope="scope">
-              <el-select v-model="scope.row.queryType">
-                <el-option label="=" value="EQ" />
-                <el-option label="!=" value="NE" />
-                <el-option label=">" value="GT" />
-                <el-option label=">=" value="GTE" />
-                <el-option label="<" value="LT" />
-                <el-option label="<=" value="LTE" />
-                <el-option label="LIKE" value="LIKE" />
-                <el-option label="BETWEEN" value="BETWEEN" />
-              </el-select>
-            </template>
-          </el-table-column>
+          <el-table-column label="关联HR字段" min-width="10%" align="center" prop="hrParentId"/>
+          <el-table-column label="缺省值" min-width="10%" align="center" prop="defaultValue"/>
+          <el-table-column label="外键" min-width="10%" align="center" prop="foreignKey"/>
           <el-table-column label="必填" min-width="5%">
             <template slot-scope="scope">
               <el-checkbox true-label="1" v-model="scope.row.isRequired"></el-checkbox>
             </template>
           </el-table-column>
-          <el-table-column label="显示类型" min-width="12%">
-            <template slot-scope="scope">
-              <el-select v-model="scope.row.htmlType">
-                <el-option label="文本框" value="input" />
-                <el-option label="文本域" value="textarea" />
-                <el-option label="下拉框" value="select" />
-                <el-option label="单选框" value="radio" />
-                <el-option label="复选框" value="checkbox" />
-                <el-option label="日期控件" value="datetime" />
-                <el-option label="图片上传" value="imageUpload" />
-                <el-option label="文件上传" value="fileUpload" />
-                <el-option label="富文本控件" value="editor" />
-              </el-select>
-            </template>
-          </el-table-column>
-          <el-table-column label="字典类型" min-width="12%">
-            <template slot-scope="scope">
-              <el-select v-model="scope.row.dictType" clearable filterable placeholder="请选择">
-                <el-option
-                  v-for="dict in dictOptions"
-                  :key="dict.dictType"
-                  :label="dict.dictName"
-                  :value="dict.dictType">
-                  <span style="float: left">{{ dict.dictName }}</span>
-                  <span style="float: right; color: #8492a6; font-size: 13px">{{ dict.dictType }}</span>
-              </el-option>
-              </el-select>
-            </template>
-          </el-table-column>
+          <el-table-column label="显示类型" min-width="12%" align="center" prop="htmlType"/>
+          <el-table-column label="字典类型" min-width="12%" align="center" prop="dictType"/>
+            
         </el-table>
       </el-tab-pane>
      <!-- <el-tab-pane label="生成信息" name="genInfo">
@@ -219,6 +157,7 @@ export default {
     submitForm() {
       const basicForm = this.$refs.basicInfo.$refs.basicInfoForm;
       const genForm = this.$refs.genInfo.$refs.genInfoForm;
+      // console.log(basicForm)
       Promise.all([basicForm, genForm].map(this.getFormPromise)).then(res => {
         const validateResult = res.every(item => !!item);
         if (validateResult) {

+ 19 - 19
ruoyi-ui/src/views/tool/gen/genInfoForm.vue

@@ -229,30 +229,30 @@ export default {
       type: Array,
       default: null
     },
-    menus: {
-      type: Array,
-      default: []
-    },
+    // menus: {
+    //   type: Array,
+    //   default: []
+    // },
   },
   data() {
     return {
       subColumns: [],
       rules: {
-        tplCategory: [
-          { required: true, message: "请选择生成模板", trigger: "blur" }
-        ],
-        packageName: [
-          { required: true, message: "请输入生成包路径", trigger: "blur" }
-        ],
-        moduleName: [
-          { required: true, message: "请输入生成模块名", trigger: "blur" }
-        ],
-        businessName: [
-          { required: true, message: "请输入生成业务名", trigger: "blur" }
-        ],
-        functionName: [
-          { required: true, message: "请输入生成功能名", trigger: "blur" }
-        ],
+        // tplCategory: [
+        //   { required: true, message: "请选择生成模板", trigger: "blur" }
+        // ],
+        // packageName: [
+        //   { required: true, message: "请输入生成包路径", trigger: "blur" }
+        // ],
+        // moduleName: [
+        //   { required: true, message: "请输入生成模块名", trigger: "blur" }
+        // ],
+        // businessName: [
+        //   { required: true, message: "请输入生成业务名", trigger: "blur" }
+        // ],
+        // functionName: [
+        //   { required: true, message: "请输入生成功能名", trigger: "blur" }
+        // ],
       }
     };
   },

+ 161 - 11
ruoyi-ui/src/views/tool/gen/index.vue

@@ -38,6 +38,17 @@
     </el-form>
 
     <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleGenTableadd"
+
+        >新增</el-button>
+        <!-- v-hasPermi="['tool:gen:code']" -->
+      </el-col>
       <el-col :span="1.5">
         <el-button
           type="primary"
@@ -105,23 +116,29 @@
         width="120"
       />
       <el-table-column
-        label="实"
+        label="实际数据库表"
         align="center"
         prop="className"
         :show-overflow-tooltip="true"
         width="120"
       />
+      <el-table-column label="是否菜单" align="center" min-width="5%">
+        <template slot-scope="scope">
+          <el-checkbox true-label="1" v-model="scope.row.isMenu"></el-checkbox>
+        </template>
+      </el-table-column>
+      <el-table-column label="菜单权限" align="center" prop="menuRole" width="160" />
       <el-table-column label="创建时间" align="center" prop="createTime" width="160" />
       <el-table-column label="更新时间" align="center" prop="updateTime" width="160" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160">
         <template slot-scope="scope">
-          <el-button
+          <!-- <el-button
             type="text"
             size="small"
             icon="el-icon-view"
             @click="handlePreview(scope.row)"
             v-hasPermi="['tool:gen:preview']"
-          >预览</el-button>
+          >预览</el-button> -->
           <el-button
             type="text"
             size="small"
@@ -143,13 +160,13 @@
             @click="handleSynchDb(scope.row)"
             v-hasPermi="['tool:gen:edit']"
           >同步</el-button>
-          <el-button
+<!--          <el-button
             type="text"
             size="small"
             icon="el-icon-download"
             @click="handleGenTable(scope.row)"
             v-hasPermi="['tool:gen:code']"
-          >生成代码</el-button>
+          >生成代码</el-button> -->
         </template>
       </el-table-column>
     </el-table>
@@ -160,9 +177,9 @@
       :limit.sync="queryParams.pageSize"
       @pagination="getList"
     />
-    <!-- 预览界面 -->
-    <el-dialog :title="preview.title" :visible.sync="preview.open" width="80%" top="5vh" append-to-body>
-      <el-tabs v-model="preview.activeName">
+    <!-- 新增弹框 -->
+    <el-dialog :title="preview.title" :visible.sync="preview.open" width="65%" top="5vh" append-to-body>
+      <!-- <el-tabs v-model="preview.activeName">
         <el-tab-pane
           v-for="(value, key) in preview.data"
           :label="key.substring(key.lastIndexOf('/')+1,key.indexOf('.vm'))"
@@ -171,14 +188,90 @@
         >
         <pre><code class="hljs" v-html="highlightedCode(value, key)"></code></pre>
         </el-tab-pane>
-      </el-tabs>
+      </el-tabs> -->
+     <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+       <el-row :gutter="20">
+         <el-col :span="12">
+           <el-form-item label="表名称" prop="tableName">
+             <el-input v-model="form.tableName" placeholder="请输入表名称" />
+           </el-form-item>
+         </el-col>
+         <el-col :span="12">
+           <el-form-item label="实际数据库表" prop="className">
+             <el-input v-model="form.className" placeholder="请输入实际数据库表" />
+           </el-form-item>
+         </el-col>
+         <el-col :span="24">
+           <el-form-item label="表描述" prop="tableComment">
+             <el-input v-model="form.tableComment" placeholder="请输入表描述" />
+           </el-form-item>
+         </el-col>
+         <el-col :span="12">
+           <el-form-item  label="是否菜单" >
+             <el-radio-group v-model="form.isMenu">
+               <el-radio label="Y">是</el-radio>
+               <el-radio label="N">否</el-radio>
+             </el-radio-group>
+           </el-form-item>
+         </el-col>
+         <el-col :span="12">
+           <el-form-item  label="菜单权限" prop="menuRole">
+             <el-input v-model="form.menuRole" placeholder="请输入菜单权限" />
+           </el-form-item>
+         </el-col>
+         <el-col :span="12" >
+           <el-form-item label="新增程序" prop="triggerCreate">
+             <el-input v-model="form.triggerCreate" placeholder="请输入新增程序" />
+           </el-form-item>
+         </el-col>
+         <el-col :span="12">
+           <el-form-item  label="检索程序" prop="triggerRetrieve">
+             <el-input v-model="form.triggerRetrieve" placeholder="请输入检索程序" maxlength="50" />
+           </el-form-item>
+         </el-col>
+         <el-col :span="12">
+           <el-form-item  label="微改程序" prop="triggerUpdate">
+             <el-input v-model="form.triggerUpdate" placeholder="请输入微改程序" maxlength="50" />
+           </el-form-item>
+         </el-col>
+         <el-col :span="12">
+           <el-form-item  label="删除程序" prop="triggerDelete">
+             <el-input v-model="form.triggerDelete" placeholder="请输入删除程序" maxlength="50" />
+           </el-form-item>
+         </el-col>
+         <el-col :span="12">
+           <el-form-item  label="提交程序" prop="triggerSubmit">
+             <el-input v-model="form.triggerSubmit" placeholder="请输入提交程序" maxlength="50" />
+           </el-form-item>
+         </el-col>
+         <el-col :span="12">
+           <el-form-item  label="过滤条件" prop="filterConditions">
+             <el-input v-model="form.filterConditions" placeholder="请输入过滤条件" maxlength="50" />
+           </el-form-item>
+         </el-col>
+         <el-col :span="12">
+           <el-form-item  label="扩展属性" prop="extendedAttributes">
+               <el-input v-model="form.extendedAttributes" type="textarea" placeholder="请输入内容"></el-input>
+           </el-form-item>
+         </el-col>
+         <el-col :span="12">
+           <el-form-item  label="备注" prop="remark">
+               <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
+           </el-form-item>
+         </el-col>
+       </el-row>
+     </el-form>
+     <div slot="footer" class="dialog-footer">
+       <el-button type="primary" @click="submitForm">确 定</el-button>
+       <el-button @click="cancel">取 消</el-button>
+     </div>
     </el-dialog>
     <import-table ref="import" @ok="handleQuery" />
   </div>
 </template>
 
 <script>
-import { listTable, previewTable, delTable, genCode, synchDb } from "@/api/tool/gen";
+import { listTable, previewTable, delTable, genCode, synchDb, addMenu } from "@/api/tool/gen";
 import importTable from "./importTable";
 import { downLoadZip } from "@/utils/zipdownload";
 import hljs from "highlight.js/lib/highlight";
@@ -228,6 +321,20 @@ export default {
         title: "代码预览",
         data: {},
         activeName: "domain.java"
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        tableName: [
+          { required: true, message: "表名称不能为空", trigger: "blur" }
+        ],
+        tableComment: [
+          { required: true, message: "表描述不能为空", trigger: "blur" }
+        ],
+        menuRole: [
+          { required: true, message: "菜单权限不能为空", trigger: "blur" }
+        ]
       }
     };
   },
@@ -289,6 +396,13 @@ export default {
     openImportTable() {
       this.$refs.import.show();
     },
+    // 表单重置
+    reset() {
+      this.form = {
+
+      };
+      this.resetForm("form");
+    },
     /** 重置按钮操作 */
     resetQuery() {
       this.dateRange = [];
@@ -334,6 +448,42 @@ export default {
           this.getList();
           this.msgSuccess("删除成功");
       })
+    },
+    // 取消弹框按钮
+    cancel(){
+      console.log(123)
+     this.reset()
+     this.preview.open = false;
+
+    },
+    //新增
+    handleGenTableadd(){
+    console.log(345)
+    this.reset()
+    this.preview.open = true;
+    this.preview.title = '新增信息';
+    },
+    /** 提交按钮 */
+    submitForm: function() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != undefined) {
+            // updateMenu(this.form).then(response => {
+            //   this.msgSuccess("修改成功");
+            //   this.open = false;
+            //   this.getList();
+            // });
+            console.log(23)
+          } else {
+            console.log(this.form)
+            addMenu(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.preview.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
     }
   }
 };