From 8191562f28c525373941af4638c30c8f8e74c245 Mon Sep 17 00:00:00 2001
From: yangfeng <wanwan926_4@163.com>
Date: 星期三, 16 八月 2023 12:12:10 +0800
Subject: [PATCH] bug修复

---
 src/components/makepager/TableCommonView.vue |  137 +++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 125 insertions(+), 12 deletions(-)

diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue
index ee1728d..ae1083e 100644
--- a/src/components/makepager/TableCommonView.vue
+++ b/src/components/makepager/TableCommonView.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="page-view">
+  <div class="table-view">
     <el-table
       ref="table"
       border
@@ -13,7 +13,7 @@
       @selection-change="handleSelectionChange"
       :header-cell-style="{ background: '#ECF4FF', color: '#666' }"
     >
-      <el-table-column type="selection" width="40"> </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"
@@ -21,14 +21,63 @@
         :label="item.label"
         :width="item.width"
         :min-width="item.min"
-        sortable
+        show-overflow-tooltip
+        :sortable="item.sortable"
       >
         <template slot-scope="scope">
           <span v-if="item.price">{{ "锟�" + number_format(scope.row[item.prop], 2, ".", ",") }}</span>
-          <span v-else>{{ scope.row[item.prop] }}</span>
+          <div v-else-if="item.status" :class="scope.row.status">{{ scope.row[item.prop] }}</div>
+          <span v-else-if="item.isTime">{{
+            dateFormat("YYYY-mm-dd HH:MM:SS", scope.row[item.prop]) === "1900-01-01 00:06:26"
+              ? "--"
+              : dateFormat("YYYY-mm-dd HH:MM:SS", scope.row[item.prop])
+          }}</span>
+          <span v-else-if="item.isClick && scope.row[item.prop]" class="sel-name" @click="selNameClick(scope.row)">{{
+            scope.row[item.prop]
+          }}</span>
+          <span
+            v-else-if="item.isSalesLeadClick && scope.row[item.prop]"
+            class="sel-name"
+            @click="selSalesLeadClick(scope.row)"
+            >{{ scope.row[item.prop] }}</span
+          >
+          <span
+            v-else-if="item.isClientClick && scope.row[item.prop]"
+            class="sel-name"
+            @click="selClientClick(scope.row)"
+            >{{ scope.row[item.prop] ? scope.row[item.prop] : "--" }}</span
+          >
+          <span
+            v-else-if="item.isContactClick && scope.row[item.prop]"
+            class="sel-name"
+            @click="selContactsClick(scope.row)"
+            >{{ scope.row[item.prop] }}</span
+          >
+          <span
+            v-else-if="item.isMasterClick && scope.row[item.prop]"
+            class="sel-name"
+            @click="selMasterClick(scope.row)"
+            >{{ scope.row[item.prop] }}</span
+          >
+          <span
+            v-else-if="item.isServiceOrder && scope.row[item.prop]"
+            class="sel-name"
+            @click="selServiceOrderClick(scope.row)"
+            >{{ scope.row[item.prop] }}</span
+          >
+          <span
+            v-else-if="item.isCommonClick && scope.row[item.prop]"
+            class="sel-name"
+            @click="selCommonClick(scope.row)"
+            >{{ scope.row[item.prop] }}</span
+          >
+          <span v-else>{{ scope.row[item.prop] ? scope.row[item.prop] : "--" }}</span>
         </template>
       </el-table-column>
       <slot name="tableButton" />
+      <div slot="empty">
+        <el-empty description="鏆傛棤鏁版嵁"></el-empty>
+      </div>
     </el-table>
   </div>
 </template>
