Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master'

Administrator 4 жил өмнө
parent
commit
793b364dd2

+ 0 - 17
boman-api/boman-domain/src/main/java/com.boman.domain/GenTable.java

@@ -10,23 +10,6 @@ import java.util.List;
 public class GenTable extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
-    /** {@link com.boman.web.core.utils.AuthUtils#funcType(java.lang.String)}*/
-    /** add */
-    public static final String A = "A";
-    /** modify */
-    public static final String M = "M";
-    /** delete */
-    public static final String D = "D";
-    /** query */
-    public static final String Q = "Q";
-    /** submit */
-    public static final String S = "S";
-    /** unsubmit */
-    public static final String U = "U";
-    /** export */
-    public static final String E = "E";
-    /** import */
-    public static final String I = "I";
 
     /** 编号 */
     private Long id;

+ 12 - 1
boman-api/boman-domain/src/main/java/com.boman.domain/constant/GlobalBtn.java

@@ -6,13 +6,24 @@ package com.boman.domain.constant;
  **/
 public class GlobalBtn {
 
+
+    /** {@link com.boman.web.core.utils.AuthUtils#funcType(java.lang.String)}*/
+
+    /** add */
     public static final String A = "A";
+    /** modify */
     public static final String M = "M";
+    /** delete */
     public static final String D = "D";
+    /** query */
     public static final String Q = "Q";
+    /** submit */
     public static final String S = "S";
+    /** unsubmit */
     public static final String U = "U";
-    public static final String I = "I";
+    /** export */
     public static final String E = "E";
+    /** import */
+    public static final String I = "I";
 
 }

+ 5 - 4
boman-web-core/src/main/java/com/boman/web/core/domain/TableContext.java

@@ -6,6 +6,7 @@ import com.boman.common.redis.RedisKey;
 import com.boman.common.redis.service.RedisService;
 import com.boman.domain.GenTable;
 import com.boman.domain.GenTableColumn;
+import com.boman.domain.constant.GlobalBtn;
 import com.boman.system.api.RemoteMenuService;
 import com.boman.system.api.RemoteRoleDataService;
 import com.boman.system.api.domain.SysUser;
@@ -92,11 +93,11 @@ public class TableContext {
         }
 
         if (ActionType.INSERT.equals(context.getActionType())) {
-            containsFunction(genTable.getMenuRole(), GenTable.A, "模块:[" + functionName + "], 没有新增功能");
-            checkPermsAuth(tableName, GenTable.A);
+            containsFunction(genTable.getMenuRole(), GlobalBtn.A, "模块:[" + functionName + "], 没有新增功能");
+            checkPermsAuth(tableName, GlobalBtn.A);
         } else {
-            containsFunction(genTable.getMenuRole(), GenTable.M, "模块:[" + functionName + "], 没有修改功能");
-            checkPermsAuth(tableName, GenTable.M);
+            containsFunction(genTable.getMenuRole(), GlobalBtn.M, "模块:[" + functionName + "], 没有修改功能");
+            checkPermsAuth(tableName, GlobalBtn.M);
             checkRoleDataAuth(tableName, context.getPkName(), context.getId());
         }
     }

+ 3 - 33
boman-web-core/src/main/java/com/boman/web/core/service/TableServiceCmdService.java

@@ -17,7 +17,6 @@ import com.boman.domain.GenTableColumn;
 import com.boman.domain.SysDictData;
 import com.boman.domain.constant.*;
 import com.boman.domain.dto.RoleMenuDto;
-import com.boman.domain.exception.NoSuchFunctionException;
 import com.boman.gen.api.RemoteGenTableColumnService;
 import com.boman.gen.api.RemoteGenTableService;
 import com.boman.system.api.RemoteMenuService;
