zhaoke 1 ano atrás
pai
commit
23cab29d8f
1 arquivos alterados com 84 adições e 11 exclusões
  1. 84 11
      src/views/table/index.vue

+ 84 - 11
src/views/table/index.vue

@@ -110,7 +110,6 @@
 </template>
 
 <script>
-import { setTableFilters } from "@/utils/table";
 import Dialog from "@/layout/components/Dialog/index.vue";
 import NoData from "@/components/nodata";
 import AdvanceQuery from './components/advanceQuery.vue';
@@ -122,10 +121,10 @@ import TableHeaderCell from '@/components/TableHeaderCell/index.vue';
 export default {
   name: "DataTable",
   props: {
-    dataContent: {
-      type: Object,
-      default: () => ({}),
-    },
+    // dataContent: {
+    //   type: Object,
+    //   default: () => ({}),
+    // },
     //弹框宽度
     width: {
       type: String,
@@ -221,6 +220,8 @@ export default {
       urlParams: {},
       authId: '',
       tableDataSortRules: {},
+      tableKey: '',
+      dataContent: {}
     };
   },
   computed: {
@@ -348,8 +349,14 @@ export default {
         if (code == 0) {
           if (returnData && returnData.length) {
             const titleColumn = returnData.find(
-              (item) => item.needShow === 1
+              (item) => item.needShow == 1
+            );
+            const columnName = returnData.find(
+              (item) => item.columnKey == 1
             );
+            if (Object.keys(columnName).length && columnName) {
+              this.tableKey = columnName['columnName']
+            }
             if (titleColumn) {
               this.rowTitle = titleColumn.columnName;
             }
@@ -561,12 +568,79 @@ export default {
         this.loading = false;
       }
     },
+    formatChange (data, event, key) {
+      const datas = []
+      const flag = Array.isArray(data)
+      if (flag) {
+        for (let i = 0; i < data.length; i++) {
+          let obj = {}
+          if (event == 1) {
+            obj.Value = data[i]
+          } else if (event == 2) {
+            obj.Value = data[i]
+            obj.filter = {}
+            if (Array.isArray(key)) {
+              const keys = []
+              const vals = []
+              obj.filter = []
+              for (let j = 0; j < key.length; j++) {
+                const dep = key[i]
+                keys.push(Object.keys(dep))
+                vals.push(Object.values(dep))
+              }
+              const nobj = {
+                "left": "(",
+                "column": `${keys[i]}`,
+                "comparator": "=",
+                "value": `${vals[i]}`,
+                "right": ")",
+                "connector": "and"
+              }
+              obj.filter.push(nobj)
+              if (obj.Value.hasOwnProperty(keys[i])) {
+                delete obj.Value[keys[i]]
+              }
+            } else {
+              obj.filter[key] = data[i][key]
+              if (obj.Value[key]) {
+                delete obj.Value[key]
+              }
+            }
+          } else {
+            obj = data[i]
+          }
+          datas.push(obj)
+        }
+      } else {
+        let obj = {}
+        if (event == 1) {
+          obj.Value = data
+        } else if (event == 2) {
+          obj.Value = data
+          obj.filter = [{
+            "left": "(",
+            "column": `${key}`,
+            "comparator": "=",
+            "value": `${data[key]}`,
+            "right": ")",
+            "connector": "and"
+          }]
+          if (obj.Value[key]) {
+            delete obj.Value[key]
+          }
+        } else {
+          obj = data
+        }
+        datas.push(obj)
+      }
+      return datas
+    },
     //表格-增/删/改
-    async generalDataReception (event, data) {
+    async generalDataReception (event, data, key) {
       try {
         const params = {
           serviceId: this.serviceId,
-          dataContent: data,
+          dataContent: this.formatChange(data, event, key),
           event: `${event}`,
         };
         const { code } =
@@ -815,11 +889,10 @@ export default {
       this.$refs["ruleForm"].validate((valid) => {
         if (valid) {
           if (this.tableType == "add") {
-            this.tableForm.event = 1;
+            this.generalDataReception(1, this.tableForm);
           } else {
-            this.tableForm.event = 2;
+            this.generalDataReception(2, this.tableForm, this.tableKey);
           }
-          this.generalDataReception(this.tableForm.event, this.tableForm);
         } else {
           return false;
         }