Browse Source

医护统计

XMLWAN 4 years ago
parent
commit
914f9a1d07

+ 265 - 2
src/xt_pages/medicalScheduling/index.vue View File

@@ -1316,7 +1316,212 @@ export default {
1316 1316
                 if(response.data.state == 1){
1317 1317
                     var  staffList =  response.data.data.staffList
1318 1318
                     // console.log("staffList",staffList)
1319
+                    var sevenStr = ""
1320
+                     var oneStr = ""
1321
+                    var twoStr = ""
1322
+                    var threeStr = ""
1323
+                    var fourStr = ""
1324
+                    var fiveStr = ""
1325
+                    var sixStr = ""
1326
+                    this.arrZero = []
1327
+                    this.arrOne = []
1328
+                    this.arrTwo = []
1329
+                    this.arrThree = []
1330
+                    this.arrFour = []
1331
+                    this.arrFive = []
1332
+                    this.arrSix = []
1333
+                  for(let i=0;i<staffList.length;i++){
1334
+                    if(staffList[i].schedule_week == 0){
1335
+                        staffList[i].class_index = 0
1336
+                         var arr = []
1337
+                        this.arrZero.push(staffList[i].class_name)
1338
+                        for(let i=0;i<this.arrZero.length;i++){
1339
+                           if(this.arrZero[i]!=''){
1340
+                              arr.push(this.arrZero[i])
1341
+                           }
1342
+                        }
1343
+                        var countedNames = arr.reduce(function (allNames, name) {
1344
+                            if (name in allNames) {
1345
+                                allNames[name]++;
1346
+                            }
1347
+                            else {
1348
+                                allNames[name] = 1;
1349
+                            }
1350
+                            return allNames;
1351
+                        }, {});
1352
+                        let objKey = Object.keys(countedNames)
1353
+                        let objVal = Object.values(countedNames)
1354
+                        var zeroStr = ''
1355
+                        objKey.map((item,index) => {
1356
+                        let objVal = Object.values(countedNames)
1357
+                            zeroStr += item + objVal[index] + '\n'
1358
+                        })
1359
+                        sevenStr = zeroStr
1360
+                    }
1361
+                    if(staffList[i].schedule_week == 1){
1362
+                        staffList[i].class_index = 1
1363
+                        var arr = []
1364
+                        this.arrOne.push(staffList[i].class_name)
1365
+                        for(let i=0;i<this.arrOne.length;i++){
1366
+                           if(this.arrOne[i]!=''){
1367
+                              arr.push(this.arrOne[i])
1368
+                           }
1369
+                        }
1370
+                        var countedNames = arr.reduce(function (allNames, name) {
1371
+                            if (name in allNames) {
1372
+                                allNames[name]++;
1373
+                            }
1374
+                            else {
1375
+                                allNames[name] = 1;
1376
+                            }
1377
+                            return allNames;
1378
+                        }, {});
1379
+                        let objKey = Object.keys(countedNames)
1380
+                        let objVal = Object.values(countedNames)
1381
+                        let strOne = ''
1382
+                        objKey.map((item,index) => {
1383
+                        let objVal = Object.values(countedNames)
1384
+                            strOne += item + objVal[index] + '\n'
1385
+                        })
1386
+                        oneStr  = strOne
1387
+                    }
1388
+                    if(staffList[i].schedule_week == 2){
1389
+                        staffList[i].class_index = 2
1390
+                         var arr = []
1391
+                        this.arrTwo.push(staffList[i].class_name)
1392
+                        for(let i=0;i<this.arrTwo.length;i++){
1393
+                           if(this.arrTwo[i]!=''){
1394
+                              arr.push(this.arrTwo[i])
1395
+                           }
1396
+                        }
1397
+                        var countedNames = arr.reduce(function (allNames, name) {
1398
+                            if (name in allNames) {
1399
+                                allNames[name]++;
1400
+                            }
1401
+                            else {
1402
+                                allNames[name] = 1;
1403
+                            }
1404
+                            return allNames;
1405
+                        }, {});
1406
+                        let objKey = Object.keys(countedNames)
1407
+                        let objVal = Object.values(countedNames)
1408
+                        let strTwo = ''
1409
+                        objKey.map((item,index) => {
1410
+                        let objVal = Object.values(countedNames)
1411
+                            strTwo += item + objVal[index] + '\n'
1412
+                        })
1413
+                         twoStr = strTwo
1414
+                    }
1415
+                    if(staffList[i].schedule_week == 3){
1416
+                        staffList[i].class_index = 3
1417
+                         var arr = []
1418
+                        this.arrThree.push(staffList[i].class_name)
1419
+                        for(let i=0;i<this.arrThree.length;i++){
1420
+                           if(this.arrThree[i]!=''){
1421
+                              arr.push(this.arrThree[i])
1422
+                           }
1423
+                        }
1424
+                        var countedNames = arr.reduce(function (allNames, name) {
1425
+                            if (name in allNames) {
1426
+                                allNames[name]++;
1427
+                            }
1428
+                            else {
1429
+                                allNames[name] = 1;
1430
+                            }
1431
+                            return allNames;
1432
+                        }, {});
1433
+                        let objKey = Object.keys(countedNames)
1434
+                        let objVal = Object.values(countedNames)
1435
+                        let strThree = ''
1436
+                        objKey.map((item,index) => {
1437
+                        let objVal = Object.values(countedNames)
1438
+                            strThree += item + objVal[index] + '\n'
1439
+                        })
1440
+                        threeStr = strThree
1441
+                    }
1442
+                    if(staffList[i].schedule_week == 4){
1443
+                        staffList[i].class_index = 4
1444
+                        var arr = []
1445
+                        this.arrFour.push(staffList[i].class_name)
1446
+                        for(let i=0;i<this.arrFour.length;i++){
1447
+                           if(this.arrFour[i]!=''){
1448
+                              arr.push(this.arrFour[i])
1449
+                           }
1450
+                        }
1451
+                        var countedNames = arr.reduce(function (allNames, name) {
1452
+                            if (name in allNames) {
1453
+                                allNames[name]++;
1454
+                            }
1455
+                            else {
1456
+                                allNames[name] = 1;
1457
+                            }
1458
+                            return allNames;
1459
+                        }, {});
1460
+                        let objKey = Object.keys(countedNames)
1461
+                        let objVal = Object.values(countedNames)
1462
+                        let strFour = ''
1463
+                        objKey.map((item,index) => {
1464
+                        let objVal = Object.values(countedNames)
1465
+                            strFour += item + objVal[index] + '\n'
1466
+                        })
1467
+                        fourStr = strFour
1468
+                    }
1469
+                    if(staffList[i].schedule_week == 5){
1470
+                        staffList[i].class_index = 5
1319 1471
 
1472
+                         var arr = []
1473
+                        this.arrFive.push(staffList[i].class_name)
1474
+                        for(let i=0;i<this.arrFive.length;i++){
1475
+                           if(this.arrFive[i]!=''){
1476
+                              arr.push(this.arrFive[i])
1477
+                           }
1478
+                        }
1479
+                        var countedNames = arr.reduce(function (allNames, name) {
1480
+                            if (name in allNames) {
1481
+                                allNames[name]++;
1482
+                            }
1483
+                            else {
1484
+                                allNames[name] = 1;
1485
+                            }
1486
+                            return allNames;
1487
+                        }, {});
1488
+                        let objKey = Object.keys(countedNames)
1489
+                        let objVal = Object.values(countedNames)
1490
+                        let strFive = ''
1491
+                        objKey.map((item,index) => {
1492
+                        let objVal = Object.values(countedNames)
1493
+                            strFive += item + objVal[index] + '\n'
1494
+                        })
1495
+                         fiveStr = strFive
1496
+                    }
1497
+                    if(staffList[i].schedule_week == 6){
1498
+                        staffList[i].class_index = 6
1499
+                         var arr = []
1500
+                        this.arrSix.push(staffList[i].class_name)
1501
+                        for(let i=0;i<this.arrSix.length;i++){
1502
+                           if(this.arrSix[i]!=''){
1503
+                              arr.push(this.arrSix[i])
1504
+                           }
1505
+                        }
1506
+                        var countedNames = arr.reduce(function (allNames, name) {
1507
+                            if (name in allNames) {
1508
+                                allNames[name]++;
1509
+                            }
1510
+                            else {
1511
+                                allNames[name] = 1;
1512
+                            }
1513
+                            return allNames;
1514
+                        }, {});
1515
+                        let objKey = Object.keys(countedNames)
1516
+                        let objVal = Object.values(countedNames)
1517
+                        let strSix = ''
1518
+                        objKey.map((item,index) => {
1519
+                        let objVal = Object.values(countedNames)
1520
+                            strSix += item + objVal[index] + '\n'
1521
+                        })
1522
+                        sixStr = strSix
1523
+                     }
1524
+                    }
1320 1525
                     let tempArr = [], newArr = []
1321 1526
                     for (let i = 0; i < staffList.length; i++) {
1322 1527
                         if (tempArr.indexOf(staffList[i].user_name) === -1) {
@@ -1387,9 +1592,29 @@ export default {
1387 1592
                         })
1388 1593
                         newDoctor.sort(this.compare('sort'))
1389 1594
                         
1595
+                        // let data = []
1596
+                        // data.push(...newNurse)
1597
+                        // data.push(...newDoctor)
1598
+                        // this.tableData = data
1599
+                        let arr2 = []
1600
+                        arr2.push({class_name:oneStr,schedule_week:1})
1601
+                        arr2.push({class_name:twoStr,schedule_week:2})
1602
+                        arr2.push({class_name:threeStr,schedule_week:3})
1603
+                        arr2.push({class_name:fourStr,schedule_week:4})
1604
+                        arr2.push({class_name:fiveStr,schedule_week:5})
1605
+                        arr2.push({class_name:sixStr,schedule_week:6})
1606
+                        arr2.push({class_name:zeroStr,schedule_week:0})
1607
+                        var obj = {}
1608
+                        obj.admin_user_id = "1000000"
1609
+                        obj.user_name = "合计"
1610
+                        obj.user_type = 10
1611
+                        obj.list = arr2
1612
+                        arr.push(obj)
1613
+
1390 1614
                         let data = []
1391 1615
                         data.push(...newNurse)
1392 1616
                         data.push(...newDoctor)
1617
+                        data.push(obj)
1393 1618
                         this.tableData = data
1394 1619
                     }
1395 1620
                     if(id == 2){
@@ -1409,7 +1634,26 @@ export default {
1409 1634
                             }
1410 1635
                         })
1411 1636
                         newDoctor.sort(this.compare('sort'))
1412
-                        this.tableData = newDoctor
1637
+                        // this.tableData = newDoctor
1638
+                        let arr2 = []
1639
+                        arr2.push({class_name:oneStr,schedule_week:1})
1640
+                        arr2.push({class_name:twoStr,schedule_week:2})
1641
+                        arr2.push({class_name:threeStr,schedule_week:3})
1642
+                        arr2.push({class_name:fourStr,schedule_week:4})
1643
+                        arr2.push({class_name:fiveStr,schedule_week:5})
1644
+                        arr2.push({class_name:sixStr,schedule_week:6})
1645
+                        arr2.push({class_name:zeroStr,schedule_week:0})
1646
+                        var obj = {}
1647
+                        obj.admin_user_id = "1000000"
1648
+                        obj.user_name = "合计"
1649
+                        obj.user_type = 10
1650
+                        obj.list = arr2
1651
+                        arr.push(obj)
1652
+
1653
+                        let data = []
1654
+                        data.push(...newDoctor)
1655
+                        data.push(obj)
1656
+                        this.tableData = data
1413 1657
                     }
