From a9bbbe822377536e6f3374b05e2b64b12b2f188c Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期一, 27 五月 2024 10:25:43 +0800
Subject: [PATCH] action文档

---
 Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue |  120 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 105 insertions(+), 15 deletions(-)

diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
index 886e7f7..6dca0c5 100644
--- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
+++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-table.vue
@@ -13,19 +13,50 @@
                @size-change="sizeChange"
                @row-click="rowClickChange"
                @search-change='searchChange'
+               @filter="filterChange"
                @selection-change="selectChange">
       <!--top鍖哄煙鎸夐挳-->
       <template slot="menuLeft" slot-scope="scope">
         <dynamic-button :componentVO="componentVO"
                         :key="areasName+'buttons-'+componentVO.oid"
                         :butttonList="componentVO.buttons" :dataStore="selectList" LocationType="top" :sourceData="sourceData"
+                        @afterMethod="handleRefresh"
                         type="table"></dynamic-button>
       </template>
 
       <!--menu鍖哄煙鎸夐挳-->
       <template slot="menu" slot-scope="scope">
-        <dynamic-button :componentVO="componentVO" :butttonList="componentVO.buttons" :scope="scope" :dataStore="selectList" :sourceData="sourceData" LocationType="menu"
+        <dynamic-button :componentVO="componentVO" :butttonList="componentVO.buttons" :scope="scope" :dataStore="selectList" :sourceData="sourceData"
+                        LocationType="menu"
+                        @afterMethod="handleRefresh"
+                        @rowView="rowView"
                         type="table"></dynamic-button>
+      </template>
+      <template  slot="menuRight" slot-scope="scope">
+        <el-tooltip class="item" effect="dark" content="鎵撳嵃" placement="top">
+          <el-button icon="el-icon-printer" circle @click="$refs.dataTable.rowPrint()"
+                     :size="scope.size"></el-button>
+        </el-tooltip>
+        <el-tooltip class="item" effect="dark" content="瀵煎嚭" placement="top">
+          <el-button icon="el-icon-download" circle @click="rowExcel"
+                     :size="scope.size"></el-button>
+        </el-tooltip>
+        <el-tooltip class="item" effect="dark" content="绛涢��" placement="top">
+          <el-button icon="el-icon-tickets" circle  @click="$refs.dataTable.$refs.dialogFilter.box=!0"
+                     :size="scope.size"></el-button>
+        </el-tooltip>
+        <el-tooltip class="item" effect="dark" content="鍒楁樉闅�" placement="top">
+          <el-button icon="el-icon-s-operation" circle @click="$refs.dataTable.$refs.dialogColumn.columnBox=!0"
+                     :size="scope.size"></el-button>
+        </el-tooltip>
+        <el-tooltip class="item" effect="dark" content="鏌ヨ" placement="top">
+          <el-button icon="el-icon-search" circle @click="$refs.dataTable.$refs.headerSearch.handleSearchShow()"
+                     :size="scope.size"></el-button>
+        </el-tooltip>
+        <el-tooltip class="item" effect="dark" content="鍒锋柊" placement="top">
+          <el-button icon="el-icon-refresh" circle @click="$refs.dataTable.refreshChange()"
+                     :size="scope.size"></el-button>
+        </el-tooltip>
       </template>
     </avue-crud>
   </div>
@@ -116,8 +147,15 @@
         addBtn: false,
         editBtn: false,
         delBtn: false,
+        refreshBtn:false,
+        columnBtn:false,
+        searchShowBtn:false,
+        printBtn:false,
+        excelBtn:false,
+        filterBtn:false,
         selection: true,
         tip: false,
+        menuWidth:260,
         height: '100%',
         calcHeight: 15,
         indexFixed: false,
@@ -162,6 +200,7 @@
     },
     isShow: {
       handler(newval) {
+        debugger;
         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;
         }
@@ -170,6 +209,20 @@
         }
       }
     },
