From 81bb118e00f8d5ee081795d142e539de50953518 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期一, 15 四月 2024 17:27:25 +0800
Subject: [PATCH] 列表查询

---
 Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue              |   63 +++-
 Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue    |    8 
 Source/ProjectWeb/src/components/dynamic-components/index.vue             |   31 ++
 Source/ProjectWeb/src/views/base/UIContentArea.vue                        |   21 +
 Source/ProjectWeb/src/api/base/ui.js                                      |   14 
 Source/ProjectWeb/src/components/dynamic-components/dynamic-TreeTable.vue |    8 
 Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue      |    8 
 Source/ProjectWeb/src/views/base/UIContentViewer.vue                      |   59 +++-
 Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue     |  582 +++++++++++-----------------------------
 Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue      |   13 
 10 files changed, 349 insertions(+), 458 deletions(-)

diff --git a/Source/ProjectWeb/src/api/base/ui.js b/Source/ProjectWeb/src/api/base/ui.js
index 4d80518..342df1c 100644
--- a/Source/ProjectWeb/src/api/base/ui.js
+++ b/Source/ProjectWeb/src/api/base/ui.js
@@ -10,14 +10,14 @@
 }
 
 //UI涓婁笅鏂囧垪琛ㄦ煡璇�
-export const getList = (current, size, params) => {
+export const getList = (page, limit, params) => {
   return request({
     url: '/api/uiDataController/dataGridQuery',
-    method: 'get',
-    params: {
+    method: 'post',
+    data: {
       ...params,
-      current,
-      size,
+      page,
+      limit,
     }
   })
 }
@@ -26,8 +26,8 @@
 export const getTree = (parentCode, params) => {
   return request({
     url: '/api/uiDataController/getDataForTree',
-    method: 'get',
-    params: {
+    method: 'post',
+    data: {
       ...params,
       parentCode
     }
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-TreeTable.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-TreeTable.vue
index 6f6efc4..13e0693 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-TreeTable.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-TreeTable.vue
@@ -30,6 +30,14 @@
 export default {
   name: "dynamic-TreeTable",
   props: {
+    //ui涓婁笅鏂囩殑涓氬姟绫诲瀷锛堟垨閾炬帴绫诲瀷锛�
+    uiBtmType: {
+      type: String
+    },
+    //ui涓婁笅鏂�
+    uiContext:{
+      type: String
+    },
     componentVO: {
       type: Object,
       default: {}
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue
index 522c005..2358b28 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-custom.vue
@@ -33,6 +33,14 @@
     'test2': () => import('@/views/custom-ui/test2'),
   },
   props: {
+    //ui涓婁笅鏂囩殑涓氬姟绫诲瀷锛堟垨閾炬帴绫诲瀷锛�
+    uiBtmType: {
+      type: String
+    },
+    //ui涓婁笅鏂�
+    uiContext:{
+      type: String
+    },
     componentVO: {
       type: Object,
       default: {}
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
index 79ed7d8..99b4527 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue
@@ -48,6 +48,14 @@
   name: "dynamic-form",
   components: {VciWebRefer},
   props: {
+    //ui涓婁笅鏂囩殑涓氬姟绫诲瀷锛堟垨閾炬帴绫诲瀷锛�
+    uiBtmType: {
+      type: String
+    },
+    //ui涓婁笅鏂�
+    uiContext:{
+      type: String
+    },
     componentVO: {
       type: Object,
       default: {}
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
index f0892f0..dae2474 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
@@ -6,6 +6,11 @@
                :option="option"
                :page.sync="pageType"
                :table-loading="loading"
+               @on-load="onLoad"
+               @search-reset="searchReset"
+               @refresh-change="handleRefresh"
+               @current-change="currentChange"
+               @size-change="sizeChange"
                @row-click="rowClickChange"
                @search-change='searchChange'
                @selection-change="selectChange">
@@ -31,6 +36,14 @@
 export default {
   name: "dynamic-table",
   props: {
+    //ui涓婁笅鏂囩殑涓氬姟绫诲瀷锛堟垨閾炬帴绫诲瀷锛�
+    uiBtmType: {
+      type: String
+    },
+    //ui涓婁笅鏂�
+    uiContext:{
+      type: String
+    },
     componentVO: {
       type: Object,
       default: {}
@@ -47,6 +60,10 @@
       //鑿滃崟婧愭暟鎹垨鑰呭脊绐楁椂鎸夐挳鎵�灞炲尯鍩熺殑涓婁竴鍖哄煙閫変腑鏁版嵁
       type: Object,
       default: {}
+    },
+    //涓婁竴鍖哄煙涓氬姟绫诲瀷
+    sourceBtmType:{
+      type: String
     },
     paramVOS: {
       type: Object,
@@ -70,413 +87,21 @@
     return {
       parentHeight: '100%',//褰撳墠缁勪欢鏍硅妭鐐瑰厓绱犻珮搴�
       form: {},
+      query:{},
       loading: false,
       page: {
         pageSize: 10,
         currentPage: 1,
-        total: 50,
+        total: 0,
       },
       simplePage: {
         currentPage: 1,
-        total: 100,
+        total: 0,
         pagerCount: 4,
         layout: "prev, pager, next"
       },
       //琛ㄦ牸鏁版嵁
-      tableList: [
-        {
-          code: "20220102",
-          lastmodifier: "jhming",
-          revisionseq: "1",
-          versionvalue: "1",
-          description: "",
-          oid: "2E66D17B-E3E6-4725-BB83-93F4A20D4E20",
-          versionseq: "1",
-          content: "绗簩娆′腑鏈熻瘎瀹$姽澶汉",
-          checkinby: "",
-          revisionrule: "ObjectVersion",
-          reviewtypetext: "閮ㄩ棬绾�",
-          lctid: "ProcessReviewLC",
-          reviewtype: "department",
-          lcstatus_text: "缂栬緫涓�",
-          id: "",
-          owner: "1",
-          checkoutby: "",
-          creator: "1",
-          createtime: "2022-01-13 13:58:43.035",
-          isfirstv: "1",
-          lastmodifier_name: "濮滅孩鏄�",
-          revisionoid: "4F400A1B-2313-4B11-894C-4F4F0B01368A",
-          btmname: "processreview",
-          checkouttime: "",
-          revisionvalue: "A",
-          versionrule: "0",
-          name: "1鏈堣瘎瀹�3",
-          islastr: "1",
-          lastmodifytime: "2022-07-15 16:04:43.703",
-          copyfromversion: "",
-          creator_name: "娴嬭瘯",
-          nameoid: "CF350DE8-8E6D-470B-B273-4FD78D41BA4A",
-          lcstatus: "Editing",
-          islastv: "1",
-          checkintime: "",
-          isfirstr: "1",
-          ts: "2022-07-15 16:04:43.703"
-        },
-        {
-          code: "w02",
-          lastmodifier: "1",
-          revisionseq: "0",
-          versionvalue: "1",
-          description: "",
-          oid: "2f8d94b2-d65a-4f9b-9a71-caa3afd96459",
-          versionseq: "0",
-          content: "",
-          checkinby: "",
-          revisionrule: "ObjectVersion",
-          reviewtypetext: "閮ㄩ棬绾�",
-
-          lctid: "ProcessReviewLC",
-          reviewtype: "department",
-          lcstatus_text: "缂栬緫涓�",
-          id: "",
-          owner: "1",
-          checkoutby: "",
-          creator: "1",
-          createtime: "2022-02-18 14:35:45.03",
-          isfirstv: "1",
-          lastmodifier_name: "娴嬭瘯",
-          revisionoid: "31612b9f-022d-4b05-a24c-370a0fd457da",
-          btmname: "processreview",
-          checkouttime: "",
-          revisionvalue: "A",
-          versionrule: "0",
-          name: "web椤甸潰娴嬭瘯02",
-          islastr: "1",
-          lastmodifytime: "2022-02-18 14:35:45.03",
-          copyfromversion: "",
-          creator_name: "娴嬭瘯",
-          nameoid: "dfc0d8a5-ebe7-40f2-af56-fa437d3866e0",
-          lcstatus: "Editing",
-          islastv: "1",
-          checkintime: "",
-          isfirstr: "1",
-          ts: "2022-02-18 14:35:45.03"
-        },
-        {
-          code: "webt01",
-          lastmodifier: "1",
-          revisionseq: "0",
-          versionvalue: "1",
-          description: "",
-          oid: "38033242-3cb4-415c-9cc4-acdb86c2ee8f",
-          versionseq: "0",
-          content: "wbtest123淇敼鍚�",
-          checkinby: "",
-          revisionrule: "ObjectVersion",
-          reviewtypetext: "閮ㄩ棬绾�",
-          lctid: "ProcessReviewLC",
-          reviewtype: "department",
-          lcstatus_text: "寰呰瘎瀹�",
-          id: "",
-          owner: "1",
-          checkoutby: "",
-          creator: "1",
-          createtime: "2022-01-21 10:04:08.053",
-          isfirstv: "1",
-          lastmodifier_name: "娴嬭瘯",
-          revisionoid: "3f3b2112-f356-4809-969b-1e63f6daa08d",
-          btmname: "processreview",
-          checkouttime: "",
-          revisionvalue: "A",
-          versionrule: "0",
-          name: "web绔柊澧炴祴璇�01",
-          islastr: "1",
-          lastmodifytime: "2022-02-09 09:45:56.044",
-          copyfromversion: "",
-          creator_name: "娴嬭瘯",
-          nameoid: "d8975a06-4c1e-462b-af84-093068c58e9e",
-          lcstatus: "Waiting",
-          islastv: "1",
-          checkintime: "",
-          isfirstr: "1",
-          ts: "2022-02-09 09:45:56.044"
-        },
-        {
-          code: "w017",
-          lastmodifier: "1",
-          revisionseq: "0",
-          versionvalue: "1",
-          description: "",
-          oid: "4011e1a7-9eb6-4b5c-89bf-847abff56682",
-          versionseq: "0",
-          content: "",
-          checkinby: "",
-          revisionrule: "ObjectVersion",
-          reviewtypetext: "閮ㄩ棬绾�",
-          lctid: "ProcessReviewLC",
-          reviewtype: "department",
-          lcstatus_text: "缂栬緫涓�",
-          id: "",
-          owner: "1",
-          checkoutby: "",
-          creator: "1",
-          createtime: "2022-02-18 14:37:53.247",
-          isfirstv: "1",
-          lastmodifier_name: "娴嬭瘯",
-          revisionoid: "648f5cf8-b42a-4b78-9928-883c94a83081",
-          btmname: "processreview",
-          checkouttime: "",
-          revisionvalue: "A",
-          versionrule: "0",
-          name: "web椤甸潰娴嬭瘯17",
-          islastr: "1",
-          lastmodifytime: "2022-02-18 14:37:53.247",
-          copyfromversion: "",
-          creator_name: "娴嬭瘯",
-          nameoid: "5d14e204-f085-4be0-9da6-b08c99172f8a",
-          lcstatus: "Editing",
-          islastv: "1",
-          checkintime: "",
-          isfirstr: "1",
-          ts: "2022-02-18 14:37:53.247"
-        },
-        {
-          code: "w03",
-          lastmodifier: "1",
-          revisionseq: "0",
-          versionvalue: "1",
-          description: "",
-          oid: "68583bec-b9ca-4321-8b66-a11d2298f51e",
-          versionseq: "0",
-          content: "",
-          checkinby: "",
-          revisionrule: "ObjectVersion",
-          reviewtypetext: "閮ㄩ棬绾�",
-          lctid: "ProcessReviewLC",
-          reviewtype: "department",
-          lcstatus_text: "缂栬緫涓�",
-          id: "",
-          owner: "1",
-          checkoutby: "",
-          creator: "1",
-          createtime: "2022-02-18 14:35:53.177",
-          isfirstv: "1",
-          lastmodifier_name: "娴嬭瘯",
-          revisionoid: "ff85f436-4dd1-498e-9665-44d53e27ac29",
-          btmname: "processreview",
-          checkouttime: "",
-          revisionvalue: "A",
-          versionrule: "0",
-          name: "web椤甸潰娴嬭瘯03",
-          islastr: "1",
-          lastmodifytime: "2022-02-18 14:35:53.177",
-          copyfromversion: "",
-          creator_name: "娴嬭瘯",
-          nameoid: "e0f20755-6954-4757-911e-7b9929fbe9a2",
-          lcstatus: "Editing",
-          islastv: "1",
-          checkintime: "",
-          isfirstr: "1",
-          ts: "2022-02-18 14:35:53.177"
-        },
-        {
-          code: "20220102",
-          lastmodifier: "jhming",
-          revisionseq: "1",
-          versionvalue: "1",
-          description: "",
-          oid: "2E66D17B-E3E6-4725-BB83-93F4A20D4E20",
-          versionseq: "1",
-          content: "绗簩娆′腑鏈熻瘎瀹$姽澶汉",
-          checkinby: "",
-          revisionrule: "ObjectVersion",
-          reviewtypetext: "閮ㄩ棬绾�",
-          lctid: "ProcessReviewLC",
-          reviewtype: "department",
-          lcstatus_text: "缂栬緫涓�",
-          id: "",
-          owner: "1",
-          checkoutby: "",
-          creator: "1",
-          createtime: "2022-01-13 13:58:43.035",
-          isfirstv: "1",
-          lastmodifier_name: "濮滅孩鏄�",
-          revisionoid: "4F400A1B-2313-4B11-894C-4F4F0B01368A",
-          btmname: "processreview",
-          checkouttime: "",
-          revisionvalue: "A",
-          versionrule: "0",
-          name: "1鏈堣瘎瀹�3",
-          islastr: "1",
-          lastmodifytime: "2022-07-15 16:04:43.703",
-          copyfromversion: "",
-          creator_name: "娴嬭瘯",
-          nameoid: "CF350DE8-8E6D-470B-B273-4FD78D41BA4A",
-          lcstatus: "Editing",
-          islastv: "1",
-          checkintime: "",
-          isfirstr: "1",
-          ts: "2022-07-15 16:04:43.703"
-        },
-        {
-          code: "w02",
-          lastmodifier: "1",
-          revisionseq: "0",
-          versionvalue: "1",
-          description: "",
-          oid: "2f8d94b2-d65a-4f9b-9a71-caa3afd96459",
-          versionseq: "0",
-          content: "",
-          checkinby: "",
-          revisionrule: "ObjectVersion",
-          reviewtypetext: "閮ㄩ棬绾�",
-
-          lctid: "ProcessReviewLC",
-          reviewtype: "department",
-          lcstatus_text: "缂栬緫涓�",
-          id: "",
-          owner: "1",
-          checkoutby: "",
-          creator: "1",
-          createtime: "2022-02-18 14:35:45.03",
-          isfirstv: "1",
-          lastmodifier_name: "娴嬭瘯",
-          revisionoid: "31612b9f-022d-4b05-a24c-370a0fd457da",
-          btmname: "processreview",
-          checkouttime: "",
-          revisionvalue: "A",
-          versionrule: "0",
-          name: "web椤甸潰娴嬭瘯02",
-          islastr: "1",
-          lastmodifytime: "2022-02-18 14:35:45.03",
-          copyfromversion: "",
-          creator_name: "娴嬭瘯",
-          nameoid: "dfc0d8a5-ebe7-40f2-af56-fa437d3866e0",
-          lcstatus: "Editing",
-          islastv: "1",
-          checkintime: "",
-          isfirstr: "1",
-          ts: "2022-02-18 14:35:45.03"
-        },
-        {
-          code: "webt01",
-          lastmodifier: "1",
-          revisionseq: "0",
-          versionvalue: "1",
-          description: "",
-          oid: "38033242-3cb4-415c-9cc4-acdb86c2ee8f",
-          versionseq: "0",
-          content: "wbtest123淇敼鍚�",
-          checkinby: "",
-          revisionrule: "ObjectVersion",
-          reviewtypetext: "閮ㄩ棬绾�",
-          lctid: "ProcessReviewLC",
-          reviewtype: "department",
-          lcstatus_text: "寰呰瘎瀹�",
-          id: "",
-          owner: "1",
-          checkoutby: "",
-          creator: "1",
-          createtime: "2022-01-21 10:04:08.053",
-          isfirstv: "1",
-          lastmodifier_name: "娴嬭瘯",
-          revisionoid: "3f3b2112-f356-4809-969b-1e63f6daa08d",
-          btmname: "processreview",
-          checkouttime: "",
-          revisionvalue: "A",
-          versionrule: "0",
-          name: "web绔柊澧炴祴璇�01",
-          islastr: "1",
-          lastmodifytime: "2022-02-09 09:45:56.044",
-          copyfromversion: "",
-          creator_name: "娴嬭瘯",
-          nameoid: "d8975a06-4c1e-462b-af84-093068c58e9e",
-          lcstatus: "Waiting",
-          islastv: "1",
-          checkintime: "",
-          isfirstr: "1",
-          ts: "2022-02-09 09:45:56.044"
-        },
-        {
-          code: "w017",
-          lastmodifier: "1",
-          revisionseq: "0",
-          versionvalue: "1",
-          description: "",
-          oid: "4011e1a7-9eb6-4b5c-89bf-847abff56682",
-          versionseq: "0",
-          content: "",
-          checkinby: "",
-          revisionrule: "ObjectVersion",
-          reviewtypetext: "閮ㄩ棬绾�",
-          lctid: "ProcessReviewLC",
-          reviewtype: "department",
-          lcstatus_text: "缂栬緫涓�",
-          id: "",
-          owner: "1",
-          checkoutby: "",
-          creator: "1",
-          createtime: "2022-02-18 14:37:53.247",
-          isfirstv: "1",
-          lastmodifier_name: "娴嬭瘯",
-          revisionoid: "648f5cf8-b42a-4b78-9928-883c94a83081",
-          btmname: "processreview",
-          checkouttime: "",
-          revisionvalue: "A",
-          versionrule: "0",
-          name: "web椤甸潰娴嬭瘯17",
-          islastr: "1",
-          lastmodifytime: "2022-02-18 14:37:53.247",
-          copyfromversion: "",
-          creator_name: "娴嬭瘯",
-          nameoid: "5d14e204-f085-4be0-9da6-b08c99172f8a",
-          lcstatus: "Editing",
-          islastv: "1",
-          checkintime: "",
-          isfirstr: "1",
-          ts: "2022-02-18 14:37:53.247"
-        },
-        {
-          code: "w03",
-          lastmodifier: "1",
-          revisionseq: "0",
-          versionvalue: "1",
-          description: "",
-          oid: "68583bec-b9ca-4321-8b66-a11d2298f51e",
-          versionseq: "0",
-          content: "",
-          checkinby: "",
-          revisionrule: "ObjectVersion",
-          reviewtypetext: "閮ㄩ棬绾�",
-          lctid: "ProcessReviewLC",
-          reviewtype: "department",
-          lcstatus_text: "缂栬緫涓�",
-          id: "",
-          owner: "1",
-          checkoutby: "",
-          creator: "1",
-          createtime: "2022-02-18 14:35:53.177",
-          isfirstv: "1",
-          lastmodifier_name: "娴嬭瘯",
-          revisionoid: "ff85f436-4dd1-498e-9665-44d53e27ac29",
-          btmname: "processreview",
-          checkouttime: "",
-          revisionvalue: "A",
-          versionrule: "0",
-          name: "web椤甸潰娴嬭瘯03",
-          islastr: "1",
-          lastmodifytime: "2022-02-18 14:35:53.177",
-          copyfromversion: "",
-          creator_name: "娴嬭瘯",
-          nameoid: "e0f20755-6954-4757-911e-7b9929fbe9a2",
-          lcstatus: "Editing",
-          islastv: "1",
-          checkintime: "",
-          isfirstr: "1",
-          ts: "2022-02-18 14:35:53.177"
-        },
-      ],
+      tableList: [],
       option: {
         index: true,
         addBtn: false,
@@ -493,28 +118,20 @@
         column: [],
       },
       selectList: [],
+      columnType: {
+        text: "input",
+        combox: "select",
+        truefalse: "switch",
+        number: "number",
+        textarea: "textarea",
+        datetime: "datetime",
+        date: "date",
+        refer: "refer",
+      },
+      sourceDataMapParams:{}
     }
   },
   computed: {
-    updatedColumns() {
-      const queryFields = !validatenull(this.componentVO.tableDefineVO.queryColumns) ? this.componentVO.tableDefineVO.queryColumns.map(item => item.field) : [];
-
-      return this.componentVO.tableDefineVO.cols[0].map(item => {
-        const typeValue = item.fieldType === 'text' || item.fieldType === 'combox' ? 'input' : item.fieldType; // 琛ㄥ崟Type绫诲瀷
-        const search = queryFields.includes(item.field); // 鍒ゆ柇 field 鏄惁鍦� queryColumns 閲�
-
-        return {
-          align: item.align,
-          colspan: item.colspan,
-          prop: item.field,
-          type: typeValue,
-          hidden: item.hidden,
-          label: item.title,
-          width: item.width,
-          search: search
-        };
-      });
-    },
     pageType() {
       return this.areasName === 'westArea' ? this.simplePage : this.page;
     }
@@ -539,11 +156,30 @@
         if (newval && this.$el.clientHeight > 50) {
           this.parentHeight = this.$el.clientHeight - this.$children[0].$children[1].$children[0].$el.clientHeight - this.$children[0].$children[2].$el.clientHeight - 5;
         }
+        if(newval){
+          this.handleRefresh();
+        }
+      }
+    },
+    'sourceData':{
+      handler(newval) {
+        if(newval) {
+          this.sourceDataMapParams=this.sourceDataMap();
+          this.getParams();
+          this.handleRefresh();
+        }
       }
     }
   },
   created() {
-    this.option.column = this.updatedColumns;
+    this.getParams();
+    this.option.column = this.updatedColumns();
+    this.page = {
+      pageSize: this.componentVO.tableDefineVO.pageVO ? this.componentVO.tableDefineVO.pageVO.limit : 10,
+      currentPage: this.componentVO.tableDefineVO.pageVO? this.componentVO.tableDefineVO.pageVO.page :1,
+      total: 0,
+      pageSizes:this.componentVO.tableDefineVO.limits || [10, 20, 30, 40, 50, 100]
+    };
   },
   mounted() {
     if (this.$el.clientHeight > 50) {
@@ -552,6 +188,96 @@
     }
   },
   methods: {
+    updatedColumns: function () {
+      const queryFields = !validatenull(this.componentVO.tableDefineVO.queryColumns) ? this.componentVO.tableDefineVO.queryColumns.map(item => item.field) : [];
+      return this.componentVO.tableDefineVO.cols[0].map(item => {
+        const search = queryFields.includes(item.field); // 鍒ゆ柇 field 鏄惁鍦� queryColumns 閲�
+        if (this.componentVO.tableDefineVO.btmType == 'fileobject' && item.field == 'name') {
+          //鏄枃浠�
+          item.formatter = function (d) {
+            return '<a class="layui-btn layui-btn-intable"  lay-event="PREVIEW">' + d.name + '</a>'
+          }
+        }
+        let formatter = item.formatter || item.templet;
+        if (typeof formatter == "string" && formatter != '') {
+          formatter = eval("(" + formatter + ")");
+        }
+        item.type = this.columnType[item.fieldType] || item.fieldType;
+        return {
+          ...item,
+          prop: item.field,
+          label: item.title,
+          search: search,
+          formatter: formatter
+        };
+      });
+    },
+    sourceDataMap: function () {
+      const sourceDataMap = {};
+      if (Object.keys(this.sourceData).length>0) {
+        if(this.sourceData.oid ) {
+          if (this.sourceData.oid.indexOf('@vcitreesep@') > -1) {
+            this.sourceData.oid = this.sourceData.oid.split('@vcitreesep@')[1];
+          }
+          sourceDataMap.sourceBtmName = this.sourceBtmType;;
+          sourceDataMap.sourceOid = this.sourceData.oid;
+        }
+        for (let i in this.sourceData) {
+          let item = this.sourceData[i]
+          if (item && item.constructor === Object) return;
+          if (i == 'type' || i == 'context' || i == 'content') return;
+          sourceDataMap['sourceData["' + i + '"]'] = item
+        }
+      }
+
+      return sourceDataMap;
+    },
+    getParams: function () {
+      const tableParams = {
+        btmname: this.componentVO.tableDefineVO.btmType,
+        btmType:this.componentVO.tableDefineVO.btmType,
+        tableDefineId: this.componentVO.tableDefineVO.id,
+        componentOid: this.componentVO.oid,
+        uiDefineId: this.uiContext,
+        linkTypeFlag: this.componentVO.tableDefineVO.linkTypeFlag
+      };
+
+      const sourceDataMapList = this.sourceDataMapParams;
+
+      if (this.paramVOS) {
+        for (let i in this.paramVOS) {
+          let item = this.paramVOS[i]
+          if (item && item.constructor === Object) return;
+          if (i == 'type' || i == 'context' || i == 'content') return;
+          sourceDataMapList['sourceData["' + i + '"]'] = item
+        }
+      }
+      this.params = Object.assign({},tableParams, sourceDataMapList);
+    },
+    onLoad(page, params = {}) {
+      if (Object.keys(this.sourceData).length>0 && this.isShow) {
+        this.loading = true;
+        getList(page.currentPage, page.pageSize, Object.assign(params, this.params, this.query)).then(res => {
+          let data = [];
+          if (res.data && res.data.data) {
+            data = res.data.data;
+            this.page.total = res.data.total;
+          } else {
+            data = res.data;
+            this.page.total = res.total;
+          }
+          if (!data || data == null) {
+            data = [];
+          }
+          this.tableList = data;
+          this.loading = false;
+          this.selectionClear();
+        }).catch(error => {
+          this.$message.error(error);
+          this.loading = false;
+        });
+      }
+    },
     rowClickChange(row){
       this.$refs.dataTable.toggleRowSelection(row);
     },
@@ -560,14 +286,32 @@
       this.$emit("setDataStore", {
         area: this.areasName,
         type:this.componentVO.uiComponentType,
+        btmType:this.componentVO.tableDefineVO.btmType,
         dataStore:row
       });
     },
-    searchChange(form,done){
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+    },
+    searchChange(params,done){
+      this.query = params;
+      this.page.currentPage = 1;
+      this.onLoad(this.page);
       done();
     },
-    handleRefresh(){
-      this.$refs.dataTable.refreshTable();
+    searchReset() {
+      this.query = {};
+      this.onLoad(this.page);
+    },
+    selectionClear() {
+      this.selectionList = [];
+      this.$refs.dataTable.toggleSelection();
+    },
+    handleRefresh() {
+      this.onLoad(this.page, this.query);
     }
   }
 }
diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue
index 67d3cad..6475b27 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-tree.vue
@@ -31,6 +31,14 @@
 export default {
   name: "dynamic-tree",
   props:{
+    //ui涓婁笅鏂囩殑涓氬姟绫诲瀷锛堟垨閾炬帴绫诲瀷锛�
+    uiBtmType: {
+      type: String
+    },
+    //ui涓婁笅鏂�
+    uiContext:{
+      type: String
+    },
     componentVO:{
       type:Object,
       default: {}
@@ -47,6 +55,10 @@
       //鑿滃崟婧愭暟鎹垨鑰呭脊绐楁椂鎸夐挳鎵�灞炲尯鍩熺殑涓婁竴鍖哄煙閫変腑鏁版嵁
       type:Object,
       default: {}
+    },
+    //涓婁竴鍖哄煙涓氬姟绫诲瀷
+    sourceBtmType:{
+      type: String
     },
     dataStore:{
       //寮圭獥鏃舵寜閽墍灞炲尯鍩熼�変腑鏁版嵁
@@ -80,6 +92,7 @@
           this.$emit("setDataStore", {
             area: this.areasName,
             type:this.componentVO.uiComponentType,
+            btmType:this.componentVO.treeDefineVO.btmType,
             dataStore:newval
           });
         }
diff --git a/Source/ProjectWeb/src/components/dynamic-components/index.vue b/Source/ProjectWeb/src/components/dynamic-components/index.vue
index f13ad1d..28e8724 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/index.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/index.vue
@@ -1,9 +1,12 @@
 <template>
   <dynamic-table v-if="componentVO.uiComponentType=='table'"
+                 :uiBtmType="uiBtmType"
+                 :uiContext="uiContext"
                  :key="areasName+'table-'+componentVO.oid"
                  :inDialog="inDialog"
                  :componentVO="componentVO"
                  :sourceData="sourceData"
+                 :sourceBtmType="sourceBtmType"
                  :dataStore="dataStore"
                  :areasName="areasName"
                  :paramVOS="paramVOS"
@@ -12,22 +15,27 @@
 
   </dynamic-table>
   <dynamicTreeTable v-else-if="componentVO.uiComponentType=='TreeTable'"
+                    :uiBtmType="uiBtmType"
+                    :uiContext="uiContext"
                  :key="areasName+'table-'+componentVO.oid"
                  :inDialog="inDialog"
                  :componentVO="componentVO"
                  :sourceData="sourceData"
+                    :sourceBtmType="sourceBtmType"
                     :dataStore="dataStore"
                  :areasName="areasName"
                  :paramVOS="paramVOS"
                     @setDataStore="setDataStore"
                  :isShow="isShow">
-
   </dynamicTreeTable>
   <dynamic-form v-else-if="componentVO.uiComponentType=='form'"
+                :uiBtmType="uiBtmType"
+                :uiContext="uiContext"
                 :key="areasName+'form-'+componentVO.oid"
                 :inDialog="inDialog"
                 :componentVO="componentVO"
                 :sourceData="sourceData"
+                :sourceBtmType="sourceBtmType"
                 :dataStore="dataStore"
                 :areasName="areasName"
                 :paramVOS="paramVOS"
@@ -36,20 +44,27 @@
 
   </dynamic-form>
   <dynamic-tree v-else-if="componentVO.uiComponentType=='tree'"
+                :uiBtmType="uiBtmType"
+                :uiContext="uiContext"
                 :key="areasName+'tree-'+componentVO.oid"
                 :inDialog="inDialog"
                 :componentVO="componentVO"
                 :sourceData="sourceData"
+                :sourceBtmType="sourceBtmType"
                 :dataStore="dataStore"
                 :areasName="areasName"
                 :paramVOS="paramVOS"
                 @setDataStore="setDataStore"
                 :isShow="isShow">
   </dynamic-tree>
-  <dynamic-custom v-else-if="componentVO.uiComponentType=='customer'"  :inDialog="inDialog"
+  <dynamic-custom v-else-if="componentVO.uiComponentType=='customer'"
+                  :uiBtmType="uiBtmType"
+                  :uiContext="uiContext"
+                  :inDialog="inDialog"
                   :key="areasName+'custom-'+componentVO.oid"
                   :componentVO="componentVO"
                   :sourceData="sourceData"
+                  :sourceBtmType="sourceBtmType"
                   :dataStore="dataStore"
                   :areasName="areasName"
                   :paramVOS="paramVOS"
@@ -69,6 +84,14 @@
   name: "dynamicIndex",
   components:{dynamicCustom, dynamicTree, dynamicForm, dynamicTable,dynamicTreeTable  },
   props:{
+    //ui涓婁笅鏂囩殑涓氬姟绫诲瀷锛堟垨閾炬帴绫诲瀷锛�
+    uiBtmType: {
+      type: String
+    },
+    //ui涓婁笅鏂�
+    uiContext:{
+      type: String
+    },
     componentVO:{
       type:Object,
       default: {}
@@ -86,6 +109,10 @@
       type:Object,
       default: {}
     },
+    //涓婁竴鍖哄煙涓氬姟绫诲瀷
+    sourceBtmType:{
+      type: String
+    },
     dataStore:{
       //寮圭獥鏃舵寜閽墍灞炲尯鍩熼�変腑鏁版嵁
       type:Array,
diff --git a/Source/ProjectWeb/src/views/base/UIContentArea.vue b/Source/ProjectWeb/src/views/base/UIContentArea.vue
index 41c9ee3..82f2975 100644
--- a/Source/ProjectWeb/src/views/base/UIContentArea.vue
+++ b/Source/ProjectWeb/src/views/base/UIContentArea.vue
@@ -22,9 +22,12 @@
         </el-collapse>
         <div v-else class="componentVO">
           <compoent-index :key="areasName+'componentVO-'+areaItem.componentVOs[0].oid"
+                          :uiBtmType="uiBtmType"
+                          :uiContext="uiContext"
                           :inDialog="inDialog"
                           :componentVO="areaItem.componentVOs[0]"
                           :sourceData="newSourceData"
+                          :sourceBtmType="sourceBtmType"
                           :dataStore="dataStore"
                           :areasName="areasName"
                           :paramVOS="paramVOS"
@@ -41,9 +44,12 @@
           </template>
           <div class="componentVO">
             <compoent-index :key="areasName+'componentVO-'+componentVO.oid"
+                            :uiBtmType="uiBtmType"
+                            :uiContext="uiContext"
                             :inDialog="inDialog"
                             :componentVO="componentVO"
                             :sourceData="newSourceData"
+                            :sourceBtmType="sourceBtmType"
                             :dataStore="dataStore"
                             :areasName="areasName"
                             :paramVOS="paramVOS"
@@ -54,9 +60,12 @@
       </el-collapse>
       <div v-else class="componentVO">
         <compoent-index :key="areasName+'componentVO-'+newAreasData[0].componentVOs[0].oid"
+                        :uiBtmType="uiBtmType"
+                        :uiContext="uiContext"
                         :inDialog="inDialog"
                         :componentVO="newAreasData[0].componentVOs[0]"
                         :sourceData="newSourceData"
+                        :sourceBtmType="sourceBtmType"
                         :dataStore="dataStore"
                         :areasName="areasName"
                         :paramVOS="paramVOS"
@@ -104,6 +113,14 @@
   name: "UIContentArea",
   components:{compoentIndex},
   props:{
+    //ui涓婁笅鏂囩殑涓氬姟绫诲瀷锛堟垨閾炬帴绫诲瀷锛�
+    uiBtmType: {
+      type: String
+    },
+    //ui涓婁笅鏂�
+    uiContext:{
+      type: String
+    },
     inDialog: {
       type: Boolean,
       default: false
@@ -121,6 +138,10 @@
       type:Object,
       default: {}
     },
+    //涓婁竴鍖哄煙涓氬姟绫诲瀷
+    sourceBtmType:{
+      type: String
+    },
     dataStore:{
       //寮圭獥鏃舵寜閽墍灞炲尯鍩熼�変腑鏁版嵁
       type:Array,
diff --git a/Source/ProjectWeb/src/views/base/UIContentViewer.vue b/Source/ProjectWeb/src/views/base/UIContentViewer.vue
index 8efc9ec..8279a53 100644
--- a/Source/ProjectWeb/src/views/base/UIContentViewer.vue
+++ b/Source/ProjectWeb/src/views/base/UIContentViewer.vue
@@ -2,10 +2,14 @@
   <!--UI涓婁笅鏂囩殑灞曠ず鍣�-->
   <div style="height:calc(100% - 4px);min-width:1200px" >
     <el-header v-if="uiDefineVO.northAreas && uiDefineVO.northAreas.length>0">
-      <UIContentArea :key="'northArea-'+uiDefineVO.oid" :areasData="uiDefineVO.northAreas"
-                     :dataStore="checkedData.northArea"
+      <UIContentArea :key="'northArea-'+uiDefineVO.oid"
+                     :uiBtmType="btmType"
+                     :uiContext="context"
+                     :areasData="uiDefineVO.northAreas"
+                     :dataStore="checkedData.northArea.data"
                      :inDialog="inDialog"
                      :sourceData="sourceData"
+                     :sourceBtmType="btmType"
                      areas-name="northArea"
                      @setDataStore="setDataStore">
       </UIContentArea>
@@ -15,10 +19,14 @@
       <el-aside v-if="uiDefineVO.westAreas && uiDefineVO.westAreas.length>0"
                 :width="uiDefineVO.westAreas[0].componentVOs[0].uiComponentType=='table' || uiDefineVO.westAreas[0].componentVOs[0].uiComponentType=='TreeTable'?'420px':'320px'"
                 height="100%">
-        <UIContentArea :key="'westArea-'+uiDefineVO.oid" :areasData="uiDefineVO.westAreas"
-                       :dataStore="checkedData.westArea"
+        <UIContentArea :key="'westArea-'+uiDefineVO.oid"
+                       :uiBtmType="btmType"
+                       :uiContext="context"
+                       :areasData="uiDefineVO.westAreas"
+                       :dataStore="checkedData.westArea.data"
                        :inDialog="inDialog"
                        :sourceData="sourceData"
+                       :sourceBtmType="btmType"
                        areas-name="westArea"
                        cradStyle=""
                        @setDataStore="setDataStore">
@@ -26,10 +34,14 @@
       </el-aside>
       <el-container style="height: 100%;display: block">
         <el-main v-if="uiDefineVO.centerAreas && uiDefineVO.centerAreas.length>0" :style="'min-height: 300px;height: '+centerHeight">
-          <UIContentArea :key="'centerArea-'+uiDefineVO.oid" :areasData="uiDefineVO.centerAreas"
-                         :dataStore="checkedData.centerArea"
+          <UIContentArea :key="'centerArea-'+uiDefineVO.oid"
+                         :uiBtmType="btmType"
+                         :uiContext="context"
+                         :areasData="uiDefineVO.centerAreas"
+                         :dataStore="checkedData.centerArea.data"
                          :inDialog="inDialog"
-                         :sourceData="checkedData.westArea[checkedData.westArea.length-1]"
+                         :sourceData="checkedData.westArea.data[checkedData.westArea.data.length-1]"
+                         :sourceBtmType="checkedData.westArea.DefineVOBtmType"
                          areas-name="centerArea"
                          cradStyle=""
                          @setDataStore="setDataStore">
@@ -37,10 +49,14 @@
         </el-main>
         <el-footer v-if="uiDefineVO.southAreas && uiDefineVO.southAreas.length>0" height="35%"
                    style="min-height: 150px;">
-          <UIContentArea :key="'southArea-'+uiDefineVO.oid" :areasData="uiDefineVO.southAreas"
-                         :dataStore="checkedData.southArea"
+          <UIContentArea :key="'southArea-'+uiDefineVO.oid"
+                         :uiBtmType="btmType"
+                         :uiContext="context"
+                         :areasData="uiDefineVO.southAreas"
+                         :dataStore="checkedData.southArea.data"
                          :inDialog="inDialog"
-                         :sourceData="checkedData.centerArea[checkedData.centerArea.length-1]"
+                         :sourceData="checkedData.centerArea.data[checkedData.centerArea.data.length-1]"
+                         :sourceBtmType="checkedData.centerArea.DefineVOBtmType"
                          areas-name="southArea"
                          cradStyle=""
                          @setDataStore="setDataStore">
@@ -65,10 +81,22 @@
       context: '',//UI涓婁笅鏂囩殑鍚嶇О
       checkedData: {
         //鍚勫尯鍩熼�変腑鏁版嵁
-        northArea: [{}],
-        westArea: [{}],
-        centerArea: [{}],
-        southArea: [{}]
+        northArea: {
+          DefineVOBtmType:'',
+          data:[{}]
+        },
+        westArea: {
+          DefineVOBtmType:'',
+          data:[{}]
+        },
+        centerArea: {
+          DefineVOBtmType:'',
+          data:[{}]
+        },
+        southArea: {
+          DefineVOBtmType:'',
+          data:[{}]
+        }
       },
       uiDefineVO: {},
       centerHeight: '100%',
@@ -116,7 +144,8 @@
       }
     },
     setDataStore(value) {
-      this.checkedData[value.area] = value.dataStore;
+      this.checkedData[value.area].DefineVOBtmType = value.btmType;
+      this.checkedData[value.area].data = value.dataStore;
     }
   }
 }
diff --git a/Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue b/Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue
index 21f47a6..6942d23 100644
--- a/Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue
+++ b/Source/ProjectWeb/src/views/base/UIContentViewerInDialog.vue
@@ -2,10 +2,15 @@
   <!--UI涓婁笅鏂囩殑灞曠ず鍣�-->
   <div style="height:calc(100% - 4px);min-width:1200px" >
     <el-header v-if="uiDefineVO.northAreas && uiDefineVO.northAreas.length>0">
-      <UIContentArea :key="'northArea-'+uiDefineVO.oid" :areasData="uiDefineVO.northAreas"
-                     :dataStore="checkedData.northArea"
+      <UIContentArea :key="'northArea-'+uiDefineVO.oid"
+                     :uiBtmType="btmType"
+                     :uiContext="context"
+                     :areasData="uiDefineVO.northAreas"
+                     :dataStore="checkedData.northAreaInDialog.data"
+                     :paramVOS="paramVOS"
                      :inDialog="inDialog"
                      :sourceData="sourceData"
+                     :sourceBtmType="btmType"
                      areas-name="northArea"
                      @setDataStore="setDataStore">
       </UIContentArea>
@@ -15,10 +20,15 @@
       <el-aside v-if="uiDefineVO.westAreas && uiDefineVO.westAreas.length>0"
                 :width="uiDefineVO.westAreas[0].componentVOs[0].uiComponentType=='table' || uiDefineVO.westAreas[0].componentVOs[0].uiComponentType=='TreeTable'?'420px':'320px'"
                 height="100%">
-        <UIContentArea :key="'westArea-'+uiDefineVO.oid" :areasData="uiDefineVO.westAreas"
-                       :dataStore="checkedData.westArea"
+        <UIContentArea :key="'westArea-'+uiDefineVO.oid"
+                       :uiBtmType="btmType"
+                       :uiContext="context"
+                       :areasData="uiDefineVO.westAreas"
+                       :dataStore="checkedData.westAreaInDialog.data"
+                       :paramVOS="paramVOS"
                        :inDialog="inDialog"
                        :sourceData="sourceData"
+                       :sourceBtmType="btmType"
                        areas-name="westArea"
                        cradStyle=""
                        @setDataStore="setDataStore">
@@ -26,10 +36,15 @@
       </el-aside>
       <el-container style="height: 100%;display: block">
         <el-main v-if="uiDefineVO.centerAreas && uiDefineVO.centerAreas.length>0" :style="'min-height: 300px;height: '+centerHeight">
-          <UIContentArea :key="'centerArea-'+uiDefineVO.oid" :areasData="uiDefineVO.centerAreas"
-                         :dataStore="checkedData.centerArea"
+          <UIContentArea :key="'centerArea-'+uiDefineVO.oid"
+                         :uiBtmType="btmType"
+                         :uiContext="context"
+                         :areasData="uiDefineVO.centerAreas"
+                         :dataStore="checkedData.centerAreaInDialog.data"
+                         :paramVOS="paramVOS"
                          :inDialog="inDialog"
-                         :sourceData="checkedData.westArea[checkedData.westArea.length-1]"
+                         :sourceData="checkedData.westAreaInDialog.data[checkedData.westAreaInDialog.data.length-1]"
+                         :sourceBtmType="checkedData.westAreaInDialog.DefineVOBtmType"
                          areas-name="centerArea"
                          cradStyle=""
                          @setDataStore="setDataStore">
@@ -37,10 +52,15 @@
         </el-main>
         <el-footer v-if="uiDefineVO.southAreas && uiDefineVO.southAreas.length>0" height="35%"
                    style="min-height: 150px;">
-          <UIContentArea :key="'southArea-'+uiDefineVO.oid" :areasData="uiDefineVO.southAreas"
-                         :dataStore="checkedData.southArea"
+          <UIContentArea :key="'southArea-'+uiDefineVO.oid"
+                         :uiBtmType="btmType"
+                         :uiContext="context"
+                         :areasData="uiDefineVO.southAreas"
+                         :dataStore="checkedData.southAreaInDialog.data"
+                         :paramVOS="paramVOS"
                          :inDialog="inDialog"
-                         :sourceData="checkedData.centerArea[checkedData.centerArea.length-1]"
+                         :sourceData="checkedData.centerAreaInDialog.data[checkedData.centerAreaInDialog.data.length-1]"
+                         :sourceBtmType="checkedData.centerAreaInDialog.DefineVOBtmType"
                          areas-name="southArea"
                          cradStyle=""
                          @setDataStore="setDataStore">
@@ -89,10 +109,22 @@
     return {
       checkedData:{
         //鍚勫尯鍩熼�変腑鏁版嵁
-        northAreaInDialog:[{}],
-        westAreaInDialog:[{}],
-        centerAreaInDialog:[{}],
-        southAreaInDialog:[{}]
+        northAreaInDialog:{
+          DefineVOBtmType:'',
+          data:[{}]
+        },
+        westAreaInDialog:{
+          DefineVOBtmType:'',
+          data:[{}]
+        },
+        centerAreaInDialog:{
+          DefineVOBtmType:'',
+          data:[{}]
+        },
+        southAreaInDialog:{
+          DefineVOBtmType:'',
+          data:[{}]
+        }
       },
       uiDefineVO: {},
       centerHeight:'100%'
@@ -134,7 +166,8 @@
       }
     },
     setDataStore(value) {
-      this.checkedData[value.area] = value.dataStore;
+      this.checkedData[value.area].DefineVOBtmType = value.btmType;
+      this.checkedData[value.area].data = value.dataStore;
     }
   }
 }

--
Gitblit v1.9.3