yrik 4 年之前
父节点
当前提交
ab54500396

+ 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="filterConditions">
+          <el-input  :disabled="true" v-model="info.filterConditions" placeholder="请输入显示字段" maxlength="50" />
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item  label="输入字段" prop="filterConditions">
+          <el-input :disabled="true" v-model="info.filterConditions" placeholder="请输入输入字段" maxlength="50" />
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item   label="主键" prop="filterConditions">
+          <el-input :disabled="true" v-model="info.filterConditions" 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" }
         ]
       }
     };

+ 1 - 0
ruoyi-ui/src/views/tool/gen/editTable.vue

@@ -180,6 +180,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();
+            });
+          }
+        }
+      });
     }
   }
 };