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
         }"
31
         }"
32
         :row-style="{ color: '#303133' }"
32
         :row-style="{ color: '#303133' }"
33
         style="width: 100%"
33
         style="width: 100%"
34
+
34
         border
35
         border
35
       >
36
       >
36
         <el-table-column label="姓名" width="120">
37
         <el-table-column label="姓名" width="120">
95
     <div id="table_data">
96
     <div id="table_data">
96
       <el-table :height="tableContainHeight" :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)'}" ref="table"
97
       <el-table :height="tableContainHeight" :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)'}" ref="table"
97
                 :data="opera_device_numbers" :span-method="spanMethod"
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
         <el-table-column label="分区" width="80" align="center" fixed
104
         <el-table-column label="分区" width="80" align="center" fixed
100
                          style="width: 100px; background-color: red; display: block;">
105
                          style="width: 100px; background-color: red; display: block;">
101
           <template slot-scope="scope">
106
           <template slot-scope="scope">
301
     },
306
     },
302
     watch: {
307
     watch: {
303
       'device_numbers': function() {
308
       'device_numbers': function() {
304
-        console.log("中国人民2333232333323322332",this.device_numbers)
305
         this.opera_device_numbers = this.makeDeviceNumbers(this.device_numbers)
309
         this.opera_device_numbers = this.makeDeviceNumbers(this.device_numbers)
310
+
306
         this.origin_device_numbers = this.makeDeviceNumbers(this.device_numbers)
311
         this.origin_device_numbers = this.makeDeviceNumbers(this.device_numbers)
307
       },
312
       },
308
       'template.items': function() {
313
       'template.items': function() {
462
       //     }
467
       //     }
463
       // },
468
       // },
464
       makeDeviceNumbers: function(device_numbers) {
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
         var maked_device_numbers = []
477
         var maked_device_numbers = []
467
         var weekdays = [1, 2, 3, 4, 5, 6, 7] // 周一-周日
478
         var weekdays = [1, 2, 3, 4, 5, 6, 7] // 周一-周日
468
         var time_types = [1, 2, 3] // 上下晚
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
           if(device_number.zone!=null){
482
           if(device_number.zone!=null){
472
             var zone = {
483
             var zone = {
473
               id: device_number.zone.id,
484
               id: device_number.zone.id,
474
               name: device_number.zone.name,
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
             var device = {
489
             var device = {
478
               id: device_number.id,
490
               id: device_number.id,
479
               number: device_number.number,
491
               number: device_number.number,
480
               group_id: device_number.group_id,
492
               group_id: device_number.group_id,
481
               zone_id: device_number.zone_id,
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
           // 以 weekday_timetype 为 key,{pid: 0, name: "", treat_mode_id: 0, treat_mode: ""} 为 value,加入到 maked_device_numbers 中
500
           // 以 weekday_timetype 为 key,{pid: 0, name: "", treat_mode_id: 0, treat_mode: ""} 为 value,加入到 maked_device_numbers 中
488
           for (let w_i = 0; w_i < weekdays.length; w_i++) {
501
           for (let w_i = 0; w_i < weekdays.length; w_i++) {
504
           maked_device_numbers.push(device)
517
           maked_device_numbers.push(device)
505
         }
518
         }
506
 
519
 
507
-        console.log(maked_device_numbers)
520
+        console.log("数据源23232233223232322323我",maked_device_numbers)
508
         return maked_device_numbers
521
         return maked_device_numbers
509
       },
522
       },
510
       spanMethod({ row, column, rowIndex, columnIndex }) {
523
       spanMethod({ row, column, rowIndex, columnIndex }) {
770
           this.saving = false
783
           this.saving = false
771
           this.is_editing = false
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
   }