Преглед изворни кода

获取非基础表工具函数/更改k-form-design源码添加字段

lph пре 1 година
родитељ
комит
b69e4feb08

+ 9 - 5
ruoyi-ui/src/components/updateModule/k-form-design/packages/components/KFormDesign/module/formItemProperties.vue

@@ -567,7 +567,8 @@
 import KChangeOption from "../../KChangeOption/index.vue";
 import kCheckbox from "../../KCheckbox/index.vue";
 import { pluginManager } from "../../../utils/index";
-import {  getListName,  getFormName } from "@/api/dragform/form";
+import { getListName, getFormName } from "@/api/dragform/form";
+import {getUncommonTable} from '@/utils/other'
 const Input = pluginManager.getComponent("input").component;
 const InputNumber = pluginManager.getComponent("number").component;
 const Rate = pluginManager.getComponent("rate").component;
@@ -707,13 +708,16 @@ export default {
     isDefined(value) {
       return typeof value !== "undefined";
     },
-    getFormList() {
+    async getFormList() {
       let par = {
         ... this.$store.state.user.dataSource
       }
-      getFormName(par).then(res=>{
-        this.formList.formName = res.data
-      });
+      let res = await getUncommonTable()
+      this.formList.formName=res
+      // console.log(res);
+      // getFormName(par).then(res=>{
+      //   this.formList.formName = res.data
+      // });
     },
     getListName(item) {
     item.model=''

+ 53 - 3
ruoyi-ui/src/components/updateModule/k-form-design/packages/components/KFormDesign/module/formProperties.vue

@@ -2,6 +2,46 @@
   <div class="properties-centent kk-checkbox">
     <div class="properties-body">
       <a-form>
+        <!-- 新增的 start -->
+        <a-form-item label="表单名称">
+            <Input style="width:100%;" v-model="config.formName" />
+        </a-form-item>
+        <a-form-item label="表单别名">
+            <Input style="width:100%;" v-model="config.nickFormName" />
+        </a-form-item>
+        <a-form-item label="绑定表名称(主表)">
+            <!-- <Input style="width:100%;" v-model="config.mainTableName" /> -->
+            <el-select v-model="config.mainTableName" placeholder="请选择">
+            <el-option
+              v-for="item in tableList"
+              :key="item.tableName"
+              :label="item.tableComment"
+              :value="item.tableName">
+              <span style="float: left">{{ item.tableComment }}</span>
+      <span style="float: right; color: #8492a6; font-size: 13px">{{ item.tableName }}</span>
+            </el-option>
+          </el-select>
+        </a-form-item>
+        <a-form-item label="表单描述">
+            <Textarea v-model="config.formDescription" />
+        </a-form-item>
+        <a-form-item label="表单sql">
+            <Textarea v-model="config.formSQL" />
+        </a-form-item>
+        <a-form-item label="表单节点id">
+            <!-- <Input style="width:100%;" v-model="config.mainTableName" /> -->
+            <el-select v-model="config.formNodeId" placeholder="请选择">
+            <el-option
+              v-for="item in []"
+              :key="item.tableName"
+              :label="item.tableComment"
+              :value="item.tableName">
+              <span style="float: left">{{ item.tableComment }}</span>
+      <span style="float: right; color: #8492a6; font-size: 13px">{{ item.tableName }}</span>
+            </el-option>
+          </el-select>
+        </a-form-item>
+        <!-- 新增的 end -->
         <a-form-item label="表单布局">
           <Radio buttonStyle="solid" v-model="config.layout">
             <RadioButton value="horizontal">水平</RadioButton>
@@ -27,7 +67,7 @@
         >
           <el-select v-model="config.tdId" @change="relationTableChange" filterable placeholder="请选择">
             <el-option
-              v-for="item in tableList"
+              v-for="item in dragTableList"
               :key="item.tId"
               :label="item.dtName"
               :value="item.tId">
@@ -120,10 +160,12 @@
  * date 2019-11-20
  * description 表单属性设置面板组件
  */
+import {getUncommonTable} from '@/utils/other'
 import kCheckbox from "../../KCheckbox/index.vue";
 import { pluginManager } from "../../../utils/index";
 import {dragTableList} from '@/api/dragform/tableList.js'
 const InputNumber = pluginManager.getComponent("number").component;
+const Input = pluginManager.getComponent("input").component;
 const Radio = pluginManager.getComponent("radio").component;
 const RadioButton = pluginManager.getComponent("radioButton").component;
 const Textarea = pluginManager.getComponent("textarea").component;
@@ -134,6 +176,7 @@ export default {
   name: "formProperties",
   data() {
     return {
+      dragTableList: [],
       tableList:[],
     }
   },
@@ -141,6 +184,7 @@ export default {
     kCheckbox,
     InputNumber,
     Radio,
+    Input,
     RadioButton,
     Textarea,
     Slider,
@@ -157,6 +201,11 @@ export default {
     }
   },
   methods: {
+    // 获取所有非基础表
+    async getUncommonTable() {
+      let res = await getUncommonTable()
+      this.tableList = res;
+    },
     handleChangeCol(e) {
       this.config.labelCol.xs = this.config.labelCol.sm = this.config.labelCol.md = this.config.labelCol.lg = this.config.labelCol.xl = this.config.labelCol.xxl = e;
 
@@ -164,14 +213,15 @@ export default {
         24 - e;
     },
     relationTableChange(tId) {
-      let sqlKey = this.tableList.filter(item => item.tId == tId)[0].sqlKey;
+      let sqlKey = this.dragTableList.filter(item => item.tId == tId)[0].sqlKey;
 sessionStorage.setItem('sqlKey',sqlKey)
   }
   },
   async created () {
     let res = await dragTableList()
+    this.getUncommonTable()
     if (res.code == 200) {
-      this.tableList=res.data
+      this.dragTableList=res.data
     } else {
       this.$message.error("请选择数据表");
       this.$message.error(res.msg)

+ 24 - 0
ruoyi-ui/src/utils/other.js

@@ -0,0 +1,24 @@
+import { getDicts } from "@/api/system/dict/data";
+import {
+  getFormName
+} from "@/api/dragform/form.js";
+import store from '@/store'
+
+/**
+ * 获取非基础表列表
+ */
+export async function getUncommonTable() {
+  let data = {
+    databaseName: store.state.user.dataSource.databaseName,
+    databaseType: store.state.user.dataSource.databaseType,
+  }
+  const res = await getFormName(data);
+  const baseTable = await getDicts("base_table");
+  let result = res.data.filter((item) => {
+    return !baseTable.data.some(
+      (value) =>
+        value.dictValue.toLowerCase() == item.tableName.toLowerCase()
+    );
+  });
+  return result
+}

+ 16 - 3
ruoyi-ui/src/views/system/fromModel/index.vue

@@ -74,18 +74,31 @@ export default {
   methods: {
     handleSave(values) {
       var jsonData = JSON.parse(values);
+      console.log(values);
       //
       var editorHtmlJson =
         codeHtmlFront + JSON.stringify(jsonData) + codeHtmlLast;
+      let {
+        formName,
+        nickFormName,
+        mainTableName,
+        formDescription,
+        formSQL,
+        formNodeId,
+      } = jsonData;
       // console.log(this.fid)
       if (!this.fid) {
         addForm({
-          dfName: "1",
-          dfNickname: "1",
+          dfName: formName,
+          dfNickname: nickFormName,
           sqlKey: sessionStorage.getItem("sqlKey") || "",
           dfVueTemplate: values,
           dtId: JSON.parse(values).config.tdId,
           dfHtmlTemplate: editorHtmlJson.toString(),
+          dfTableName: mainTableName,
+          dfNotes: formDescription,
+          dfFormSql: formSQL,
+          dfNodeId: formNodeId,
         }).then((res) => {
           console.log(res);
           this.$message(res.msg);
@@ -115,7 +128,7 @@ export default {
     this.fid = fid;
 
     getForm(fid).then((response) => {
-      console.log('res', response);
+      console.log("res", response);
       sessionStorage.setItem("sqlKey", response.data.sqlKey);
       const jsonData = JSON.parse(response.data.dfVueTemplate);
       this.$refs.kfd.handleSetData(jsonData);

+ 1 - 0
ruoyi-ui/src/views/system/menu/index.vue

@@ -129,6 +129,7 @@
       <el-table-column
         prop="tenantName"
         label="租户名称"
+        v-if="$store.state.user.name == 'admin'"
         :show-overflow-tooltip="true"
       ></el-table-column>
       <el-table-column

+ 1 - 0
ruoyi-ui/src/views/system/role/index.vue

@@ -143,6 +143,7 @@
       <el-table-column
         label="租户名称"
         prop="tenantName"
+        v-if="$store.state.user.name == 'admin'"
         :show-overflow-tooltip="true"
         width="150"
       />

+ 2 - 2
ruoyi-ui/src/views/system/user/index.vue

@@ -195,7 +195,7 @@
             align="center"
             key="tenantName"
             prop="tenantName"
-            v-if="columns[7].visible"
+            v-if="columns[7].visible && $store.state.user.name == 'admin'"
             :show-overflow-tooltip="true"
           />
           <el-table-column
@@ -689,7 +689,7 @@ export default {
       this.$refs.tree.filter(val);
     },
   },
-  activated(){
+  activated() {
     this.getDeptTree();
   },
   created() {