|
@@ -2,9 +2,9 @@
|
2
|
2
|
<div class="main-contain">
|
3
|
3
|
<div class="position">
|
4
|
4
|
<bread-crumb :crumbs="crumbs"></bread-crumb>
|
5
|
|
- <div style="display:flex;align-items:center">
|
|
5
|
+ <!-- <div style="display:flex;align-items:center">
|
6
|
6
|
<el-button type="primary" icon="el-icon-printer" @click='toPrint'>打印</el-button>
|
7
|
|
- </div>
|
|
7
|
+ </div> -->
|
8
|
8
|
</div>
|
9
|
9
|
<div class="app-container">
|
10
|
10
|
<div class="cell clearfix">
|
|
@@ -32,9 +32,18 @@
|
32
|
32
|
:value="item.value">
|
33
|
33
|
</el-option>
|
34
|
34
|
</el-select>
|
35
|
|
- <el-radio v-model="timeSlot" label="1">周</el-radio>
|
|
35
|
+ <!-- <el-radio v-model="timeSlot" label="1">周</el-radio>
|
36
|
36
|
<el-radio v-model="timeSlot" label="2">月</el-radio>
|
37
|
|
- <el-radio v-model="timeSlot" label="3">自定义</el-radio>
|
|
37
|
+ <el-radio v-model="timeSlot" label="3">自定义</el-radio> -->
|
|
38
|
+ <el-radio-group v-model="timeSlot" @change="changeRadio">
|
|
39
|
+ <el-radio
|
|
40
|
+ :label="gender.id"
|
|
41
|
+ :value="gender.id"
|
|
42
|
+ v-for="(gender, index) in faultPhase"
|
|
43
|
+ :key="index"
|
|
44
|
+ >{{ gender.name }}</el-radio
|
|
45
|
+ >
|
|
46
|
+ </el-radio-group>
|
38
|
47
|
<div style="display:flex;" v-if="timeSlot == '1'">
|
39
|
48
|
<el-button @click="lastclick" type="text" style="margin:0 10px;"><上一周({{ weekNum - 1 }})</el-button>
|
40
|
49
|
<div class="dateBox">{{ weekDayArr[0] }}-{{ weekDayArr[6] }}({{ weekNum }})</div>
|
|
@@ -80,7 +89,7 @@
|
80
|
89
|
<line-chart :options="chart"></line-chart>
|
81
|
90
|
</div>
|
82
|
91
|
<div class="tableTitle">统计表</div>
|
83
|
|
- <el-table class='statisticsTable' :data="tableData" height="250" border>
|
|
92
|
+ <el-table class='statisticsTable' :data="tableData" height="250" border ref="tab">
|
84
|
93
|
<el-table-column fixed align="center" prop="date" label="医护姓名" width="100">
|
85
|
94
|
<template slot-scope="scope">
|
86
|
95
|
<span>{{scope.row.user_name}}</span>
|
|
@@ -120,6 +129,11 @@ export default {
|
120
|
129
|
},
|
121
|
130
|
data(){
|
122
|
131
|
return{
|
|
132
|
+ faultPhase: [
|
|
133
|
+ { id: "1", name: "周" },
|
|
134
|
+ { id: "2", name: "月" },
|
|
135
|
+ { id: "3", name: "自定义" },
|
|
136
|
+ ],
|
123
|
137
|
pickerOptions: {
|
124
|
138
|
disabledDate(time) {
|
125
|
139
|
let threeMonths = new Date(new Date().setFullYear(new Date().getFullYear()-1)).getTime() - 24 * 3600 * 1000;
|
|
@@ -284,7 +298,6 @@ export default {
|
284
|
298
|
this.doctorlist.push(...nurselist)
|
285
|
299
|
this.doctorlist.push(...doctorlist)
|
286
|
300
|
|
287
|
|
- console.log("医护列表",this.doctorlist)
|
288
|
301
|
//获取统计图数据
|
289
|
302
|
this.getchartlist()
|
290
|
303
|
}
|
|
@@ -299,19 +312,44 @@ export default {
|
299
|
312
|
}
|
300
|
313
|
const params = {
|
301
|
314
|
keyword:this.keywords,
|
|
315
|
+ start_time:this.start_time,
|
|
316
|
+ end_time:this.end_time
|
302
|
317
|
}
|
303
|
|
- console.log("params",params)
|
|
318
|
+ // console.log("params",params)
|
304
|
319
|
toSearchTotal(params).then(response=>{
|
305
|
320
|
if(response.data.state == 1){
|
306
|
321
|
var scheudleTotal = response.data.data.scheduletotal
|
307
|
|
- console.log("scheduletotal",scheudleTotal)
|
|
322
|
+ // console.log("scheduletotal",scheudleTotal)
|
308
|
323
|
var list = response.data.data.list
|
309
|
|
- console.log("list",list)
|
|
324
|
+ // console.log("list",list)
|
310
|
325
|
var workday = response.data.data.workDay
|
311
|
|
- console.log("workday",workday)
|
|
326
|
+ // console.log("workday",workday)
|
312
|
327
|
var noWorkDay = response.data.data.noWorkDay
|
313
|
|
- console.log("noworkday",noWorkDay)
|
314
|
|
-
|
|
328
|
+ // console.log("noworkday",noWorkDay)
|
|
329
|
+
|
|
330
|
+ // var workdaylist = response.data.data.chartWorkDayMinute
|
|
331
|
+
|
|
332
|
+ // let arrtwo = [...workdaylist]
|
|
333
|
+ // arrtwo.sort(this.compare('doctor_id'))
|
|
334
|
+ // this.doctorlist.sort(this.compare('admin_user_id'))
|
|
335
|
+ // this.doctorlist.forEach((item, index) => {
|
|
336
|
+ // if (arrtwo[index] && item.admin_user_id ==arrtwo[index].doctor_id) {
|
|
337
|
+
|
|
338
|
+ // }else{
|
|
339
|
+ // arrtwo.splice(index, 0, {user_name: item.user_name, doctor_id: item.admin_user_id,workminute: 0})
|
|
340
|
+ // }
|
|
341
|
+ // })
|
|
342
|
+
|
|
343
|
+ // let chartX = []
|
|
344
|
+ // let chartY = []
|
|
345
|
+ // arrtwo.map(item => {
|
|
346
|
+ // chartX.push(item.user_name)
|
|
347
|
+ // chartY.push(item.workminute / 60)
|
|
348
|
+ // })
|
|
349
|
+ // this.chart.xAxis.data = chartX
|
|
350
|
+ // this.chart.series[0].data = chartY
|
|
351
|
+
|
|
352
|
+ // this.getArrLength(this.chart.xAxis.data)
|
315
|
353
|
|
316
|
354
|
let tempArr = [], newArr = []
|
317
|
355
|
for (let i = 0; i < scheudleTotal.length; i++) {
|
|
@@ -367,8 +405,11 @@ export default {
|
367
|
405
|
arr.splice(index, 0, {user_name: item.user_name, doctor_id: item.admin_user_id, list: []})
|
368
|
406
|
}
|
369
|
407
|
})
|
370
|
|
- console.log('newArr',arr)
|
|
408
|
+
|
371
|
409
|
this.tableData = arr
|
|
410
|
+ this.$nextTick(() => {
|
|
411
|
+ this.$refs.tab.doLayout()
|
|
412
|
+ })
|
372
|
413
|
}
|
373
|
414
|
}
|
374
|
415
|
})
|
|
@@ -404,6 +445,8 @@ export default {
|
404
|
445
|
this.nowYear = this.nowYear - 1
|
405
|
446
|
}
|
406
|
447
|
this.weekNum = this.weekNum - 1
|
|
448
|
+ this.getlist()
|
|
449
|
+ this.getchartlist()
|
407
|
450
|
},
|
408
|
451
|
//下一周
|
409
|
452
|
nextclick(){
|
|
@@ -417,6 +460,8 @@ export default {
|
417
|
460
|
this.weekNum = this.getYearWeek(year, month, date)
|
418
|
461
|
this.nowYear = this.nowYear + 1
|
419
|
462
|
}
|
|
463
|
+ this.getlist()
|
|
464
|
+ this.getchartlist()
|
420
|
465
|
},
|
421
|
466
|
getYearWeek(year,month,date){
|
422
|
467
|
/*
|
|
@@ -436,7 +481,7 @@ export default {
|
436
|
481
|
|
437
|
482
|
changeMonth(value){
|
438
|
483
|
// console.log(value)
|
439
|
|
- console.log('monthStartTime',value.getTime() / 1000)
|
|
484
|
+ // console.log('monthStartTime',value.getTime() / 1000)
|
440
|
485
|
let monthStartTime = value.getTime() / 1000
|
441
|
486
|
var nowDate = new Date(value);
|
442
|
487
|
var cloneNowDate = new Date(value);
|
|
@@ -446,8 +491,9 @@ export default {
|
446
|
491
|
let monthEndTime = this.getFullDate(cloneNowDate.setDate(endOfMonth))
|
447
|
492
|
this.start_time = monthStartTime
|
448
|
493
|
this.end_time = this.getTimestamp(monthEndTime)
|
449
|
|
- console.log('monthEndTime',this.getTimestamp(monthEndTime))
|
|
494
|
+ // console.log('monthEndTime',this.getTimestamp(monthEndTime))
|
450
|
495
|
this.getlist()
|
|
496
|
+ this.getchartlist()
|
451
|
497
|
},
|
452
|
498
|
getFullDate(targetDate) {
|
453
|
499
|
var D, y, m, d;
|
|
@@ -474,7 +520,7 @@ export default {
|
474
|
520
|
getScheduleList().then(response=>{
|
475
|
521
|
if(response.data.state == 1){
|
476
|
522
|
var schedulelist = response.data.data.scheduleList
|
477
|
|
- console.log("schedulelist",schedulelist)
|
|
523
|
+ // console.log("schedulelist",schedulelist)
|
478
|
524
|
this.scheduleList = schedulelist
|
479
|
525
|
}
|
480
|
526
|
})
|
|
@@ -490,19 +536,19 @@ export default {
|
490
|
536
|
start_time:this.start_time,
|
491
|
537
|
end_time:this.end_time,
|
492
|
538
|
}
|
493
|
|
- console.log("params",params)
|
|
539
|
+ // console.log("params",params)
|
494
|
540
|
getScheduleListTotal(params).then(response=>{
|
495
|
541
|
if(response.data.state == 1){
|
496
|
542
|
//获取每个班次对应的次数
|
497
|
543
|
var scheudleTotal = response.data.data.scheudletotal
|
498
|
|
- console.log("scheudletotal",scheudleTotal)
|
|
544
|
+ // console.log("scheudletotal",scheudleTotal)
|
499
|
545
|
//获取总分钟数
|
500
|
546
|
var list = response.data.data.list
|
501
|
|
- console.log("list",list)
|
|
547
|
+ // console.log("list",list)
|
502
|
548
|
var workday = response.data.data.workDay
|
503
|
|
- console.log("workday",workday)
|
|
549
|
+ // console.log("workday",workday)
|
504
|
550
|
var noWorkDay = response.data.data.noWorkDay
|
505
|
|
- console.log("noWorkDay",noWorkDay)
|
|
551
|
+ // console.log("noWorkDay",noWorkDay)
|
506
|
552
|
|
507
|
553
|
let tempArr = [], newArr = []
|
508
|
554
|
for (let i = 0; i < scheudleTotal.length; i++) {
|
|
@@ -559,6 +605,9 @@ export default {
|
559
|
605
|
|
560
|
606
|
// console.log('newArr',arr)
|
561
|
607
|
this.tableData = arr
|
|
608
|
+ this.$nextTick(() => {
|
|
609
|
+ this.$refs.tab.doLayout()
|
|
610
|
+ })
|
562
|
611
|
}
|
563
|
612
|
})
|
564
|
613
|
},
|
|
@@ -570,19 +619,41 @@ export default {
|
570
|
619
|
const params = {
|
571
|
620
|
doctor_type: parseInt(val),
|
572
|
621
|
}
|
573
|
|
- console.log("params",params)
|
|
622
|
+ // console.log("params",params)
|
574
|
623
|
changeOption(params).then(response=>{
|
575
|
624
|
if(response.data.state == 1){
|
576
|
625
|
var scheudleTotal = response.data.data.scheduletotal
|
577
|
|
- console.log("scheduletotal",scheudleTotal)
|
|
626
|
+ // console.log("scheduletotal",scheudleTotal)
|
578
|
627
|
var list = response.data.data.list
|
579
|
|
- console.log("list",list)
|
|
628
|
+ // console.log("list",list)
|
580
|
629
|
var workday = response.data.data.workday
|
581
|
|
- console.log("workday",workday)
|
|
630
|
+ // console.log("workday",workday)
|
582
|
631
|
var noWorkDay = response.data.data.workday
|
583
|
|
- console.log("worknoday",noWorkDay)
|
|
632
|
+ // console.log("worknoday",noWorkDay)
|
584
|
633
|
|
|
634
|
+ // var workdaylist = response.data.data.chartworkdayminute
|
585
|
635
|
|
|
636
|
+ // let arrtwo = [...workdaylist]
|
|
637
|
+ // arrtwo.sort(this.compare('doctor_id'))
|
|
638
|
+ // this.doctorlist.sort(this.compare('admin_user_id'))
|
|
639
|
+ // this.doctorlist.forEach((item, index) => {
|
|
640
|
+ // if (arrtwo[index] && item.admin_user_id ==arrtwo[index].doctor_id) {
|
|
641
|
+
|
|
642
|
+ // }else{
|
|
643
|
+ // arrtwo.splice(index, 0, {user_name: item.user_name, doctor_id: item.admin_user_id,workminute: 0})
|
|
644
|
+ // }
|
|
645
|
+ // })
|
|
646
|
+
|
|
647
|
+ // let chartX = []
|
|
648
|
+ // let chartY = []
|
|
649
|
+ // arrtwo.map(item => {
|
|
650
|
+ // chartX.push(item.user_name)
|
|
651
|
+ // chartY.push(item.workminute / 60)
|
|
652
|
+ // })
|
|
653
|
+ // this.chart.xAxis.data = chartX
|
|
654
|
+ // this.chart.series[0].data = chartY
|
|
655
|
+
|
|
656
|
+ // this.getArrLength(this.chart.xAxis.data)
|
586
|
657
|
let tempArr = [], newArr = []
|
587
|
658
|
for (let i = 0; i < scheudleTotal.length; i++) {
|
588
|
659
|
if (tempArr.indexOf(scheudleTotal[i].user_name) === -1) {
|
|
@@ -634,10 +705,10 @@ export default {
|
634
|
705
|
arr.splice(index, 0, {user_name: item.user_name, doctor_id: item.admin_user_id, list: []})
|
635
|
706
|
}
|
636
|
707
|
})
|
637
|
|
-
|
638
|
|
-
|
639
|
|
- console.log('newArr',arr)
|
640
|
708
|
this.tableData = arr
|
|
709
|
+ this.$nextTick(() => {
|
|
710
|
+ this.$refs.tab.doLayout()
|
|
711
|
+ })
|
641
|
712
|
}else if(val == 2){
|
642
|
713
|
arr.sort(this.compare('doctor_id'))
|
643
|
714
|
this.doctorArr.sort(this.compare('admin_user_id'))
|
|
@@ -648,10 +719,10 @@ export default {
|
648
|
719
|
arr.splice(index, 0, {user_name: item.user_name, doctor_id: item.admin_user_id, list: []})
|
649
|
720
|
}
|
650
|
721
|
})
|
651
|
|
-
|
652
|
|
-
|
653
|
|
- console.log('newArr',arr)
|
654
|
722
|
this.tableData = arr
|
|
723
|
+ this.$nextTick(() => {
|
|
724
|
+ this.$refs.tab.doLayout()
|
|
725
|
+ })
|
655
|
726
|
}else if(val == 3){
|
656
|
727
|
arr.sort(this.compare('doctor_id'))
|
657
|
728
|
this.nurseArr.sort(this.compare('admin_user_id'))
|
|
@@ -662,12 +733,11 @@ export default {
|
662
|
733
|
arr.splice(index, 0, {user_name: item.user_name, doctor_id: item.admin_user_id, list: []})
|
663
|
734
|
}
|
664
|
735
|
})
|
665
|
|
-
|
666
|
|
-
|
667
|
|
- console.log('newArr',arr)
|
668
|
736
|
this.tableData = arr
|
669
|
|
- }
|
670
|
|
-
|
|
737
|
+ this.$nextTick(() => {
|
|
738
|
+ this.$refs.tab.doLayout()
|
|
739
|
+ })
|
|
740
|
+ }
|
671
|
741
|
}
|
672
|
742
|
})
|
673
|
743
|
},
|
|
@@ -712,14 +782,19 @@ export default {
|
712
|
782
|
},
|
713
|
783
|
//获取统计图数据
|
714
|
784
|
getchartlist(){
|
715
|
|
- getchartlist().then(response=>{
|
|
785
|
+ if(this.timeSlot == 1){
|
|
786
|
+ this.start_time = this.getTimestamp(this.weekDayArr[0]),
|
|
787
|
+ this.end_time = this.getTimestamp(this.weekDayArr[6])
|
|
788
|
+ }
|
|
789
|
+ const params = {
|
|
790
|
+ start_time:this.start_time,
|
|
791
|
+ end_time:this.end_time
|
|
792
|
+ }
|
|
793
|
+ // console.log("params",params)
|
|
794
|
+ getchartlist(params).then(response=>{
|
716
|
795
|
if(response.data.state == 1){
|
717
|
796
|
var workdaylist = response.data.data.workDaylist
|
718
|
|
- console.log("早年公共",workdaylist)
|
719
|
|
-
|
720
|
|
-
|
721
|
797
|
let arr = [...workdaylist]
|
722
|
|
-
|
723
|
798
|
arr.sort(this.compare('doctor_id'))
|
724
|
799
|
this.doctorlist.sort(this.compare('admin_user_id'))
|
725
|
800
|
this.doctorlist.forEach((item, index) => {
|
|
@@ -729,8 +804,7 @@ export default {
|
729
|
804
|
arr.splice(index, 0, {user_name: item.user_name, doctor_id: item.admin_user_id,workminute: 0})
|
730
|
805
|
}
|
731
|
806
|
})
|
732
|
|
- console.log('arrrrrrrrrrrrrrr',arr)
|
733
|
|
-
|
|
807
|
+
|
734
|
808
|
let chartX = []
|
735
|
809
|
let chartY = []
|
736
|
810
|
arr.map(item => {
|
|
@@ -752,6 +826,10 @@ export default {
|
752
|
826
|
var dataZoom_end = 100;
|
753
|
827
|
this.chart.dataZoom[0].end = dataZoom_end
|
754
|
828
|
}
|
|
829
|
+ },
|
|
830
|
+ changeRadio(){
|
|
831
|
+ this.getlist()
|
|
832
|
+ this.getchartlist()
|
755
|
833
|
}
|
756
|
834
|
}
|
757
|
835
|
}
|