From f6811caf6c66d4e2a55393f3b6dc169efd28d863 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期四, 25 四月 2024 14:45:02 +0800
Subject: [PATCH] 修改工艺文件

---
 src/views/common/ztt-table.vue |   79 +++++++++++++++++++++++++++++++--------
 1 files changed, 62 insertions(+), 17 deletions(-)

diff --git a/src/views/common/ztt-table.vue b/src/views/common/ztt-table.vue
index e963067..ab46d8f 100644
--- a/src/views/common/ztt-table.vue
+++ b/src/views/common/ztt-table.vue
@@ -150,6 +150,7 @@
         v-on="$listeners"
         :highlight-current-row="true"
         :row-key="rowKey"
+        :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
         @row-dblclick="dbClickRow"
         @row-contextmenu="contextMenu"
         @header-click="headClick"
@@ -174,6 +175,7 @@
         v-loading="dataListLoading"
         element-loading-text="鍔犺浇涓�..."
         element-loading-spinner="el-icon-loading"
+        @expand-change="expandChange"
       >
         <!--澶氶�夋嫨妗�-->
         <el-table-column
@@ -182,6 +184,7 @@
           v-if="options.multiSelect && !isEdit"
           style="width: 55px;"
           :selectable="selectHandle"
+
         >
         </el-table-column>
         <!--鍗曢�夋-->
@@ -324,8 +327,13 @@
               <template v-else>
                 <template v-if="!item.render">
                   <template v-if="item.formatter">
-                    <span v-if="item.isTag" style="text-align: center;">
+                    <span v-if="item.isTag&&scope.row[item.prop]!=null" style="text-align: center;">
                       <el-tag style="width:60px;margin: 3px;" :type="scope.row[item.prop] == 0 ? 'success' : 'info'">
+                        <span v-html="item.formatter(scope.row, item, scope.row[item.prop])"></span>
+                      </el-tag>
+                    </span>
+                    <span v-if="item.isTags&&scope.row[item.prop]!=null" style="text-align: center;">
+                      <el-tag style="width:60px;margin: 3px;" :type="scope.row[item.prop] == '姝e父' ? 'success' : (scope.row[item.prop] == '寮傚父'?'warning':(scope.row[item.prop] == '杩斾慨'?'danger':'info'))">
                         <span v-html="item.formatter(scope.row, item, scope.row[item.prop])"></span>
                       </el-tag>
                     </span>
@@ -509,7 +517,7 @@
                 鍙兘涓婁紶xlsx/xls鏂囦欢锛屼笖涓嶈秴杩�10M<el-button
                   type="text"
                   style="font-size:14px;text-decoration: underline;"
-                  @click="downDataTemplate(uploadInfo.fileName)"   
+                  @click="downDataTemplate(uploadInfo.fileName)"
                   v-if="uploadInfo.download"
                   >涓嬭浇妯℃澘</el-button
                 >
@@ -547,7 +555,7 @@
     column: {
       type: Object,
       default: null
-    }
+    },
   },
   render: (h, data) => {
     const params = {
@@ -567,6 +575,13 @@
       default: ()=>{
         return 'id'
       }
+    },
+    //闇�瑕佸悎骞剁殑瀛楁闆嗗悎
+    mergeSpanArr: {
+        type: Array,
+        default: ()=>{
+            return []
+        }
     },
     toolbarMaxLength: {
       type: Number,
@@ -692,6 +707,7 @@
   },
   data() {
     return {
+        currentExpand:null,
       dataListLoading: false,
       tableKey: 0,
       // jipf  瀵煎嚭鎵�鐢ㄥ彉閲�
@@ -928,22 +944,41 @@
     },
     objectSpanMethod({ row, column, rowIndex, columnIndex }) {
       if (this.options.tableCellMerge) {
-        let result = ''
-        this.$emit(
-          'objectSpanMethod',
-          row,
-          column,
-          rowIndex,
-          columnIndex,
-          (val) => {
-            if (val) {
-              result = val
+        const propName = column.property
+        if (propName) {
+            if(this.mergeSpanArr.includes(propName)){
+                if (rowIndex > 0 && row[propName] === this.tableData[rowIndex - 1][propName]) {
+                    return { rowspan: 0, colspan: 0 };
+                } else {
+                    let rowspan = 1;
+                    for (let i = rowIndex + 1; i < this.tableData.length; i++) {
+                        if (this.tableData[i][propName] === row[propName]) {
+                            rowspan++;
+                        } else {
+                            break;
+                        }
+                    }
+                    return { rowspan: rowspan, colspan: 1 };
+                }
             }
-          }
-        )
-        if (result) {
-          return result
         }
+        // let result = ''
+        // this.$emit(
+        //   'objectSpanMethod',
+        //   row,
+        //   column,
+        //   rowIndex,
+        //   columnIndex,
+        //   (val) => {
+        //     console.log(val);
+        //     if (val) {
+        //       result = val
+        //     }
+        //   }
+        // )
+        // if (result) {
+        //   return result
+        // }
       }
     },
     getDataList(selectedId) {
@@ -1344,6 +1379,7 @@
         this.multipleSelection = selection
         this.$emit('handleSelectionChange', selection)
       } */
+      this.$emit('shoudonggouxuan',row)
     },
     handleSelectionChange(val) {
       this.multipleSelection = val
@@ -1695,6 +1731,15 @@
     // 璁剧疆楂樼骇鎼滅储鏌ヨ鏉′欢
     setMultiSearchFilter(filters) {
       this.multiSearchFilter = filters
+    },
+    expandChange(e){
+        this.currentExpand = e;
+    },
+    toggleRowExpansion(){
+        this.tableData.forEach((ele) => {
+            this.$refs.lmesTable.toggleRowExpansion(ele,false)
+      })
+        this.$refs.lmesTable.toggleRowExpansion(this.currentExpand,true)
     }
   }
 }

--
Gitblit v1.9.3