1414 1658
                     if(id == 3){
1415 1659
                         newNurse.sort(this.compare('admin_user_id'))
@@ -1428,7 +1672,26 @@ export default {
1428 1672
                             }
1429 1673
                         })
1430 1674
                         newNurse.sort(this.compare('sort'))
1431
-                        this.tableData = newNurse
1675
+                        // this.tableData = newNurse
1676
+                        let arr2 = []
1677
+                        arr2.push({class_name:oneStr,schedule_week:1})
1678
+                        arr2.push({class_name:twoStr,schedule_week:2})
1679
+                        arr2.push({class_name:threeStr,schedule_week:3})
1680
+                        arr2.push({class_name:fourStr,schedule_week:4})
1681
+                        arr2.push({class_name:fiveStr,schedule_week:5})
1682
+                        arr2.push({class_name:sixStr,schedule_week:6})
1683
+                        arr2.push({class_name:zeroStr,schedule_week:0})
1684
+                        var obj = {}
1685
+                        obj.admin_user_id = "1000000"
1686
+                        obj.user_name = "合计"
1687
+                        obj.user_type = 10
1688
+                        obj.list = arr2
1689
+                        arr.push(obj)
1690
+
1691
+                        let data = []
1692
+                        data.push(...newNurse)
1693
+                        data.push(obj)
1694
+                        this.tableData = data
1432 1695
                     }
