|
@@ -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
|
}
|