+    tableList:{
+      handler(newval) {
+        if(newval) {
+          this.$emit("setData", {
+            area: this.areasName,
+            type:this.componentVO.uiComponentType,
+            currentDefineVO:this.currentDefineVO,
+            data:newval
+          });
+        }
+      },
+      deep: true,
+      immediate: true
+    },
     'sourceData':{
       handler(newval) {
         if(newval) {
@@ -177,7 +230,9 @@
           this.getParams();
           this.handleRefresh();
         }
-      }
+      },
+      deep: true,
+      immediate: true
     }
   },
   created() {
@@ -198,7 +253,7 @@
   mounted() {
     if (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;
+      this.parentHeight = this.$el.clientHeight - this.$children[0].$children[1].$children[0].$el.clientHeight - 57 -5;
     }
   },
   methods: {
@@ -237,19 +292,18 @@
           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;
+          const item = this.sourceData[i]
+          if (item && item.constructor === Object) continue;
+          if (i == 'type' || i == 'context' || i == 'content') continue;
           sourceDataMap['sourceData["' + i + '"]'] = item
         }
       }
 
       if (Object.keys(this.paramVOS).length>0) {
-        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;
-          sourceDataMap['sourceData["' + i + '"]'] = item
+        for (let j in this.paramVOS) {
+          if (this.paramVOS[j] && this.paramVOS[j].constructor === Object) continue;
+          if (j == 'type' || j == 'context' || j == 'content' || j == "getdataurl" || j == "getdatamethod" || j == "url" || j == "method" || j == "uploadfileurl" || j == "title") continue;
+          sourceDataMap['sourceData["' + j + '"]'] = this.paramVOS[j]
         }
       }
       return sourceDataMap;
@@ -272,7 +326,7 @@
     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 => {
+        getList(page.currentPage, page.pageSize, Object.assign({},this.params,this.query,params)).then(res => {
           let data = [];
           if (res.data && res.data.data) {
             data = res.data.data;
@@ -293,6 +347,9 @@
         });
       }
     },
+    rowView(row,index){
+      this.$refs.dataTable.rowView(row,index)
+    },
     rowClickChange(row){
       this.$refs.dataTable.toggleRowSelection(row);
     },
@@ -312,10 +369,33 @@
       this.page.pageSize = pageSize;
     },
     searchChange(params,done){
-      this.query = params;
+      this.query = {};
+      for (let i in params) {
+        this.query['conditionMap["' + i + '"]'] = "*" + params[i] + "*";
+      }
       this.page.currentPage = 1;
       this.onLoad(this.page);
       done();
+    },
+    filterChange(result){
+      let parms={}
+      for (let i in result) {
+        if(!validatenull(result[i][2])) {
+          const fieldVal = result[i][2]
+          if (result[i][1] == "=") {
+            parms['conditionMap["' + result[i][0] + '"]'] = fieldVal;
+          } else if (result[i][1] == "鈮�") {
+            parms['conditionMap["' + result[i][0] + '"]'] = '!=' + fieldVal;
+          } else if (result[i][1] == "like") {
+            parms['conditionMap["' + result[i][0] + '"]'] = "*" + fieldVal + "*";
+          } else if (result[i][1] == "鈭�") {
+            parms['conditionMap["' + result[i][0] + '"]'] = "*" + fieldVal + "*";
+          } else {
+            parms['conditionMap["' + result[i][0] + '"]'] = result[i][1] + fieldVal;
+          }
+        }
+      }
+      this.onLoad(this.page,parms);
     },
     searchReset() {
       this.query = {};
@@ -329,8 +409,18 @@
 
       }
     },
-    handleRefresh() {
-      this.onLoad(this.page, this.query);
+    handleRefresh(type) {
+      this.onLoad(this.page);
+    },
+    rowExcel() {
+      //瀵煎嚭
+      this.$refs.dataTable.$refs.dialogExcel.handleShow();
+      //瀵煎嚭寮圭獥涓殑纭畾鎸夐挳
+      this.$refs.dataTable.$refs.dialogExcel.handleSubmit = function () {
+        this.$Export.excel({title: this.$refs.dataTable.$refs.dialogExcel.form.name, columns: this.$refs.dataTable.$refs.dialogExcel.columns, data: this.$refs.dataTable.$refs.dialogExcel.handleSum()});
+        this.$refs.dataTable.$refs.dialogExcel.box = !1
+      }
+      //this.$refs.dataTable.rowExcel()
     }
   }
 }

--
Gitblit v1.9.3