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

k-form-design源码修改/修复多下拉框设置下拉数据异常问题

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

+ 25 - 14
ruoyi-ui/src/components/kFormDesign/OptionsEdit.vue

@@ -445,18 +445,17 @@ export default {
     },
     mySelectItem: {
       handler(nval) {
-        console.log(nval);
-        if (
-          nval.options.sqlData &&
-          nval.options.sqlData.dynamicName == nval.options.dynamicKey
-        ) {
-          this.btnList = nval.options.sqlData.echoDatas.map((item) => {
-            return {
-              sql: "",
-              echoData: item,
-            };
-          });
-        }
+        // if (
+        //   nval.options.sqlData &&
+        //   nval.options.sqlData.dynamicName == nval.options.dynamicKey
+        // ) {
+        //   this.btnList = nval.options.sqlData.echoDatas.map((item) => {
+        //     return {
+        //       sql: "",
+        //       echoData: item,
+        //     };
+        //   });
+        // }
       },
       deep: true,
       immediate: true,
@@ -464,6 +463,17 @@ export default {
     myOptions: {
       handler(nval) {
         console.log("options", nval);
+        this.btnList = [];
+        this.reset();
+        if (nval.sqlData && nval.sqlData.dynamicName == nval.dynamicKey) {
+          this.btnList = nval.sqlData.echoDatas.map((item) => {
+            return {
+              sql: "",
+              echoData: item,
+            };
+          });
+        }
+        console.log(this.btnList);
       },
       deep: true,
       immediate: true,
@@ -539,12 +549,14 @@ export default {
       // }
       this.editIndex = editIndex;
       let currentItem = this.btnList[editIndex];
+      console.log(currentItem, "currentItem");
       if (currentItem?.echoData) {
         let { formData, filterTableData, flagFormData } = JSON.parse(
           currentItem.echoData
         );
         this.filterTableData = filterTableData;
         this.formData = formData;
+
         // this.flagFormData = flagFormData;
       } else {
         this.btnList[editIndex] = {
@@ -552,6 +564,7 @@ export default {
           echoData: "",
         };
       }
+      this.formData.dynamicName = this.myOptions.dynamicKey;
       this.isShow = true;
     },
     // 弹窗取消回调
@@ -561,7 +574,6 @@ export default {
     },
     // 弹窗确认回调
     conformHandler() {
-      console.log(this.formData, this.filterTableData);
       let sql = getOptionsSqlString(this.formData, this.filterTableData);
       // let sqlData = {};
       // sqlData[this.formData.dynamicName] = sql;
@@ -583,7 +595,6 @@ export default {
       sqlData.sqls = this.btnList.map((item) => item.sql);
       sqlData.echoDatas = this.btnList.map((item) => item.echoData);
       this.$emit("setDynamicKey", sqlData);
-      console.log(sql);
       this.reset();
 
       this.isShow = false;

+ 9 - 0
ruoyi-ui/src/components/updateModule/k-form-design/packages/components/KFormDesign/index.vue

@@ -120,6 +120,7 @@
                 class="form-item-properties"
                 :selectItem="selectItem"
                 :hideModel="hideModel"
+                @changeOptionsListData="changeOptionsListData"
               />
             </a-tab-pane>
           </a-tabs>
@@ -273,6 +274,14 @@ export default {
     }
   },
   methods: {
+    changeOptionsListData(flag, index) {
+      if (flag) {
+        this.selectItem.options.optionsListData.push('');
+        console.log(this.selectItem.options.optionsListData);
+      } else (
+        this.selectItem.options.optionsListData.split(index,1)
+      )
+    },
     generateKey(list, index) {
       // console.log('generateKey');
       // 生成key值

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

@@ -25,7 +25,7 @@
             @change="getFormList"
             mode="tags"
           /> -->
-          <el-select v-model="selectItem.tableName" placeholder="请选择" @change="getListName(selectItem)">
+          <el-select v-model="selectItem.tableName" placeholder="请选择" filterable @change="getListName(selectItem)">
             <el-option
               v-for="item in formList.formName"
               :key="item.tableName"
@@ -40,7 +40,7 @@
           v-if="!hideModel && isDefined(selectItem.model)"
           label="列名"
         >
-          <el-select v-model="selectItem.model" placeholder="请选择">
+          <el-select v-model="selectItem.model" filterable placeholder="请选择">
             <el-option
               v-for="item in formList.listName"
               :key="item.value"
@@ -140,13 +140,16 @@
             <RadioButton :value="false">静态数据</RadioButton>
             <RadioButton :value="true">动态数据</RadioButton>
           </Radio>
-
-          <Input
+          <!-- <div class="dynamic-wrap"> -->
+            <Input
             v-show="options.dynamic"
             v-model="options.dynamicKey"
             placeholder="动态数据变量名"
           />
-          <OptionsEdit v-show="options.dynamic" @setDynamicKey="setDynamicKey" :options="options" :selectItem="selectItem"></OptionsEdit>
+          <OptionsEdit class="ml5 mt10" :dynamicKey="options.dynamicKey" v-show="options.dynamic&&options
+          .dynamicKey" @setDynamicKey="setDynamicKey" :options="options" :selectItem="selectItem"></OptionsEdit>
+          <!-- </div> -->
+          
           
 
           <KChangeOption v-show="!options.dynamic" v-model="options.options" />
@@ -707,10 +710,11 @@ export default {
     }
   },
   methods: {
-    setDynamicKey(key,sqlData) {
-      this.options.dynamicKey = key;
-      this.options.sqlData=sqlData
-      console.log(this.options.dynamicKey,key,111);
+    setDynamicKey(sqlData) {
+      console.log('sqlData',sqlData);
+      this.options.dynamicKey = sqlData.dynamicName;
+      this.options.sqlData=JSON.parse(JSON.stringify(sqlData))
+      // console.log(this.options.dynamicKey,key,111);
     },
     /**
      * 判断是否已定义
@@ -757,3 +761,12 @@ export default {
   
 };
 </script>
+
+<style lang="scss" scoped>
+.dynamic-wrap{
+  display: flex !important;
+  align-items: center;
+
+}
+
+</style>

+ 3 - 2
ruoyi-ui/src/utils/sqlString.js

@@ -14,12 +14,13 @@ export default function getOptionsSqlString(baseData, conditions) {
   })
   let set = new Set(allTable);
   allTable = [...set];
-  console.log(allTable);
   let tableNickNameStr = ''    //表格别名
   allTable.forEach(item => {
     tableNickNameStr += `${item} AS ${item} `
   })
-  tableNickNameStr += 'WHERE '
+  if (conditions?.length) {
+    tableNickNameStr += 'WHERE '
+  }
   // 拼接条件
   let conditionArr = [];
   conditions.forEach(condition => {

+ 0 - 1
ruoyi-ui/src/views/bussiness/components/taskList.vue

@@ -48,7 +48,6 @@
 <script>
 import uuid from "@/utils/bpmn/uuid";
 import TaskItem from "./TaskItem.vue";
-import { start } from "nprogress";
 export default {
   name: "TaskList",
   props: ["cardData"],