XMLWAN 2 年前
父节点
当前提交
96e54e5ea5
共有 1 个文件被更改,包括 77 次插入9 次删除
  1. 77 9
      src/xt_pages/workforce/components/template_table.vue

+ 77 - 9
src/xt_pages/workforce/components/template_table.vue 查看文件

@@ -31,6 +31,7 @@
31 31
         }"
32 32
         :row-style="{ color: '#303133' }"
33 33
         style="width: 100%"
34
+
34 35
         border
35 36
       >
36 37
         <el-table-column label="姓名" width="120">
@@ -95,7 +96,11 @@
95 96
     <div id="table_data">
96 97
       <el-table :height="tableContainHeight" :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)'}" ref="table"
97 98
                 :data="opera_device_numbers" :span-method="spanMethod"
98
-                row-class-name="table-row-new-class schedule-table-row" @cell-click="itemClick">
99
+                show-summary
100
+                :summary-method="getSummaries"
101
+                row-class-name="table-row-new-class schedule-table-row" @cell-click="itemClick"
102
+                sum-text="总数"
103
+      >
99 104
         <el-table-column label="分区" width="80" align="center" fixed
100 105
                          style="width: 100px; background-color: red; display: block;">
101 106
           <template slot-scope="scope">
@@ -301,8 +306,8 @@
301 306
     },
302 307
     watch: {
303 308
       'device_numbers': function() {
304
-        console.log("中国人民2333232333323322332",this.device_numbers)
305 309
         this.opera_device_numbers = this.makeDeviceNumbers(this.device_numbers)
310
+
306 311
         this.origin_device_numbers = this.makeDeviceNumbers(this.device_numbers)
307 312
       },
308 313
       'template.items': function() {
@@ -462,27 +467,35 @@
462 467
       //     }
463 468
       // },
464 469
       makeDeviceNumbers: function(device_numbers) {
465
-        
470
+        console.log("device_numbers",device_numbers)
471
+        var arr = []
472
+        for(let i=0;i<device_numbers.length;i++){
473
+          arr.push(device_numbers[i])
474
+        }
475
+        arr.sort(this.arraySort('sort'))
476
+        console.log("Arr2332232332",arr)
466 477
         var maked_device_numbers = []
467 478
         var weekdays = [1, 2, 3, 4, 5, 6, 7] // 周一-周日
468 479
         var time_types = [1, 2, 3] // 上下晚
469
-        for (let index = 0; index < device_numbers.length; index++) {
470
-          const device_number = device_numbers[index]
480
+        for (let index = 0; index < arr.length; index++) {
481
+          const device_number = arr[index]
471 482
           if(device_number.zone!=null){
472 483
             var zone = {
473 484
               id: device_number.zone.id,
474 485
               name: device_number.zone.name,
475
-              type: device_number.zone.type
486
+              type: device_number.zone.type,
487
+              sort:device_number.sort
476 488
             }
477 489
             var device = {
478 490
               id: device_number.id,
479 491
               number: device_number.number,
480 492
               group_id: device_number.group_id,
481 493
               zone_id: device_number.zone_id,
482
-              zone: zone
494
+              zone: zone,
495
+              sort:device_number.sort
483 496
             }
484 497
           }
485
-         
498
+
486 499
 
487 500
           // 以 weekday_timetype 为 key,{pid: 0, name: "", treat_mode_id: 0, treat_mode: ""} 为 value,加入到 maked_device_numbers 中
488 501
           for (let w_i = 0; w_i < weekdays.length; w_i++) {
@@ -504,7 +517,7 @@
504 517
           maked_device_numbers.push(device)
505 518
         }
506 519
 
507
-        console.log(maked_device_numbers)
520
+        console.log("数据源23232233223232322323我",maked_device_numbers)
508 521
         return maked_device_numbers
509 522
       },
510 523
       spanMethod({ row, column, rowIndex, columnIndex }) {
@@ -770,6 +783,61 @@
770 783
           this.saving = false
771 784
           this.is_editing = false
772 785
         })
786
+      },
787
+      getSummaries(param) {
788
+
789
+        const { columns, data } = param;
790
+        const sums = [];
791
+        columns.forEach((column, index) => {
792
+          if (index === 0 || index === 25) {
793
+            sums[index] = "总数";
794
+            return;
795
+          }
796
+          if (index === 1 || index === 24) {
797
+            sums[index] = data.length;
798
+            return;
799
+          }
800
+
801
+          const values = data.map(item => item[column.property]);
802
+
803
+          if (index === 23) {
804
+            sums[index] = values.reduce((prev, curr) => {
805
+              const value = Number(curr);
806
+              if (!isNaN(value)) {
807
+                return prev + curr;
808
+              } else {
809
+                return prev;
810
+              }
811
+            }, 0);
812
+            sums[index];
813
+            return;
814
+          }
815
+
816
+          sums[index] = values.reduce((prev, curr) => {
817
+            if (typeof curr["treat_mode_id"] === "undefined") {
818
+              return prev;
819
+            }
820
+            const value = Number(curr["treat_mode_id"]);
821
+            if (!isNaN(value) && value > 0) {
822
+              return prev + 1;
823
+            } else {
824
+              return prev;
825
+            }
826
+          }, 0);
827
+          sums[index];
828
+        });
829
+        this.$nextTick(() => {
830
+          this.$refs.table.doLayout();
831
+        });
832
+
833
+        return sums;
834
+      },
835
+      arraySort(property) {
836
+        return function (a, b) {
837
+          var value1 = a[property]
838
+          var value2 = b[property]
839
+          return value1 - value2
840
+        }
773 841
       }
774 842
     }
775 843
   }