Преглед изворни кода

Merge remote-tracking branch 'origin/master' into referMaster

zhouna пре 3 година
родитељ
комит
3c124adf7b

+ 413 - 0
src/css/deptQualifiedPhysician.less

@@ -0,0 +1,413 @@
+@import './reset.less';
+
+.container{
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+    background: #fff;
+    .partTitle {
+        border-bottom: 10px #EFF1F6 solid;
+        height: 54px;
+    }
+}
+.physician {
+    // background-color: #fff;
+    .dayFilter {
+        .levelList {
+            height: 80px;
+        }
+        .selectLevel,.levelList  {
+            width: 180px;
+        }
+    }
+    .filterItem.deptListWrap {
+        .selectDept,.deptList,.physicianList {
+            width: 180px;
+        }
+    }
+    ul,li{
+        list-style: none;
+    }
+    h2{
+        width: 100%;
+        box-sizing: border-box;
+        background-color: #fff;
+        z-index: 20;
+        height: 44px;
+        line-height: 44px;
+        padding: 0 0 0 15px;
+        border-bottom: 1px solid #E2E5EF;
+        font-size: 16px;
+        font-weight: bold;
+        letter-spacing: 1px;
+    }
+    .main-body{
+        .main-body-com;
+        min-width: 1250px;
+        border: 0;
+        border-left: 10px #EFF1F6 solid;
+        // box-sizing: border-box;
+        /*width: 100%;*/
+    }
+    table{
+        .table;
+        min-width: 1090px;
+        th,td{
+            text-align: center;
+        }
+        th{
+            white-space: nowrap;
+        }
+        th[code]{
+            cursor: pointer;
+            &:after{
+                content:"";
+                display:inline-block;
+                width: 11px;
+                height: 14px;
+                margin-left: 4px;
+                vertical-align: middle;
+                background: url("../images/grey.png");
+            }
+            &.asc:after{
+                background: url("../images/up_blue.png");
+                background-size: 11px 14px;
+            }
+            &.desc:after{                
+                background: url("../images/down_blue.png");
+                background-size: 11px 14px;
+            }
+        }
+        td{
+            white-space: nowrap;
+            position: relative;
+        }
+        .moduleNumber{
+            text-align: center;
+        }
+        .scoreOperaItem{
+            width: 50px;
+            cursor: pointer;
+        }
+        .updownimg {
+            width: 9px;
+            margin-left: 5px;
+            position: absolute;
+            top: 7px;
+            right: 1px;
+        }
+    }
+    .tabFoot{
+        height: 40px;
+        /*border: 1px solid #E2E5EF;
+        border-top: none;
+        box-sizing: border-box;*/
+    }
+    .scoreOpera{
+        height: 50px;
+        line-height: 50px;
+        margin: 0 20px 0 0;
+        cursor: pointer;
+        img{
+            margin: 0 10px 0 0;
+        }
+    }
+    
+    .recordScoreOperaBtn{
+        cursor: pointer;
+        color: @activeColor;
+    }
+    .recordScoreBtn{
+        cursor: pointer;
+        display: inline-block;
+        width:68px;
+        height:30px;
+        line-height: 30px;
+        text-align: center;
+        border-radius:4px;
+        box-sizing: border-box;
+        border: 1px solid @activeColor;
+        color: @activeColor;
+    }
+    /*.filterBox{
+        margin-bottom: 15px;
+    }*/
+    .filterItem{
+        position: relative;
+        display: inline-block;
+        float: left;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 20px 0;
+        span{
+            display: inline-block;
+            line-height: 40px;
+            position: relative;
+        }
+        input{
+            width:120px;
+            height:40px;
+            border-radius:4px;
+            border: 1px solid #E2E5EF;
+            outline: none;
+            margin-right: 10px;
+            padding: 0 10px;
+            box-sizing: border-box;
+        }
+        input:focus{
+            border: 1px solid @activeColor ;
+            outline: 0;
+            -webkit-box-shadow:@activeColor  0px 0px 2px;
+            -moz-box-shadow: @activeColor  0px 0px 2px;
+            box-shadow: @activeColor  0px 0px 2px;
+          }
+    }
+    
+    .filterDropList{
+        position: absolute;
+        right: 0;
+        top: 34px !important;
+        max-height: 200px;
+        overflow-y: auto;
+        background: #fff;
+        display: none;
+        border: 1px solid #e4e7ed;
+        box-shadow: 0 2px 12px 0 #e4e7ed;
+        z-index: 2;
+        li{
+            padding: 0 10px;
+        }
+    }
+    .deptList,.physicianList{
+        width: 160px;
+        max-height: 400px;
+    }
+    .levelList{
+        width: 120px;
+        height: 120px;
+        li:hover{
+            background-color: #EEF4FF;
+            cursor: pointer;
+        }
+    }
+    .selectLevel,.selectDept,.selectLeaveHosType,.selectPhysician{
+        display: inline-block;
+        position: relative;
+        width:120px;
+        padding: 0 10px;
+        height:40px;
+        border-radius:4px;
+        border: 1px solid #E2E5EF;
+        box-sizing: border-box;
+        cursor: pointer;
+    }
+    .selectDept,.selectLeaveHosType,.selectPhysician{
+        width: 180px;
+    }
+    
+    .filter{
+        display: inline-block;
+        width:60px;
+        height:36px;
+        background:@activeColor;
+        border-radius:4px;
+        color: #fff;
+        text-align: center;
+        line-height: 36px;
+        position: relative;
+        top: 2px;
+        cursor: pointer;
+        float: left;
+    }
+    .export{
+        display: inline-block;
+        width:60px;
+        height:34px;
+        line-height: 34px;
+        background: #fff;
+        border-radius: 4px;
+        color: #777;
+        text-align: center;
+        border: 1px solid #777;
+        box-sizing: border-box;
+        cursor: pointer;
+        margin:0 0 20px 10px;
+        float: left;
+        top: 0px;
+    }
+    .arrow{
+        position: absolute;
+        width: 10px;
+        top: 16px;
+        right: 10px;
+    }
+    .iconCheck{
+        width: 14px;
+    }
+    .fl{
+        float: left;
+    }
+    .clearfix:after {
+        content: '';
+        height: 0;
+        line-height: 0;
+        display: block;
+        visibility: hidden;
+        clear: both;
+    }
+    .clearfix{
+        zoom:1
+    }
+    .divide{
+        margin: 0 10px;
+    }
+    .datapickerBox{
+        position: relative;
+        display: inline-block;
+        width: 120px;
+        height: 40px;
+        input{
+            position: absolute;
+        }
+    }
+    .iconCalen{
+        position: absolute;
+        width: 15px;
+        top: 12px;
+        right: 10px;
+    }
+    .textCenter{
+        text-align: center;
+    }
+    .patientNameSpan{
+        color: #00A1F0;
+        cursor: pointer;
+    }
+    .patientNameSpans{
+        color: #FF4D4F;
+        cursor: pointer;
+        margin-left: 30px;
+    }
+    
+    .deptItem:hover,.physicianItem:hover{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+    .ellipsis{
+        overflow: hidden;
+        text-overflow:ellipsis;
+        white-space: nowrap;
+    }
+    
+    
+    .pagination{
+        margin: 35px 0 20px 0  ;
+        text-align: right;
+    }
+    .totalSum{
+        font-size:12px;
+        line-height:17px;
+        color: #777777;
+        margin-right: 20px;
+    }
+    .pageNum,.prePage,.nextPage, .more{
+        display: inline-block;
+        width: 20px;
+        cursor: pointer;
+        margin: 0 20px 0 0;
+        text-align: center;
+        color: #777;
+    }
+    .prePage,.nextPage{
+        img{
+            position: relative;
+            top: 0px   ;
+        }
+    }
+     .more{
+        cursor: not-allowed;
+    }
+    .arrowPage{
+        width: 6px;
+    }
+    .activePage{
+        color: @activeColor;
+    }
+    
+    
+    
+    .ui-datepicker-calendar {
+        border: 0 none;
+        min-width: 0;
+    }
+    .ui-datepicker thead {
+        background-color: #fff;
+        color: #c3cbd6;
+    }
+    .ui-datepicker td {
+        padding: 0;
+        height: auto;
+        color: #657180;
+    }
+    .ui-datepicker td span, .ui-datepicker td a {
+        text-align: center;
+        height: 30px;
+        line-height: 30px;
+    }
+    
+    .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
+        border: 0;
+        background-color: #fff;
+        &:hover {
+            background-color: #c4d8fe;
+        }
+    }
+    .ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year {
+        color: #333;
+        font-weight: normal;
+        height: 30px;
+        line-height: 30px;
+        margin: 0 5px;
+        width: 40%;
+        border-radius: 3px;
+    }
+    .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next {
+        top: 5px;
+    }
+    .ui-state-active, .ui-widget-content .ui-state-active {
+        background-color: @activeColor !important;
+        color: #fff;
+    }
+    .ui-state-highlight, .ui-widget-content .ui-state-highlight {
+        background-color: #fff5bf !important;
+        color: #657180;
+    }
+    .ui-widget-header {
+        background-color: #fff;
+        border: 0 none;
+    }
+    
+    input::-webkit-outer-spin-button,
+    input::-webkit-inner-spin-button {
+        -webkit-appearance: none;
+    }
+     
+    input[type="number"] {
+        -moz-appearance: textfield;
+    }
+}
+.abnormalClear {
+    top: 2px !important;
+}
+.levelList,.checkList,.leaveHosTypeList {
+    width: 120px;
+    // height: 200px;
+    li:hover{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+}
+.leaveHosTypeList{
+    width: 158px;
+    max-height: 300px;
+}

+ 33 - 2
src/css/login.less

@@ -14,7 +14,7 @@ body {
   }
   .waring {
     color: #FF4D4F;
-    margin-top: 18px;
+    margin-top: 6px;
     height: 18px;
   }
   .sureLogin {
@@ -108,7 +108,7 @@ p.title {
     }
     
   }
-  .inputFocus{
+  .inputFocus,.security-code input.inputFocus{
       border: 1px solid @activeColor ;
       outline: 0;
       -webkit-box-shadow:@activeColor  0px 0px 2px;
@@ -264,4 +264,35 @@ p.title {
     margin-left: -20px;
     margin-top: -20px;
   }
+}
+.security-code{
+  border:none;
+  input{
+    width: 140px;
+    height: 100%;
+    margin-left: -10px;
+    padding-left: 5px;
+    border-radius: 4px;
+    border: 1px solid #97A4BA;
+  }
+  .code-img{
+    display: inline-block;
+    width: 100px;
+    height: 40px;
+    vertical-align: middle;
+  }
+  img{
+    width: 100%;
+    height: 100%;
+    margin-left: 8px;
+    cursor: pointer;
+    vertical-align: middle;
+  }
+  a{
+    color: #fff;
+    font-size: 12px;
+    cursor: pointer;
+    text-decoration: underline;
+    float: right;
+  }
 }

+ 414 - 0
src/css/qualifiedPhysician.less

@@ -0,0 +1,414 @@
+@import './reset.less';
+
+.container{
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+    background: #fff;
+    .partTitle {
+        border-bottom: 10px #EFF1F6 solid;
+        height: 54px;
+    }
+}
+.deptScoreDetailControl {
+    // background-color: #fff;
+    .dayFilter {
+        .levelList {
+            height: 80px;
+        }
+        .selectLevel,.levelList  {
+            width: 180px;
+        }
+    }
+    .filterItem.deptListWrap {
+        display: none;
+        .selectDept,.deptList,.physicianList {
+            width: 180px;
+        }
+    }
+    ul,li{
+        list-style: none;
+    }
+    h2{
+        width: 100%;
+        box-sizing: border-box;
+        background-color: #fff;
+        z-index: 20;
+        height: 44px;
+        line-height: 44px;
+        padding: 0 0 0 15px;
+        border-bottom: 1px solid #E2E5EF;
+        font-size: 16px;
+        font-weight: bold;
+        letter-spacing: 1px;
+    }
+    .main-body{
+        .main-body-com;
+        min-width: 1250px;
+        border: 0;
+        border-left: 10px #EFF1F6 solid;
+        // box-sizing: border-box;
+        /*width: 100%;*/
+    }
+    table{
+        .table;
+        min-width: 1090px;
+        th,td{
+            text-align: center;
+        }
+        th{
+            white-space: nowrap;
+        }
+        th[code]{
+            cursor: pointer;
+            &:after{
+                content:"";
+                display:inline-block;
+                width: 11px;
+                height: 14px;
+                margin-left: 4px;
+                vertical-align: middle;
+                background: url("../images/grey.png");
+            }
+            &.asc:after{
+                background: url("../images/up_blue.png");
+                background-size: 11px 14px;
+            }
+            &.desc:after{                
+                background: url("../images/down_blue.png");
+                background-size: 11px 14px;
+            }
+        }
+        td{
+            white-space: nowrap;
+            position: relative;
+        }
+        .moduleNumber{
+            text-align: center;
+        }
+        .scoreOperaItem{
+            width: 50px;
+            cursor: pointer;
+        }
+        .updownimg {
+            width: 9px;
+            margin-left: 5px;
+            position: absolute;
+            top: 7px;
+            right: 1px;
+        }
+    }
+    .tabFoot{
+        height: 40px;
+        /*border: 1px solid #E2E5EF;
+        border-top: none;
+        box-sizing: border-box;*/
+    }
+    .scoreOpera{
+        height: 50px;
+        line-height: 50px;
+        margin: 0 20px 0 0;
+        cursor: pointer;
+        img{
+            margin: 0 10px 0 0;
+        }
+    }
+    
+    .recordScoreOperaBtn{
+        cursor: pointer;
+        color: @activeColor;
+    }
+    .recordScoreBtn{
+        cursor: pointer;
+        display: inline-block;
+        width:68px;
+        height:30px;
+        line-height: 30px;
+        text-align: center;
+        border-radius:4px;
+        box-sizing: border-box;
+        border: 1px solid @activeColor;
+        color: @activeColor;
+    }
+    /*.filterBox{
+        margin-bottom: 15px;
+    }*/
+    .filterItem{
+        position: relative;
+        display: inline-block;
+        float: left;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 20px 0;
+        span{
+            display: inline-block;
+            line-height: 40px;
+            position: relative;
+        }
+        input{
+            width:120px;
+            height:40px;
+            border-radius:4px;
+            border: 1px solid #E2E5EF;
+            outline: none;
+            margin-right: 10px;
+            padding: 0 10px;
+            box-sizing: border-box;
+        }
+        input:focus{
+            border: 1px solid @activeColor ;
+            outline: 0;
+            -webkit-box-shadow:@activeColor  0px 0px 2px;
+            -moz-box-shadow: @activeColor  0px 0px 2px;
+            box-shadow: @activeColor  0px 0px 2px;
+          }
+    }
+    
+    .filterDropList{
+        position: absolute;
+        right: 0;
+        top: 34px !important;
+        max-height: 200px;
+        overflow-y: auto;
+        background: #fff;
+        display: none;
+        border: 1px solid #e4e7ed;
+        box-shadow: 0 2px 12px 0 #e4e7ed;
+        z-index: 2;
+        li{
+            padding: 0 10px;
+        }
+    }
+    .deptList,.physicianList{
+        width: 160px;
+        max-height: 400px;
+    }
+    .levelList{
+        width: 120px;
+        height: 120px;
+        li:hover{
+            background-color: #EEF4FF;
+            cursor: pointer;
+        }
+    }
+    .selectLevel,.selectDept,.selectLeaveHosType,.selectPhysician{
+        display: inline-block;
+        position: relative;
+        width:120px;
+        padding: 0 10px;
+        height:40px;
+        border-radius:4px;
+        border: 1px solid #E2E5EF;
+        box-sizing: border-box;
+        cursor: pointer;
+    }
+    .selectDept,.selectLeaveHosType,.selectPhysician{
+        width: 160px;
+    }
+    
+    .filter{
+        display: inline-block;
+        width:60px;
+        height:36px;
+        background:@activeColor;
+        border-radius:4px;
+        color: #fff;
+        text-align: center;
+        line-height: 36px;
+        position: relative;
+        top: 2px;
+        cursor: pointer;
+        float: left;
+    }
+    .export{
+        display: inline-block;
+        width:60px;
+        height:34px;
+        line-height: 34px;
+        background: #fff;
+        border-radius: 4px;
+        color: #777;
+        text-align: center;
+        border: 1px solid #777;
+        box-sizing: border-box;
+        cursor: pointer;
+        margin:0 0 20px 10px;
+        float: left;
+        top: 0px;
+    }
+    .arrow{
+        position: absolute;
+        width: 10px;
+        top: 16px;
+        right: 10px;
+    }
+    .iconCheck{
+        width: 14px;
+    }
+    .fl{
+        float: left;
+    }
+    .clearfix:after {
+        content: '';
+        height: 0;
+        line-height: 0;
+        display: block;
+        visibility: hidden;
+        clear: both;
+    }
+    .clearfix{
+        zoom:1
+    }
+    .divide{
+        margin: 0 10px;
+    }
+    .datapickerBox{
+        position: relative;
+        display: inline-block;
+        width: 120px;
+        height: 40px;
+        input{
+            position: absolute;
+        }
+    }
+    .iconCalen{
+        position: absolute;
+        width: 15px;
+        top: 12px;
+        right: 10px;
+    }
+    .textCenter{
+        text-align: center;
+    }
+    .patientNameSpan{
+        color: #00A1F0;
+        cursor: pointer;
+    }
+    .patientNameSpans{
+        color: #FF4D4F;
+        cursor: pointer;
+        margin-left: 30px;
+    }
+    
+    .deptItem:hover,.physicianItem:hover{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+    .ellipsis{
+        overflow: hidden;
+        text-overflow:ellipsis;
+        white-space: nowrap;
+    }
+    
+    
+    .pagination{
+        margin: 35px 0 20px 0  ;
+        text-align: right;
+    }
+    .totalSum{
+        font-size:12px;
+        line-height:17px;
+        color: #777777;
+        margin-right: 20px;
+    }
+    .pageNum,.prePage,.nextPage, .more{
+        display: inline-block;
+        width: 20px;
+        cursor: pointer;
+        margin: 0 20px 0 0;
+        text-align: center;
+        color: #777;
+    }
+    .prePage,.nextPage{
+        img{
+            position: relative;
+            top: 0px   ;
+        }
+    }
+     .more{
+        cursor: not-allowed;
+    }
+    .arrowPage{
+        width: 6px;
+    }
+    .activePage{
+        color: @activeColor;
+    }
+    
+    
+    
+    .ui-datepicker-calendar {
+        border: 0 none;
+        min-width: 0;
+    }
+    .ui-datepicker thead {
+        background-color: #fff;
+        color: #c3cbd6;
+    }
+    .ui-datepicker td {
+        padding: 0;
+        height: auto;
+        color: #657180;
+    }
+    .ui-datepicker td span, .ui-datepicker td a {
+        text-align: center;
+        height: 30px;
+        line-height: 30px;
+    }
+    
+    .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
+        border: 0;
+        background-color: #fff;
+        &:hover {
+            background-color: #c4d8fe;
+        }
+    }
+    .ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year {
+        color: #333;
+        font-weight: normal;
+        height: 30px;
+        line-height: 30px;
+        margin: 0 5px;
+        width: 40%;
+        border-radius: 3px;
+    }
+    .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next {
+        top: 5px;
+    }
+    .ui-state-active, .ui-widget-content .ui-state-active {
+        background-color: @activeColor !important;
+        color: #fff;
+    }
+    .ui-state-highlight, .ui-widget-content .ui-state-highlight {
+        background-color: #fff5bf !important;
+        color: #657180;
+    }
+    .ui-widget-header {
+        background-color: #fff;
+        border: 0 none;
+    }
+    
+    input::-webkit-outer-spin-button,
+    input::-webkit-inner-spin-button {
+        -webkit-appearance: none;
+    }
+     
+    input[type="number"] {
+        -moz-appearance: textfield;
+    }
+}
+.abnormalClear {
+    top: 2px !important;
+}
+.levelList,.checkList,.leaveHosTypeList {
+    width: 120px;
+    // height: 200px;
+    li:hover{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+}
+.leaveHosTypeList{
+    width: 158px;
+    max-height: 300px;
+}

+ 5 - 2
src/css/reset.less

@@ -467,7 +467,10 @@ input:-ms-input-placeholder{  /* Internet Explorer 10-11 */
   color: #00A1F0;
   cursor: pointer;
 }
-
+.goHomeDetail1 {
+  color: #00A1F0;
+  cursor: pointer;
+}
 .filterclear.abnormalClear {
   display: inline-block;
   width: 60px;
@@ -486,7 +489,7 @@ input:-ms-input-placeholder{  /* Internet Explorer 10-11 */
   float: left;
 }
 
-.filterItem,.patientNumInp,.filter,.moduleItemInp,.selectDept, .filterItem span {
+.filterItem,.patientNumInp,.filter,.moduleItemInp,.selectDept, .filterItem span,.selectPhysician {
   height: 34px !important;
   line-height: 34px !important;
   float: left;

+ 93 - 0
src/html/deptQualifiedPhysician.html

@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="UTF-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta http-equiv="X-UA-Compatible" content="ie=edge">
+  <title>医师病案首页合格率占比</title>
+
+</head>
+
+<body>
+  <div class="managerContainer physician">
+    <div class="partTitle">
+      <p><a href="deptConsole.html">控制台(科室) / </a>医师病案首页合格率占比</p>
+      <!-- <div class="monthYear">
+            <span class="mon">本月</span>
+            <span class="year">本年</span>
+          </div>  -->
+      <div class="dateDetail fr">
+
+      </div>
+    </div>
+    <div class="partTitleT"></div>
+    <div class="main-body">
+      <div class="filterBox">
+        <span class="filterItem typeFilter deptListWrap">
+          <span style="overflow:hidden">科室:</span>
+          <span class="selectDept ellipsis" data-id=" "><i>--</i></span>
+          <ul class="deptList filterDropList">
+
+          </ul>
+        </span>
+        <span class="filterItem typeFilter deptListWrap">
+          <span style="overflow:hidden">医师类别:</span>
+          <span class="selectPhysician ellipsis" data-id=" ">全部</span>
+          <ul class="physicianList filterDropList">
+            <li class="physicianItem  ellipsis" title="全部" data-id="" data-name="全部">全部</li>
+            <li class="physicianItem  ellipsis" title="住院医师" data-name="住院医师">住院医师</li>
+            <li class="physicianItem  ellipsis" title="主治医师" data-name="主治医师">主治医师</li>
+            <li class="physicianItem  ellipsis" title="主任医师" data-name="主任医师">主任医师</li>
+          </ul>
+        </span>
+        <!-- <span class="filterItem typeFilter">
+          <span>医师类别:</span>
+          <input type="text" class="selectPhysician canEditDept" value="全部">
+          <ul class="physicianList filterDropList">
+            <li class="physicianItem  ellipsis" title="全部" data-id="" data-name="全部">全部</li>
+            <li class="physicianItem  ellipsis" title="住院医师" data-name="住院医师">住院医师</li>
+            <li class="physicianItem  ellipsis" title="主治医师" data-name="主治医师">主治医师</li>
+            <li class="physicianItem  ellipsis" title="主任医师" data-name="主任医师">主任医师</li>
+          </ul>
+        </span> -->
+        <span class="filterItem">
+          <span>医师姓名:</span>
+          <span class="">
+            <input class="moduleItemInp" type="text" placeholder="请输入医师姓名">
+          </span>
+        </span>
+        <span class="filterItem typeFilter clearfix dataSelectLight">
+          <span class="fl">出院日期:</span>
+          <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off"
+              readonly /></span>
+          <span class="divide fl">-</span>
+          <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2" autocomplete="off"
+              readonly /></span>
+        </span>
+        <span class="filterItem typeFilter clearfix dataSelectLight">
+          <span class="filter">查询</span>
+          <span class="filterclear abnormalClear">重置</span>
+          <span class="exportData">导出</span>
+        </span>
+        
+      </div>
+      <div class="deptScoreDetailControlTable">
+        <table>
+          <!-- <thead>
+          <th class="moduleName" style="width: 65px;">序号</th>
+          <th class="moduleItemName">模块名称</th>
+          <th class="moduleScore desc" style="width: 105px;" code="percent">缺陷占比</th>
+        </thead>
+        <tbody class="tbody">
+
+        </tbody> -->
+        </table>
+      </div>
+      <div class="pagination"></div>
+    </div>
+
+  </div>
+</body>
+
+</html>

+ 1 - 1
src/html/index.html

@@ -109,7 +109,7 @@
                 
                   </div>
               </div>
-              <iframe src="./console.html" frameborder="0" id="contentIframe"></iframe>
+              <iframe src="" frameborder="0" id="contentIframe"></iframe>
           </div>
       </div>
     </div>

+ 0 - 34
src/html/login.html

@@ -9,40 +9,6 @@
 <body>
   <div id="mainBox"></div>
   <div class="login clearfix">
-    
-    <!--<div class="logoTop">
-      <img src="../images/lantone.png" alt="">
-      <span></span>
-      <i>AI病案质控平台</i>
-    </div>-->
-    <!-- <div class="bg fl">
-      <p class="title">AI病案质控平台</p>
-    </div> -->
-    <!--<div class="loginForm clearfix">-->
-      <!-- <div class="message fr">
-        <div class="inner">
-          <p class="welcome">欢迎使用!</p>
-          <div class="perPub">
-            <p>用户名</p>
-            <div class="iptWrap">
-              <img src="../images/yonghu.png" alt="">
-              <input type="text" placeholder="请输入用户名" id="username" value="" autocomplete="off">
-            </div>
-          </div>
-          <br>
-          <div class="perPub">
-            <p>密码</p>
-            <div class="iptWrap">
-              <img src="../images/mima.png" alt="">
-              <input type="text" placeholder="请输入密码" id="password" value="" autocomplete="off">
-            </div>
-          </div>
-          <p class="waring"></p>
-          <div class="sureLogin">登录</div>
-        </div>
-        <div class="copy-right">由杭州朗通信息技术有限公司提供技术支持</div>
-      </div> -->
-    <!--</div>-->
   </div>
 </body>
 </html>

+ 90 - 0
src/html/qualifiedPhysician.html

@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="UTF-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta http-equiv="X-UA-Compatible" content="ie=edge">
+  <title>医师病案首页合格率占比</title>
+</head>
+
+<body>
+  <div class="container deptScoreDetailControl">
+    <div class="partTitle">
+      <p><a href="console.html">控制台 / </a>医师病案首页合格率占比</p>
+      <!-- <div class="monthYear">
+            <span class="mon">本月</span>
+            <span class="year">本年</span>
+          </div>  -->
+      <div class="dateDetail fr">
+
+      </div>
+    </div>
+    <div class="partTitleT"></div>
+    <div class="main-body">
+      <div class="filterBox clearfix">
+        <span class="filterItem typeFilter">
+          <span>科室:</span>
+          <!-- <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入科室名称"> -->
+          <input type="text" class="selectDept canEditDept" value="全部">
+          <ul class="deptList filterDropList"></ul>
+        </span>
+        <span class="filterItem typeFilter">
+          <span>医师类别:</span>
+          <input type="text" class="selectPhysician canEditDept" value="全部">
+          <ul class="physicianList filterDropList">
+            <li class="physicianItem  ellipsis" title="全部" data-id="" data-name="全部">全部</li>
+            <li class="physicianItem  ellipsis" title="住院医师" data-name="住院医师">住院医师</li>
+            <li class="physicianItem  ellipsis" title="主治医师" data-name="主治医师">主治医师</li>
+            <li class="physicianItem  ellipsis" title="主任医师" data-name="主任医师">主任医师</li>
+          </ul>
+        </span>
+        <span class="filterItem">
+          <span>医师姓名:</span>
+          <span class="">
+            <input class="moduleItemInp" type="text" placeholder="请输入医师姓名">
+          </span>
+        </span>
+        <!-- <span class="filterItem typeFilter deptListWrap">
+                    <span>科室系统:</span>
+                    <span class="selectDept" data-id="">全部</span>
+                    <ul class="deptList filterDropList">
+                        <li class="deptItem ellipsis" title="全部" data-id="" data-name="全部">全部</li>
+                        <li class="deptItem ellipsis" title="内科系统" data-id="内科" data-name="内科系统">内科系统</li>
+                        <li class="deptItem ellipsis" title="外科系统" data-id="外科" data-name="外科系统">外科系统</li>
+                    </ul>
+                </span> -->
+
+        <span class="filterItem typeFilter clearfix dataSelectLight">
+          <span class="fl">出院日期:</span>
+          <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off"
+              readonly /></span>
+          <span class="divide fl">-</span>
+          <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2" autocomplete="off"
+              readonly /></span>
+        </span>
+        <span class="filterItem typeFilter clearfix dataSelectLight">
+          <span class="filter">查询</span>
+          <span class="filterclear abnormalClear">重置</span>
+          <span class="export">导出</span>
+        </span>
+        
+      </div>
+      <div class="deptScoreDetailControlTable">
+        <table>
+
+        </table>
+      </div>
+
+      <!--<div class="tabFoot">
+                <span class="scoreOpera" data-selectAll=false><img class="iconCheck" src="" alt="checkbox">全选</span>
+                <span class="recordScoreBtn">评分</span>
+            </div>-->
+
+      <div class="pagination"></div>
+    </div>
+
+  </div>
+</body>
+
+</html>

+ 1 - 1
src/js/allotCheckTask.js

@@ -282,7 +282,7 @@ function setBoxHeight() {
         at=0;
     }
     $('.table-cont').height(ht - (309-at) + 'px');
-    $(".patient-table-cont").height(ht - (323-at) + 'px');
+    $(".patient-table-cont").height(ht - (423-at) + 'px');
     $('.overAuto').height(ht - (249-at) + 'px');
 }
 

+ 19 - 4
src/js/api.js

@@ -1,5 +1,6 @@
 const api = {
   getHospitalMark: '/sys/user/getHospitalMark', //登录标识
+  getCaptcha:'/sys/user/getCaptcha',  //获取验证码
   getMenu: '/sys/user/getUserOrgMenu', //获取菜单
   midifyPassword: '/sys/user/midifyPassword', //修改密码
   getSubMenu: '/qc/mode/getMenu', //获取质控评分菜单
@@ -25,6 +26,7 @@ const api = {
   getDeptList: '/bas/dept/getList',
   getDeptListUser: '/bas/dept/listForUser',
   getDeptListDept: '/bas/dept/getListUser',
+  getDoctorProfessorList: '/bas/doctor/getDoctorProfessorList',//医师类别
   getAverageDayNum: '/console/getAverageDayNum', //平均住院天数
   getAverageFee: '/console/getAverageFee', //平均住院费用
   getAverageScore: '/console/getAverageScore', //各科室质控平均分
@@ -105,7 +107,8 @@ const api = {
   hmImproveMRPage: '/console/hmImproveMRPage', //病案首页改善率质控评分页(内页)
   getDefaultPageSet: '/sys/user/pageset/getDefaultPageSet', //获取默认列设置
   getBadLevelPage: '/console/badLevelPage', //病案首页不合格数病历详情
-
+  homePageLevelStatisticsXY: '/console/homePageLevelStatisticsXY', //全院医师合格率 湘雅
+  homePageLevelStatisticsXYByDept: '/consoleByDept/homePageLevelStatisticsXYByDept', //科室医师合格率 湘雅
   //导出接口
   getAverageDayNumExport: '/console/export/getAverageDayNumExport', //科室平均住院天数
   getAverageFeeExport: '/console/export/getAverageFeeExport', //科室平均住院花费
@@ -173,12 +176,24 @@ const api = {
   leaveHosMRPageByDept: '/consoleByDept/leaveHosMRPageByDept',//出院人数,终末)
   leaveHosMrPageExportByDept: '/print/export/leaveHosMrPageExportByDept',//出院人数导出,终末)
   homePageOrLevelExportByDept: '/print/export/homePageOrLevelExportByDept',//控制台(科室) / 病案首页合格率占比 / 病历列表导出,终末)
-
+  homePageLevelXYExport: '/console/export/homePageLevelXYExport',//病案首页合格率占比报表导出 湘雅 全院
+  homePageLevelXYExportByDept: '/print/export/homePageLevelXYExportByDept',//病案首页合格率占比报表导出 湘雅 科室
   getMedQualityCoList: '/qc/behospitalInfo/getMedQualityCoList',//病案指标列表
   medicalRecordIndicator: '/console/medicalRecordIndicator',//病案指标
   getListDoctor: '/bas/doctor/getList',//(科室医生列表)
-
-}
+  entryCountGroupXYByEntryPage: '/console/entryCountGroupXYByEntryPage',//湘雅医师合格率二级页面列表
+  badLevelXYPage: '/console/badLevelXYPage',//湘雅医师合格率二级页面列表合格不合格
+  entryCountGroupXYByEntryExport: '/console/export/entryCountGroupXYByEntryExport',//湘雅医师合格率二级页面导出缺陷
+  badLevelPageXYExport: '/console/export/badLevelPageXYExport',//湘雅医师合格率二级页面导出合格
+  qcResultShortXYPageExport: '/console/export/qcResultShortXYPageExport',//湘雅医师合格率三级页面导出
+  qcResultShortXYPage: '/console/qcResultShortXYPage',//湘雅医师合格率三级页面列表
+  entryCountGroupXYByEntryPageDept: '/consoleByDept/entryCountGroupXYByEntryPageDept',//湘雅医师合格率二级页面列表科室 缺陷
+  entryCountGroupXYByExportDept: '/print/export/entryCountGroupXYByExportDept',//湘雅医师合格率二级页面导出 缺陷
+  badLevelXYPageByDept: '/consoleByDept/badLevelXYPageByDept',//湘雅医师合格率二级页面列表科室 合格
+  qcResultShortXYPageByDept: '/consoleByDept/qcResultShortXYPageByDept',//湘雅医师合格率三级页面列表 科室
+  qcResultShortXYPageExportDept: '/print/export/qcResultShortXYPageExportDept',//湘雅医师合格率三级页面导出 科室
+  badLevelPageXYExportByDept: '/print/export/badLevelPageXYExportByDept',//湘雅医师合格率二级页面导出 科室
+} 
 const ywCheckApi = {
   addMedCheckInfo: '/qc/medCheckInfo/addMedCheckInfo',   //核查
   getAllotCheckList: '/qc/medCheckInfo/getCheckList', //分配核查任务列表

Разлика између датотеке није приказан због своје велике величине
+ 356 - 348
src/js/dept/partDetailControlDept.js


Разлика између датотеке није приказан због своје велике величине
+ 638 - 606
src/js/dept/qcListCopyDept.js


+ 48 - 15
src/js/dept/qcListCopyUnqualifiedDept.js

@@ -27,6 +27,7 @@ let chengdu = getUrlArgObjectNew("chengdu",srcUrl)||""
 let deptIdPram = getUrlArgObjectNew("deptId",srcUrl)||""
 let deptNamePram = getUrlArgObjectNew("deptName",srcUrl)||"";
 let docName = getUrlArgObjectNew("docName",srcUrl)||"";
+let doctorNumPram = getUrlArgObjectNew("docId", srcUrl) || ""
 let startDateParam = getUrlArgObjectNew("startDateParam",srcUrl)||"";
 let endDateParam = getUrlArgObjectNew("endDateParam",srcUrl)||"";
 let from = getUrlArgObjectNew("from",srcUrl)||"";
@@ -39,7 +40,8 @@ let fromDays = getUrlArgObjectNew("fromDays", srcUrl) || "";
 let deptListDept = JSON.parse(getCookie("deptList"))||[];
 let improveType = getUrlArgObjectNew("improveType", srcUrl) || '';
 let titleName = getUrlArgObjectNew("titleName", srcUrl) || '';
-
+let codeType = getUrlArgObjectNew("code", srcUrl) || '';
+let professor = getUrlArgObjectNew("professor", srcUrl) || ""
 let currentPage;
 $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
@@ -71,13 +73,19 @@ if(docName){
     doctorNameTemp = docName
     doctorName = docName
     $('.doctorInp').val(docName)
+    $('.doctorInp').prop('disabled', true)
+}
+if (doctorNumPram) {
+    doctorNumTemp = doctorNumPram
+    doctorNum = doctorNumPram
+    $('.doctorNumInp').val(doctorNumPram)
 }
 $(function(){
     if(deptNamePram){
         if(deptNamePram == "全院"){
             deptNamePram = "全部"
         }
-        deptIdTemp = deptIdPram = deptIdPram
+        deptId = deptIdTemp = deptIdPram
         deptName = deptNameTemp = deptNamePram
         $('.selectDept').html(deptNamePram).attr('title',deptNamePram).append(`<img class="arrow" src=${iconDown} alt="下拉">`)
         $(".deptList").css("display", "none")
@@ -87,6 +95,8 @@ $(function(){
 if(from==2){
     // $(".qcFiliterItem").css("display","none")
     $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台(科室) / </a><a class="consoleP" href="partDetailControlDept.html?from=2">病案首页合格率占比 / </a>病历列表`)
+} else if (from == 13){
+    $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台(科室) / </a><a class="consoleP" href="deptQualifiedPhysician.html?from=2">医师病案首页合格率占比 / </a>病历列表`)
 }
 $(".partTitle .consoleD").click(function(){
     //初始菜单选中   
@@ -128,12 +138,14 @@ $("#filterToggler").click(function(){
 function getTabData(activePage){
     // 判断是否是 住院超过31日病人数   
     let beHosGT31Days = null
+    let url
     if (fromDays && fromDays === "1") {
        beHosGT31Days = 1
     }
     if (casesEntryId === 'undefined') {
         casesEntryId = ""
     }
+    
     let param = {
         current:activePage,
         behospitalCode: behospitalCode,
@@ -141,6 +153,8 @@ function getTabData(activePage){
         level:level,//病历等级
         behDeptName: deptName=="全部"?"":deptName||"",
         deptName: deptName=="全部"?"":deptName||"",
+        deptId: deptId,
+        professor: professor,
         ascs:data_asc,     //升序
         descs:data_desc,       //降序
         startDate: behosDateStart.replace(/\//g,'-'), //出院日期--开始时间
@@ -153,7 +167,7 @@ function getTabData(activePage){
         ruleType:ruleType,
         isReject: isSingleReject,
         doctorName: doctorName,
-        doctorId: doctorNum,
+        doctorId: doctorNum || '',
         checkStatus: qcCheckStatus?Number(qcCheckStatus):qcCheckStatus, //病历核查状态
         mrStatus: fpCheckStatus?Number(fpCheckStatus):fpCheckStatus,   //首页核查状态(1:已核查,0:未核查)
         chName: qcCheckName,   //病历核查人员
@@ -181,7 +195,12 @@ function getTabData(activePage){
 
     $('.pagination').html("")
     $('.tbody').html(emptyBox('努力加载中...','',1))
-    return post(api.homePageOrGoodLevelByDept,param).then(res =>{
+    if(codeType == 'XY'){
+        url = api.badLevelXYPageByDept
+    }else{
+        url = api.homePageOrGoodLevelByDept
+    }
+    return post(url,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data;
             tabList = data.records;
@@ -279,12 +298,12 @@ $(".abnormalClear").on("click", function(e){
     deptName=""; 
     deptNameTemp=""; 
     deptIdTemp="";  
-    doctorName="";
+    // doctorName="";
     fpCheckName="";
     qcCheckName="" ;
     qcCheckMain="" ;
     doctorNum=""; 
-    doctorNameTemp=""; 
+    // doctorNameTemp=""; 
     fpCheckNameTemp="";
     qcCheckNameTemp="";
     qcCheckMainTemp="";
@@ -304,15 +323,14 @@ $(".abnormalClear").on("click", function(e){
         deptNameTemp=deptListDept[0]&&deptListDept[0].deptName;
         deptIdTemp=deptListDept[0]&&deptListDept[0].deptId;
     }
-    if (from == 4 || from == 9){
-        deptIdTemp = deptIdPram = deptIdPram
+    if (from == 4 || from == 9 || from == 13){
+        deptIdTemp = deptId = deptIdPram
         deptName = deptNameTemp = deptNamePram
     }
     $('.patientNumInp').val('')
     $('.patientNameInp').val('')
-    $('.doctorInp').val('')
+    // $('.doctorInp').val('')
     $('.doctorNumInp').val('')
-    $('.doctorInp').val('')
     $('.fpCheckPeople').val('')
     $('.qcCheckPeople').val('')
     $('.qcCheckMain').val('')
@@ -354,8 +372,9 @@ $(".abnormalClear").on("click", function(e){
     if(from == 2){
         deptName = deptNameTemp = deptListDept[0].deptName
         $('.selectDept ').html(deptName)
-    } else if (from == 4 || from == 9){
+    } else if (from == 4 || from == 9 || from == 13){
         deptName = deptNameTemp = deptNamePram
+        deptIdTemp = deptId = deptIdPram
         $('.selectDept').val(deptNamePram)
         $('.selectDept ').attr('title',deptNamePram)
         $(".deptList").css("display", "none")
@@ -1240,12 +1259,18 @@ $(function($){
         if (from == 6) {
             param = { ...param, improveType }
         }
+        let url
+        if (codeType == 'XY') {
+            url = api.badLevelPageXYExportByDept
+        } else {
+            url = api.badLevelPagePageExport
+        }
         if(exportTime==90){
             if((new Date(behosDateEnd) - new Date(behosDateStart))/24/60/60/1000 > exportTime){
                 $.alerModal({"message":`最多只能导出${exportTime}天`,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
                 return
             }else{
-                expJson(api.badLevelPagePageExport,param).then(res =>{
+                expJson(url,param).then(res =>{
                     downloadExportedData(res.data, $(".partTitle").text() + ".xls")
                 })
             }
@@ -1259,7 +1284,8 @@ $(function($){
 });
 function closeRadio(){
     $(".colSetBox .iconClose,.colSetBox .cancalColSet", parent.document ).off("click").on("click",function(){
-        $(".divModal",parent.document).html("")
+        // $(".divModal", parent.document).remove()
+        $(".divModal", parent.document).remove();
     })
 }
 function radioSelect(){
@@ -1276,9 +1302,16 @@ function bindSaveColPort(param){
             $.alerModal({"message":`最多只能导出${time}天`,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
             return
         }
+        let url
+        if (codeType == 'XY') {
+            url = api.badLevelPageXYExportByDept
+        } else {
+            url = api.homePageOrLevelExportByDept
+        }
         param.radioCheck = radioCheck||1
-        expJson(api.homePageOrLevelExportByDept,param).then(res =>{
-            $(".divModal",parent.document).html("")
+        expJson(url,param).then(res =>{
+            // $(".divModal", parent.document).remove()
+            $(".divModal", parent.document).remove();
             downloadExportedData(res.data, $(".partTitle").text() + ".xls")
         })
     })

+ 2 - 2
src/js/dept/qcListOutHospitalDept.js

@@ -1281,7 +1281,7 @@ $(function($){
 });
 function closeRadio(){
     $(".colSetBox .iconClose,.colSetBox .cancalColSet", parent.document ).off("click").on("click",function(){
-        $(".divModal",parent.document).html("")
+        $(".divModal", parent.document).remove()
     })
 }
 function radioSelect(){
@@ -1300,7 +1300,7 @@ function bindSaveColPort(param){
         }
         param.radioCheck = radioCheck||1
         expJson(api.leaveHosMrPageExportByDept,param).then(res =>{
-            $(".divModal",parent.document).html("")
+            $(".divModal", parent.document).remove()
             downloadExportedData(res.data, $(".partTitle").text()+".xls")
         })
     })

+ 2 - 2
src/js/dept/uccDeptDetail.js

@@ -1327,7 +1327,7 @@ $(function($){
 });
 function closeRadio(){
     $(".colSetBox .iconClose,.colSetBox .cancalColSet", parent.document ).off("click").on("click",function(){
-        $(".divModal",parent.document).html("")
+        $(".divModal", parent.document).remove()
     })
 }
 function radioSelect(){
@@ -1349,7 +1349,7 @@ function bindSaveColPort(param){
             param = { ...param, casesEntryName: ''}
         }
         expJson(!isInspection ? api.unModifyMRPageExportByDept : api.medicalCheckInnerExport , param).then(res => {
-            $(".divModal",parent.document).html("")
+            $(".divModal", parent.document).remove()
             downloadExportedData(res.data, $(".partTitle").text() + ".xls")
         })
     })

+ 1 - 1
src/js/deptConsole.js

@@ -59,7 +59,7 @@ function tiaomu(dateType) {
             $(parent.document).find("#contentIframe").attr("src", "uncorrectedCasesStatisticsDept.html?from=2&deptName=" + curDept + "&dateType=" + dateType + "&startDateParam=" + behosDateStart + "&endDateParam=" + behosDateEnd)
         } else {
             focusMenuItem("YH-KSZR-BASYHGLZB_XQ")
-            $(parent.document).find("#contentIframe").attr("src", "partDetailControlDept.html?from=2&deptName=" + curDept + "&dateType=" + dateType + "&startDateParam=" + behosDateStart + "&endDateParam=" + behosDateEnd)
+            $(parent.document).find("#contentIframe").attr("src", "partDetailControlDept.html?from=2&deptName=" + curDept + "&deptId=" + curDeptId + "&dateType=" + dateType + "&startDateParam=" + behosDateStart + "&endDateParam=" + behosDateEnd)
         }
     });
     $(".part02 .bingliLis").click(function () {

+ 739 - 0
src/js/deptQualifiedPhysician.js

@@ -0,0 +1,739 @@
+const $ = require('jquery');
+require("../css/deptQualifiedPhysician.less");
+require('./../resource/jquery-ui/jquery-ui.min.js');
+require('./modal.js');
+const { api } = require('./api.js')
+const { post, getCookie, getUrlArgObjectNew, emptyBox, setDatePicker, getPickerDate, expJson, listenScroll, downloadExportedData } = require('./utils.js')
+const switchIconOpen = require("./../images/btn_open.png")
+const switchIconClose = require("./../images/btn_close.png")
+const iconDown = require("./../images/arrow_down.png")
+const iconUp = require("./../images/arrow_up.png")
+const arrowLeft = require("./../images/arrow_left.png")
+const arrowRight = require("./../images/arrow_right.png")
+
+listenScroll('.physician')
+let casesId = "", name = "", isReject = "", isUsed = "", casesIdTemp = "", nameTemp = "", isRejectTemp = "", data_asc = [], data_desc = ['deptName'], isUsedTemp = "", from = "", deptIdTemp = "", deptNameTemp = "", deptName = "",deptItemId = "", deptId = "", professor = ""
+$(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectPhysician").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectUsed").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let isPlacefile = getCookie('isPlacefile') || 1
+let deptList = JSON.parse(getCookie("deptList")) || []
+$(function () {
+  dateChange()
+  let srcUrl = $("#contentIframe", parent.document).attr("src")
+  isReject = getUrlArgObjectNew("dateType", srcUrl) || ""
+  from = getUrlArgObjectNew("from", srcUrl) || ""
+  name = nameTemp = getUrlArgObjectNew("name", srcUrl) || ""
+  let startDateParam = getUrlArgObjectNew("startDateParam", srcUrl) || ""
+  let endDateParam = getUrlArgObjectNew("endDateParam", srcUrl) || ""
+  if (name) {
+    $(".moduleItemInp").val(name)
+  }
+  if (isReject == 1) {
+    $(".monthYear .mon").css({
+      backgroundColor: '#00A1FF',
+      color: '#fff'
+    }).siblings().css({
+      color: '#00A1FF',
+      backgroundColor: '#fff'
+    })
+    setDatePicker($("#datepicker"), $("#datepicker2"), 1)
+  } else if (isReject == 2) {
+    $(".monthYear .year").css({
+      backgroundColor: '#00A1FF',
+      color: '#fff'
+    }).siblings().css({
+      color: '#00A1FF',
+      backgroundColor: '#fff'
+    })
+    setDatePicker($("#datepicker"), $("#datepicker2"), 2)
+  } else if (isReject == 3) {
+    setDatePicker($("#datepicker"), $("#datepicker2"), 3, new Date(startDateParam), new Date(endDateParam))
+  } else {
+    setDatePicker($("#datepicker"), $("#datepicker2"), "default")
+  }
+  if (!isReject) {
+    setDatePicker($("#datepicker"), $("#datepicker2"), "default")
+  }
+  getDeptList(1)
+  $(".partTitle a").click(function () {
+    //初始菜单选中
+    focusMenuItem('YH-KZTKS')
+    $(".container", parent.document).addClass("console-cont");
+  })
+  $(".abnormalClear").click(function () {
+    setDatePicker($("#datepicker"), $("#datepicker2"), "default")
+    deptId = deptIdTemp = deptList[0] && deptList[0].deptId
+    deptName = deptNameTemp = deptList[0] && deptList[0].deptName
+    name = ""
+    professor = "";
+    data_asc = []
+    professor = "";
+    data_desc = ['deptName'];
+    $("th[code]").removeClass("asc desc").addClass("desc");
+    $(".patientNumInp").val("")
+    $(".selectModuleType ").val("全部").attr({
+      "data-id": '',
+      "title": ''
+    })
+    $(".selectPhysician").html('全部').attr({
+      "data-id": "",
+      "title": "全部"
+    }).append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    $(".selectDept").html(deptName).attr({
+      "data-id": deptId,
+      "title": deptName
+    }).append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    getTabData(1)
+  })
+  getTabData(1)//条目缺陷
+})
+
+function focusMenuItem(code) {
+  const ele = $(parent.document).find(".menu .page[code=" + code + "]");
+  const parEle = ele.parents(".list-1");
+  if (!parEle.is(".list-1-show")) {
+    parEle.click();
+  }
+  //console.log($(parent.document).find(".menu .page[code='YH-ZKK-GMKQXZB_XQ']"))
+  ele.click();
+}
+//获取医师类别
+// getDoctorProfessorList()
+function getDoctorProfessorList(val) {
+  // post(api.getDoctorProfessorList, { inputStr: val == "全部" ? "" : val || "", }).then(res => {
+  //   if (res.data.code == '0') {
+  //     const physicianList = res.data.data || []
+  //     rendePhysicianList(physicianList)
+  //   } else {
+  //     rendePhysicianList([])
+  //   }
+  // }).catch((e) => {
+
+  // })
+  
+}
+function rendePhysicianList(physicianList) {
+  if (physicianList.length == 0) {
+    $('.physicianList').html("")
+    return
+  }
+  let str = `<li class="physicianItem " data-id=" " data-name="全部">全部</li>`
+  for (let i = 0; i < physicianList.length; i++) {
+    str += `<li class="physicianItem ellipsis" title=${physicianList[i]}  data-name=${physicianList[i]}> ${physicianList[i]}</li>`
+  }
+  $('.physicianList').html(str)
+  bindPhysicianSelect()
+}
+bindPhysicianSelect()
+//医师类别选中
+function bindPhysicianSelect() {
+  $('.physicianItem').on("click", function () {
+    const physicianItemName = $(this).attr("data-name") || ''
+    const physicianItemId = $(this).attr("data-id")
+    professor = physicianItemName
+    if (physicianItemName.length > 10) {
+      $('.selectPhysician').html(physicianItemName.substring(0, 8) + '...')
+    } else {
+      $('.selectPhysician').html(physicianItemName)
+    }
+    $('.selectPhysician ').attr({ 'title': physicianItemName, 'data-id': physicianItemName })
+    $(".selectPhysician").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    $(".physicianList").css("display", "none")
+  })
+}
+bindDeptSelect()
+//科室选择
+function bindDeptSelect() {
+  $(document).on("click", '.deptItem', function () {
+    const deptItemName = $(this).attr("data-name") || ''
+    const deptItemId = $(this).attr("data-id")
+    deptId = deptIdTemp = deptItemId
+    deptName = deptNameTemp = deptItemName
+    if (deptItemName.length > 10) {
+      $('.selectDept').html(deptItemName.substring(0, 8) + '...')
+    } else {
+      $('.selectDept').html(deptItemName)
+    }
+    $('.selectDept ').attr({ 'title': deptItemName, 'data-id': deptItemId })
+    $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+    $(".deptList").css("display", "none")
+  })
+}
+//全选绑定
+
+$('.selectDept').on("click", function (e) {
+  e.stopPropagation()
+  $(".levelList ").css("display", "none")
+  $(".selectLevel .arrow").attr("src", iconDown)
+  const showList = $(".deptList ").css("display")
+  if (showList == "none" || !showList) {
+    $(".deptList ").css("display", "block")
+    $(".selectDept .arrow").attr("src", iconUp)
+  } else {
+    $(".deptList ").css("display", "none")
+    $(".selectDept .arrow").attr("src", iconDown)
+  }
+})
+$('.selectPhysician').on("click", function (e) {
+  e.stopPropagation()
+  $(".levelList ").css("display", "none")
+  $(".selectLevel .arrow").attr("src", iconDown)
+  const showList = $(".physicianList ").css("display")
+  if (showList == "none" || !showList) {
+    $(".physicianList ").css("display", "block")
+    $(".selectPhysician .arrow").attr("src", iconUp)
+  } else {
+    $(".physicianList ").css("display", "none")
+    $(".selectPhysician .arrow").attr("src", iconDown)
+  }
+})
+//排序
+$("body").on("click", "th[code]", function (e) {
+  const code = $(this).attr("code");
+  if (data_asc[0] === code) {
+    data_desc = [code];
+    data_asc = [];
+    $("th[code]").removeClass("asc desc");
+    $(this).addClass("desc");
+  } else {
+    data_desc = [];
+    data_asc = [code];
+    $("th[code]").removeClass("asc desc");
+    $(this).addClass("asc");
+  }
+  getTabData(1);
+});
+//科室处理
+getDeptList()
+function getDeptList() {
+  let str = ``
+  if (deptList.length <= 0) return
+  $(".physician .selectDept").attr("data-id", deptList[0].deptId).find("i").html(deptList[0].deptName)
+  for (let i = 0; i < deptList.length; i++) {
+    let tmp = deptList[i]
+    str += `<li class="deptItem ellipsis" title="${tmp.deptName}" data-id="${tmp.deptId}" data-name="${tmp.deptName}">${tmp.deptName}</li>`
+  }
+  $(".physician .deptList").html(str)
+  deptName = deptNameTemp = deptList[0].deptName
+  deptId = deptIdTemp = deptList[0].deptId
+}
+//判断有无某一权限
+function hasData(data) {
+  let lis = JSON.parse(getCookie("codeLis")) || []
+  if (lis.indexOf(data) > -1) {//有权限
+    return true
+  }
+  return false;
+}
+//所有数据切换日期筛选
+function dateChange() {
+  $(".monthYear .mon").click(function () {
+    $(this).css({
+      backgroundColor: '#00A1FF',
+      color: '#fff'
+    }).siblings().css({
+      color: '#00A1FF',
+      backgroundColor: '#fff'
+    })
+    isReject = isRejectTemp = 1
+    setDatePicker($("#datepicker"), $("#datepicker2"), 1)
+    getTabData(1)
+  })
+  $(".monthYear .year").click(function () {
+    $(this).css({
+      backgroundColor: '#00A1FF',
+      color: '#fff'
+    }).siblings().css({
+      color: '#00A1FF',
+      backgroundColor: '#fff'
+    })
+    isReject = isRejectTemp = 2
+    setDatePicker($("#datepicker"), $("#datepicker2"), 2)
+    getTabData(1)
+  })
+}
+//获取表格数据
+function getTabData(activePage) {
+  const dateStatrt = getPickerDate($("#datepicker"), 1)
+  const dateEnd = getPickerDate($("#datepicker2"), 2)
+  const start = new Date(dateStatrt).getTime()
+  const end = new Date(dateEnd).getTime()
+  if (start > end) {
+    $.alerModal({ "message": '开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+    return
+  }
+  const param = {
+    current: activePage,
+    type: 0, //1-本月,2-本年,0-自定义时间(现在 都是自定义时间,都会传具体时间进去)
+    doctorName: name, //条目名
+    deptName: deptName || '', //科室名
+    deptId: deptId || '',
+    size: 15,
+    ascs: data_asc,     //升序
+    descs: data_desc,       //降序
+    "professor": professor == "全部" ? "" : professor || "",
+    "startDate": dateStatrt,
+    "endDate": dateEnd
+  }
+  startDateParam = dateStatrt
+  endDateParam = dateEnd
+  post(api.homePageLevelStatisticsXYByDept, param).then(res => {
+    if (res.data.code == '0') {
+      const data = res.data.data.records
+      const totalPage = res.data.data.pages
+      const totalNum = res.data.data.total
+      renderTab(data, activePage)
+      if (totalPage > 1) {
+        renderPagination(totalPage, Number(activePage), totalNum)
+      } else {
+        $('.pagination').html("")
+      }
+    } else { }
+  }).catch((e) => { })
+}
+$(".moduleItemInp").on("input", function (e) {
+  const val = $(this).val().trim()
+  name = nameTemp = val
+})
+$(".filter").on("click", function (e) {
+  casesId = casesIdTemp, name = nameTemp, isReject = isRejectTemp, isUsed = isUsedTemp, deptId = deptIdTemp, deptName = deptNameTemp
+  getTabData(1)
+})
+$(".filterclear").on("click", function (e) {
+  nameTemp = ""
+  $(".moduleItemInp").val("")
+})
+// $('.selectModuleType').on("click", function(e){
+//     e.stopPropagation()
+//     $(".rejectList ").css("display","none")
+//     $(".usedList ").css("display", "none")
+//     $(".selectReject .arrow").attr("src",iconDown)
+//     $(".selectUsed .arrow").attr("src",iconDown)
+//     const showList =  $(".moduleTypeList ").css("display")
+//     if(showList == "none" ||!showList){
+//         $(".moduleTypeList ").css("display","block")
+//         $(".selectModuleType .arrow").attr("src",iconUp)
+//     }else{
+//         $(".moduleTypeList ").css("display", "none")
+//         $(".selectModuleType .arrow").attr("src",iconDown)
+//     }
+// })
+
+$('.selectReject').on("click", function (e) {
+  e.stopPropagation()
+  $(".moduleTypeList ").css("display", "none")
+  $(".usedList ").css("display", "none")
+  $(".selectModuleType .arrow").attr("src", iconDown)
+  $(".selectUsed .arrow").attr("src", iconDown)
+  const showList = $(".rejectList ").css("display")
+  if (showList == "none" || !showList) {
+    $(".rejectList ").css("display", "block")
+    $(".selectUsed .arrow").attr("src", iconUp)
+  } else {
+    $(".rejectList ").css("display", "none")
+    $(".selectUsed .arrow").attr("src", iconDown)
+  }
+})
+$('.selectUsed').on("click", function (e) {
+  e.stopPropagation()
+  $(".moduleTypeList ").css("display", "none")
+  $(".rejectList ").css("display", "none")
+  $(".selectModuleType .arrow").attr("src", iconDown)
+  $(".selectReject .arrow").attr("src", iconDown)
+  const showList = $(".usedList ").css("display")
+  if (showList == "none" || !showList) {
+    $(".usedList ").css("display", "block")
+    $(".selectUsed .arrow").attr("src", iconUp)
+  } else {
+    $(".usedList ").css("display", "none")
+    $(".selectUsed .arrow").attr("src", iconDown)
+  }
+})
+// bindRejectSelect()
+// bindUsedSelect()
+// getmoduleTypeList()
+function renderTab(data, activePage) {
+  let str = ``
+  let tHead = `
+        <thead>
+        <th class="moduleName" style="width: 65px;">序号</th>
+        <th class="beHospitalId textCenter ${data_asc == 'deptName' ? 'asc' : data_desc == 'deptName' ? 'desc' : ''}" code="deptName">科室</th>
+        <th class="beHospitalId textCenter ${data_asc == 'professor' ? 'asc' : data_desc == 'professor' ? 'desc' : ''}" code="professor">医师类别</th>
+        <th class="beHospitalId textCenter ${data_asc == 'doctorName' ? 'asc' : data_desc == 'doctorName' ? 'desc' : ''}" code="doctorName">医师姓名</th>
+        <th class="beHospitalId textCenter ${data_asc == 'entryNum' ? 'asc' : data_desc == 'entryNum' ? 'desc' : ''}" code="entryNum">缺陷总数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'secondLevelNum' ? 'asc' : data_desc == 'secondLevelNum' ? 'desc' : ''}" code="secondLevelNum">不合格数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'firstLevelNum' ? 'asc' : data_desc == 'firstLevelNum' ? 'desc' : ''}" code="firstLevelNum">合格数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'firstLevelPercent' ? 'asc' : data_desc == 'firstLevelPercent' ? 'desc' : ''}" code="firstLevelPercent">合格率</th>
+        <th class="beHospitalId textCenter ${data_asc == 'emptyNum' ? 'asc' : data_desc == 'emptyNum' ? 'desc' : ''}" code="emptyNum">空项数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'emptyPercent' ? 'asc' : data_desc == 'emptyPercent' ? 'desc' : ''}" code="emptyPercent">完整率</th>
+        <th class="beHospitalId textCenter ${data_asc == 'errorNum' ? 'asc' : data_desc == 'errorNum' ? 'desc' : ''}" code="errorNum">错误数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'errorPercent' ? 'asc' : data_desc == 'errorPercent' ? 'desc' : ''}" code="errorPercent">完善率</th>
+        <th class="beHospitalId textCenter ${data_asc == 'averageValue' ? 'asc' : data_desc == 'averageValue' ? 'desc' : ''}" code="averageValue">质控平均分</th>
+        <th class="beHospitalId textCenter ${data_asc == 'mrNum' ? 'asc' : data_desc == 'mrNum' ? 'desc' : ''}" code="mrNum">质控病历数</th>
+        </thead>`
+  for (let i = 0; i < data.length; i++) {
+    const item = data[i]
+    str += `
+      <tr  data-index=${i}>
+        <td  class="textCenter">${(activePage - 1) * 15 + i + 1}</td>
+        <td >${item.deptName || "-"}</td>
+        <td >${item.professor || "-"}</td>
+        <td >${item.doctorName || "-"}</td>
+        <td class="goHomeDetailQuexian goHomeDetail" data-professor="${item.professor || ""}" data-doctorName="${item.doctorName || ""}" data-docId="${item.doctorId || ""}" data-ruleType="" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}">
+            ${item.entryNum || "-"}
+            ${item.entrySameNum < 0 ? '<img class="updownimg" src="' + jiantou_down + '"/>' : item.entrySameNum > 0 ? '<img class="updownimg" src="' + jiantou_up + '"/>' : ''}
+        </td>
+        <td class="goHomeDetailQuexian goHomeDetail1" data-professor="${item.professor || ""}" data-title="不合格数" data-doctorName="${item.doctorName || ""}" data-docId="${item.doctorId || ""}" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}">
+            ${item.secondLevelNum}
+        </td>
+        <td class="goHomeDetailQuexian goHomeDetail1" data-professor="${item.professor || ""}" data-title="合格数" data-doctorName="${item.doctorName || ""}" data-docId="${item.doctorId || ""}" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}">
+            ${item.firstLevelNum}
+        </td>
+        <td >${item.firstLevelPercentStr}</td>
+        <td class="goHomeDetailQuexian goHomeDetail" data-professor="${item.professor || ""}" data-doctorName="${item.doctorName || ""}" data-docId="${item.doctorId || ""}" data-ruleType="1" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}">
+            ${item.emptyNum}
+        </td>
+        <td >${item.emptyPercentStr}</td>
+        <td class="goHomeDetailQuexian goHomeDetail" data-professor="${item.professor || ""}" data-doctorName="${item.doctorName || ""}" data-docId="${item.doctorId || ""}" data-ruleType="2" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}">
+            ${item.errorNum}
+        </td>
+        <td >${item.errorPercentStr}</td>
+        <td >${item.averageValue}</td>
+        <td >${item.mrNum}</td>     
+    </tr>
+  `
+  }
+  $('.deptScoreDetailControlTable table').html(str ? tHead + '<tbody>' + str + '</tbody>' : tHead + `<tbody>${emptyBox()}</tbody>`)
+  $(".goHomeDetail").click(function () {
+    let index = $(this).parent().attr("data-index")
+    let deptName = $(this).attr("data-dept")
+    let ruleType = $(this).attr("data-ruleType")
+    let doctorName = $(this).attr("data-doctorName") || ''
+    let docId = $(this).attr("data-docId") || ''
+    let professor = $(this).attr("data-professor")
+    let deptId = data[index].deptId
+    $(parent.document).find("#contentIframe").attr("src", "quexianDetailHome.html?deptName=" + deptName + "&deptId=" + deptId + "&from=13&casesId=243" + "&shijian=3" + "&ruleType=" + ruleType + "&startDateParam=" + startDateParam + "&endDateParam=" + endDateParam + "&docName=" + doctorName + "&docId=" + docId + "&code=XY" + "&professor=" + professor)
+  })
+  // 不合格数跳转至 病历列表详情页
+  $(".goHomeDetail1").click(function () {
+    let index = $(this).parent().attr("data-index")
+    let deptName = $(this).attr("data-dept")
+    let titleName = $(this).attr("data-title")
+    let doctorName = $(this).attr("data-doctorName") || ''
+    let docId = $(this).attr("data-docId") || ''
+    let professor = $(this).attr("data-professor")
+    // let ruleType = $(this).attr("data-ruleType")
+    let deptId = data[index].deptId
+    // $(parent.document).find("#contentIframe").attr("src", "qcListCopy.html?deptName=" + deptName + "&deptId=" + deptId + "&from=4&casesId=243" + "&shijian=3" + "&ruleType=" + ruleType + "&startDate=" + startDateParam + "&endDate=" + endDateParam + "&defectName=" + defectName)
+    $(parent.document).find("#contentIframe").attr("src", "qcListCopyUnqualifiedDept.html?deptName=" + deptName + "&deptId=" + deptId + "&from=13&casesId=243" + "&shijian=3" + "&startDateParam=" + startDateParam + "&endDateParam=" + endDateParam + "&titleName=" + titleName + "&docName=" + doctorName + "&docId=" + docId + "&code=XY" + "&professor=" + professor)
+  })
+  // initScroll("deptScoreDetailControl","YX",1)
+}
+
+function bindEdit(data, activePage) {
+  if (!hasData('FUNC000007')) {
+    return
+  }
+  $('.editItem').click(function (e) {
+    const index = $(this).parent().attr('data-index')
+    editItem(data[index], activePage)
+  })
+}
+
+//修改
+function editItem(item, activePage) {
+  const itemCpoy = JSON.parse(JSON.stringify(item))
+  $('.pop-box').remove()
+  $('.container').append('<div class="pop-box"></div>')
+  const str = `
+        <div class="itemMsgBox">
+            <div class="mask"></div>
+            <div class="itemMsgContent">
+                <p class="itemMsgTitle">修改 <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></p>
+                <div class="itemMsgContentBox">
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">模块名称:</span> <span class="itemInfoRight">${itemCpoy.casesName}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">条目名称:</span> <span class="itemInfoRight"> ${itemCpoy.name}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">提示信息:</span> <span class="itemInfoRight"> <input class="itemTipMsg" value="${itemCpoy.msg}" /></span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">
+                        分值:
+                        </span> <span class="itemInfoRight"> 
+                            <input class="itemScore" type="number" min="0" value=${itemCpoy.score} />
+                        </span>
+                        <p class="itemMsgInfoTips">支持≥0的数字输入,最多保留小数点后1位~</p>
+                    </div>
+                 
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">单项否决:</span><span class="itemInfoRight itemReject">${item.isReject == '1' ? `<img class="switchImg" src=${switchIconOpen} /><span class="imgInfo">  是</span>` : `<img class="switchImg" src=${switchIconClose} /> <span class="imgInfo"> 否</span>`}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">启用:</span><span class=" temInfoRight itemUsed">${item.isUsed == '1' ? `<img class="switchImg" src=${switchIconOpen} /><span class="imgInfo"> 是</span>` : `<img class="switchImg" src=${switchIconClose} /> <span class="imgInfo"> 否</span>`}</span></div>
+                </div>
+                
+                <div class="confirmEditBox"><span class="confirmEdit">保存</span></div>
+            </div>
+        </div>
+       
+    `
+  $("#mainBox", parent.document).append(str)
+  $("#mainBox .itemMsgBox .iconClose", parent.document).on("click", function (e) {
+    $("#mainBox .itemMsgBox", parent.document).remove()
+  })
+  $("#mainBox .itemMsgBox .itemTipMsg", parent.document).on("input", function (e) {
+    const val = $(this).val().trim()
+    itemCpoy.msg = val
+  })
+  $("#mainBox .itemMsgBox .itemScore", parent.document).on("keypress", function (e) {
+    return (/[0-9\.]/.test(String.fromCharCode(e.keyCode)))
+  })
+  $("#mainBox .itemMsgBox .itemScore", parent.document).on("input", function (e) {
+    const val = $(this).val()
+    itemCpoy.score = val
+  })
+  $("#mainBox .itemMsgBox .itemReject", parent.document).on("click", function (e) {
+    itemCpoy.isReject = itemCpoy.isReject == 1 ? 0 : 1
+    $('#mainBox .itemMsgBox', parent.document).remove()
+    editItem(itemCpoy, activePage)
+  })
+  $("#mainBox .itemMsgBox .itemUsed", parent.document).on("click", function (e) {
+    itemCpoy.isUsed = itemCpoy.isUsed == 1 ? 0 : 1
+    $('#mainBox .itemMsgBox', parent.document).remove()
+    editItem(itemCpoy, activePage)
+  })
+
+  $("#mainBox .itemMsgBox .confirmEdit", parent.document).on("click", function () {
+    var reg = new RegExp(/^\d+(\.\d)?$/);
+    if (reg.test(itemCpoy.score)) {
+      // console.log('itemCopy', itemCpoy)
+      if (!itemCpoy.msg.trim()) {
+        $.alerModal({ "message": "提示信息不能为空~", type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+        return
+      }
+
+      saveEdit(itemCpoy, activePage)
+      $("#mainBox .itemMsgBox .itemMsgInfoTips", parent.document).css("display", "none")
+      $('#mainBox .itemMsgBox', parent.document).remove()
+      return
+    } else {
+      $("#mainBox .itemMsgBox .itemMsgInfoTips", parent.document).css("display", "block")
+
+      return
+    }
+
+  })
+
+
+}
+
+//保存修改
+function saveEdit(item, activePage) {
+  const param = {
+    id: item.id,
+    isReject: item.isReject,
+    isUsed: item.isUsed,
+    msg: item.msg,
+    score: item.score
+  }
+
+  post(api.updataQcCasesEntry, param).then(res => {
+    if (res.data.code == '0') {
+      // const data = res.data.data
+      $.alerModal({ "message": "修改成功", type: "tip", time: '1000', isFather: true, win: true, fatherWrapper: $("#mainBox", parent.document) });
+      getTabData(activePage)
+    } else {
+      $.alerModal({ "message": '修改失败,请重试~', type: "tip", time: '1000', isFather: true, win: 'default', fatherWrapper: $("#mainBox", parent.document) });
+
+    }
+  }).catch((e) => {
+    $.alerModal({ "message": '修改失败,请重试~', type: "tip", time: '1000', isFather: true, win: 'default', fatherWrapper: $("#mainBox", parent.document) });
+
+  })
+}
+
+
+
+$('.selectModuleType').on("focus", function (e) {
+  e.stopPropagation()
+  $(".rejectList ").css("display", "none")
+  $(".usedList ").css("display", "none")
+  $(".selectReject .arrow").attr("src", iconDown)
+  $(".selectUsed .arrow").attr("src", iconDown)
+  $(".moduleTypeList ").css("display", "block")
+})
+$('.selectModuleType').on("blur", function (e) {
+  $(".moduleTypeList ").css("display", "none")
+})
+$('.selectModuleType').on("input", function (e) {
+  let val = $(this).val().trim()
+  casesName = casesNameTemp = val
+  getmoduleTypeList(val)
+})
+getmoduleTypeList()
+//获取模块类型
+function getmoduleTypeList(val) {
+  post(api.getQcCasesAll, { casesName: val == "全部" ? "" : val || "" }).then(res => {
+    if (res.data.code == '0') {
+      const moduleTypeList = res.data.data
+      renderModuleTypeList(moduleTypeList)
+    } else {
+      renderModuleTypeList([])
+    }
+  }).catch((e) => {
+
+  })
+}
+function renderModuleTypeList(moduleTypeList) {
+  if (moduleTypeList.length == 0) {
+    $('.moduleTypeList').html("")
+    return
+  }
+  let str = `<li class="modeTypeItem " data-id=" " data-name="全部">全部</li>`
+  for (let i = 0; i < moduleTypeList.length; i++) {
+    str += `<li class="modeTypeItem ellipsis" title=${moduleTypeList[i].name} data-id=${moduleTypeList[i].id} data-name=${moduleTypeList[i].name}> ${moduleTypeList[i].name}</li>`
+  }
+  $('.moduleTypeList').html(str)
+  bindModuleTypeSelect()
+}
+
+//模块类型选择
+function bindModuleTypeSelect() {
+  $('.modeTypeItem').on("mousedown", function () {
+    const modeTypeItemName = $(this).attr("data-name")
+    const modeTypeItemId = $(this).attr("data-id")
+    name = nameTemp = modeTypeItemName == "全部" ? "" : modeTypeItemName;
+    $('.selectModuleType').val(modeTypeItemName).attr("title", modeTypeItemName)
+    $(".moduleTypeList ").css("display", "none")
+  })
+}
+//单项否决选择
+function bindRejectSelect() {
+  $('.rejectItem').on("click", function () {
+    const rejectItemName = $(this).attr("data-name")
+    const rejectItemId = $(this).attr("data-id")
+    isRejectTemp = rejectItemId
+    $('.selectReject').html(rejectItemName)
+    $(".rejectList ").css("display", "none")
+    $(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+  })
+}
+//是否启用选择
+function bindUsedSelect() {
+  $('.usedItem').on("click", function () {
+    const usedItemName = $(this).attr("data-name")
+    const usedItemItemId = $(this).attr("data-id")
+    isUsedTemp = usedItemItemId
+    $('.selectUsed').html(usedItemName)
+    $(".usedList").css("display", "none")
+    $(".selectUsed").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+  })
+}
+
+//分页渲染
+function renderPagination(totalPage, activePage, totalNum) {
+  let str = `<span class="totalSum">共${totalPage}页/${totalNum}条数据</span><span class="prePage"><img class="arrowPage" src=${arrowLeft} /></span>`
+  if (totalPage <= 6) {
+    for (let i = 1; i <= totalPage; i++) {
+      str += `<span class="pageNum ${'page' + i}" data-page=${i}>${i}</span>`
+    }
+  } else {
+    if (activePage <= 3) { //选中页数小于4
+      for (let i = 1; i <= 4; i++) {
+        str += `<span class="pageNum ${'page' + i}" data-page=${i}>${i}</span>`
+      }
+      str += `<span class="more" >...</span>`
+      str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
+
+    } else if (activePage > totalPage - 3) {
+      str += `<span class="pageNum page1" data-page=1>1</span>`
+      str += `<span class="more" >...</span>`
+      str += `<span class="pageNum ${'page' + (totalPage - 3)}" data-page=${totalPage - 3}>${totalPage - 3}</span>`
+      str += `<span class="pageNum ${'page' + (totalPage - 2)}" data-page=${totalPage - 2}>${totalPage - 2}</span>`
+      str += `<span class="pageNum ${'page' + (totalPage - 1)}" data-page=${totalPage - 1}>${totalPage - 1}</span>`
+      str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
+    } else {
+      str += `<span class="pageNum page1" data-page=1>1</span>`
+      str += `<span class="more" >...</span>`
+      str += `<span class="pageNum ${'page' + (activePage - 1)}" data-page=${activePage - 1}>${activePage - 1}</span>`
+      str += `<span class="pageNum ${'page' + activePage}" data-page=${activePage}>${activePage}</span>`
+      str += `<span class="pageNum ${'page' + (activePage + 1)}" data-page=${activePage + 1}>${activePage + 1}</span>`
+      str += `<span class="more" >...</span>`
+      str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
+    }
+
+  }
+  str += `<span class="nextPage"><img class="arrowPage" src=${arrowRight} /></span>`
+  $('.pagination').html(str)
+  $('.page' + activePage).addClass('activePage')
+  $(".pageNum").on("click", function (e) {
+    const activePageNow = Number($(this).attr('data-page'))
+    getTabData(activePageNow)
+    // renderPagination(totalPage,activePageNow,totalNum)
+  })
+  $(".prePage").on("click", function (e) {
+    let activePageNow = Number($(".activePage").attr('data-page'))
+    if (activePageNow > 1) {
+      activePageNow--
+      getTabData(activePageNow)
+      // renderPagination(totalPage,activePageNow,totalNum)
+    }
+  })
+  $(".nextPage").on("click", function (e) {
+    let activePageNow = Number($(".activePage").attr('data-page'))
+    if (activePageNow < totalPage) {
+      activePageNow++
+      getTabData(activePageNow)
+      // renderPagination(totalPage,activePageNow,totalNum)
+    }
+  })
+
+}
+
+$(document).on("click", function () {
+  // $(".moduleTypeList ").css("display", "none")
+  $(".rejectList ").css("display", "none")
+  $(".usedList ").css("display", "none")
+  $(".selectModuleType .arrow").attr("src", iconDown)
+  $(".selectReject .arrow").attr("src", iconDown)
+  $(".selectUsed .arrow").attr("src", iconDown)
+  $(".deptList").css("display", "none")
+  $(".physicianList").css("display", "none")
+  $(".selectDept .arrow").attr("src", iconDown)
+})
+$(function () {
+  const iconCalenBlue = require("./../images/darkDate.png")
+  const iconCalenGrey = require("./../images/icon_calen_grey.png")
+  $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
+  $('.iconCalen').on("mouseenter", function (e) {
+    $(this).attr("src", iconCalenBlue)
+  })
+  $('.iconCalen').on("mouseleave", function (e) {
+    $(this).attr("src", iconCalenGrey)
+  })
+  $('.iconCalen').on("click", function (e) {
+    $(this).parent().find("input").focus()
+  })
+
+  $('.exportData').click(function () {
+    const start = new Date(startDateParam).getTime()
+    const end = new Date(endDateParam).getTime()
+    if (start > end) {
+      $.alerModal({ "message": '开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+      return
+    }
+    const param = {
+      "asc": data_asc,
+      "desc": data_desc,
+      "doctorName": name,
+      "professor": professor == "全部" ? "" : professor || "",
+      "deptName": deptName || '', //科室名
+      "type": 0, //1-本月,2-本年
+      "startDate": startDateParam,
+      "isPlacefile": isPlacefile,
+      "endDate": endDateParam
+    };
+    expJson(api.homePageLevelXYExportByDept, param).then(res => {
+      downloadExportedData(res.data, "医师病案首页合格率占比(科室).xls")
+    })
+  })
+});

+ 9 - 0
src/js/index.js

@@ -14,9 +14,12 @@ const {api} = require('./api.js')
 const {post,pageMap,delCookie,setCookie,setLocal,getCookie,focusMenuItem,getUrlArgObject} = require('./utils.js');
 let userInfo={};
 let isPlacefile = getCookie('isPlacefile')||1
+
 let passwordComplexity = getCookie('passwordComplexity')
 const hideLogo = getUrlArgObject("hideLg");
 const otherLogo = getUrlArgObject("adLg");
+const is3His = getUrlArgObject('is3His')
+console.log(is3His);
 const modalDom = `
       <p class="tips"><img src=${WarningIcon} /><span>为确保账号安全,请及时修改初始密码</span></p>
       <div class="modalAction">
@@ -402,6 +405,12 @@ function getMenu(){
           data.menuWrappers.splice(i,1);
           continue;
         }
+        for (let j = 0;j<data.menuWrappers[i].subMenuList.length;j++){
+          if(isPlacefile==='0'&& is3His && (data.menuWrappers[i].subMenuList[j].code==='YH-ZKK-BASYHGLYSZB_XQ' || data.menuWrappers[i].subMenuList[j].code==='YH-KSZR-BASYHGLYSZB_XQ')){
+            data.menuWrappers[i].subMenuList.splice(j,1);
+            continue;
+          }
+        }
         data.menuWrappers[i].isPlacefile = isPlacefile
       }
       initMenu(data.menuWrappers,data.userLoginDTO);

+ 114 - 60
src/js/login.js

@@ -9,7 +9,8 @@ const { post, setCookie, delCookie, getUrlArgObject, toast } = require('../js/ut
 const md5 = require('js-md5');
 const hideLogo = getUrlArgObject("hideLg");
 const otherLogo = getUrlArgObject("adLg");
-let type
+let type;
+let is3His=false; //医院标记:湘雅三院1/通用0
 $(function () {
   getHospitalMark()
   if (hideLogo || otherLogo) {
@@ -21,65 +22,107 @@ $(function () {
       sureLogin()
     }
   });
-  
-  
+
+
 });
 
+//获取验证码
+function getSecurityCode() {
+  var windowUrl = window.URL || window.webkitURL;//处理浏览器兼容性
+  var xhr = new XMLHttpRequest();
+  var url = api.getCaptcha;//验证码请求地址
+  xhr.open("GET", url, true);
+  xhr.responseType = "blob";
+  xhr.onload = function () {
+    if (this.status == 200) {
+      var blob = this.response;
+      const img = document.createElement("img");
+      const qrUrl = window.URL.createObjectURL(blob);
+      img.src = qrUrl;
+      //释放对象
+      img.onload = function () {
+        console.log('释放')
+        window.URL.revokeObjectURL(qrUrl)
+      }
+      const imgDiv = document.getElementById("codeImg");
+      $(imgDiv).html(img);
+    }
+  }
+  xhr.send();
+}
 function getHospitalMark() {
   localStorage.removeItem('accessToken')
   post(api.getHospitalMark).then((res) => {
-    const data = res.data;
-    if (data.code == 0) {
-      type = parseInt(data.data)
-      if (parseInt(data.data) == 1) {
-        str = '<div class="bg2">'
-        str += '<div class="login-info">'
-        str += '<div class="info-perPub">'
-        str += ' <p> 用户名:</p>'
-        str += '<div class="info-iptWrap">'
-        str += '<input type="text" placeholder="请输入用户名" id="username" value="" autocomplete="off">'
-        str += '</div></div>'
-        str += '<div class="info-perPub">'
-        str += ' <p> 密码:</p>'
-        str += '<div class="info-iptWrap">'
-        str += '<input type="text" placeholder="请输入密码" id="password" value="" autocomplete="off">'
-        str += '</div></div>'
-        str += '<p class="waring"></p><div class="sureLogin">登录</div></div>'
-        $('.login').html(str)
-      } else {
-        str = '<div class="bg fl"><p class="title">AI病案质控平台</p></div>'
-        str += '<div class="message fr"><div class="inner"><p class="welcome">欢迎使用!</p>'
-        str += '<div class="perPub">'
-        str += ' <p> 用户名:</p>'
-        str += '<div class="iptWrap">'
-        str += '<input type="text" placeholder="请输入用户名" id="username" value="" autocomplete="off">'
-        str += '</div></div><br>'
-        str += '<div class="perPub">'
-        str += ' <p> 密码:</p>'
-        str += '<div class="iptWrap">'
-        str += '<input type="text" placeholder="请输入密码" id="password" value="" autocomplete="off">'
-        str += '</div></div>'
-        str += '<p class="waring"></p><div class="sureLogin">登录</div></div><div class="copy-right">由杭州朗通信息技术有限公司提供技术支持</div></div>',
+  const data = res.data;//{ code: 0, data: 0 }
+  if (data.code == 0) {
+    type = parseInt(data.data)
+    is3His=type===1;
+    if (is3His) {   //湘雅三院登录样式
+      str = '<div class="bg2">'
+      str += '<div class="login-info">'
+      str += '<div class="info-perPub">'
+      str += ' <p> 用户名:</p>'
+      str += '<div class="info-iptWrap">'
+      str += '<input type="text" placeholder="请输入用户名" id="username" value="" autocomplete="off">'
+      str += '</div></div>'
+      str += '<div class="info-perPub">'
+      str += ' <p> 密码:</p>'
+      str += '<div class="info-iptWrap">'
+      str += '<input type="text" placeholder="请输入密码" id="password" value="" autocomplete="off">'
+      str += '</div></div>'
+      str += '<p class="waring"></p><div class="sureLogin">登录</div></div>'
+      $('.login').html(str)
+    } else {    //通用版样式
+      str = '<div class="bg fl"><p class="title">AI病案质控平台</p></div>'
+      str += '<div class="message fr"><div class="inner"><p class="welcome">欢迎使用!</p>'
+      str += '<div class="perPub">'
+      str += ' <p> 用户名:</p>'
+      str += '<div class="iptWrap">'
+      str += '<input type="text" placeholder="请输入用户名" id="username" value="" autocomplete="off">'
+      str += '</div></div><br>'
+      str += '<div class="perPub">'
+      str += ' <p> 密码:</p>'
+      str += '<div class="iptWrap">'
+      str += '<input type="text" placeholder="请输入密码" id="password" value="" autocomplete="off">'
+      str += '</div></div><br>'
+      str += '<div class="perPub">'
+      str += ' <p> 验证码:</p>'
+      str += '<div class="iptWrap security-code">'
+      str += '<input type="text" placeholder="请输入验证码" id="code" value="" autocomplete="off">'
+      str += '<div id="codeImg" class="code-img"></div>'
+      str += '<a id="changeCode" >换一张</a>'
+      str += '</div></div>'
+      str += '<p class="waring"></p><div class="sureLogin">登录</div></div><div class="copy-right">由杭州朗通信息技术有限公司提供技术支持</div></div>',
         $('.login').html(str)
-      }
-      $(".sureLogin").click(() => {
-        sureLogin()
-      })
-      $("#password").focus(function () {
-        $(this).attr("type", "password")
-      })
-      $(".iptWrap input").focus(function () {
-        $(this).parent().addClass('inputFocus')
-      })
-      $(".iptWrap input").blur(function () {
-        $(this).parent().removeClass('inputFocus')
-      })
-      $("body").on('input', '#username,#password', function () {
-        if ($(this).val().trim() != '') {
-          $(".login .waring").html('')
-        }
-      })
+        getSecurityCode();
     }
+    $(".sureLogin").click(() => {
+      sureLogin()
+    })
+    //点击换一张事件
+    $("#codeImg,#changeCode").click(function () {
+      getSecurityCode();
+      $(".security-code input").val('')
+    })
+    $("#password").focus(function () {
+      $(this).attr("type", "password")
+    })
+    $(".iptWrap:not(.security-code) input").focus(function () {
+      $(this).parent().addClass('inputFocus')
+    })
+    $(".security-code input").focus(function () {
+      $(this).addClass('inputFocus')
+    })
+    $(".iptWrap input").blur(function () {
+      $(this).parent().removeClass('inputFocus')
+      $(this).removeClass('inputFocus')
+    })
+    $("body").on('input', '#username,#password', function () {
+      if ($(this).val().trim() != '') {
+        $(".login .waring").html('')
+      }
+    })
+  }
   }).catch(() => {
 
   })
@@ -89,25 +132,31 @@ function sureLogin() {
   $(".login .waring").html('')
   let username = $("#username").val().trim();
   let password = $("#password").val().trim();
-  if (!username) { 
-    if(type == 1){
+  let captcha = !is3His?$("#code").val().trim():undefined;
+  if (!username) {
+    if (is3His) {
       toast("请输入用户名!");
-    }else{
+    } else {
       $(".login .waring").css('visibility', 'visible').html('请输入用户名')
     }
     return
   } else if (!password) {
-    if (type == 1) {
+    if (is3His) {
       toast("请输入密码!");
     } else {
       $(".login .waring").css('visibility', 'visible').html('请输入密码')
     }
     return
   }
+  if (!is3His&&!captcha) {    //三院不用验证码
+      $(".login .waring").css('visibility', 'visible').html('请输入验证码')
+    return
+  }
   $.alerModal({ type: "loading" });
   post(api.getJwt, {
     username: username,
-    password: password
+    password: password,
+    captcha: captcha
   }).then((res) => {
     const data = res.data;
     if (data.code == 0) {
@@ -122,16 +171,21 @@ function sureLogin() {
         cacheCheckDatas(data.data.selRoles);
         const otherLogoPm = otherLogo ? '?adLg=1' : '';
         const hideLgPm = hideLogo ? '?hideLg=1' : '';
-        window.location.href = 'index.html' + hideLgPm + otherLogoPm;
+        window.location.href = 'index.html' + hideLgPm + otherLogoPm + "?is3His="+is3His;
       }, 600);
     } else {
+        if(!is3His){
+          getSecurityCode();
+          $(".security-code input").val('')
+        }//登录失败切换验证码
       $(".divModal").remove()
       if (type == 1) {
         toast(data.msg);
       } else {
         $(".login .waring").css('visibility', 'visible').html(data.msg)
+
       }
-      
+
     }
   }).catch(() => {
     $(".divModal").remove()

+ 4 - 5
src/js/partDetailControl.js

@@ -207,8 +207,8 @@ function renderTab(data,hisId,activePage){
         let index =  $(this).parent().attr("data-index")
         let deptName = $(this).attr("data-dept")
         let ruleType = $(this).attr("data-ruleType")
-        let deptId = data[index].deptId   
-        $(parent.document).find("#contentIframe").attr("src","quexianDetailControlHome.html?deptName="+deptName+"&deptId="+deptId+"&from=1&casesId=243"+"&shijian=3"+"&ruleType="+ruleType+"&startDateParam="+startDateParam+"&endDateParam="+endDateParam)
+        let deptId = data[index].deptId ? data[index].deptId : '' 
+        $(parent.document).find("#contentIframe").attr("src", "quexianDetailControlHome.html?deptName=" + deptName + "&deptId=" + deptId + "&from=4&casesId=243" + "&shijian=3" + "&ruleType=" + ruleType + "&startDateParam=" + startDateParam + "&endDateParam=" + endDateParam)
     })
     // 不合格数跳转至 病历列表详情页
     $(".goHomeDetail1").click(function () {
@@ -216,10 +216,9 @@ function renderTab(data,hisId,activePage){
         let deptName = $(this).attr("data-dept")
         let titleName = $(this).attr("data-title")
         // let ruleType = $(this).attr("data-ruleType")
-        let deptId = data[index].deptId
+        let deptId = data[index].deptId ? data[index].deptId:''
         // $(parent.document).find("#contentIframe").attr("src", "qcListCopy.html?deptName=" + deptName + "&deptId=" + deptId + "&from=4&casesId=243" + "&shijian=3" + "&ruleType=" + ruleType + "&startDate=" + startDateParam + "&endDate=" + endDateParam + "&defectName=" + defectName)
-        $(parent.document).find("#contentIframe").attr("src", "qcListCopyUnqualified.html?deptName=" + deptName + "&deptId=" + deptId + "&from=4&casesId=243" + "&shijian=3" +  "&startDate=" + startDateParam + "&endDate=" + endDateParam+"&titleName="+titleName )
-
+        $(parent.document).find("#contentIframe").attr("src", "qcListCopyUnqualified.html?deptName=" + deptName + "&deptId=" + deptId + "&from=4&casesId=243" + "&shijian=3" + "&startDate=" + startDateParam + "&endDate=" + endDateParam + "&titleName=" + titleName)
     })
     // initScroll("partDetailControl","YX",1)
 }

+ 29 - 16
src/js/qcListCopy.js

@@ -38,7 +38,7 @@ let isSingleReject = getUrlArgObjectNew("isSingleReject",srcUrl)||"";
 let fromDays = getUrlArgObjectNew("fromDays", srcUrl) || "";
 let deptListDept = JSON.parse(getCookie("deptList"))||[];
 let improveType = getUrlArgObjectNew("improveType", srcUrl) || '';
-
+let professor = getUrlArgObjectNew("professor", srcUrl) || ""
 let currentPage;
 $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
@@ -70,12 +70,13 @@ if(docName){
     doctorNameTemp = docName
     doctorName = docName
     $('.doctorInp').val(docName)
+    $('.doctorInp').prop('disabled', true)
 }
 if(deptIdPram&&deptNamePram){
     if(deptNamePram == "全院"){
         deptNamePram = "全部"
     }
-    deptIdTemp = deptIdPram = deptIdPram
+    deptId = deptIdTemp = deptIdPram 
     deptName = deptNameTemp = deptNamePram
     $('.selectDept').val(deptNamePram)
     $('.selectDept ').attr('title',deptNamePram)
@@ -97,7 +98,13 @@ if(from==2){
     // $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="singleVeto.html?from=1">条目缺陷占比 / </a><a class="defectDetail" href="quexianDetailControlHome.html">缺陷详情 / </a>病历详情`)
     $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="partDetailControl.html?from=1">病案首页合格率占比 / </a><a class="defectDetail" href="quexianDetailControlHome.html">缺陷列表 / </a>病历列表`)
     $(".defectDetail").on("click",function(){
-        $(parent.document).find("#contentIframe").attr("src","quexianDetailControlHome.html?deptName="+`${deptNamePram=="全部" ?"全院":deptNamePram}`+"&deptId="+deptIdPram+"&from=1&casesId=243"+"&shijian=3"+"&ruleType="+ruleType+"&startDateParam="+startDateParam+"&endDateParam="+endDateParam) 
+        $(parent.document).find("#contentIframe").attr("src","quexianDetailControlHome.html?deptName="+`${deptNamePram=="全部" ?"全院":deptNamePram}`+"&deptId="+deptIdPram+"&from=4&casesId=243"+"&shijian=3"+"&ruleType="+ruleType+"&startDateParam="+startDateParam+"&endDateParam="+endDateParam) 
+    })
+} else if (from == 12) {
+    // 来自 各科室缺陷占比的跳转
+    $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="qualifiedPhysician.html?from=1">医师病案首页合格率占比 / </a><a class="defectDetail" href="quexianDetailControlHome.html">缺陷列表 / </a>病历列表`)
+    $(".defectDetail").on("click", function () {
+        $(parent.document).find("#contentIframe").attr("src", "quexianDetailControlHome.html?deptName=" + `${deptNamePram == "全部" ? "全院" : deptNamePram}` + "&deptId=" + deptIdPram + "&from=12&casesId=243" + "&shijian=3" +"&ruleType="+ruleType+ "&startDateParam=" + startDateParam + "&endDateParam=" + endDateParam+ "&docName=" + docName + "&code=XY" + "&professor=" + professor)
     })
 }else if(from==9){
     // 来自 各科室缺陷占比的跳转
@@ -162,6 +169,8 @@ function formatPostUrl(type) {
         return api.qcCheckMRPage
     } else if (type === '6') {
         return api.hmImproveMRPage
+    } else if (type === '12') {
+        return api.qcResultShortXYPage
     }else{
         return api.qcResultDefectList
     }
@@ -172,6 +181,8 @@ function formatExportUrl(type) {
         return api.qcCheckMRPageExport
     } else if (type === '6') {
         return api.hmImproveMRPageExport
+    } else if (type === '12') {
+        return api.qcResultShortXYPageExport
     }else {
         // 默认导出接口
         return api.qcResultShortPageExport
@@ -201,8 +212,10 @@ function getTabData(activePage){
         casesEntryName: casesEntryName,
         casesEntryId: casesEntryId,
         casesId:casesId,
+        professor: professor,
         beHosGT31Days,
         size: 15,
+        deptId: deptId,
         ruleType:ruleType,
         isReject: isSingleReject,
         doctorName: doctorName,
@@ -332,12 +345,12 @@ $(".abnormalClear").on("click", function(e){
     deptName=""; 
     deptNameTemp=""; 
     deptIdTemp="";  
-    doctorName="";
+    // doctorName="";
     fpCheckName="";
     qcCheckName="" ;
     qcCheckMain="" ;
     doctorNum=""; 
-    doctorNameTemp=""; 
+    // doctorNameTemp=""; 
     fpCheckNameTemp="";
     qcCheckNameTemp="";
     qcCheckMainTemp="";
@@ -351,21 +364,20 @@ $(".abnormalClear").on("click", function(e){
         data_desc=["behospitalDate"]
     }
     data_asc=[];
-    if(from == 2){
+    if (from == 2 ){
         deptId=deptListDept[0]&&deptListDept[0].deptId; 
         deptName=deptListDept[0]&&deptListDept[0].deptName;
         deptNameTemp=deptListDept[0]&&deptListDept[0].deptName;
         deptIdTemp=deptListDept[0]&&deptListDept[0].deptId;
     }
-    if (from == 4 || from == 9 || from == 8){
-        deptIdTemp = deptIdPram = deptIdPram
+    if (from == 4 || from == 9 || from == 8 || from == 12){
+        deptId = deptIdTemp = deptIdPram
         deptName = deptNameTemp = deptNamePram
     }
     $('.patientNumInp').val('')
     $('.patientNameInp').val('')
-    $('.doctorInp').val('')
+    // $('.doctorInp').val('')
     $('.doctorNumInp').val('')
-    $('.doctorInp').val('')
     $('.fpCheckPeople').val('')
     $('.qcCheckPeople').val('')
     $('.qcCheckMain').val('')
@@ -404,12 +416,13 @@ $(".abnormalClear").on("click", function(e){
         changeYear: true,
         dateFormat:"yy/mm/dd"
     }).datepicker( "setDate","");
-    if(from == 2){
+    if (from == 2){
         $('.selectDept ').val(deptListDept[0].deptName)
         deptName = deptNameTemp = deptListDept[0].deptName
-    } else if (from == 4 || from == 9 || from == 8){
+    } else if (from == 4 || from == 9 || from == 8 || from == 12){
         $('.selectDept').val(deptNamePram)
         deptName = deptNameTemp = deptNamePram
+        deptId = deptIdTemp = deptIdPram
         $('.selectDept ').attr('title',deptNamePram)
         $(".deptList").css("display", "none")
     }else{
@@ -721,7 +734,7 @@ function rendeDeptList(deptList){
       $('.deptList').html("")
       return
     }
-    let str = `<li class="deptItem ellipsis" data-id=" " data-name="全部">全部</li>`;
+    let str = `<li class="deptItem ellipsis" data-id="" data-name="全部">全部</li>`;
     if(from == 2){
         str = ''
     }
@@ -736,7 +749,7 @@ function bindDeptSelect(){
     $('.deptItem').on("mousedown",function(){
         const deptItemName = $(this).attr("data-name")
         const deptItemId = $(this).attr("data-id")
-        deptIdTemp =deptItemId
+        deptId = deptIdTemp =deptItemId
         deptNameTemp=deptItemName==="全部"?"":deptItemName;
         $('.selectDept').val(deptItemName)
         $('.selectDept ').attr('title',deptItemName)
@@ -1362,7 +1375,7 @@ $(function($){
 });
 function closeRadio(){
     $(".colSetBox .iconClose,.colSetBox .cancalColSet", parent.document ).off("click").on("click",function(){
-        $(".divModal",parent.document).html("")
+        $(".divModal", parent.document).remove()
     })
 }
 function radioSelect(){
@@ -1381,7 +1394,7 @@ function bindSaveColPort(param,exportURL){
         }
         param.radioCheck = radioCheck||1
         expJson(exportURL,param).then(res =>{
-            $(".divModal",parent.document).html("")
+            $(".divModal", parent.document).remove()
             downloadExportedData(res.data, $(".partTitle").text()+".xls")
         })
     })

+ 46 - 18
src/js/qcListCopyUnqualified.js

@@ -30,6 +30,7 @@ let docName = getUrlArgObjectNew("docName",srcUrl)||"";
 let startDateParam = getUrlArgObjectNew("startDate",srcUrl)||"";
 let endDateParam = getUrlArgObjectNew("endDate",srcUrl)||"";
 let from = getUrlArgObjectNew("from",srcUrl)||"";
+let type = getUrlArgObjectNew("type", srcUrl) || "";
 let defectName = getUrlArgObjectNew("defectName",srcUrl)||"";
 let casesEntryId = getUrlArgObjectNew("casesEntryId",srcUrl)|| "";
 let casesId = getUrlArgObjectNew("casesId",srcUrl)|| "";
@@ -39,7 +40,8 @@ let fromDays = getUrlArgObjectNew("fromDays", srcUrl) || "";
 let deptListDept = JSON.parse(getCookie("deptList"))||[];
 let improveType = getUrlArgObjectNew("improveType", srcUrl) || '';
 let titleName = getUrlArgObjectNew("titleName", srcUrl) || '';
-
+let codeType = getUrlArgObjectNew("code", srcUrl) || ""
+let professor = getUrlArgObjectNew("professor", srcUrl) || ""
 let currentPage;
 $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
@@ -48,12 +50,13 @@ $(".qcSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,qcCheckMain="",qcCheckMainTemp="",
   nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", deptName="", deptNameTemp="",doctorNum="",doctorNameTemp="",doctorNumTemp="",
   fpCheckStatus="",fpCheckStatusTemp="",fpCheckName="",fpCheckNameTemp="",qcCheckName="",qcCheckNameTemp="",qcCheckStatus="",qcCheckStatusTemp="",fpCheckDateStart="",fpCheckDateEnd="",
-    qcCheckDateStart = "", qcCheckDateEnd = "", casesEntryName="",
+    qcCheckDateStart = "", qcCheckDateEnd = "", casesEntryName = "", 
   data_desc=["leaveHospitalDate"],data_asc=[];
 listenScroll('.qcListCopy')
 if(isPlacefile != 1){
     data_desc=["behospitalDate"]
 }
+
 if(chengdu){
     levelTemp = chengdu
     level = chengdu
@@ -71,12 +74,13 @@ if(docName){
     doctorNameTemp = docName
     doctorName = docName
     $('.doctorInp').val(docName)
+    $('.doctorInp').prop('disabled', true)
 }
 if(deptIdPram&&deptNamePram){
     if(deptNamePram == "全院"){
         deptNamePram = "全部"
     }
-    deptIdTemp = deptIdPram = deptIdPram
+    deptIdTemp = deptId = deptIdPram
     deptName = deptNameTemp = deptNamePram
     $('.selectDept').val(deptNamePram)
     $('.selectDept ').attr('title',deptNamePram)
@@ -90,6 +94,11 @@ if(from==4){
     $(".defectDetail").on("click",function(){
         $(parent.document).find("#contentIframe").attr("src","quexianDetailControlHome.html?deptName="+`${deptNamePram=="全部" ?"全院":deptNamePram}`+"&deptId="+deptIdPram+"&from=1&casesId=243"+"&shijian=3"+"&ruleType="+ruleType+"&startDateParam="+startDateParam+"&endDateParam="+endDateParam) 
     })
+} else if (from == 12){
+    $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="qualifiedPhysician.html?from=1">医师病案首页合格率占比 / </a>病历列表`)
+    $(".defectDetail").on("click", function () {
+        $(parent.document).find("#contentIframe").attr("src", "quexianDetailControlHome.html?deptName=" + `${deptNamePram == "全部" ? "全院" : deptNamePram}` + "&deptId=" + deptIdPram + "&from=12&casesId=243" + "&shijian=3" + "&ruleType=" + ruleType + "&startDateParam=" + startDateParam + "&endDateParam=" + endDateParam)
+    })
 }
 $(".partTitle .consoleD").click(function(){
     //初始菜单选中   
@@ -144,6 +153,8 @@ function getTabData(activePage){
         level:level,//病历等级
         behDeptName: deptName=="全部"?"":deptName||"",
         deptName: deptName=="全部"?"":deptName||"",
+        deptId: deptId,
+        professor: professor,
         ascs:data_asc,     //升序
         descs:data_desc,       //降序
         startDate: behosDateStart.replace(/\//g,'-'), //出院日期--开始时间
@@ -181,10 +192,15 @@ function getTabData(activePage){
         param = { ...param, improveType }
     }
 
-
+    if (codeType == 'XY') {
+        url = api.badLevelXYPage
+    } else {
+        url = api.getBadLevelPage
+    }
+    
     $('.pagination').html("")
     $('.tbody').html(emptyBox('努力加载中...','',1))
-    return post(api.getBadLevelPage,param).then(res =>{
+    return post(url,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data;
             tabList = data.records;
@@ -282,12 +298,12 @@ $(".abnormalClear").on("click", function(e){
     deptName=""; 
     deptNameTemp=""; 
     deptIdTemp="";  
-    doctorName="";
+    // doctorName="";
     fpCheckName="";
     qcCheckName="" ;
     qcCheckMain="" ;
     doctorNum=""; 
-    doctorNameTemp=""; 
+    // doctorNameTemp=""; 
     fpCheckNameTemp="";
     qcCheckNameTemp="";
     qcCheckMainTemp="";
@@ -307,15 +323,14 @@ $(".abnormalClear").on("click", function(e){
         deptNameTemp=deptListDept[0]&&deptListDept[0].deptName;
         deptIdTemp=deptListDept[0]&&deptListDept[0].deptId;
     }
-    if (from == 4 || from == 9){
-        deptIdTemp = deptIdPram = deptIdPram
+    if (from == 4 || from == 9 || from == 12){
+        deptIdTemp = deptId = deptIdPram
         deptName = deptNameTemp = deptNamePram
     }
     $('.patientNumInp').val('')
     $('.patientNameInp').val('')
-    $('.doctorInp').val('')
+    // $('.doctorInp').val('')
     $('.doctorNumInp').val('')
-    $('.doctorInp').val('')
     $('.fpCheckPeople').val('')
     $('.qcCheckPeople').val('')
     $('.qcCheckMain').val('')
@@ -357,8 +372,9 @@ $(".abnormalClear").on("click", function(e){
     if(from == 2){
         deptName = deptNameTemp = deptListDept[0].deptName
         $('.selectDept ').val(deptListDept[0].deptName)
-    } else if (from == 4 || from == 9){
+    } else if (from == 4 || from == 9 || from == 12){
         deptName = deptNameTemp = deptNamePram
+        deptId = deptIdTemp = deptIdPram
         $('.selectDept').val(deptNamePram)
         $('.selectDept ').attr('title',deptNamePram)
         $(".deptList").css("display", "none")
@@ -717,7 +733,7 @@ function rendeDeptList(deptList){
       $('.deptList').html("")
       return
     }
-    let str = `<li class="deptItem ellipsis" data-id=" " data-name="全部">全部</li>`;
+    let str = `<li class="deptItem ellipsis" data-id="" data-name="全部">全部</li>`;
     if(from == 2){
         str = ''
     }
@@ -732,7 +748,7 @@ function bindDeptSelect(){
     $('.deptItem').on("mousedown",function(){
         const deptItemName = $(this).attr("data-name")
         const deptItemId = $(this).attr("data-id")
-        deptIdTemp =deptItemId
+        deptId=deptIdTemp =deptItemId
         deptNameTemp=deptItemName==="全部"?"":deptItemName;
         $('.selectDept').val(deptItemName)
         $('.selectDept ').attr('title',deptItemName)
@@ -1271,12 +1287,18 @@ $(function($){
         if (from == 6) {
             param = { ...param, improveType }
         }
+        let url
+        if (codeType == 'XY') {
+            url = api.badLevelPageXYExport
+        } else {
+            url = api.badLevelPagePageExport
+        }
         if(exportTime==90){
             if((new Date(behosDateEnd) - new Date(behosDateStart))/24/60/60/1000 > exportTime){
                 $.alerModal({"message":`最多只能导出${exportTime}天`,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
                 return
             }else{
-                expJson(api.badLevelPagePageExport,param).then(res =>{
+                expJson(url,param).then(res =>{
                     downloadExportedData(res.data, $(".partTitle").text() + ".xls")
                 })
             }
@@ -1290,7 +1312,7 @@ $(function($){
 });
 function closeRadio(){
     $(".colSetBox .iconClose,.colSetBox .cancalColSet", parent.document ).off("click").on("click",function(){
-        $(".divModal",parent.document).html("")
+        $(".divModal", parent.document).remove();
     })
 }
 function radioSelect(){
@@ -1307,9 +1329,15 @@ function bindSaveColPort(param){
             $.alerModal({"message":`最多只能导出${time}天`,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
             return
         }
+        let url
+        if (codeType == 'XY') {
+            url = api.badLevelPageXYExport
+        } else {
+            url = api.badLevelPagePageExport
+        }
         param.radioCheck = radioCheck||1
-        expJson(api.badLevelPagePageExport,param).then(res =>{
-            $(".divModal",parent.document).html("")
+        expJson(url,param).then(res =>{
+            $(".divModal", parent.document).remove();
             downloadExportedData(res.data, $(".partTitle").text() + ".xls")
         })
     })

+ 2 - 2
src/js/qcListDept.js

@@ -1186,7 +1186,7 @@ $((function($){
 })($));
 function closeRadio(){
     $(".colSetBox .iconClose,.colSetBox .cancalColSet", parent.document ).off("click").on("click",function(){
-        $(".divModal",parent.document).html("")
+        $(".divModal", parent.document).remove()
     })
 }
 function radioSelect(){
@@ -1205,7 +1205,7 @@ function bindSaveColPort(param){
         }
         param.radioCheck = radioCheck||1
         expJson(api.exportQcListDept,param).then(res =>{
-            $(".divModal",parent.document).html("")
+            $(".divModal", parent.document).remove()
             downloadExportedData(res.data, behosDateStart.slice(0,10).replace(/-/g,"")+"-"+behosDateEnd.slice(0,10).replace(/-/g,"")+"抽查住院病历质量情况.xls")
         })
     })

+ 3 - 3
src/js/qcListDeptYw.js

@@ -1189,7 +1189,7 @@ $((function($){
             return
         }
         expJson(api.qualityControlExportByDept,param).then(res =>{
-            $(".divModal",parent.document).html("")
+            $(".divModal", parent.document).remove()
             downloadExportedData(res.data, behosDateStart.slice(0,10).replace(/-/g,"")+"-"+behosDateEnd.slice(0,10).replace(/-/g,"")+"抽查住院病历质量情况.xls")
         })
         /*$.alerModal({type:"radio",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
@@ -1201,7 +1201,7 @@ $((function($){
 })($));
 function closeRadio(){
     $(".colSetBox .iconClose,.colSetBox .cancalColSet", parent.document ).off("click").on("click",function(){
-        $(".divModal",parent.document).html("")
+        $(".divModal", parent.document).remove()
     })
 }
 function radioSelect(){
@@ -1220,7 +1220,7 @@ function bindSaveColPort(param){
         }
         param.radioCheck = radioCheck||1
         expJson(api.qualityControlExportByDept,param).then(res =>{
-            $(".divModal",parent.document).html("")
+            $(".divModal", parent.document).remove()
             downloadExportedData(res.data, behosDateStart.slice(0,10).replace(/-/g,"")+"-"+behosDateEnd.slice(0,10).replace(/-/g,"")+"抽查住院病历质量情况.xls")
         })
     })

+ 2 - 2
src/js/qcListDocteam.js

@@ -1096,7 +1096,7 @@ $((function($){
 })($));
 function closeRadio(){
     $(".colSetBox .iconClose,.colSetBox .cancalColSet", parent.document ).off("click").on("click",function(){
-        $(".divModal",parent.document).html("")
+        $(".divModal", parent.document).remove()
     })
 }
 function radioSelect(){
@@ -1115,7 +1115,7 @@ function bindSaveColPort(param){
         }
         param.radioCheck = radioCheck||1
         expJson(api.exportQcDocteam,param).then(res =>{
-            $(".divModal",parent.document).html("")
+            $(".divModal", parent.document).remove()
             downloadExportedData(res.data, behosDateStart.slice(0,10).replace(/-/g,"")+"-"+behosDateEnd.slice(0,10).replace(/-/g,"")+"抽查住院病历质量情况.xls")
         })
     })

+ 2 - 2
src/js/qcListOutHospital.js

@@ -1305,7 +1305,7 @@ $(function($){
 });
 function closeRadio(){
     $(".colSetBox .iconClose,.colSetBox .cancalColSet", parent.document ).off("click").on("click",function(){
-        $(".divModal",parent.document).html("")
+        $(".divModal", parent.document).remove()
     })
 }
 function radioSelect(){
@@ -1324,7 +1324,7 @@ function bindSaveColPort(param){
         }
         param.radioCheck = radioCheck||1
         expJson(api.leaveHosMrPageExport,param).then(res =>{
-            $(".divModal",parent.document).html("")
+            $(".divModal", parent.document).remove()
             downloadExportedData(res.data, $(".partTitle").text()+".xls")
         })
     })

+ 2 - 2
src/js/qcListPerson.js

@@ -1170,7 +1170,7 @@ $((function($){
 })($));
 function closeRadio(){
     $(".colSetBox .iconClose,.colSetBox .cancalColSet", parent.document ).off("click").on("click",function(){
-        $(".divModal",parent.document).html("")
+        $(".divModal", parent.document).remove()
     })
 }
 function radioSelect(){
@@ -1189,7 +1189,7 @@ function bindSaveColPort(param){
         }
         param.radioCheck = radioCheck||1
         expJson(api.exportQcresultByPerson,param).then(res =>{
-            $(".divModal",parent.document).html("")
+            $(".divModal", parent.document).remove()
             downloadExportedData(res.data, behosDateStart.slice(0,10).replace(/-/g,"")+"-"+behosDateEnd.slice(0,10).replace(/-/g,"")+"抽查住院病历质量情况.xls")
         })
     })

+ 3 - 3
src/js/qcListYw.js

@@ -1198,14 +1198,14 @@ $((function($){
             return
         }
         expJson(api.qualityControlExport,param).then(res =>{
-            $(".divModal",parent.document).html("")
+            $(".divModal", parent.document).remove()
             downloadExportedData(res.data, behosDateStart.slice(0,10).replace(/-/g,"")+"-"+behosDateEnd.slice(0,10).replace(/-/g,"")+"抽查住院病历质量情况.xls")
         })
     })
 })($));
 function closeRadio(){
     $(".colSetBox .iconClose,.colSetBox .cancalColSet", parent.document ).off("click").on("click",function(){
-        $(".divModal",parent.document).html("")
+        $(".divModal", parent.document).remove()
     })
 }
 function radioSelect(){
@@ -1224,7 +1224,7 @@ function bindSaveColPort(param){
         }
         param.radioCheck = radioCheck||1
         expJson(api.qualityControlExport,param).then(res =>{
-            $(".divModal",parent.document).html("")
+            $(".divModal", parent.document).remove()
             downloadExportedData(res.data, behosDateStart.slice(0,10).replace(/-/g,"")+"-"+behosDateEnd.slice(0,10).replace(/-/g,"")+"抽查住院病历质量情况.xls")
         })
     })

+ 771 - 0
src/js/qualifiedPhysician.js

@@ -0,0 +1,771 @@
+const $ = require('jquery');
+require("../css/qualifiedPhysician.less");
+require('./modal.js');
+const { api } = require('./api.js')
+const { post, getCookie, getUrlArgObjectNew, focusMenuItem, emptyBox, setDatePicker, getPickerDate, downloadExportedData, expJson, initScroll, listenScroll } = require('./utils.js')
+require('./../resource/jquery-ui/jquery-ui.min.js');
+require('./../resource/jquery-ui/jquery-ui.min.css');
+const iconCheck = require("./../images/icon_check.png")
+const iconUnCheck = require("./../images/icon_unchecked.png")
+const iconDown = require("./../images/arrow_down.png")
+const iconUp = require("./../images/arrow_up.png")
+const loadingImg = require("./../images/loading.gif")
+const arrowLeft = require("./../images/arrow_left.png")
+const arrowRight = require("./../images/arrow_right.png")
+const jiantou_up = require("./../images/jiantou_up.png")
+const jiantou_down = require("./../images/jiantou_down.png")
+let isPlacefile = getCookie('isPlacefile') || 1
+
+listenScroll()
+$(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectLeaveHosType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let tabList = [], name = "", leaveHosType = "", leaveHosTypeTemp = "", behospitalCode = "", behosDateStart = "", level = "", behosDateEnd = "", scoreSum = 0, statisticsType = "", deptType = "",
+  nameTemp = "", behospitalCodeTemp = "", levelTemp = "", deptId = "", deptIdTemp = "", deptName = "", deptNameTemp = "", doctorName = "", doctorNum = "", doctorNameTemp = "", doctorNumTemp = "", professor = ""
+data_desc = ['deptName'], data_asc = [], hospital = getCookie("hospital");
+let srcUrl = $("#contentIframe", parent.document).attr("src")
+statisticsType = getUrlArgObjectNew("dateType", srcUrl) || ""
+deptType = getUrlArgObjectNew("deptType", srcUrl) || ""
+deptName = getUrlArgObjectNew("deptName", srcUrl) || ""
+let startDateParam = getUrlArgObjectNew("startDateParam", srcUrl) || ""
+let endDateParam = getUrlArgObjectNew("endDateParam", srcUrl) || ""
+if (hospital == '台州市立') {
+  $(".deptListWrap").css("display", "inline-block")
+  $('.selectLeaveHosType').html(deptType ? (deptType + '系统') : "全部").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+  $(".leaveHosTypeList").css("display", "none")
+  $('.selectLeaveHosType').removeClass('unSelect')
+  leaveHosType = leaveHosTypeTemp = deptType
+  deptName = deptNameTemp
+} else {
+  $(".deptListWrap").css("display", "none")
+}
+if (statisticsType == 1) {
+  $(".monthYear .mon").css({
+    backgroundColor: '#00A1FF',
+    color: '#fff'
+  }).siblings().css({
+    color: '#00A1FF',
+    backgroundColor: '#fff'
+  })
+  setDatePicker($("#datepicker"), $("#datepicker2"), 1)
+} else if (statisticsType == 2) {
+  $(".monthYear .year").css({
+    backgroundColor: '#00A1FF',
+    color: '#fff'
+  }).siblings().css({
+    color: '#00A1FF',
+    backgroundColor: '#fff'
+  })
+  setDatePicker($("#datepicker"), $("#datepicker2"), 2)
+} else if (statisticsType == 3) {
+  setDatePicker($("#datepicker"), $("#datepicker2"), 3, new Date(startDateParam), new Date(endDateParam))
+} else {
+  setDatePicker($("#datepicker"), $("#datepicker2"), "default")
+}
+if (!statisticsType) {
+  setDatePicker($("#datepicker"), $("#datepicker2"), "default")
+}
+$(".abnormalClear").click(function () {
+  setDatePicker($("#datepicker"), $("#datepicker2"), "default")
+  behospitalCode = behospitalCodeTemp = "";
+  deptId = deptIdTemp = "";
+  leaveHosType = leaveHosTypeTemp = "";
+  deptName = deptNameTemp = "";
+  leaveHosType = "";
+  leaveHosTypeTemp = "";
+  doctorName = "";
+  professor = "";
+  data_desc = ['deptName'];
+  data_asc = [];
+  $('.selectLeaveHosType').html('全部')
+  $(".leaveHosTypeList").css("display", "none")
+  $(".selectLeaveHosType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+  $(".selectDept").attr({ 'title': "全部", 'data-id': '' }).val("全部")
+  $(".selectPhysician").attr({ 'title': "全部", 'data-id': '' }).val("全部")
+  $(".patientNumInp").val("")
+  $(".moduleItemInp").val("")
+  getTabData(1)
+  getDeptList()
+  getDoctorProfessorList()
+})
+
+$(".partTitle a").click(function () {//初始菜单选中
+  $(".menu .page", parent.document).removeClass("active").eq(0).addClass("active");
+  $(".container", parent.document).addClass("console-cont");
+})
+
+$('.recordScoreBtn').css("opacity", hasData('FUNC000017') ? '1' : '0.5')
+dateChange()
+//所有数据切换日期筛选
+function dateChange() {
+  $(".monthYear .mon").click(function () {
+    $(this).css({
+      backgroundColor: '#00A1FF',
+      color: '#fff'
+    }).siblings().css({
+      color: '#00A1FF',
+      backgroundColor: '#fff'
+    })
+    $(".dayDetail .deptListWrap").css("display", "block")
+    $(".dayDetail .dayFilter").css("display", "none")
+    statisticsType = 1
+    setDatePicker($("#datepicker"), $("#datepicker2"), 1)
+    getTabData(1)
+  })
+  $(".monthYear .year").click(function () {
+    $(this).css({
+      backgroundColor: '#00A1FF',
+      color: '#fff'
+    }).siblings().css({
+      color: '#00A1FF',
+      backgroundColor: '#fff'
+    })
+    $(".dayDetail .deptListWrap").css("display", "none")
+    $(".dayDetail .dayFilter").css("display", "block")
+    statisticsType = 2
+    setDatePicker($("#datepicker"), $("#datepicker2"), 2)
+    getTabData(1)
+  })
+}
+// YH-ZKK-GKSQXZB_XQ
+$(".menu .page", parent.document).removeClass("active")
+$(parent.document).find(".menu .page[code=YH-ZKK-BASYHGLYSZB_XQ]").addClass("active")
+
+bindleaveHosTypeSelect()
+//出院人数类型选择
+function bindleaveHosTypeSelect() {
+  $('.leaveHosTypeItem').on("click", function () {
+    const leaveHosTypeItemName = $(this).attr("data-name")
+    const leaveHosTypeItemItemId = $(this).attr("data-id")
+    leaveHosTypeTemp = leaveHosTypeItemItemId
+    $('.selectLeaveHosType').html(leaveHosTypeItemName)
+    $(".leaveHosTypeList").css("display", "none")
+    $(".selectLeaveHosType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    $('.selectLeaveHosType').removeClass('unSelect')
+  })
+}
+//判断有无某一权限
+function hasData(data, parent) {
+  let codeLis = getCookie("codeLis")
+  if (parent) {
+    if (codeLis.indexOf(parent) == -1) {//有权限
+      return false
+    }
+  }
+  if (codeLis.indexOf(data) > -1) {//有权限
+    return true
+  }
+  return false;
+}
+function getTabData(activePage) {
+  const dateStatrt = getPickerDate($("#datepicker"), 1)
+  const dateEnd = getPickerDate($("#datepicker2"), 2)
+  const start = new Date(dateStatrt).getTime()
+  const end = new Date(dateEnd).getTime()
+  if (start > end) {
+    $.alerModal({ "message": '开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+    return
+  }
+  const param = {
+    "ascs": data_asc,
+    "descs": data_desc,
+    "doctorName": doctorName,
+    "name": behospitalCode || "",
+    "deptClass": leaveHosType || '',
+    "deptName": deptName == "全部" ? "" : deptName || "",
+    "professor": professor == "全部" ? "" : professor || "",
+    "type": 0, //1-本月,2-本年,0-自定义时间(现在 都是自定义时间,都会传具体时间进去)
+    "startDate": dateStatrt,
+    "endDate": dateEnd,
+    size: 15,
+    current: activePage,
+  }
+  let url = api.homePageLevelStatisticsXY
+
+  startDateParam = dateStatrt
+  endDateParam = dateEnd
+  $('.pagination').html("")
+  $('.deptScoreDetailControlTable table').html(`<tbody>${emptyBox('努力加载中...', '', 1)}</tbody>`)
+
+  post(url, param).then(res => {
+    if (res.data.code == '0') {
+      const data = res.data.data;
+      tabList = data.records;
+      const totalPage = data.pages;
+      const totalNum = data.total;
+      renderTab(data.records, data.hospitalId, activePage);
+      renderPagination(totalPage, Number(activePage), totalNum)
+      if (totalPage > 1) {
+        renderPagination(totalPage, Number(activePage), totalNum)
+      } else {
+        $('.pagination').html("")
+      }
+    } else {
+      $.alerModal({ "message": res.data.msg, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+    }
+  }).catch((e) => {
+
+  })
+}
+
+getTabData(1)
+
+$(".moduleItemInp").on("input", function (e) {
+  const val = $(this).val().trim()
+  doctorName = val
+})
+$("body").on("click", "th[code]", function (e) {
+  const code = $(this).attr("code");
+  if (data_asc[0] === code) {
+    data_desc = [code];
+    data_asc = [];
+    $("th[code]").removeClass("asc desc");
+    $(this).addClass("desc");
+  } else {
+    data_desc = [];
+    data_asc = [code];
+    $("th[code]").removeClass("asc desc");
+    $(this).addClass("asc");
+  }
+  getTabData(1);
+});
+$(".filter").on("click", function (e) {
+  name = nameTemp
+  behospitalCode = behospitalCodeTemp
+  level = levelTemp
+  deptId = deptIdTemp
+  leaveHosType = leaveHosTypeTemp
+  deptName = deptNameTemp
+  if (deptName == "") {
+    $(".selectDept").attr({ 'title': "全部", 'data-id': '' }).val("全部")
+  }
+  getTabData(1)
+})
+function renderTab(data, hisId, activePage) {
+  let str = ``
+  let tHead = `
+        <thead>
+        <th class="moduleName" style="width: 65px;">序号</th>
+        <th class="beHospitalId textCenter ${data_asc == 'deptName' ? 'asc' : data_desc == 'deptName' ? 'desc' : ''}" code="deptName">科室</th>
+        <th class="beHospitalId textCenter ${data_asc == 'professor' ? 'asc' : data_desc == 'professor' ? 'desc' : ''}" code="professor">医师类别</th>
+        <th class="beHospitalId textCenter ${data_asc == 'doctorName' ? 'asc' : data_desc == 'doctorName' ? 'desc' : ''}" code="doctorName">医师姓名</th>
+        <th class="beHospitalId textCenter ${data_asc == 'entryNum' ? 'asc' : data_desc == 'entryNum' ? 'desc' : ''}" code="entryNum">缺陷总数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'secondLevelNum' ? 'asc' : data_desc == 'secondLevelNum' ? 'desc' : ''}" code="secondLevelNum">不合格数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'firstLevelNum' ? 'asc' : data_desc == 'firstLevelNum' ? 'desc' : ''}" code="firstLevelNum">合格数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'firstLevelPercent' ? 'asc' : data_desc == 'firstLevelPercent' ? 'desc' : ''}" code="firstLevelPercent">合格率</th>
+        <th class="beHospitalId textCenter ${data_asc == 'emptyNum' ? 'asc' : data_desc == 'emptyNum' ? 'desc' : ''}" code="emptyNum">空项数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'emptyPercent' ? 'asc' : data_desc == 'emptyPercent' ? 'desc' : ''}" code="emptyPercent">完整率</th>
+        <th class="beHospitalId textCenter ${data_asc == 'errorNum' ? 'asc' : data_desc == 'errorNum' ? 'desc' : ''}" code="errorNum">错误数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'errorPercent' ? 'asc' : data_desc == 'errorPercent' ? 'desc' : ''}" code="errorPercent">完善率</th>
+        <th class="beHospitalId textCenter ${data_asc == 'averageValue' ? 'asc' : data_desc == 'averageValue' ? 'desc' : ''}" code="averageValue">质控平均分</th>
+        <th class="beHospitalId textCenter ${data_asc == 'mrNum' ? 'asc' : data_desc == 'mrNum' ? 'desc' : ''}" code="mrNum">质控病历数</th>
+        </thead>`
+  for (let i = 0; i < data.length; i++) {
+    const item = data[i]
+    str += `
+            <tr  data-index=${i}>
+                <td  class="textCenter">${(activePage - 1) * 15 + i + 1}</td>
+                <td >${item.deptName || "-"}</td>
+                <td >${item.professor || "-"}</td>
+                <td >${item.doctorName || "-"}</td> 
+                <td class="goHomeDetailQuexian goHomeDetail" data-ruleType="" data-professor="${item.professor || ""}" data-docId="${item.doctorId || ""}" data-doctorName="${item.doctorName || ""}" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}">
+                    ${item.entryNum || "-"}
+                    ${item.entrySameNum < 0 ? '<img class="updownimg" src="' + jiantou_down + '"/>' : item.entrySameNum > 0 ? '<img class="updownimg" src="' + jiantou_up + '"/>' : ''}
+                </td>
+                <td class="goHomeDetailQuexian goHomeDetail1" data-title="不合格数" data-professor="${item.professor || ""}" data-docId="${item.doctorId || ""}" data-doctorName="${item.doctorName || ""}" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}">
+                    ${item.secondLevelNum}
+                </td>
+                <td class="goHomeDetailQuexian goHomeDetail1" data-title="合格数" data-professor="${item.professor || ""}" data-docId="${item.doctorId || ""}" data-doctorName="${item.doctorName || ""}" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}">
+                    ${item.firstLevelNum}
+                </td>
+                <td >${item.firstLevelPercentStr}</td>
+                <td class="goHomeDetailQuexian goHomeDetail" data-ruleType="1" data-professor="${item.professor || ""}" data-docId="${item.doctorId || ""}" data-doctorName="${item.doctorName || ""}" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}">
+                    ${item.emptyNum}
+                </td>
+                <td >${item.emptyPercentStr}</td>
+                <td class="goHomeDetailQuexian goHomeDetail" data-ruleType="2" data-professor="${item.professor || ""}" data-docId="${item.doctorId || ""}" data-doctorName="${item.doctorName || ""}" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}">
+                    ${item.errorNum}
+                </td>
+                <td >${item.errorPercentStr}</td>
+                <td >${item.averageValue}</td>
+                <td >${item.mrNum}</td>     
+            </tr>
+        `
+  }
+  $('.deptScoreDetailControlTable table').html(str ? tHead + '<tbody>' + str + '</tbody>' : tHead + `<tbody>${emptyBox()}</tbody>`)
+  bindScoreDetail(hisId)
+  $(".goHomeDetail").click(function () {
+    let index = $(this).parent().attr("data-index")
+    let deptName = $(this).attr("data-dept")
+    let ruleType = $(this).attr("data-ruleType")
+    let doctorName = $(this).attr("data-doctorName")
+    let docId = $(this).attr("data-docId")
+    let professor = $(this).attr("data-professor")
+    let deptId = data[index].deptId
+    $(parent.document).find("#contentIframe").attr("src", "quexianDetailControlHome.html?deptName=" + deptName + "&deptId=" + deptId + "&from=12&casesId=243" + "&shijian=3" + "&ruleType=" + ruleType + "&startDateParam=" + startDateParam + "&endDateParam=" + endDateParam + "&docName=" + doctorName + "&code=XY" + "&docId=" + docId + "&professor=" + professor)
+  })
+  // 不合格数跳转至 病历列表详情页
+  $(".goHomeDetail1").click(function () {
+    let index = $(this).parent().attr("data-index")
+    let deptName = $(this).attr("data-dept")
+    let titleName = $(this).attr("data-title")
+    let doctorName = $(this).attr("data-doctorName")
+    let docId = $(this).attr("data-docId")
+    let professor = $(this).attr("data-professor")
+    // let ruleType = $(this).attr("data-ruleType")
+    let deptId = data[index].deptId
+    // $(parent.document).find("#contentIframe").attr("src", "qcListCopy.html?deptName=" + deptName + "&deptId=" + deptId + "&from=4&casesId=243" + "&shijian=3" + "&ruleType=" + ruleType + "&startDate=" + startDateParam + "&endDate=" + endDateParam + "&defectName=" + defectName)
+    $(parent.document).find("#contentIframe").attr("src", "qcListCopyUnqualified.html?deptName=" + deptName + "&deptId=" + deptId + "&from=12&casesId=243" + "&shijian=3" + "&startDate=" + startDateParam + "&endDate=" + endDateParam + "&titleName=" + titleName + "&docName=" + doctorName + "&code=XY" + "&docId=" + docId + "&professor=" + professor)
+  })
+  // initScroll("deptScoreDetailControl","YX",1)
+}
+
+function scoreDetail(id, age, hid, code) {
+  window.open(`./qcScore.html?id=${id}&age=${age}&hid=${hid}&code=${code}`)
+}
+function bindScoreDetail(hisId) {
+  $('.patientNameSpan').on('click', function (e) {
+    const index = $(this).attr("data-index")
+    const type = $(this).attr("data-type")
+    const item = tabList[index]
+    midifyMsgBox(item, type)
+  })
+}
+
+
+function midifyMsgBox(item, type) {
+  const itemCopy = JSON.parse(JSON.stringify(item))
+  let msgBox = ''
+  if (type == 1) {
+    msgBox = `<div class="midifyMsgBox">
+            <div class="mask"></div>
+            <div class="midifyMsgContent abnormal">
+                <p class="midifyMsgTitle">修改 <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></p>
+                <div class="itemMsgInfoBox">
+                    <span class="itemMsgLab abnormalLeft">状态:</span> 
+                    <span class="abnormalAll" data-status="${itemCopy.status}">${itemCopy.status == 0 ? "未处理" : "已处理"}</span>
+                    <ul class="abnormalStatusLis">
+                        <li data-status="0">未处理</li>
+                        <li data-status="1">已处理</li>
+                    </ul>
+                </div>
+                <div class="itemMsgInfoBox">
+                    <span class="itemMsgLab abnormalLeft abnormalMark">备注:</span> 
+                    <span class="itemInfoRight"> 
+                        <textarea class="abnormalTxt" placeholder="请输入内容" >${itemCopy.remark}</textarea>
+                    </span>
+                </div>
+                <div  class="itemMsgInfoTips">支持≥0的数字输入,最多保留小数点后1位~</div>
+                <div class="midifyMsgBtn abnormalBtn">
+                    <span class="midifyEdit">保存</span>
+                </div>
+            </div>
+        </div>`
+  } else {
+    msgBox = `<div class="midifyMsgBox">
+            <div class="mask"></div>
+            <div class="midifyMsgContent midifyMsgContentDel">
+                <p class="midifyMsgTitle">修改 <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></p>
+                <p class="delTips">确认要删除该条异常记录?</p>
+                <div class="midifyMsgBtn midifyMsgBtnDel">
+                    <span class="midifyEdit midifyEditDel">删除</span>
+                    <span class="midifyEdit midifyEditQuit">取消</span>
+                </div>
+            </div>
+        </div>`
+  }
+  $("#mainBox", parent.document).append(msgBox)
+  $(".midifyEditDel", parent.document).on("click", function () {
+    delModifyOne(itemCopy)
+  })
+  $(".midifyEditQuit", parent.document).on("click", function () {
+    $("#mainBox .midifyMsgBox", parent.document).remove()
+  })
+  $(".abnormalAll", parent.document).on("click", function () {
+    $(".abnormalStatusLis", parent.document).slideToggle()
+  })
+  $(".abnormalStatusLis li", parent.document).on("click", function () {
+    let status = $(this).attr("data-status")
+    let str = $(this).html()
+    $(".abnormalAll", parent.document).attr("data-status", status).html(str)
+    $(".abnormalStatusLis", parent.document).slideToggle()
+  })
+  $("#mainBox .midifyMsgBox .iconClose", parent.document).on("click", function (e) {
+    $("#mainBox .midifyMsgBox", parent.document).remove()
+  })
+  $("#mainBox .midifyMsgBox .itemScore", parent.document).on("keypress", function (event) {
+    return (/[\d\.]/.test(String.fromCharCode(event.keyCode)))
+  })
+  $("#mainBox .midifyMsgBox .itemScore", parent.document).on("input", function (e) {
+    const val = $(this).val()
+    itemCopy.score = val
+  })
+  $("#mainBox .midifyMsgBox .midifyEdit", parent.document).on("click", function (e) {
+    saveModifyOne(itemCopy)
+  })
+}
+//保存修改
+function delModifyOne(itemCopy) {
+  let param = {
+    "id": itemCopy.id
+  }
+  post(api.delQcAnnormal, param).then(res => {
+    if (res.data.code == '0') {
+      const data = res.data.data;
+      getTabData(1)
+      $("#mainBox .midifyMsgBox", parent.document).remove()
+      $.alerModal({ "message": '删除成功', type: "tip", time: '1000', isFather: true, win: true, fatherWrapper: $("#mainBox", parent.document) });
+    } else {
+      $.alerModal({ "message": '删除失败,请重试~', type: "tip", time: '1000', win: 'default', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+
+    }
+  }).catch((e) => {
+    $.alerModal({ "message": '删除失败,请重试~', type: "tip", time: '1000', win: 'default', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+
+  })
+}
+//保存修改
+function saveModifyOne(itemCopy) {
+  let txt = $(".abnormalTxt", parent.document).val()
+  let status = $(".abnormalAll", parent.document).attr("data-status")
+  let param = {
+    "id": itemCopy.id,
+    "remark": txt,
+    "status": status
+  }
+  post(api.saveQcAnnormal, param).then(res => {
+    if (res.data.code == '0') {
+      const data = res.data.data;
+      getTabData(1)
+      $("#mainBox .midifyMsgBox", parent.document).remove()
+      $.alerModal({ "message": '修改成功', type: "tip", time: '1000', isFather: true, win: true, fatherWrapper: $("#mainBox", parent.document) });
+    } else {
+      $.alerModal({ "message": '修改失败,请重试~', type: "tip", time: '1000', isFather: true, win: 'default', fatherWrapper: $("#mainBox", parent.document) });
+
+    }
+  }).catch((e) => {
+    $.alerModal({ "message": '修改失败,请重试~', type: "tip", time: '1000', isFather: true, win: 'default', fatherWrapper: $("#mainBox", parent.document) });
+
+  })
+}
+
+//选择出院人数类型
+$('.selectLeaveHosType').on("click", function (e) {
+  e.stopPropagation()
+  $(".deptList ").css("display", "none")
+  $(".selectDept .arrow").attr("src", iconDown)
+  $(".levelList ").css("display", "none")
+  $(".checkList ").css("display", "none")
+  $(".selectCheck .arrow").attr("src", iconDown)
+  $(".selectLeaveHosType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+  const showList = $(".leaveHosTypeList ").css("display")
+  if (showList == "none" || !showList) {
+    $(".leaveHosTypeList ").css("display", "block")
+    $(".selectLeaveHosType .arrow").attr("src", iconUp)
+  } else {
+    $(".leaveHosTypeList ").css("display", "none")
+    $(".selectLeaveHosType .arrow").attr("src", iconDown)
+  }
+})
+
+bindLeveldSelect()
+//是否启用选择
+function bindLeveldSelect() {
+  $('.levelItem').on("click", function () {
+    const levelItemName = $(this).attr("data-name")
+    const levelItemItemId = $(this).attr("data-id")
+    levelTemp = levelItemItemId
+    $('.selectLevel').html(levelItemName)
+    $(".levelList").css("display", "none")
+    $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+  })
+}
+
+//全选绑定
+$('.selectDept').on("focus", function (e) {
+  e.stopPropagation()
+  $(".levelList ").css("display", "none")
+  $(".selectLevel .arrow").attr("src", iconDown)
+  $(".deptList ").css("display", "block")
+})
+$('.selectPhysician').on("focus", function (e) {
+  e.stopPropagation()
+  $(".levelList ").css("display", "none")
+  $(".selectLevel .arrow").attr("src", iconDown)
+  $(".physicianList ").css("display", "block")
+})
+
+$('.selectPhysician').on("blur", function (e) {
+  $(".physicianList ").css("display", "none")
+  $(".selectPhysician .arrow").attr("src", iconDown)
+})
+$('.selectDept').on("blur", function (e) {
+  $(".deptList ").css("display", "none")
+  $(".selectDept .arrow").attr("src", iconDown)
+})
+$('.selectDept').on("input", function (e) {
+  let val = $(this).val().trim()
+  deptName = deptNameTemp = val
+  getDeptList(deptName)
+})
+$('.selectPhysician').on("input", function (e) {
+  let val = $(this).val().trim()
+  professor = val
+  getDoctorProfessorList(professor)
+})
+
+//获取医师类别
+getDoctorProfessorList()
+function getDoctorProfessorList(val) {
+  // post(api.getDoctorProfessorList, { inputStr: val == "全部" ? "" : val || "", }).then(res => {
+  //   if (res.data.code == '0') {
+  //     const physicianList = res.data.data || []
+  //     rendePhysicianList(physicianList)
+  //   } else {
+  //     rendePhysicianList([])
+  //   }
+  // }).catch((e) => {
+
+  // })
+  bindPhysicianSelect()
+}
+function rendePhysicianList(physicianList) {
+  if (physicianList.length == 0) {
+    $('.physicianList').html("")
+    return
+  }
+  let str = `<li class="physicianItem " data-id=" " data-name="全部">全部</li>`
+  for (let i = 0; i < physicianList.length; i++) {
+    str += `<li class="physicianItem ellipsis" title=${physicianList[i]}  data-name=${physicianList[i]}> ${physicianList[i]}</li>`
+  }
+  $('.physicianList').html(str)
+  bindPhysicianSelect()
+}
+//医师类别选中
+function bindPhysicianSelect() {
+  $('.physicianItem').on("mousedown", function () {
+    const physicianItemName = $(this).attr("data-name")
+    const physicianItemId = $(this).attr("data-id")
+    physicianIdTemp = physicianItemId
+    professor = physicianItemName === "全部" ? "" : physicianItemName;
+    $('.selectPhysician').val(physicianItemName)
+    $('.selectPhysician ').attr('title', physicianItemName)
+    $(".physicianList").css("display", "none")
+    $('.selectPhysician').removeClass('unSelect')
+  })
+}
+//获取科室列表
+getDeptList()
+function getDeptList(val) {
+  post(api.getDeptList, { inputStr: val == "全部" ? "" : val || "" }).then(res => {
+    if (res.data.code == '0') {
+      const deptList = res.data.data || []
+      rendeDeptList(deptList)
+    } else {
+      rendeDeptList([])
+    }
+  }).catch((e) => {
+
+  })
+}
+
+function rendeDeptList(deptList) {
+  if (deptList.length == 0) {
+    $('.deptList').html("")
+    return
+  }
+  let str = `<li class="deptItem " data-id="" data-name="全部">全部</li>`
+  for (let i = 0; i < deptList.length; i++) {
+    str += `<li class="deptItem ellipsis" title=${deptList[i].deptName} data-id=${deptList[i].deptId} data-name=${deptList[i].deptName}> ${deptList[i].deptName}</li>`
+  }
+  $('.deptList').html(str)
+  bindDeptSelect()
+}
+//科室选择
+function bindDeptSelect() {
+  $('.deptItem').on("mousedown", function () {
+    const deptItemName = $(this).attr("data-name")
+    const deptItemId = $(this).attr("data-id")
+    deptId = deptIdTemp = deptItemId
+    deptNameTemp = deptItemName === "全部" ? "" : deptItemName;
+    $('.selectDept').val(deptItemName)
+    $('.selectDept ').attr('title', deptItemName)
+    $(".deptList").css("display", "none")
+    $('.selectDept').removeClass('unSelect')
+  })
+}
+function loading() {
+  const str = `
+    <div class="loadingBox">
+            <div class="mask"></div>
+            <img class="loadingImg" src=${loadingImg}  alt="loading" />
+        </div>
+    `
+  $("#mainBox", parent.document).append(str)
+}
+function hideLoading() {
+  $("#mainBox .loadingBox", parent.document).remove()
+}
+$('.recordScoreBtn').on("click", function (e) {
+  if (!hasData('FUNC000017', 'YH-BLZK-ZKPF')) {
+    return
+  }
+  let scoreList = []
+  for (let i = 0; i < tabList.length; i++) {
+    if (tabList[i].hasSelect) {
+      scoreList.push(tabList[i].behospitalCode)
+    }
+  }
+  if (scoreList.length === 0) {
+    $.alerModal({ "message": '请选择要评分的项!', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+    return
+  } else {
+    loading()
+    for (let j = 0; j < scoreList.length; j++) {
+      recordScore(scoreList[j], scoreList.length)
+    }
+  }
+})
+function recordScore(behospitalCode, totalNum) {
+  const param = {
+    behospitalCode: behospitalCode
+  }
+  post(api.recordScore, param).then(res => {
+    if (res.data.code == '0') {
+      scoreSum++
+      if (scoreSum === totalNum) {
+        hideLoading()
+        scoreSum = 0
+        const activePage = $(".activePage").attr('data-page') || 1
+
+        getTabData(activePage)
+      }
+
+    } else { }
+  }).catch((e) => {
+
+  })
+}
+$(".patientNumInp").on("input", function (e) {
+  const val = $(this).val().trim()
+  behospitalCodeTemp = val
+})
+$(".patientNameInp").on("input", function (e) {
+  const val = $(this).val().trim()
+  nameTemp = val
+})
+$(".doctorInp").on("input", function (e) {
+  const val = $(this).val().trim()
+  doctorNameTemp = val
+})
+$(".doctorNumInp").on("input", function (e) {
+  const val = $(this).val().trim();
+  doctorNumTemp = val
+})
+
+//分页渲染
+function renderPagination(totalPage, activePage, totalNum) {
+  let str = `<span class="totalSum">共${totalPage}页/${totalNum}条数据</span><span class="prePage"><img class="arrowPage" src=${arrowLeft} /></span>`
+  if (totalPage <= 6) {
+    for (let i = 1; i <= totalPage; i++) {
+
+      str += `<span class="pageNum ${'page' + i}" data-page=${i}>${i}</span>`
+    }
+  } else {
+    if (activePage <= 3) { //选中页数小于4
+      for (let i = 1; i <= 4; i++) {
+        str += `<span class="pageNum ${'page' + i}" data-page=${i}>${i}</span>`
+      }
+      str += `<span class="more" >...</span>`
+      str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
+
+    } else if (activePage > totalPage - 3) {
+      str += `<span class="pageNum page1" data-page=1>1</span>`
+      str += `<span class="more" >...</span>`
+      str += `<span class="pageNum ${'page' + (totalPage - 3)}" data-page=${totalPage - 3}>${totalPage - 3}</span>`
+      str += `<span class="pageNum ${'page' + (totalPage - 2)}" data-page=${totalPage - 2}>${totalPage - 2}</span>`
+      str += `<span class="pageNum ${'page' + (totalPage - 1)}" data-page=${totalPage - 1}>${totalPage - 1}</span>`
+      str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
+    } else {
+      str += `<span class="pageNum page1" data-page=1>1</span>`
+      str += `<span class="more" >...</span>`
+      str += `<span class="pageNum ${'page' + (activePage - 1)}" data-page=${activePage - 1}>${activePage - 1}</span>`
+      str += `<span class="pageNum ${'page' + activePage}" data-page=${activePage}>${activePage}</span>`
+      str += `<span class="pageNum ${'page' + (activePage + 1)}" data-page=${activePage + 1}>${activePage + 1}</span>`
+      str += `<span class="more" >...</span>`
+      str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
+    }
+
+  }
+  str += `<span class="nextPage"><img class="arrowPage" src=${arrowRight} /></span>`
+  $('.pagination').html(str)
+  $('.page' + activePage).addClass('activePage')
+  $(".pageNum").on("click", function (e) {
+    const activePageNow = Number($(this).attr('data-page'))
+    getTabData(activePageNow)
+    // renderPagination(totalPage,activePageNow,totalNum)
+  })
+  $(".prePage").on("click", function (e) {
+    let activePageNow = Number($(".activePage").attr('data-page'))
+    if (activePageNow > 1) {
+      activePageNow--
+      getTabData(activePageNow)
+      // renderPagination(totalPage,activePageNow,totalNum)
+    }
+  })
+  $(".nextPage").on("click", function (e) {
+    let activePageNow = Number($(".activePage").attr('data-page'))
+    if (activePageNow < totalPage) {
+      activePageNow++
+      getTabData(activePageNow)
+      // renderPagination(totalPage,activePageNow,totalNum)
+    }
+  })
+
+}
+
+$(document).on("click", function () {
+  $(".levelList ").css("display", "none")
+  $(".selectLevel .arrow").attr("src", iconDown)
+
+})
+
+$(function () {
+  const iconCalenBlue = require("./../images/darkDate.png")
+  const iconCalenGrey = require("./../images/icon_calen_grey.png")
+  $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
+  $('.iconCalen').on("mouseenter", function (e) {
+    $(this).attr("src", iconCalenBlue)
+  })
+  $('.iconCalen').on("mouseleave", function (e) {
+    $(this).attr("src", iconCalenGrey)
+  })
+  $('.iconCalen').on("click", function (e) {
+    $(this).parent().find("input").focus()
+  });
+  $('.export').click(function () {
+    const start = new Date(startDateParam).getTime()
+    const end = new Date(endDateParam).getTime()
+    if (start > end) {
+      $.alerModal({ "message": '开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+      return
+    }
+    const param = {
+      "asc": data_asc,
+      "desc": data_desc,
+      "name": behospitalCode || "",
+      "doctorName": doctorName,
+      "deptClass": leaveHosType || '',
+      "professor": professor == "全部" ? "" : professor || "",
+      "deptName": deptName == "全部" ? "" : deptName || "",
+      "type": statisticsType || 2, //1-本月,2-本年
+      "startDate": startDateParam,
+      "isPlacefile": isPlacefile,
+      "endDate": endDateParam
+    };
+    const url = api.homePageLevelXYExport
+    expJson(url, param).then(res => {
+      downloadExportedData(res.data, "医师病案首页合格率占比.xls")
+    })
+  })
+});

+ 51 - 29
src/js/quexianDetailControlHome.js

@@ -12,25 +12,30 @@ const arrowLeft= require("./../images/arrow_left.png")
 const arrowRight = require("./../images/arrow_right.png")
 let isPlacefile = getCookie('isPlacefile')||1
 
-
-let casesId="", name="", isReject ="",startDateParam='',endDateParam='',deptName="",data_asc=[],data_desc=["casesName"], isUsed ="",ruleType="",casesIdTemp="",casesIds="", nameTemp="", isRejectTemp ="", isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId=""
+let casesId="", name="", isReject ="",startDateParam='',endDateParam='',deptName="",data_asc=[],data_desc=["casesName"], isUsed ="",ruleType="",casesIdTemp="",casesIds="", nameTemp="", isRejectTemp ="", isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId="",codeType=''
 $(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectUsed").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 // $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 let deptList = []
+
 $(function(){
     listenScroll('.quexianDetailControlHome')
     dateChange()
     let srcUrl = $("#contentIframe",parent.document).attr("src")
+    professor = getUrlArgObjectNew("professor", srcUrl) || ""
     deptName = getUrlArgObjectNew("deptName",srcUrl)||""
-    deptId = deptIdTemp = getUrlArgObjectNew("deptId",srcUrl)||""
+    deptIdTemp = getUrlArgObjectNew("deptName",srcUrl)||""
+    deptId = getUrlArgObjectNew("deptId", srcUrl) || ""
     from = getUrlArgObjectNew("from",srcUrl)||""
     isReject = isRejectTemp = getUrlArgObjectNew("shijian",srcUrl)||""
     casesIds = getUrlArgObjectNew("casesId",srcUrl)||""
     ruleType = getUrlArgObjectNew("ruleType",srcUrl)||""
     startDateParam = getUrlArgObjectNew("startDateParam",srcUrl)||""
     endDateParam = getUrlArgObjectNew("endDateParam",srcUrl)||""
+    docName = getUrlArgObjectNew("docName", srcUrl) || ""
+    docId = getUrlArgObjectNew("docId", srcUrl) || ""
+    codeType = getUrlArgObjectNew("code", srcUrl) || ""
     $('.selectDefect').html(deptName).attr("title",deptName)
     if(isReject == 1){
         $(".monthYear .mon").css({
@@ -58,25 +63,25 @@ $(function(){
     if(!isReject){
         setDatePicker($("#datepicker"),$("#datepicker2"),"default")
     }
-    // if(from == 1){
-    //     $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="partDetailControl.html">病案首页合格率占比 / </a>缺陷列表`)
-    //     $(".partTitle .consoleD").click(function(){
-    //         $(".menu .page",parent.document).removeClass("active").eq(0).addClass("active");
-    //         $(".container",parent.document).addClass("console-cont");
-    //     })
-    // }else{
-    //     $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="deptScoreDetailControl.html">各科室缺陷占比 / </a>缺陷列表`)
-    //     $(".partTitle .consoleD").click(function(){
-    //         $(".menu .page",parent.document).removeClass("active").eq(0).addClass("active");
-    //         $(".container",parent.document).addClass("console-cont");
-    //     })
-    // }
+    if(from == 4){
+        $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="partDetailControl.html">病案首页合格率占比 / </a>缺陷列表`)
+        $(".partTitle .consoleD").click(function(){
+            $(".menu .page",parent.document).removeClass("active").eq(0).addClass("active");
+            $(".container",parent.document).addClass("console-cont");
+        })
+    } else if (from == 12){
+        $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="qualifiedPhysician.html">医师病案首页合格率占比 / </a>缺陷列表`)
+        $(".partTitle .consoleD").click(function(){
+            $(".menu .page",parent.document).removeClass("active").eq(0).addClass("active");
+            $(".container",parent.document).addClass("console-cont");
+        })
+    }
     // 解决浏览器跳转 会跳转至 各科室缺陷占比bug
-    $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="partDetailControl.html">病案首页合格率占比 / </a>缺陷列表`)
-    $(".partTitle .consoleD").click(function () {
-        $(".menu .page", parent.document).removeClass("active").eq(0).addClass("active");
-        $(".container", parent.document).addClass("console-cont");
-    })
+    // $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="partDetailControl.html">医师病案首页合格率占比 / </a>缺陷列表`)
+    // $(".partTitle .consoleD").click(function () {
+    //     $(".menu .page", parent.document).removeClass("active").eq(0).addClass("active");
+    //     $(".container", parent.document).addClass("console-cont");
+    // })
     getTabData(1)//条目缺陷
     
     $(".abnormalClear").click(function(){
@@ -105,7 +110,8 @@ function bindDeptSelect(){
     $(document).on("click",'.deptItem',function(){
         const deptItemName = $(this).attr("data-name")||""
         const deptItemId = $(this).attr("data-id")
-        deptIdTemp = deptId = deptItemId
+        deptIdTemp = deptItemName
+        deptId = deptItemId
         if(deptItemName.length > 10){
             $('.selectDept').html(deptItemName.substring(0,8)+'...')
         }else{
@@ -166,31 +172,41 @@ function getTabData(activePage){
     const dateEnd = getPickerDate($("#datepicker2"),2)
     const start = new Date(dateStatrt).getTime()
     const end = new Date(dateEnd).getTime()
+    let url
     if(start > end){
         $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
         return
     }
+    
     const param = {
         current:activePage,
         type: 0,
         name: name, //条目名
-        doctorName:"",
+        doctorName: docName || "",
         casesName:"",
+        deptId: deptId,
+        doctorId: docId || "",
         ruleType:ruleType||null,
         deptName:deptName=="全院"?"":(deptName||""),
         casesId:casesIds||"",
         globalType:1,
         ascs:data_asc,
         descs:data_desc,
+        professor: professor,
         size: 15,
         "startDate":dateStatrt,
         "endDate":dateEnd
     }
     startDateParam = dateStatrt
     endDateParam = dateEnd
+    if (codeType == 'XY'){
+        url = api.entryCountGroupXYByEntryPage
+    }else{
+        url = api.entryCountGroupByEntryPage
+    }
     $('.pagination').html("")
     $('tbody.tbodys').html(emptyBox('努力加载中...','',1))
-    post(api.entryCountGroupByEntryPage,param).then(res =>{
+    post(url,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data.records
             const totalPage = res.data.data.pages
@@ -249,7 +265,7 @@ $(".moduleItemInp").on("input", function(e){
     nameTemp = val
 })
 $(".filter").on("click", function(e){
-    casesId=casesIdTemp, name=nameTemp, isReject =isRejectTemp, isUsed =isUsedTemp,deptId = deptIdTemp
+    casesId=casesIdTemp, name=nameTemp, isReject =isRejectTemp, isUsed =isUsedTemp
     getTabData(1)
 })
 $(".filterclear").on("click", function(e){
@@ -327,7 +343,7 @@ function renderTab(data,activePage){
         // let ruleType = $(this).attr("data-ruleType")
         let index = $(this).parent().attr("data-index")
         let defectName = data[index].name
-        $(parent.document).find("#contentIframe").attr("src","qcListCopy.html?deptName="+deptName+"&deptId="+deptId+"&from=4&casesId=243"+"&shijian=3"+"&ruleType="+ruleType+"&startDate="+startDateParam+"&endDate="+endDateParam+"&defectName="+defectName)
+        $(parent.document).find("#contentIframe").attr("src", "qcListCopy.html?deptName=" + deptName + "&deptId=" + deptId + "&from=" + from + "&casesId=243" + "&shijian=3" + "&ruleType=" + ruleType + "&startDate=" + startDateParam + "&endDate=" + endDateParam + "&defectName=" + defectName + "&docName=" + docName + "&docId=" + docId + "&professor=" + professor)
     })
 }
 
@@ -592,14 +608,20 @@ $(function() {
     $('.exportData').click(function(){
         const start = new Date(startDateParam).getTime()
         const end = new Date(endDateParam).getTime()
+        let url
         if(start > end){
             $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
             return
         }
+        if (codeType == 'XY') {
+            url = api.entryCountGroupXYByEntryExport
+        } else {
+            url = api.entryCountGroupByEntryExport
+        }
         const param = {
             type: 0,
             name: name, //条目名
-            doctorName:"",
+            doctorName: docName || "",
             casesName:"",
             ruleType:ruleType||null,
             deptName:deptName=="全院"?"":(deptName||""),
@@ -611,8 +633,8 @@ $(function() {
             "startDate":startDateParam,
             "endDate":endDateParam
         }
-        expJson(api.entryCountGroupByEntryExport,param).then(res =>{
-            downloadExportedData(res.data, "病案首页合格率占比 / 缺陷列表.xls")
+        expJson(url,param).then(res =>{
+            downloadExportedData(res.data, "医师病案首页合格率占比 / 缺陷列表.xls")
         })
     })
 });

+ 36 - 12
src/js/quexianDetailHome.js

@@ -15,7 +15,7 @@ const arrowRight = require("./../images/arrow_right.png")
 listenScroll('.quexianDetailHome')
 let isPlacefile = getCookie('isPlacefile')||1
 
-let casesId="", name="", isReject ="",deptName="", isUsed ="",ruleType="",casesIdTemp="", data_asc=[],data_desc=["casesName"],nameTemp="",casesIds="", isRejectTemp ="", isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId=""
+let casesId = "", name = "", isReject = "", deptName = "", isUsed = "", ruleType = "", casesIdTemp = "", data_asc = [], data_desc = ["casesName"], nameTemp = "", casesIds = "", isRejectTemp = "", isUsedTemp = "", from = "", deptIdTemp = "", deptItemId = "", deptId = "", codeType=""
 $(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectUsed").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
@@ -25,13 +25,18 @@ $(function(){
     dateChange()
     let srcUrl = $("#contentIframe",parent.document).attr("src")
     deptName = getUrlArgObjectNew("deptName",srcUrl)||""
-    deptId = deptIdTemp = getUrlArgObjectNew("chengdu",srcUrl)||""
+    professor = getUrlArgObjectNew("professor", srcUrl) || ""
+    deptIdTemp = getUrlArgObjectNew("chengdu",srcUrl)||""
+    deptId = getUrlArgObjectNew("deptId", srcUrl) || ""
     docName = getUrlArgObjectNew("docName",srcUrl)||""
+    docId = getUrlArgObjectNew("docId", srcUrl) || ""
+    from = getUrlArgObjectNew("from", srcUrl) || ""
     casesIds = getUrlArgObjectNew("casesId",srcUrl)||""
     isReject= isRejectTemp= getUrlArgObjectNew("shijian",srcUrl)||""
     ruleType= getUrlArgObjectNew("ruleType",srcUrl)||""
     let startDateParam = getUrlArgObjectNew("startDateParam",srcUrl)||""
     let endDateParam = getUrlArgObjectNew("endDateParam",srcUrl)||""
+    codeType = getUrlArgObjectNew("code", srcUrl) || ""
     $('.selectDefect').html(deptName).attr("title",deptName)
     if(isReject == 1){
         $(".monthYear .mon").css({
@@ -60,14 +65,14 @@ $(function(){
         setDatePicker($("#datepicker"),$("#datepicker2"),"default")
     }
     from = getUrlArgObjectNew("from",srcUrl)||""
-    if(from == 1){
-        $(".partTitle .titlePic ").html(`<a class="consoleD" href="deptConsole.html">控制台(科室) / </a><a class="consoleP" href="partDetailControlDept.html">病案首页合格率占比 / </a>缺陷列表`)
+    if(from == 13){
+        $(".partTitle .titlePic ").html(`<a class="consoleD" href="deptConsole.html">控制台(科室) / </a><a class="consoleP" href="deptQualifiedPhysician.html">医师病案首页合格率占比 / </a>缺陷列表`)
         $(".partTitle .consoleD").click(function(){
             focusMenuItem('YH-KZTKS')
             $(".container",parent.document).addClass("console-cont");
         })
         $(".partTitle .consoleP").click(function(){
-            focusMenuItem('YH-KSZR-BASYHGLZB_XQ')
+            focusMenuItem('YH-KSZR-BASYHGLYSZB_XQ')
         })
     }else if(from == 10){
         $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台(科室) / </a><a class="consoleP" href="partDetailControlDept.html">病案首页合格率占比 / </a>缺陷列表`)
@@ -184,6 +189,7 @@ function getTabData(activePage){
     const dateEnd = getPickerDate($("#datepicker2"),2)
     const start = new Date(dateStatrt).getTime()
     const end = new Date(dateEnd).getTime()
+    let url
     if(start > end){
         $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
         return
@@ -194,8 +200,11 @@ function getTabData(activePage){
         name: name, //条目名
         doctorName:docName||"",
         deptName:deptName||"",
-        casesName:deptId||"",
+        deptId: deptId || "",
+        casesName:"",
+        professor: professor,
         casesId:casesIds||"",
+        doctorId: docId || "",
         ascs:data_asc,
         descs:data_desc,
         ruleType:ruleType||null,
@@ -205,7 +214,13 @@ function getTabData(activePage){
     }
     startDateParam = dateStatrt
     endDateParam = dateEnd
-    post(api.entryCountGroupByEntryAndDeptPage,param).then(res =>{
+
+    if (codeType == 'XY'){
+        url = api.entryCountGroupXYByEntryPageDept
+    }else{
+        url = api.entryCountGroupByEntryAndDeptPage
+    }
+    post(url,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data.records
             const totalPage = res.data.data.pages
@@ -262,7 +277,7 @@ $(".moduleItemInp").on("input", function(e){
     nameTemp = val
 })
 $(".filter").on("click", function(e){
-    casesId=casesIdTemp, name=nameTemp, isReject =isRejectTemp, isUsed =isUsedTemp,deptId = deptIdTemp
+    casesId=casesIdTemp, name=nameTemp, isReject =isRejectTemp, isUsed =isUsedTemp
     getTabData(1)
 })
 $(".filterclear").on("click", function(e){
@@ -340,7 +355,7 @@ function renderTab(data,activePage){
         // let ruleType = $(this).attr("data-ruleType")
         let index = $(this).parent().attr("data-index")
         let defectName = data[index].name
-        $(parent.document).find("#contentIframe").attr("src","../qcListCopyDept.html?deptName="+deptName+"&deptId="+deptId+"&from=10&casesId=243"+"&shijian=3"+"&ruleType="+ruleType+"&startDate="+startDateParam+"&endDate="+endDateParam+"&defectName="+defectName+"&docName="+docName)
+        $(parent.document).find("#contentIframe").attr("src", "../qcListCopyDept.html?deptName=" + deptName + "&deptId=" + deptId + "&from="+from+"&casesId=243" + "&shijian=3" + "&ruleType=" + ruleType + "&startDateParam=" + startDateParam + "&endDateParam=" + endDateParam + "&defectName=" + defectName + "&docName=" + docName + "&docId=" + docId + "&professor=" + professor)
     })
 }
 
@@ -606,6 +621,7 @@ $(function() {
     $('.exportData').click(function(){
         const start = new Date(startDateParam).getTime()
         const end = new Date(endDateParam).getTime()
+        let url
         if(start > end){
             $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
             return
@@ -616,7 +632,8 @@ $(function() {
             name: name, //条目名
             doctorName:docName||"",
             deptName:deptName=="全院"?"":(deptName||""),
-            casesName:deptId||"",
+            casesName:"",
+            deptId: deptId || "",
             casesId:casesIds||"",
             ascs:data_asc,
             descs:data_desc,
@@ -625,8 +642,15 @@ $(function() {
             "startDate":startDateParam,
             "endDate":endDateParam
         }
-        expJson(from=10?api.entryGroupExportByDeptPage:api.entryCountGroupByEntryExport,param).then(res =>{
-            downloadExportedData(res.data, "病案首页合格率占比 / 缺陷列表.xls")
+        if (codeType = 'XY') {
+            url = api.entryCountGroupXYByExportDept
+        } else if (from = 10){
+            url = api.entryGroupExportByDeptPage
+        }else{
+            url = api.entryCountGroupByEntryExport
+        }
+        expJson(url,param).then(res =>{
+            downloadExportedData(res.data, "医师病案首页合格率占比 / 缺陷列表.xls")
         })
     })
 });

+ 2 - 2
src/js/uccDetail.js

@@ -1264,7 +1264,7 @@ $(function($){
 });
 function closeRadio(){
     $(".colSetBox .iconClose,.colSetBox .cancalColSet", parent.document ).off("click").on("click",function(){
-        $(".divModal",parent.document).html("")
+        $(".divModal", parent.document).remove()
     })
 }
 function radioSelect(){
@@ -1286,7 +1286,7 @@ function bindSaveColPort(param){
             param = { ...param, casesEntryName: ''}
         }
         expJson(!isInspection ? api.unModifyMRPageExport : api.medicalCheckInnerExport , param).then(res => {
-            $(".divModal",parent.document).html("")
+            $(".divModal", parent.document).remove()
             downloadExportedData(res.data, $(".partTitle").text() + ".xls")
         })
     })

+ 3 - 2
src/js/utils.js

@@ -4,7 +4,7 @@ const axios = require('axios');
 var Utils = require('./rePromise');
 const {ywCheckApi} = require('./api.js')
 require('./scrollBar.js');
-const baseUrl = 'http://192.168.2.241:1488';
+const baseUrl = 'http://192.168.2.236:5858';
 //页面映射
 const pageMap = {
   'YH-KZT': 'console.html',
@@ -46,6 +46,8 @@ const pageMap = {
   'YH-JCSJWH-ZKLXWH': 'assertType.html',
   'YH-BLZK-ZKPFYLZ': 'qcListDocteam.html',
   'YH-ZKK-GJTMQXZB': 'keyItemFlawControl.html',
+  'YH-ZKK-BASYHGLYSZB_XQ': 'qualifiedPhysician.html',
+  'YH-KSZR-BASYHGLYSZB_XQ': 'deptQualifiedPhysician.html',
   'YH-ZKK-CYRSTJ': 'qcListOutHospital.html',
   'YH-ZKK-RYRSTJ': 'qcListOutHospital.html?inner=2',
   'YH-ZKK-WZGBLTJ': 'uncorrectedCasesStatistics.html',
@@ -158,7 +160,6 @@ const post = function(url, data) {
       url: (need ? baseUrl : '') + url,
       async: true,
       cache: false,
-      contentType: false,
       processData: false,
       data: JSON.stringify(Object.assign({}, data, { isPlacefile: isPlacefile })),
       contentType: 'application/json; charset=UTF-8',

+ 28 - 0
webpack.configCopy.jsx

@@ -48,6 +48,8 @@ module.exports = {
     singleVeto:path.resolve(__dirname, 'src/js', 'singleVeto.js'),
     itemDefectDetail:path.resolve(__dirname, 'src/js', 'itemDefectDetail.js'),
     keyItemFlawControl:path.resolve(__dirname, 'src/js', 'keyItemFlawControl.js'),
+    qualifiedPhysician: path.resolve(__dirname, 'src/js', 'qualifiedPhysician.js'),
+    deptQualifiedPhysician: path.resolve(__dirname, 'src/js', 'deptQualifiedPhysician.js'),
     qcListCopy:path.resolve(__dirname, 'src/js', 'qcListCopy.js'),
     qcListCopyUnqualified: path.resolve(__dirname, 'src/js', 'qcListCopyUnqualified.js'),
     qcListOutHospital:path.resolve(__dirname, 'src/js', 'qcListOutHospital.js'),
@@ -713,6 +715,32 @@ module.exports = {
         collapseWhitespace: true //删除空白符与换行符
       }
     }),
+    new HtmlWebpackPlugin({
+      title: 'qualifiedPhysician.html', //合格率医生
+      template: path.resolve(__dirname, 'src/html', 'qualifiedPhysician.html'),
+      filename: 'qualifiedPhysician.html',
+      chunks: ['qualifiedPhysician', 'vendor', 'common'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
+    new HtmlWebpackPlugin({
+      title: 'deptQualifiedPhysician.html', //合格率医生
+      template: path.resolve(__dirname, 'src/html', 'deptQualifiedPhysician.html'),
+      filename: 'deptQualifiedPhysician.html',
+      chunks: ['deptQualifiedPhysician', 'vendor', 'common'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
     new HtmlWebpackPlugin({
       title: 'uncorrectedCasesStatistics.html', //未整改病历统计
       template: path.resolve(__dirname, 'src/html', 'uncorrectedCasesStatistics.html'),