@@ -37,10 +86,15 @@
 export default {
   name: "TableCommonView",
   props: {
+    selectBox: {
+      type: Boolean,
+      default: true
+    },
     tableList: {
       type: Object,
       default: () => {
         return {
+          selectBox: true,
           tableInfomation: [], // 鎺ュ彛杩斿洖鏁版嵁
           tableColumn: [
             // table琛ㄥ崟
@@ -93,30 +147,29 @@
     getSummaries(param) {
       if (this.showSummary.show) {
         const { columns, data } = param
-        console.log(param)
         const sums = []
         columns.forEach((column, index) => {
           if (index === this.showSummary.mergeNumber) {
             sums[index] = "鏈〉鎬昏"
           }
           const values = data.map((item) => Number(item[column.property]))
-          // if (column.property === this.showSummary.sumProp) {
           if (this.showSummary.sumProp.includes(column.property)) {
             sums[index + 1] = values.reduce((prev, curr) => {
               const value = Number(curr)
               if (!isNaN(value)) {
-                return this.number_format(prev + curr, 2, ".", ",")
+                return prev + curr
               } else {
-                return this.number_format(prev, 2, ".", ",")
+                return prev
               }
             }, 0)
             sums[index + 1]
           }
         })
+        // console.log(sums)
         return sums
       }
     },
-    //瀹氫箟number_format鏂规硶
+    // 鏁板瓧鎹㈣涓洪噾棰濇樉绀烘牸寮�
     number_format(number, decimals, dec_point, thousands_sep) {
       decimals = 2 //杩欓噷榛樿璁剧疆淇濈暀涓や綅灏忔暟锛屼篃鍙互娉ㄩ噴杩欏彞閲囩敤浼犲叆鐨勫弬鏁�
       /*
@@ -143,6 +196,55 @@
         s[1] = s[1].substring(0, prec) //灏忔暟鐐逛綅鏁拌秴鍑洪暱搴︽椂鎴彇鍓嶉潰鐨勪綅鏁�
       }
       return s.join(dec)
+    },
+    // 鏃堕棿鏄剧ず
+    dateFormat(fmt, date) {
+      let ret = ""
+      date = new Date(date)
+      const opt = {
+        "Y+": date.getFullYear().toString(), // 骞�
+        "m+": (date.getMonth() + 1).toString(), // 鏈�
+        "d+": date.getDate().toString(), // 鏃�
+        "H+": date.getHours().toString(), // 鏃�
+        "M+": date.getMinutes().toString(), // 鍒�
+        "S+": date.getSeconds().toString() // 绉�
+        // 鏈夊叾浠栨牸寮忓寲瀛楃闇�姹傚彲浠ョ户缁坊鍔狅紝蹇呴』杞寲鎴愬瓧绗︿覆
+      }
+      for (let k in opt) {
+        ret = new RegExp("(" + k + ")").exec(fmt)
+        if (ret) {
+          fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0"))
+        }
+      }
+      return fmt
+    },
+    // 鏂板缓缂栬緫閫夋嫨寮圭獥
+    selNameClick(row) {
+      this.$emit("selCommonClick", row)
+    },
+    // 閿�鍞嚎绱�
+    selSalesLeadClick(row) {
+      this.$emit("selSalesLeadClick", row)
+    },
+    // 瀹㈡埛鍚嶇О
+    selClientClick(row) {
+      this.$emit("selClientClick", row)
+    },
+    // 鑱旂郴浜哄鍚�
+    selContactsClick(row) {
+      this.$emit("selContactsClick", row)
+    },
+    // 閿�鍞�诲崟
+    selMasterClick(row) {
+      this.$emit("selMasterClick", row)
+    },
+    // 瀹㈡埛鏈嶅姟鍗�
+    selServiceOrderClick(row) {
+      this.$emit("selServiceOrderClick", row)
+    },
+    // 鍏叡锛堥攢鍞満浼氥�佹姤浠峰崟銆侀攢鍞�诲崟銆侀攢鍞瓙鍗曘�傘�傘�傦級
+    selCommonClick(row) {
+      this.$emit("selCommonClick", row)
     }
   }
 }
@@ -150,10 +252,21 @@
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style lang="scss" scoped>
-.page-view {
-  margin-top: 20px;
+.table-view {
+  // margin-top: 20px;
   margin-right: 10px;
-  margin-bottom: 40px;
+  // margin-bottom: 40px;
+  .blue {
+    width: 70px;
+    text-align: center;
+    color: #fff;
+    background-color: $color-primary;
+    border-radius: 4px;
+  }
+  .sel-name {
+    color: $color-primary;
+    cursor: pointer;
+  }
 }
 ::v-deep {
   .el-table__footer-wrapper tbody td.el-table__cell {

--
Gitblit v1.8.0