From a0b97eb8e934ba28b9e51824d4cbbcc99cc70e17 Mon Sep 17 00:00:00 2001
From: charles <981744753@qq.com>
Date: 星期四, 18 七月 2024 23:08:00 +0800
Subject: [PATCH] fxi:解决发货bug

---
 src/components/makepager/TableCommonView.vue |   77 ++++++++++++++++++++++++++++++++++++--
 1 files changed, 73 insertions(+), 4 deletions(-)

diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue
index 7335401..a45184f 100644
--- a/src/components/makepager/TableCommonView.vue
+++ b/src/components/makepager/TableCommonView.vue
@@ -1,12 +1,13 @@
 <!-- eslint-disable vue/no-use-v-if-with-v-for -->
 <template>
-  <div class="table-view">
+  <div class="table-view" v-loading="loading">
     <el-table
       ref="table"
       border
       :data="tableList.tableInfomation"
       tooltip-effect="dark"
       :height="'calc(100% - 0px)'"
+      :max-height="tableList.maxHeight"
       style="width: 100%"
       :lazy="tableList.lazy"
       :show-summary="showSummary.show"
@@ -15,9 +16,11 @@
       @selection-change="handleSelectionChange"
       :header-cell-style="{ background: '#f1f3f8', color: '#000009', 'font-size': '12px', 'font-family': 'PingFangSC' }"
       size="mini"
+      @row-click="tableRowClick"
+      :row-class-name="tableRowClassName"
     >
+      <el-table-column v-if="selectBox" type="selection" width="40" :selectable="selectable"> </el-table-column>
       <el-table-column v-if="tableList.selectIndex" type="index" label="搴忓彿" width="50"></el-table-column>
-      <el-table-column v-if="selectBox" type="selection" width="40"> </el-table-column>
       <el-table-column
         v-for="(item, i) in tableList.tableColumn"
         :key="i"
@@ -117,6 +120,27 @@
             </ul>
             <div v-else class="no-product">{{ "--" }}</div>
           </div>
+          <!-- 璋冪敤鏂规硶鏄剧ず鏂囧瓧 -->
+          <div v-else-if="item.isCallMethod">
+            <span :class="item.isClass ? item.getClassName(scope.row[item.prop], scope.row) : ''">{{
+              item.getCallMethod(scope.row[item.prop], scope.row)
+            }}</span>
+          </div>
+          <span
+            v-else-if="item.isClass"
+            :class="
+              item.isClass
+                ? item.getClassName(scope.row[item.prop], scope.row)
+                : ''
+            "
+            >{{
+              scope.row[item.prop]
+                ? scope.row[item.prop]
+                : scope.row[item.prop] === 0
+                ? scope.row[item.prop]
+                : "--"
+            }}</span
+          >
           <span v-else>{{ scope.row[item.prop] ? scope.row[item.prop] : "--" }}</span>
         </template>
       </el-table-column>
@@ -127,8 +151,8 @@
     </el-table>
 
     <div class="overSpread1" v-show="iscolopen" @click="onMaskClick"></div>
-    <div class="styleBtn">
-      <i @click="checkCol()" class="label">...</i>
+    <div class="styleBtn" >
+      <i @click="checkCol()" v-if='colOpenShow' class="label">...</i>
       <el-checkbox-group v-model="showcol" v-show="iscolopen" class="checkbox-group" @change="selectCheckBoxList">
         <el-checkbox v-for="item in tableList.allcol" :label="item" :key="item">{{ item }} </el-checkbox>
       </el-checkbox-group>
@@ -143,6 +167,11 @@
     selectBox: {
       type: Boolean,
       default: false
+    },
+     // 鏄惁鍙互閰嶇疆鍒楄〃 琛ㄥご
+     colOpenShow: {
+      type: Boolean,
+      default: true,
     },
     tableList: {
       type: Object,
@@ -168,8 +197,24 @@
           mergeNumber: 1
         }
       }
+    },
+    // 閫変腑鐨勬牱寮�
+    selectClassRow: {
+      type: Object,
+      default: () => {
+        return {}
+      }
+    },
+    loading: {
+      type: Boolean,
+      default: false
+    },
+    selectBoxList: {
+      type: Array,
+      default: () => []
     }
   },
+
   data() {
     return {
       iscolopen: false,
@@ -358,6 +403,27 @@
     // 鍏叡锛堥攢鍞満浼氥�佹姤浠峰崟銆侀攢鍞�诲崟銆侀攢鍞瓙鍗曘�傘�傘�傦級
     selCommonClick(row) {
       this.$emit("selCommonClick", row)
+    },
+    // 琛岀偣鍑�
+    tableRowClick(row, column, event) {
+      this.$emit("tableRowClick", row, column, event)
+    },
+    // 鍗曢�夎鐩稿叧
+    tableRowClassName({ row }) {
+      if (Object.keys(this.selectClassRow).length > 0) {
+        if (row.id == this.selectClassRow.id) {
+          return "onSelect"
+        }
+      }
+      this.$emit("tableRowClassName", row)
+    },
+    selectable(row) {
+      let list = this.selectBoxList.map((item) => item.number)
+      if (list.findIndex((v) => v == row.number) == -1) {
+        return true
+      } else {
+        return false
+      }
     }
   }
 }
@@ -410,6 +476,9 @@
       font-weight: bold;
     }
   }
+  .el-table__body-wrapper{
+    height:calc(100% - 50px)!important;
+  }
 }
 
 ::v-deep .el-table .cell {

--
Gitblit v1.8.0