@@ -101,9 +100,9 @@ public class TableServiceCmdService {
 
         checkColumn(commitData, context.getColumns());
         // 必填项
-        handlerRequired(commitData, context.getColumns());
+        handleRequired(commitData, context.getColumns());
         // 处理输入类型
-        handlerInputType(commitData, context.getColumns());
+        handleInputType(commitData, context.getColumns());
 
         AjaxResult result;
         // 新增
@@ -133,35 +132,6 @@ public class TableServiceCmdService {
 
     }
 
-    private void handlerInputType(JSONObject commitData, List<GenTableColumn> columns) {
-        for (Map.Entry<String, Object> entry : commitData.entrySet()) {
-            Object value =entry.getValue();
-            for (GenTableColumn column : columns) {
-                if (entry.getKey().equals(column.getColumnName())
-                        && ArrayUtils.arraysContains(GenConstants.COLUMNTYPE_NUMBER, getDbType(column.getColumnType()))) {
-                    if ((value instanceof Number)) {
-                        // ignore 这里的if不能删掉,因为else if有一个强转
-                    } else if (!NumberUtils.isCreatable(((String) value))) {
-                        throw new IllegalArgumentException(column.getColumnComment() + "只能输入数字");
-                    }
-                }
-            }
-        }
-    }
-
-    private void handlerRequired(JSONObject commitData, List<GenTableColumn> columns) {
-        for (GenTableColumn column : columns) {
-            if (GenTableColumn.IS_REQUIRED.equalsIgnoreCase(column.getIsRequired())) {
-                Object value = commitData.get(column.getColumnName());
-                if ((value instanceof String)) {
-                    requireNonNull((String) value, column.getColumnComment() + " 为必填项");
-                } else {
-                    requireNonNull(value, column.getColumnComment() + " 为必填项");
-                }
-            }
-        }
-    }
-
     /**
      * 功能描述: 通用删除接口 (真的删除)
      *
@@ -461,7 +431,7 @@ public class TableServiceCmdService {
             }
         }
         // 删除Q
-        btns.remove(GenTable.Q);
+        btns.remove(GlobalBtn.Q);
         return btns;
     }
 

+ 13 - 12
boman-web-core/src/main/java/com/boman/web/core/utils/AuthUtils.java

@@ -8,6 +8,7 @@ import com.boman.common.redis.service.RedisService;
 import com.boman.domain.GenTable;
 import com.boman.domain.SysRoleData;
 import com.boman.domain.constant.FormDataConstant;
+import com.boman.domain.constant.GlobalBtn;
 import com.boman.domain.exception.NoSuchFunctionException;
 import com.boman.system.api.RemoteMenuService;
 import com.boman.system.api.RemoteRoleDataService;
@@ -35,7 +36,7 @@ public class AuthUtils {
 
     public static boolean checkAuthObjectDelete(GenTable genTable, Long id, String pkName) {
         String functionName = genTable.getFunctionName();
-        if (!containsFunctionBool(genTable.getMenuRole(), GenTable.D, functionName)) {
+        if (!containsFunctionBool(genTable.getMenuRole(), GlobalBtn.D, functionName)) {
             return false;
         }
 
@@ -45,7 +46,7 @@ public class AuthUtils {
             return true;
         }
 
-        if (!checkPermsAuthBool(tableName, GenTable.D)) {
+        if (!checkPermsAuthBool(tableName, GlobalBtn.D)) {
             return false;
         }
 
@@ -53,7 +54,7 @@ public class AuthUtils {
     }
 
     public static void checkAuthQueryList(GenTable genTable, JSONObject condition) {
-        containsFunction(genTable.getMenuRole(), GenTable.Q, "此模块:[" + genTable.getFunctionName() + "], 没有查询功能");
+        containsFunction(genTable.getMenuRole(), GlobalBtn.Q, "此模块:[" + genTable.getFunctionName() + "], 没有查询功能");
 
         LoginUser loginUser = getLoginUser();
         if (SysUser.isAdmin(loginUser.getUserid())) {
@@ -172,7 +173,7 @@ public class AuthUtils {
         List<String> permsList = getLoginUserPermsList();
         String perms = packPermsKey(tableName, funcType);
         if (!permsList.contains(perms)) {
-            LOGGER.error("非法操作,操作人: {},tableName: {}, 操作类型: 此人未配置 {} 权限", getLoginUser().getUsername(), tableName, funcType(GenTable.D));
+            LOGGER.error("非法操作,操作人: {},tableName: {}, 操作类型: 此人未配置 {} 权限", getLoginUser().getUsername(), tableName, funcType(GlobalBtn.D));
            return false;
         }
 
@@ -284,21 +285,21 @@ public class AuthUtils {
 
     public static String funcType(String funcType) {
         switch (funcType) {
-            case GenTable.A:
+            case GlobalBtn.A:
                 return "新增";
-            case GenTable.M:
+            case GlobalBtn.M:
                 return "修改";
-            case GenTable.D:
+            case GlobalBtn.D:
                 return "删除";
-            case GenTable.Q:
+            case GlobalBtn.Q:
                 return "查询";
-            case GenTable.S:
+            case GlobalBtn.S:
                 return "提交";
-            case GenTable.U:
+            case GlobalBtn.U:
                 return "反提交";
-            case GenTable.E:
+            case GlobalBtn.E:
                 return "导出";
-            case GenTable.I:
+            case GlobalBtn.I:
                 return "导入";
             default:
                 return "未知";

+ 44 - 0
boman-web-core/src/main/java/com/boman/web/core/utils/ColumnUtils.java

@@ -3,8 +3,10 @@ package com.boman.web.core.utils;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.util.TypeUtils;
+import com.boman.common.core.constant.GenConstants;
 import com.boman.common.core.utils.SecurityUtils;
 import com.boman.common.core.utils.StringUtils;
+import com.boman.common.core.utils.array.ArrayUtils;
 import com.boman.common.core.utils.collection.CollectionUtils;
 import com.boman.common.core.utils.obj.ObjectUtils;
 import com.boman.domain.GenTableColumn;
@@ -13,6 +15,7 @@ import com.boman.domain.exception.UnknownColumnException;
 import com.google.common.base.Joiner;
 import com.google.common.collect.Lists;
 import org.apache.commons.collections4.MapUtils;
+import org.apache.commons.lang3.math.NumberUtils;
 
 import java.sql.Timestamp;
 import java.util.Comparator;
@@ -239,6 +242,47 @@ public class ColumnUtils {
         }
     }
 
+    /**
+     * 功能描述: 处理必填项
+     *
+     * @param commitData 需要提交的数据
+     * @param columns 所有的列
+     */
+    public static void handleRequired(JSONObject commitData, List<GenTableColumn> columns) {
+        for (GenTableColumn column : columns) {
+            if (GenTableColumn.IS_REQUIRED.equalsIgnoreCase(column.getIsRequired())) {
+                Object value = commitData.get(column.getColumnName());
+                if ((value instanceof String)) {
+                    requireNonNull((String) value, column.getColumnComment() + " 为必填项");
+                } else {
+                    requireNonNull(value, column.getColumnComment() + " 为必填项");
+                }
+            }
+        }
+    }
+
+    /**
+     * 功能描述: 处理输入类型的不合法
+     *
+     * @param commitData 需要提交的数据
+     * @param columns 所有的列
+     */
+    public static void handleInputType(JSONObject commitData, List<GenTableColumn> columns) {
+        for (Map.Entry<String, Object> entry : commitData.entrySet()) {
+            Object value =entry.getValue();
+            for (GenTableColumn column : columns) {
+                if (entry.getKey().equals(column.getColumnName())
+                        && ArrayUtils.arraysContains(GenConstants.COLUMNTYPE_NUMBER, getDbType(column.getColumnType()))) {
+                    if ((value instanceof Number)) {
+                        // ignore 这里的if不能删掉,因为else if有一个强转
+                    } else if (!NumberUtils.isCreatable(((String) value))) {
+                        throw new IllegalArgumentException(column.getColumnComment() + "只能输入数字");
+                    }
+                }
+            }
+        }
+    }
+
     /**
      * 功能描述: 封装成查询条件 key: 列名,  value:查询条件_查询类别
      * eg: [{"config_name": ["系统配置", "EQ", "varchar(100)"]}]

+ 1 - 1
ruoyi-ui/src/layout/components/Sidebar/Item.vue

@@ -22,7 +22,7 @@ export default {
 
     if (title) {
       vnodes.push(<span slot='title' style="color: #343434">{(title)}</span>)
-    }
+    }  
     return vnodes
   }
 }

+ 2 - 0
ruoyi-ui/src/main.js

@@ -31,6 +31,7 @@ import Pagination from "@/components/Pagination";
 import RightToolbar from "@/components/RightToolbar"
 import DynamicForm from "@/components/DynamicForm"
 import DynamicForms from "@/components/DynamicForms"
+import DynamicFormsteo from "@/components/DynamicFormsteo"
 import MemoranDum from "@/components/MemoranDum"
 import 'burgeon-ui/dist/styles/burgeon-ui.css';
 import 'burgeon-ui/dist/styles/bjIconfonts/iconfont.css';
@@ -69,6 +70,7 @@ Vue.component('Pagination', Pagination)
 Vue.component('RightToolbar', RightToolbar)
 Vue.component('DynamicForm', DynamicForm)
 Vue.component('DynamicForms', DynamicForms)
+Vue.component('DynamicFormsteo', DynamicFormsteo)
 Vue.component('MemoranDum', MemoranDum)
 
 Vue.use(permission)

+ 28 - 6
ruoyi-ui/src/views/system/editing/index.vue

@@ -30,14 +30,14 @@
       </div>
     </div>
     <!-- 内容 -->
-    <div class="eniting_nav">
+    <div class="eniting_nav table_forem">
       <el-collapse v-model="activeNames" @change="handleChange" >
        <el-form v-show="num == 0" :rules="queryData.rules" :model="queryParams" ref="queryForm" :inline="true" label-width="120px">
           <el-collapse-item :title="item.columnComment" :name="index" v-for="(item,index) in queryData.showData" :key="index"
             class="eitde">
             <el-row>
               <el-col :span="24" :key="index">
-                <dynamic-forms @modelFn="modelFn" :ref="items.columnName" :config="queryParams" @inputs="changeFn" :formConfig="items"
+                <dynamic-formsteo @modelFn="modelFn" :ref="items.columnName" :config="queryParams" @inputs="changeFn" :formConfig="items"
                   v-for="(items,indexs) in item.hrChildren" :key='indexs' />
               </el-col>
             </el-row>
@@ -265,11 +265,18 @@
                  this.imgShoew = route.cssClass
                  if(route.cssClass == 2 || route.cssClass == 4 ){
                    route.hrChildren.filter(routers =>{
-
+                    if(this.queryData.table_column == undefined){
+                      this.queryData.table_column = null
+                    }
+                    routers.tableColumnuy = this.queryData.table_column
                      routers.isonliy = true
                    })
                  }else{
                    route.hrChildren.filter(routers =>{
+                     if(this.queryData.table_column == undefined){
+                       this.queryData.table_column = null
+                     }
+                     routers.tableColumnuy = this.queryData.table_column
                      routers.isonliy = false
                    })
                  }
@@ -561,6 +568,20 @@
 </script>
 
 <style lang="scss">
+  .table_forem{
+    .el-form--inline .el-form-item{
+      width: 100% !important;
+    }
+    .el-select{
+      width: 100%;
+    }
+    .el-date-editor.el-input{
+      width: 100% !important;
+    }
+    .el-form-item--medium .el-form-item__content{
+      width: 70%;
+    }
+  }
   .eniting_header {
     position: relative;
     .el-divider--horizontal {
@@ -645,7 +666,8 @@
       background-color: #fff;
       border-radius: 6px;
       padding: 23px;
-      margin-bottom: 20px;
+      padding-top: 0;
+      margin-bottom: 10px;
     }
   }
 </style>
@@ -668,8 +690,8 @@
     .eniting_header {
       background-color: #fff;
       border-radius: 6px;
-      padding: 23px;
-      margin-bottom: 20px;
+      padding: 13px;
+      margin-bottom: 10px;
 
       .p {
         font-size: 15px;

+ 38 - 15
ruoyi-ui/src/views/system/form/index.vue

@@ -13,14 +13,12 @@
       </div>
     </div>
     <!-- 内容 -->
-    <div class="table_nav">
+    <div class="table_nav table_forem" >
       <el-collapse v-model="activeNames">
-         <el-form :model="queryParams" :rules="queryData.rules" ref="queryForm" :inline="true" label-width="120px">
+         <el-form :model="queryParams" :rules="queryData.rules" ref="queryForm" :inline="true" :label-width="this.queryData.table_column == 6 ? 80 :120">
         <el-collapse-item :title="item.columnComment" :name="index" v-for="(item,index) in queryData.showData" :key="index" class="eitde">
             <el-row :gutter="0">
-              <el-col :span="24"  :key="index">
-                  <dynamic-forms @modelFn="modelFn" :ref="items.columnName" :config="queryParams" @inputs = "changeFn" :formConfig="items" v-for="(items,indexs) in item.hrChildren" :key='indexs' />
-              </el-col>
+                  <dynamic-formsteo @modelFn="modelFn" :ref="items.columnName" :config="queryParams" @inputs = "changeFn" :formConfig="items" v-for="(items,indexs) in item.hrChildren" :key='indexs' />
             </el-row>
         </el-collapse-item>
         </el-form>
@@ -36,7 +34,7 @@
           <el-divider></el-divider>
           <div style="display: flex; align-items: center; margin-bottom: 20px;" class="hiueo">
             <el-form style="display: flex; align-items:center;" :model="queryParamstwoi" ref="queryForm" :inline="true" >
-              <dynamic-forms :ref="item.columnName" :config="queryParamstwoi" @inputs="changeFn" :formConfig="item" v-for="(item,index) in queryDatatao.queryList"
+              <DynamicForms :ref="item.columnName" :config="queryParamstwoi" @inputs="changeFn" :formConfig="item" v-for="(item,index) in queryDatatao.queryList"
                 :key='index' />
               <el-form-item>
                 <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQueryiu">搜索</el-button>
@@ -258,10 +256,18 @@
                  if(route.cssClass == 2 || route.cssClass == 4){
                    route.hrChildren.filter(routers =>{
                      routers.isonliy = true
+                     if(this.queryData.table_column == undefined){
+                       this.queryData.table_column = null
+                     }
+                     routers.tableColumnuy = this.queryData.table_column
                    })
                  }else{
                    route.hrChildren.filter(routers =>{
                      routers.isonliy = false
+                     if(this.queryData.table_column == undefined){
+                       this.queryData.table_column = null
+                     }
+                     routers.tableColumnuy = this.queryData.table_column
                    })
                  }
                }
@@ -543,24 +549,25 @@
          //删除
          this.handleDeletetwo(this.deledlid)
        }  else if(index == '新增'){
-           this.routerFn(-1, this.tabName,this.oieufr)
+           this.routerFn(-1, this.tabName,this.oieufr,this.forme.table)
        }else if(index == '修改'){
          if (this.single) {
            this.msgInfo('请勾选一条信息')
            return
          }
          const id = this.ids.join(',')
-         this.routerFn(id, this.tabName,this.oieufr)
+         this.routerFn(id, this.tabName,this.oieufr,this.forme.table)
        }
      },
-     routerFn(id, tables,tabfe) {
+     routerFn(id, tables,tabfe, tabik) {
        if (this.queryDatatao.viewType == 'crud') {
          this.$router.push({
            path: 'table',
            query: {
              id,
              tables,
-             tabfe
+             tabfe,
+             tabik
            },
          })
        } else if (this.queryDatatao.viewType == 'headTab') {
@@ -569,7 +576,8 @@
            query: {
              id,
              tables,
-             tabfe
+             tabfe,
+             tabik
            },
          })
        }
@@ -621,10 +629,25 @@
       .eitde {
         background-color: #fff;
         border-radius: 6px;
-        padding: 23px;
-        margin-bottom: 20px;
+        padding: 23px;
+        padding-top: 0;
+        margin-bottom: 10px;
       }
     }
+  }
+  .table_forem{
+    .el-form--inline .el-form-item{
+      width: 100% !important;
+    }
+    .el-select{
+      width: 100%;
+    }
+    .el-date-editor.el-input{
+      width: 100% !important;
+    }
+    .el-form-item--medium .el-form-item__content{
+      width: 70%;
+    }
   }
 </style>
 
@@ -642,8 +665,8 @@
     .tabForm_header {
       background-color: #fff;
       border-radius: 6px;
-      padding: 23px;
-      margin-bottom: 20px;
+      padding: 13px;
+      margin-bottom: 10px;
       position: relative;
     }
 

+ 40 - 21
ruoyi-ui/src/views/system/table/index.vue

@@ -13,15 +13,15 @@
       </div>
     </div>
     <!-- 内容 -->
-    <div class="table_nav headertable_nav" >
+    <div class="table_nav headertable_nav table_forem" >
       <el-collapse v-model="activeNames" @change="handleChange">
-        <el-form :model="queryParams" :rules="queryData.rules" ref="queryForm" :inline="true" label-width="120px">
+        <el-form :model="queryParams" :rules="queryData.rules" ref="queryForm" :inline="true" :label-width=" this.queryData.table_column == 6 ? 80 :120" >
           <el-collapse-item :title="item.columnComment" :name="index" v-for="(item,index) in queryData.showData" :key="index">
-            <el-row>
-              <el-col :span="24" :key="index">
-                <dynamic-forms @modelFn="modelFn" :ref="items.columnName" :config="queryParams" @inputs="changeFn" :formConfig="items" v-for="(items,indexs) in item.hrChildren"
+            <el-row    class="row-bg" >
+              <!-- <el-col :span="24" :key="index" > -->
+                <DynamicFormsteo @modelFn="modelFn" :ref="items.columnName" :config="queryParams" @inputs="changeFn" :formConfig="items" v-for="(items,indexs) in item.hrChildren"
                   :key='indexs' />
-              </el-col>
+              <!-- </el-col> -->
             </el-row>
           </el-collapse-item>
         </el-form>
@@ -180,8 +180,7 @@
           //新增
           this.xidugje = 0
           this.reload()
-        } else if (index == '返回') {
-          this.$store.dispatch("tagsView/delView", this.$route);
+        } else if (index == '返回') {
             this.$router.go(-1)
         } else if (index == '刷新') {
           this.xidugje = 1
@@ -258,15 +257,24 @@
          // 图片的显示隐藏
          if(this.queryData.showData.length !==0){
           this.queryData.showData.filter(route => {
+
             if(route.cssClass !== null){
               this.imgShoew = route.cssClass
               if(route.cssClass == 2 || route.cssClass == 4){
                 route.hrChildren.filter(routers =>{
                   routers.isonliy = true
+                  if(this.queryData.table_column == undefined){
+                    this.queryData.table_column = null
+                  }
+                  routers.tableColumnuy = this.queryData.table_column
                 })
               }else{
                 route.hrChildren.filter(routers =>{
                   routers.isonliy = false
+                  if(this.queryData.table_column == undefined){
+                    this.queryData.table_column = null
+                  }
+                  routers.tableColumnuy = this.queryData.table_column
                 })
               }
             }
@@ -299,8 +307,7 @@
             // }
             addbjectSave(this.forme).then(response => {
               this.msgSuccess("保存成功");
-              // this.open = false;
-              this.$store.dispatch("tagsView/delView", this.$route);
+              // this.open = false;
               this.$router.go(-1)
             });
           }
@@ -313,16 +320,14 @@
             if (this.formy.status == 1) {
               // 提交
               tableSubimt(this.formeanti).then(response => {
-                this.msgSuccess("提交成功");
-                this.$store.dispatch("tagsView/delView", this.$route);
+                this.msgSuccess("提交成功");
                 this.$router.go(-1)
                 // this.getList();
               });
             } else if (this.formy.status == 2) {
               // 反提交
               tableSubimtanit(this.formeanti).then(response => {
-                this.msgSuccess("反提交成功");
-                this.$store.dispatch("tagsView/delView", this.$route);
+                this.msgSuccess("反提交成功");
                 this.$router.go(-1)
                 // this.getList();
               });
@@ -340,8 +345,7 @@
           return delMenutab(index);
         }).then(() => {
           // this.getList();
-          this.msgSuccess("删除成功");
-          this.$store.dispatch("tagsView/delView", this.$route);
+          this.msgSuccess("删除成功");
           this.$router.go(-1)
         })
       }
@@ -356,6 +360,20 @@
       margin-top: 16px;
     }
   }
+  .table_forem{
+    .el-form--inline .el-form-item{
+      width: 100% !important;
+    }
+    .el-select{
+      width: 100%;
+    }
+    .el-date-editor.el-input{
+      width: 100% !important;
+    }
+    .el-form-item--medium .el-form-item__content{
+      width: 70%;
+    }
+  }
   .headertable_nav{
     .el-collapse-item__wrap{
       border-bottom: 0;
@@ -392,8 +410,8 @@
      .table_header{
         background-color: #fff;
         border-radius: 6px;
-        padding: 23px;
-        margin-bottom: 20px;
+        padding: 13px;
+        margin-bottom: 10px;
       p{
          font-size: 15px;
          font-weight: bold;
@@ -447,8 +465,8 @@
     .table_header {
       background-color: #fff;
       border-radius: 6px;
-      padding: 23px;
-      margin-bottom: 20px;
+      padding: 13px;
+      margin-bottom: 10px;
 
       p {
         font-size: 15px;
@@ -472,7 +490,8 @@
     .headertable_nav {
       background-color: #fff;
       border-radius: 6px;
-      padding: 23px;
+      padding: 23px;
+      padding-top: 0;
     }
   }
 

+ 9 - 1
ruoyi-ui/src/views/tool/gen/basicInfoForm.vue

@@ -23,6 +23,11 @@
             <el-radio label="N">否</el-radio>
           </el-radio-group>
         </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item  label="列数" prop="tableColumn">
+          <el-input type="number" :max="4" v-model="info.tableColumn" placeholder="请输入列数" />
+        </el-form-item>
       </el-col>
       <el-col :span="12">
         <el-form-item  label="菜单权限" prop="menuRole">
@@ -130,7 +135,10 @@ export default {
         ],
         viewType: [
           { required: true, message: "页面模板不能为空", trigger: "blur" }
-        ],
+        ],
+        tableColumn: [
+          { required: true, message: "列数不能为空", trigger: "blur" }
+        ]
       }
     };
   }

+ 15 - 0
ruoyi-ui/src/views/tool/gen/index.vue

@@ -124,6 +124,11 @@
               </el-radio-group>
             </el-form-item>
           </el-col>
+          <el-col :span="12">
+            <el-form-item label="列数" prop="tableColumn">
+              <el-input type="number" :max="4" v-model="form.tableColumn" placeholder="请输入列数" maxlength="50" />
+            </el-form-item>
+          </el-col>
           <el-col :span="12">
             <el-form-item label="菜单权限" prop="menuRole">
               <el-input v-model="form.menuRole" placeholder="请输入菜单权限" />
@@ -164,6 +169,7 @@
               <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>
@@ -262,6 +268,11 @@
             required: true,
             message: "菜单权限不能为空",
             trigger: "blur"
+          }],
+          tableColumn: [{
+            required: true,
+            message: "列数不能为空",
+            trigger: "blur"
           }]
         }
       };
@@ -396,6 +407,10 @@
       },
       /** 提交按钮 */
       submitForm: function() {
+        if( this.form.tableColumn > 4 ){
+          this.msgSuccess("列数不能大于4");
+          return false
+        }
         this.$refs["form"].validate(valid => {
           if (valid) {
             if (this.form.id != undefined) {