1433 1696
 
1434 1697
             }

+ 80 - 9
src/xt_pages/medicalScheduling/schedulingStatistics.vue View File

@@ -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;">&lt;上一周({{ weekNum - 1 }})</el-button>
40 49
                     <div class="dateBox">{{ weekDayArr[0] }}-{{ weekDayArr[6] }}({{ weekNum }})</div>
@@ -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;
@@ -299,6 +313,8 @@ export default {
299 313
             }
300 314
             const params = {
301 315
               keyword:this.keywords, 
316
+              start_time:this.start_time,
317
+              end_time:this.end_time
302 318
             }
303 319
             console.log("params",params)
304 320
             toSearchTotal(params).then(response=>{
@@ -311,7 +327,30 @@ export default {
311 327
                 console.log("workday",workday)
312 328
                 var noWorkDay = response.data.data.noWorkDay
313 329
                 console.log("noworkday",noWorkDay)
314
-
330
+                  
331
+            //     var workdaylist = response.data.data.chartWorkDayMinute
332
+
333
+            //    let arrtwo = [...workdaylist]
334
+            //     arrtwo.sort(this.compare('doctor_id'))
335
+            //     this.doctorlist.sort(this.compare('admin_user_id'))
336
+            //     this.doctorlist.forEach((item, index) => {
337
+            //      if (arrtwo[index] && item.admin_user_id ==arrtwo[index].doctor_id) {
338
+                        
339
+            //         }else{
340
+            //         arrtwo.splice(index, 0, {user_name: item.user_name, doctor_id: item.admin_user_id,workminute: 0})
341
+            //         }
342
+            //      })
343
+                   
344
+            //      let chartX = []
345
+            //      let chartY = []
346
+            //      arrtwo.map(item => {
347
+            //        chartX.push(item.user_name)
348
+            //        chartY.push(item.workminute / 60)
349
+            //      })
350
+            //      this.chart.xAxis.data = chartX
351
+            //      this.chart.series[0].data = chartY
352
+
353
+            //      this.getArrLength(this.chart.xAxis.data)                
315 354
 
316 355
                 let tempArr = [], newArr = []
317 356
                 for (let i = 0; i < scheudleTotal.length; i++) {
@@ -448,6 +487,7 @@ export default {
448 487
             this.end_time = this.getTimestamp(monthEndTime)
449 488
             console.log('monthEndTime',this.getTimestamp(monthEndTime))
450 489
             this.getlist()
490
+            this.getchartlist()
451 491
         },
452 492
         getFullDate(targetDate) {
453 493
             var D, y, m, d;
@@ -582,7 +622,29 @@ export default {
582 622
                 var noWorkDay = response.data.data.workday
583 623
                 console.log("worknoday",noWorkDay)
584 624
 
625
+            //    var workdaylist = response.data.data.chartworkdayminute
585 626
 
627
+            //    let arrtwo = [...workdaylist]
628
+            //     arrtwo.sort(this.compare('doctor_id'))
629
+            //     this.doctorlist.sort(this.compare('admin_user_id'))
630
+            //     this.doctorlist.forEach((item, index) => {
631
+            //      if (arrtwo[index] && item.admin_user_id ==arrtwo[index].doctor_id) {
632
+                        
633
+            //         }else{
634
+            //         arrtwo.splice(index, 0, {user_name: item.user_name, doctor_id: item.admin_user_id,workminute: 0})
635
+            //         }
636
+            //      })
637
+                   
638
+            //      let chartX = []
639
+            //      let chartY = []
640
+            //      arrtwo.map(item => {
641
+            //        chartX.push(item.user_name)
642
+            //        chartY.push(item.workminute / 60)
643
+            //      })
644
+            //      this.chart.xAxis.data = chartX
645
+            //      this.chart.series[0].data = chartY
646
+
647
+            //      this.getArrLength(this.chart.xAxis.data)    
586 648
                 let tempArr = [], newArr = []
587 649
                     for (let i = 0; i < scheudleTotal.length; i++) {
588 650
                         if (tempArr.indexOf(scheudleTotal[i].user_name) === -1) {
@@ -712,14 +774,20 @@ export default {
712 774
         },
713 775
         //获取统计图数据
714 776
         getchartlist(){
715
-           getchartlist().then(response=>{
777
+             if(this.timeSlot == 1){
778
+               this.start_time = this.getTimestamp(this.weekDayArr[0]),
779
+               this.end_time = this.getTimestamp(this.weekDayArr[6])
780
+            }
781
+             const params = {
782
+                start_time:this.start_time,
783
+                end_time:this.end_time
784
+             }
785
+             console.log("params",params)
786
+           getchartlist(params).then(response=>{
716 787
                 if(response.data.state == 1){
717 788
                     var workdaylist =  response.data.data.workDaylist
718 789
                     console.log("早年公共",workdaylist)
719
-
720
-
721 790
                     let arr = [...workdaylist]
722
-
723 791
                     arr.sort(this.compare('doctor_id'))
724 792
                     this.doctorlist.sort(this.compare('admin_user_id'))
725 793
                     this.doctorlist.forEach((item, index) => {
@@ -729,8 +797,7 @@ export default {
729 797
                           arr.splice(index, 0, {user_name: item.user_name, doctor_id: item.admin_user_id,workminute: 0})
730 798
                         }
731 799
                     })
732
-                    console.log('arrrrrrrrrrrrrrr',arr)
733
-
800
+                   
734 801
                     let chartX = []
735 802
                     let chartY = []
736 803
                     arr.map(item => {
@@ -752,6 +819,10 @@ export default {
752 819
                 var dataZoom_end = 100;
753 820
                 this.chart.dataZoom[0].end = dataZoom_end
754 821
             }
822
+        },
823
+        changeRadio(){
824
+          this.getlist()
825
+          this.getchartlist()
755 826
         }
756 827
     }
757 828
 }