luolei 5 年 前
コミット
d9726f2321

+ 9 - 1
src/css/abnormal.less

@@ -239,8 +239,13 @@
         text-align: center;
     }
     .patientNameSpan{
-        color: #5A8EEE;
+        color: #00A1F0;
+        cursor: pointer;
+    }
+    .patientNameSpans{
+        color: #FF4D4F;
         cursor: pointer;
+        margin-left: 30px;
     }
     
     .deptItem:hover{
@@ -350,3 +355,6 @@
         -moz-appearance: textfield;
     }
 }
+.abnormalClear {
+    top: 2px !important;
+}

+ 374 - 0
src/css/dayDetail.less

@@ -0,0 +1,374 @@
+.container{
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+}
+.dayDetail {
+    .dayFilter {
+        .levelList {
+            height: 80px;
+        }
+        .selectLevel,.levelList  {
+            width: 180px;
+        }
+    }
+    .filterItem.deptListWrap {
+        display: none;
+        .selectDept,.deptList {
+            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{
+        margin: 20px 0;
+        padding: 0 35px;
+        min-width: 1090px;
+        /*width: 100%;*/
+    }
+    table{
+        width: 100%;
+        min-width: 1090px;
+        border:1px solid #E2E5EF;
+        border-collapse: collapse;
+        thead{
+            background: #EFF0F9;
+           
+        }
+        th,td{
+            height: 40px;
+            box-sizing: border-box;
+            padding: 10px;
+            border:1px solid #E2E5EF;
+            border-collapse: collapse;
+            text-align: center;
+        }
+        th{
+            font-size: 14px;
+            font-weight: 500;
+            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");
+            }
+            &.desc:after{
+                background: url("../images/down_blue.png");
+            }
+        }
+        td{
+            font-size: 14px;
+            font-weight: 400;
+            white-space: nowrap;
+        }
+        .moduleNumber{
+            text-align: center;
+        }
+        .scoreOperaItem{
+            width: 50px;
+            cursor: pointer;
+        }
+        
+    }
+    .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: #5A8EEE;
+    }
+    .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 #5A8EEE;
+        color: #5A8EEE;
+    }
+    .filterBox{
+        margin-bottom: 15px;
+    }
+    .filterItem{
+        position: relative;
+        display: inline-block;
+        float: left;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 15px 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;
+        }
+    }
+    
+    .filterDropList{
+        position: absolute;
+        right: 0;
+        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{
+        width: 160px;
+        max-height: 400px;
+    }
+    .levelList{
+        width: 120px;
+        height: 120px;
+        li:hover{
+            background-color: #EEF4FF;
+            cursor: pointer;
+        }
+    }
+    .selectLevel,.selectDept{
+        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{
+        width: 160px;
+    }
+    
+    .filter{
+        display: inline-block;
+        width:60px;
+        height:36px;
+        background:#5A8EEE;
+        border-radius:4px;
+        color: #fff;
+        text-align: center;
+        line-height: 36px;
+        position: relative;
+        top: 2px;
+        cursor: pointer;
+        float: left;
+    }
+    .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{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+    .ellipsis{
+        overflow: hidden;
+        text-overflow:ellipsis;
+        white-space: nowrap;
+    }
+    
+    
+    .pagination{
+        margin: 35px 0 0 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: #5A8EEE;
+    }
+    
+    
+    
+    .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: #5a8eee !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;
+}

+ 374 - 0
src/css/deptScoreDetail.less

@@ -0,0 +1,374 @@
+.container{
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+}
+.deptScoreDetail {
+    .dayFilter {
+        .levelList {
+            height: 80px;
+        }
+        .selectLevel,.levelList  {
+            width: 180px;
+        }
+    }
+    .filterItem.deptListWrap {
+        display: none;
+        .selectDept,.deptList {
+            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{
+        margin: 20px 0;
+        padding: 0 35px;
+        min-width: 1090px;
+        /*width: 100%;*/
+    }
+    table{
+        width: 100%;
+        min-width: 1090px;
+        border:1px solid #E2E5EF;
+        border-collapse: collapse;
+        thead{
+            background: #EFF0F9;
+           
+        }
+        th,td{
+            height: 40px;
+            box-sizing: border-box;
+            padding: 10px;
+            border:1px solid #E2E5EF;
+            border-collapse: collapse;
+            text-align: center;
+        }
+        th{
+            font-size: 14px;
+            font-weight: 500;
+            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");
+            }
+            &.desc:after{
+                background: url("../images/down_blue.png");
+            }
+        }
+        td{
+            font-size: 14px;
+            font-weight: 400;
+            white-space: nowrap;
+        }
+        .moduleNumber{
+            text-align: center;
+        }
+        .scoreOperaItem{
+            width: 50px;
+            cursor: pointer;
+        }
+        
+    }
+    .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: #5A8EEE;
+    }
+    .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 #5A8EEE;
+        color: #5A8EEE;
+    }
+    .filterBox{
+        margin-bottom: 15px;
+    }
+    .filterItem{
+        position: relative;
+        display: inline-block;
+        float: left;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 15px 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;
+        }
+    }
+    
+    .filterDropList{
+        position: absolute;
+        right: 0;
+        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{
+        width: 160px;
+        max-height: 400px;
+    }
+    .levelList{
+        width: 120px;
+        height: 120px;
+        li:hover{
+            background-color: #EEF4FF;
+            cursor: pointer;
+        }
+    }
+    .selectLevel,.selectDept{
+        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{
+        width: 160px;
+    }
+    
+    .filter{
+        display: inline-block;
+        width:60px;
+        height:36px;
+        background:#5A8EEE;
+        border-radius:4px;
+        color: #fff;
+        text-align: center;
+        line-height: 36px;
+        position: relative;
+        top: 2px;
+        cursor: pointer;
+        float: left;
+    }
+    .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{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+    .ellipsis{
+        overflow: hidden;
+        text-overflow:ellipsis;
+        white-space: nowrap;
+    }
+    
+    
+    .pagination{
+        margin: 35px 0 0 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: #5A8EEE;
+    }
+    
+    
+    
+    .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: #5a8eee !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;
+}

+ 374 - 0
src/css/deptScoreDetailControl.less

@@ -0,0 +1,374 @@
+.container{
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+}
+.deptScoreDetailControl {
+    .dayFilter {
+        .levelList {
+            height: 80px;
+        }
+        .selectLevel,.levelList  {
+            width: 180px;
+        }
+    }
+    .filterItem.deptListWrap {
+        display: none;
+        .selectDept,.deptList {
+            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{
+        margin: 20px 0;
+        padding: 0 35px;
+        min-width: 1090px;
+        /*width: 100%;*/
+    }
+    table{
+        width: 100%;
+        min-width: 1090px;
+        border:1px solid #E2E5EF;
+        border-collapse: collapse;
+        thead{
+            background: #EFF0F9;
+           
+        }
+        th,td{
+            height: 40px;
+            box-sizing: border-box;
+            padding: 10px;
+            border:1px solid #E2E5EF;
+            border-collapse: collapse;
+            text-align: center;
+        }
+        th{
+            font-size: 14px;
+            font-weight: 500;
+            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");
+            }
+            &.desc:after{
+                background: url("../images/down_blue.png");
+            }
+        }
+        td{
+            font-size: 14px;
+            font-weight: 400;
+            white-space: nowrap;
+        }
+        .moduleNumber{
+            text-align: center;
+        }
+        .scoreOperaItem{
+            width: 50px;
+            cursor: pointer;
+        }
+        
+    }
+    .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: #5A8EEE;
+    }
+    .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 #5A8EEE;
+        color: #5A8EEE;
+    }
+    .filterBox{
+        margin-bottom: 15px;
+    }
+    .filterItem{
+        position: relative;
+        display: inline-block;
+        float: left;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 15px 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;
+        }
+    }
+    
+    .filterDropList{
+        position: absolute;
+        right: 0;
+        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{
+        width: 160px;
+        max-height: 400px;
+    }
+    .levelList{
+        width: 120px;
+        height: 120px;
+        li:hover{
+            background-color: #EEF4FF;
+            cursor: pointer;
+        }
+    }
+    .selectLevel,.selectDept{
+        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{
+        width: 160px;
+    }
+    
+    .filter{
+        display: inline-block;
+        width:60px;
+        height:36px;
+        background:#5A8EEE;
+        border-radius:4px;
+        color: #fff;
+        text-align: center;
+        line-height: 36px;
+        position: relative;
+        top: 2px;
+        cursor: pointer;
+        float: left;
+    }
+    .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{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+    .ellipsis{
+        overflow: hidden;
+        text-overflow:ellipsis;
+        white-space: nowrap;
+    }
+    
+    
+    .pagination{
+        margin: 35px 0 0 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: #5A8EEE;
+    }
+    
+    
+    
+    .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: #5a8eee !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;
+}

+ 77 - 0
src/css/index.less

@@ -511,3 +511,80 @@ input[type="number"] {
   }
 }
 
+//abnormal
+
+.abnormalStatusLis {
+  position: absolute;
+  left: 104px;
+  top: 35px;
+  border: 1px solid #E2E5EF;
+  z-index: 999;
+  background-color: #fff;
+  width: 158px;
+  display: none;
+  li {
+    height: 34px;
+    line-height: 34px;
+    width: 160px;
+    padding-left: 10px;
+    box-sizing: border-box;
+    width: 160px;
+    &:hover {
+      background-color: #EEF4FF;
+      cursor: pointer;
+    }
+  }
+}
+.abnormalAll {
+  width: 160px !important;
+  height: 34px;
+  line-height: 34px;
+  border: 1px solid #E2E5EF;
+  padding: 0 20px 0 10px;
+  display: inline-block;
+  box-sizing: border-box;
+  border-radius:4px;
+}
+.abnormalLeft {
+  width: 100px !important;
+}
+.abnormalMark {
+  vertical-align: top;
+  position: relative;
+  top: -12px;
+}
+.abnormalTxt {
+  width: 240px;
+  height: 120px;
+  border: 1px solid #E2E5EF;
+  border-radius: 4px;
+  resize: none;
+  padding: 10px;
+  box-sizing: border-box;
+}
+.midifyMsgContent.abnormal {
+  height: 320px;
+}
+.midifyMsgContent.abnormalDel {
+  height: 280px;
+}
+.midifyMsgBtn.abnormalBtn {
+  top: 22px;
+}
+
+.midifyEditDel{
+  color: #FF4D4F !important;
+  border: 1px solid #FF4D4F !important;
+  background-color: #fff !important;
+  margin-right: 15px;
+}
+.delTips {
+    text-align: center;
+    padding: 40px 0;
+}
+.midifyMsgBtnDel {
+  top: 10px !important;
+}
+.midifyMsgContentDel {
+  height: 220px !important;
+}

+ 377 - 0
src/css/jiaji.less

@@ -0,0 +1,377 @@
+.container{
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+}
+.jiaji {
+    .dayFilter {
+        .levelList {
+            height: 80px;
+        }
+        .selectLevel,.levelList  {
+            width: 180px;
+        }
+        .deptListWrap {
+            display: none;
+        }
+    }
+    .filterItem.deptListWrap {
+        display: none;
+        .selectDept,.deptList {
+            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{
+        margin: 20px 0;
+        padding: 0 35px;
+        min-width: 1090px;
+        /*width: 100%;*/
+    }
+    table{
+        width: 100%;
+        min-width: 1090px;
+        border:1px solid #E2E5EF;
+        border-collapse: collapse;
+        thead{
+            background: #EFF0F9;
+           
+        }
+        th,td{
+            height: 40px;
+            box-sizing: border-box;
+            padding: 10px;
+            border:1px solid #E2E5EF;
+            border-collapse: collapse;
+            text-align: center;
+        }
+        th{
+            font-size: 14px;
+            font-weight: 500;
+            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");
+            }
+            &.desc:after{
+                background: url("../images/down_blue.png");
+            }
+        }
+        td{
+            font-size: 14px;
+            font-weight: 400;
+            white-space: nowrap;
+        }
+        .moduleNumber{
+            text-align: center;
+        }
+        .scoreOperaItem{
+            width: 50px;
+            cursor: pointer;
+        }
+        
+    }
+    .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: #5A8EEE;
+    }
+    .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 #5A8EEE;
+        color: #5A8EEE;
+    }
+    .filterBox{
+        margin-bottom: 15px;
+    }
+    .filterItem{
+        position: relative;
+        display: inline-block;
+        float: left;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 15px 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;
+        }
+    }
+    
+    .filterDropList{
+        position: absolute;
+        right: 0;
+        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{
+        width: 160px;
+        max-height: 400px;
+    }
+    .levelList{
+        width: 120px;
+        height: 120px;
+        li:hover{
+            background-color: #EEF4FF;
+            cursor: pointer;
+        }
+    }
+    .selectLevel,.selectDept{
+        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{
+        width: 160px;
+    }
+    
+    .filter{
+        display: inline-block;
+        width:60px;
+        height:36px;
+        background:#5A8EEE;
+        border-radius:4px;
+        color: #fff;
+        text-align: center;
+        line-height: 36px;
+        position: relative;
+        top: 2px;
+        cursor: pointer;
+        float: left;
+    }
+    .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{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+    .ellipsis{
+        overflow: hidden;
+        text-overflow:ellipsis;
+        white-space: nowrap;
+    }
+    
+    
+    .pagination{
+        margin: 35px 0 0 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: #5A8EEE;
+    }
+    
+    
+    
+    .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: #5a8eee !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;
+}

+ 28 - 2
src/css/partDetail.less

@@ -4,6 +4,23 @@
     overflow: auto;
 }
 .partDetail {
+    .dayFilter {
+        .levelList {
+            height: 80px;
+        }
+        .selectLevel,.levelList  {
+            width: 180px;
+        }
+        .deptListWrap {
+            display: none;
+        }
+    }
+    .filterItem.deptListWrap {
+        display: none;
+        .selectDept,.deptList {
+            width: 180px;
+        }
+    }
     ul,li{
         list-style: none;
     }
@@ -41,6 +58,7 @@
             padding: 10px;
             border:1px solid #E2E5EF;
             border-collapse: collapse;
+            text-align: center;
         }
         th{
             font-size: 14px;
@@ -158,7 +176,7 @@
     }
     .levelList{
         width: 120px;
-        height: 200px;
+        height: 120px;
         li:hover{
             background-color: #EEF4FF;
             cursor: pointer;
@@ -238,9 +256,14 @@
         text-align: center;
     }
     .patientNameSpan{
-        color: #5A8EEE;
+        color: #00A1F0;
         cursor: pointer;
     }
+    .patientNameSpans{
+        color: #FF4D4F;
+        cursor: pointer;
+        margin-left: 30px;
+    }
     
     .deptItem:hover{
         background-color: #EEF4FF;
@@ -349,3 +372,6 @@
         -moz-appearance: textfield;
     }
 }
+.abnormalClear {
+    top: 2px !important;
+}

+ 377 - 0
src/css/partDetailControl.less

@@ -0,0 +1,377 @@
+.container{
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+}
+.partDetailControl {
+    .dayFilter {
+        .levelList {
+            height: 80px;
+        }
+        .selectLevel,.levelList  {
+            width: 180px;
+        }
+        .deptListWrap {
+            display: none;
+        }
+    }
+    .filterItem.deptListWrap {
+        display: none;
+        .selectDept,.deptList {
+            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{
+        margin: 20px 0;
+        padding: 0 35px;
+        min-width: 1090px;
+        /*width: 100%;*/
+    }
+    table{
+        width: 100%;
+        min-width: 1090px;
+        border:1px solid #E2E5EF;
+        border-collapse: collapse;
+        thead{
+            background: #EFF0F9;
+           
+        }
+        th,td{
+            height: 40px;
+            box-sizing: border-box;
+            padding: 10px;
+            border:1px solid #E2E5EF;
+            border-collapse: collapse;
+            text-align: center;
+        }
+        th{
+            font-size: 14px;
+            font-weight: 500;
+            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");
+            }
+            &.desc:after{
+                background: url("../images/down_blue.png");
+            }
+        }
+        td{
+            font-size: 14px;
+            font-weight: 400;
+            white-space: nowrap;
+        }
+        .moduleNumber{
+            text-align: center;
+        }
+        .scoreOperaItem{
+            width: 50px;
+            cursor: pointer;
+        }
+        
+    }
+    .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: #5A8EEE;
+    }
+    .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 #5A8EEE;
+        color: #5A8EEE;
+    }
+    .filterBox{
+        margin-bottom: 15px;
+    }
+    .filterItem{
+        position: relative;
+        display: inline-block;
+        float: left;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 15px 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;
+        }
+    }
+    
+    .filterDropList{
+        position: absolute;
+        right: 0;
+        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{
+        width: 160px;
+        max-height: 400px;
+    }
+    .levelList{
+        width: 120px;
+        height: 120px;
+        li:hover{
+            background-color: #EEF4FF;
+            cursor: pointer;
+        }
+    }
+    .selectLevel,.selectDept{
+        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{
+        width: 160px;
+    }
+    
+    .filter{
+        display: inline-block;
+        width:60px;
+        height:36px;
+        background:#5A8EEE;
+        border-radius:4px;
+        color: #fff;
+        text-align: center;
+        line-height: 36px;
+        position: relative;
+        top: 2px;
+        cursor: pointer;
+        float: left;
+    }
+    .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{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+    .ellipsis{
+        overflow: hidden;
+        text-overflow:ellipsis;
+        white-space: nowrap;
+    }
+    
+    
+    .pagination{
+        margin: 35px 0 0 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: #5A8EEE;
+    }
+    
+    
+    
+    .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: #5a8eee !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;
+}

+ 377 - 0
src/css/payDetail.less

@@ -0,0 +1,377 @@
+.container{
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+}
+.payDetail {
+    .dayFilter {
+        .levelList {
+            height: 80px;
+        }
+        .selectLevel,.levelList  {
+            width: 180px;
+        }
+        .deptListWrap {
+            display: none;
+        }
+    }
+    .filterItem.deptListWrap {
+        display: none;
+        .selectDept,.deptList {
+            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{
+        margin: 20px 0;
+        padding: 0 35px;
+        min-width: 1090px;
+        /*width: 100%;*/
+    }
+    table{
+        width: 100%;
+        min-width: 1090px;
+        border:1px solid #E2E5EF;
+        border-collapse: collapse;
+        thead{
+            background: #EFF0F9;
+           
+        }
+        th,td{
+            height: 40px;
+            box-sizing: border-box;
+            padding: 10px;
+            border:1px solid #E2E5EF;
+            border-collapse: collapse;
+            text-align: center;
+        }
+        th{
+            font-size: 14px;
+            font-weight: 500;
+            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");
+            }
+            &.desc:after{
+                background: url("../images/down_blue.png");
+            }
+        }
+        td{
+            font-size: 14px;
+            font-weight: 400;
+            white-space: nowrap;
+        }
+        .moduleNumber{
+            text-align: center;
+        }
+        .scoreOperaItem{
+            width: 50px;
+            cursor: pointer;
+        }
+        
+    }
+    .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: #5A8EEE;
+    }
+    .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 #5A8EEE;
+        color: #5A8EEE;
+    }
+    .filterBox{
+        margin-bottom: 15px;
+    }
+    .filterItem{
+        position: relative;
+        display: inline-block;
+        float: left;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 15px 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;
+        }
+    }
+    
+    .filterDropList{
+        position: absolute;
+        right: 0;
+        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{
+        width: 160px;
+        max-height: 400px;
+    }
+    .levelList{
+        width: 120px;
+        height: 120px;
+        li:hover{
+            background-color: #EEF4FF;
+            cursor: pointer;
+        }
+    }
+    .selectLevel,.selectDept{
+        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{
+        width: 160px;
+    }
+    
+    .filter{
+        display: inline-block;
+        width:60px;
+        height:36px;
+        background:#5A8EEE;
+        border-radius:4px;
+        color: #fff;
+        text-align: center;
+        line-height: 36px;
+        position: relative;
+        top: 2px;
+        cursor: pointer;
+        float: left;
+    }
+    .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{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+    .ellipsis{
+        overflow: hidden;
+        text-overflow:ellipsis;
+        white-space: nowrap;
+    }
+    
+    
+    .pagination{
+        margin: 35px 0 0 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: #5A8EEE;
+    }
+    
+    
+    
+    .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: #5a8eee !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;
+}

+ 377 - 0
src/css/quexianXQ.less

@@ -0,0 +1,377 @@
+.container{
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+}
+.quexianXQ {
+    .dayFilter {
+        .levelList {
+            height: 80px;
+        }
+        .selectLevel,.levelList  {
+            width: 180px;
+        }
+        .deptListWrap {
+            display: none;
+        }
+    }
+    .filterItem.deptListWrap {
+        display: none;
+        .selectDept,.deptList {
+            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{
+        margin: 20px 0;
+        padding: 0 35px;
+        min-width: 1090px;
+        /*width: 100%;*/
+    }
+    table{
+        width: 100%;
+        min-width: 1090px;
+        border:1px solid #E2E5EF;
+        border-collapse: collapse;
+        thead{
+            background: #EFF0F9;
+           
+        }
+        th,td{
+            height: 40px;
+            box-sizing: border-box;
+            padding: 10px;
+            border:1px solid #E2E5EF;
+            border-collapse: collapse;
+            text-align: center;
+        }
+        th{
+            font-size: 14px;
+            font-weight: 500;
+            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");
+            }
+            &.desc:after{
+                background: url("../images/down_blue.png");
+            }
+        }
+        td{
+            font-size: 14px;
+            font-weight: 400;
+            white-space: nowrap;
+        }
+        .moduleNumber{
+            text-align: center;
+        }
+        .scoreOperaItem{
+            width: 50px;
+            cursor: pointer;
+        }
+        
+    }
+    .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: #5A8EEE;
+    }
+    .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 #5A8EEE;
+        color: #5A8EEE;
+    }
+    .filterBox{
+        margin-bottom: 15px;
+    }
+    .filterItem{
+        position: relative;
+        display: inline-block;
+        float: left;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 15px 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;
+        }
+    }
+    
+    .filterDropList{
+        position: absolute;
+        right: 0;
+        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{
+        width: 160px;
+        max-height: 400px;
+    }
+    .levelList{
+        width: 120px;
+        height: 120px;
+        li:hover{
+            background-color: #EEF4FF;
+            cursor: pointer;
+        }
+    }
+    .selectLevel,.selectDept{
+        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{
+        width: 160px;
+    }
+    
+    .filter{
+        display: inline-block;
+        width:60px;
+        height:36px;
+        background:#5A8EEE;
+        border-radius:4px;
+        color: #fff;
+        text-align: center;
+        line-height: 36px;
+        position: relative;
+        top: 2px;
+        cursor: pointer;
+        float: left;
+    }
+    .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{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+    .ellipsis{
+        overflow: hidden;
+        text-overflow:ellipsis;
+        white-space: nowrap;
+    }
+    
+    
+    .pagination{
+        margin: 35px 0 0 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: #5A8EEE;
+    }
+    
+    
+    
+    .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: #5a8eee !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;
+}

+ 3 - 3
src/html/abnormal.html

@@ -44,24 +44,24 @@
                     <span>状态:</span>
                     <span class="selectLevel">全部</span>
                     <ul class="levelList filterDropList">
-                        <Li class="levelItem" data-name="全部" data-id="">全部</Li>
+                        <Li class="levelItem" data-name="全部" data-id=" ">全部</Li>
                         <Li class="levelItem" data-name="未处理" data-status="0" data-id="0">未处理</Li>
                         <Li class="levelItem" data-name="已处理" data-status="1" data-id="1">已处理</Li>
                     </ul>
                 </span>
                 <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">清空</span>
             </div>
             <div>
                 <table>
                     <thead>
                     <th class="moduleName" style="width: 65px;">序号</th>
-                    <th class="recordScoreOpera textCenter" style="width: 65px;">类型</th>
                     <th class="beHospitalId textCenter">病历号</th>
                     <th class="patientNo textCenter" >异常归属模块</th>
                     <th class="patientName textCenter" style="width: 100px;">异常说明</th>
                     <th class="patientSex textCenter" >状态</th>
                     <th class="patientage textCenter" >备注</th>
-                    <th class="patientage textCenter" >操作</th>
+                    <th class="patientage textCenter" style="width: 150px;">操作</th>
                     </thead>
                     <tbody>
 

+ 75 - 0
src/html/dayDetail.html

@@ -0,0 +1,75 @@
+<!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 dayDetail">
+        <div class="partTitle">
+          <p><span></span>科室平均住院天数</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="grayLine"></div>
+        <div class="main-body">
+            <div class="filterBox clearfix">
+                <span class="filterItem typeFilter">
+                    <span>科室名称:</span>
+                    <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入科室名称">
+                </span>
+                <span class="filterItem typeFilter deptListWrap">
+                    <span>时间类型:</span>
+                    <span class="selectDept" data-id="1">本月平均住院天数</span>
+                    <ul class="deptList filterDropList">
+                        <li class="deptItem ellipsis" title="本月平均住院天数" data-id="1" data-name="本月平均住院天数">本月平均住院天数</li>
+                        <li class="deptItem ellipsis" title="上月平均住院天数" data-id="2" data-name="上月平均住院天数">上月平均住院天数</li>
+                        <li class="deptItem ellipsis" title="去年本月平均住院天数" data-id="3" data-name="去年本月平均住院天数">去年本月平均住院天数</li>
+                    </ul>
+                </span>
+                <span class="filterItem dayFilter">
+                    <span>时间类型:</span>
+                    <span class="selectLevel" data-id="1">本年平均住院天数</span>
+                    <ul class="levelList filterDropList">
+                        <Li class="levelItem" data-name="本年平均住院天数" data-status="1" data-id="1">本年平均住院天数</Li>
+                        <Li class="levelItem" data-name="去年平均住院天数" data-status="2" data-id="2">去年平均住院天数</Li>
+                    </ul>
+                </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">清空</span>
+            </div>
+            <div>
+                <table>
+                    <thead>
+                    <th class="moduleName" style="width: 65px;">序号</th>
+                    <th class="beHospitalId textCenter">科室名称</th>
+                    <th class="patientNo textCenter" >平均住院天数</th>
+                    </thead>
+                    <tbody>
+
+                    </tbody>
+                </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>

+ 9 - 0
src/html/deptConsole.html

@@ -99,6 +99,15 @@
           <div class="explainPan explainPanB">
             <table>
               
+            </table>
+          </div>
+        </div>
+        <div class="circleB clearfix">
+          <p class="title">条目缺陷占比</p>
+          <div id="emptyCircleB" class="emptyCircle"></div>
+          <div class="explainPan explainPanB">
+            <table>
+              
             </table>
           </div>
         </div>

+ 76 - 0
src/html/deptScoreDetail.html

@@ -0,0 +1,76 @@
+<!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 deptScoreDetail">
+        <div class="partTitle">
+          <p><span></span>科室缺陷占比</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="grayLine"></div>
+        <div class="main-body">
+            <div class="filterBox clearfix">
+                <span class="filterItem typeFilter">
+                    <span>医生名称:</span>
+                    <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入科室名称">
+                </span>
+                <span class="filterItem typeFilter deptListWrap">
+                    <span>科室:</span>
+                    <span class="selectDept" data-id="1">本月平均住院天数</span>
+                    <ul class="deptList filterDropList">
+                        <li class="deptItem ellipsis" title="本月平均住院天数" data-id="1" data-name="本月平均住院天数">本月平均住院天数</li>
+                        <li class="deptItem ellipsis" title="上月平均住院天数" data-id="2" data-name="上月平均住院天数">上月平均住院天数</li>
+                        <li class="deptItem ellipsis" title="去年本月平均住院天数" data-id="3" data-name="去年本月平均住院天数">去年本月平均住院天数</li>
+                    </ul>
+                </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">清空</span>
+            </div>
+            <div>
+                <table>
+                    <thead>
+                    <th class="moduleName" style="width: 65px;">序号</th>
+                    <th class="beHospitalId textCenter">科室编码</th>
+                    <th class="beHospitalId textCenter">科室名称</th>
+                    <th class="beHospitalId textCenter">缺陷总数</th>
+                    <th class="beHospitalId textCenter">质控平均分</th>
+                    <th class="beHospitalId textCenter">质控病历数</th>
+                    <th class="beHospitalId textCenter">甲级病历数</th>
+                    <th class="beHospitalId textCenter">乙级病历数</th>
+                    <th class="beHospitalId textCenter">丙级病历数</th>
+                    <th class="beHospitalId textCenter">甲级率</th>
+                    <th class="beHospitalId textCenter">乙级率</th>
+                    <th class="beHospitalId textCenter">丙级率</th>
+                    </thead>
+                    <tbody>
+
+                    </tbody>
+                </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>

+ 76 - 0
src/html/deptScoreDetailControl.html

@@ -0,0 +1,76 @@
+<!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><span></span>各科室缺陷占比</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="grayLine"></div>
+        <div class="main-body">
+            <div class="filterBox clearfix">
+                <span class="filterItem typeFilter">
+                    <span>医生名称:</span>
+                    <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入科室名称">
+                </span>
+                <span class="filterItem typeFilter deptListWrap">
+                    <span>科室:</span>
+                    <span class="selectDept" data-id="1">本月平均住院天数</span>
+                    <ul class="deptList filterDropList">
+                        <li class="deptItem ellipsis" title="本月平均住院天数" data-id="1" data-name="本月平均住院天数">本月平均住院天数</li>
+                        <li class="deptItem ellipsis" title="上月平均住院天数" data-id="2" data-name="上月平均住院天数">上月平均住院天数</li>
+                        <li class="deptItem ellipsis" title="去年本月平均住院天数" data-id="3" data-name="去年本月平均住院天数">去年本月平均住院天数</li>
+                    </ul>
+                </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">清空</span>
+            </div>
+            <div>
+                <table>
+                    <thead>
+                    <th class="moduleName" style="width: 65px;">序号</th>
+                    <th class="beHospitalId textCenter">科室编码</th>
+                    <th class="beHospitalId textCenter">科室名称</th>
+                    <th class="beHospitalId textCenter">缺陷总数</th>
+                    <th class="beHospitalId textCenter">质控平均分</th>
+                    <th class="beHospitalId textCenter">质控病历数</th>
+                    <th class="beHospitalId textCenter">甲级病历数</th>
+                    <th class="beHospitalId textCenter">乙级病历数</th>
+                    <th class="beHospitalId textCenter">丙级病历数</th>
+                    <th class="beHospitalId textCenter">甲级率</th>
+                    <th class="beHospitalId textCenter">乙级率</th>
+                    <th class="beHospitalId textCenter">丙级率</th>
+                    </thead>
+                    <tbody>
+
+                    </tbody>
+                </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>

+ 53 - 0
src/html/jiaji.html

@@ -0,0 +1,53 @@
+<!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 jiaji">
+        <div class="partTitle">
+          <p><span></span>各科室甲级病历占比</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="grayLine"></div>
+        <div class="main-body">
+            <div class="filterBox clearfix">
+                <span class="filterItem typeFilter">
+                    <span>科室名称:</span>
+                    <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入科室名称">
+                </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">清空</span>
+            </div>
+            <div>
+                <table>
+                    <thead>
+                        <th class="moduleName" style="width: 65px;">序号</th>
+                        <th class="moduleItemName">科室名称</th>
+                        <th class="moduleScore" style="width: 80px;">甲级病历占比</th>
+                    </thead>
+                    <tbody>
+
+                    </tbody>
+                </table>
+            </div>
+
+            <div class="pagination"></div>
+        </div>
+        
+    </div>
+</body>
+
+</html>

+ 40 - 69
src/html/partDetail.html

@@ -5,100 +5,71 @@
     <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>
-    
+    <title>病案首页合格率占比</title>
 </head>
 
 <body>
     <div class="container partDetail">
-        <h2>质控评分</h2>
+        <div class="partTitle">
+          <p><span></span>病案首页合格率占比</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="grayLine"></div>
         <div class="main-body">
             <div class="filterBox clearfix">
                 <span class="filterItem typeFilter">
-                    <span>病人住院序号:</span>
-                    <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入病人住院序号">
-                </span>
-                <span class="filterItem typeFilter">
-                    <span>病人姓名:</span>
-                    <input class="patientNameInp" type="text" placeholder="请输入病人姓名">
+                    <span>科室名称:</span>
+                    <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入科室名称">
                 </span>
                 <span class="filterItem typeFilter deptListWrap">
-                    <span>科室:</span>
-                    <span class="selectDept"> 
-                        全部
-                    </span>
-                   
-                    <ul class="deptList filterDropList"></ul>
-                </span>
-                <span class="filterItem doctorFilter">
-                    <span>医生姓名:</span>
-                    <input class="doctorInp" type="text" placeholder="请输入医生姓名">
-                </span>
-                <span class="filterItem doctorFilter">
-                    <span>医生工号:</span>
-                    <input class="doctorNumInp" type="text" placeholder="请输入医生工号">
-                </span>
-                <span class="filterItem typeFilter clearfix">
-                    <span class="fl">入院日期:</span>
-                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" /></span>
-                    <span  class="divide fl">-</span>
-                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" /></span>
+                    <span>时间类型:</span>
+                    <span class="selectDept" data-id="1">本月平均住院花费</span>
+                    <ul class="deptList filterDropList">
+                        <li class="deptItem ellipsis" title="本月平均住院花费" data-id="1" data-name="本月平均住院花费">本月平均住院花费</li>
+                        <li class="deptItem ellipsis" title="上月平均住院花费" data-id="2" data-name="上月平均住院天数">上月平均住院花费</li>
+                        <li class="deptItem ellipsis" title="去年本月平均住院花费" data-id="3" data-name="去年本月平均住院花费">去年本月平均住院花费</li>
+                    </ul>
                 </span>
-                <span class="filterItem">
-                    <span>病历等级:</span>
-                    <span class="selectLevel">全部</span>
+                <span class="filterItem dayFilter">
+                    <span>时间类型:</span>
+                    <span class="selectLevel" data-id="1">本年平均住院花费</span>
                     <ul class="levelList filterDropList">
-                        <Li class="levelItem" data-name="全部" data-id="">全部</Li>
-                        <Li class="levelItem" data-name="未评分" data-id="未评分">未评分</Li>
-                        <Li class="levelItem" data-name="甲" data-id="甲">甲</Li>
-                        <li class="levelItem" data-name="乙" data-id=乙>乙</li>
-                        <li class="levelItem" data-name="丙" data-id=丙>丙</li>
+                        <Li class="levelItem" data-name="本年平均住院花费" data-status="1" data-id="1">本年平均住院花费</Li>
+                        <Li class="levelItem" data-name="去年平均住院花费" data-status="2" data-id="2">去年平均住院花费</Li>
                     </ul>
                 </span>
                 <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">清空</span>
             </div>
             <div>
                 <table>
                     <thead>
-                    <th class="textCenter" ></th>
-                    <th class="recordScoreOpera textCenter" style="width: 65px;">操作</th>
-                    <th class="beHospitalId textCenter" code="behospital_code">病人住院序号</th>
-                    <th class="patientNo textCenter" code="file_code">病案号</th>
-                    <th class="patientName textCenter" code="name" style="width: 100px;">病人姓名</th>
-                    <th class="patientSex textCenter" code="sex">性别</th>
-                    <th class="patientage textCenter" code="age">年龄</th>
-                    <th class="bedNum textCenter" code="bed_code">床号</th>
-                    <th class="inHospitalDate textCenter" code="behospital_date">入院日期</th>
-                    <th class="outHospitalDate textCenter" code="leave_hospital_date">出院日期</th>
-                    <th class="doctorName textCenter" code="beh_doctor_name">住院医生</th>
-                    <th class="doctorName textCenter" code="doctor_name">主管医生</th>
-                    <th class="doctorName textCenter" code="director_doctor_name">主任医生</th>
-                    <th class="deptName textCenter" code="beh_dept_name">科室</th>
-                    <th class="recordLevel textCenter" code="level">病历等级</th>
-                    <th class="recordScore textCenter" code="score_res">病历得分</th>
-                    <th class="scoreTime textCenter" code="grade_time">评分时间</th>
+                    <th class="moduleName" style="width: 65px;">序号</th>
+                    <th class="beHospitalId textCenter">科室编码</th>
+                    <th class="beHospitalId textCenter">科室名称</th>
+                    <th class="beHospitalId textCenter">缺陷总数</th>
+                    <th class="beHospitalId textCenter">质控平均分</th>
+                    <th class="beHospitalId textCenter">质控病历数</th>
+                    <th class="beHospitalId textCenter">甲级病历数</th>
+                    <th class="beHospitalId textCenter">乙级病历数</th>
+                    <th class="beHospitalId textCenter">丙级病历数</th>
+                    <th class="beHospitalId textCenter">甲级率</th>
+                    <th class="beHospitalId textCenter">乙级率</th>
+                    <th class="beHospitalId textCenter">丙级率</th>
                     </thead>
                     <tbody>
 
                     </tbody>
-                    <tfoot>
-                    <tr>
-                        <td colspan="17">
-                            <div class="tabFoot">
-                                <span class="scoreOpera" data-selectAll=false><img class="iconCheck" src="../images/icon_unchecked.png" alt="checkbox">全选</span>
-                                <span class="recordScoreBtn">评分</span>
-                            </div>
-                        </td>
-                    </tr>
-                    </tfoot>
                 </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>
         

+ 67 - 0
src/html/partDetailControl.html

@@ -0,0 +1,67 @@
+<!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 partDetailControl">
+        <div class="partTitle">
+          <p><span></span>病案首页合格率占比</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="grayLine"></div>
+        <div class="main-body">
+            <div class="filterBox clearfix">
+                <span class="filterItem typeFilter">
+                    <span>科室名称:</span>
+                    <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入科室名称">
+                </span>
+                <span class="filterItem typeFilter deptListWrap">
+                    <span>病历等级数:</span>
+                    <span class="selectDept" data-id="1">全部</span>
+                    <ul class="deptList filterDropList">
+                        <li class="deptItem ellipsis" title="甲级病历数" data-id="1" data-name="甲级病历数">甲级病历数</li>
+                        <li class="deptItem ellipsis" title="乙级病历数" data-id="2" data-name="乙级病历数">乙级病历数</li>
+                        <li class="deptItem ellipsis" title="丙级病历数" data-id="3" data-name="丙级病历数">丙级病历数</li>
+                    </ul>
+                </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">清空</span>
+            </div>
+            <div>
+                <table>
+                    <thead>
+                        <th class="moduleName" style="width: 65px;">序号</th>
+                        <th class="beHospitalId textCenter">科室编码</th>
+                        <th class="beHospitalId textCenter">科室名称</th>
+                        <th class="beHospitalId textCenter">缺陷总数</th>
+                        <th class="beHospitalId textCenter">质控平均分</th>
+                        <th class="beHospitalId textCenter">质控病历数</th>
+                        <th class="beHospitalId textCenter">合格率</th>
+                        <th class="beHospitalId textCenter">不合格率</th>
+                    </thead>
+                    <tbody>
+
+                    </tbody>
+                </table>
+            </div>
+
+            <div class="pagination"></div>
+        </div>
+        
+    </div>
+</body>
+
+</html>

+ 80 - 0
src/html/payDetail.html

@@ -0,0 +1,80 @@
+<!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 payDetail">
+        <div class="partTitle">
+          <p><span></span>科室平均住院花费</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="grayLine"></div>
+        <div class="main-body">
+            <div class="filterBox clearfix">
+                <span class="filterItem typeFilter">
+                    <span>科室名称:</span>
+                    <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入科室名称">
+                </span>
+                <span class="filterItem typeFilter deptListWrap">
+                    <span>时间类型:</span>
+                    <span class="selectDept" data-id="1">本月平均住院花费</span>
+                    <ul class="deptList filterDropList">
+                        <li class="deptItem ellipsis" title="本月平均住院花费" data-id="1" data-name="本月平均住院花费">本月平均住院花费</li>
+                        <li class="deptItem ellipsis" title="上月平均住院花费" data-id="2" data-name="上月平均住院天数">上月平均住院花费</li>
+                        <li class="deptItem ellipsis" title="去年本月平均住院花费" data-id="3" data-name="去年本月平均住院花费">去年本月平均住院花费</li>
+                    </ul>
+                </span>
+                <span class="filterItem dayFilter">
+                    <span>时间类型:</span>
+                    <span class="selectLevel" data-id="1">本年平均住院花费</span>
+                    <ul class="levelList filterDropList">
+                        <Li class="levelItem" data-name="本年平均住院花费" data-status="1" data-id="1">本年平均住院花费</Li>
+                        <Li class="levelItem" data-name="去年平均住院花费" data-status="2" data-id="2">去年平均住院花费</Li>
+                    </ul>
+                </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">清空</span>
+            </div>
+            <div>
+                <table>
+                    <thead>
+                        <th class="moduleName" style="width: 65px;">序号</th>
+                        <th class="beHospitalId textCenter">科室编码</th>
+                        <th class="beHospitalId textCenter">科室名称</th>
+                        <th class="beHospitalId textCenter">缺陷总数</th>
+                        <th class="beHospitalId textCenter">质控平均分</th>
+                        <th class="beHospitalId textCenter">质控病历数</th>
+                        <th class="beHospitalId textCenter">合格率</th>
+                        <th class="beHospitalId textCenter">不合格率</th>
+                    </thead>
+                    <tbody>
+
+                    </tbody>
+                </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>

+ 70 - 0
src/html/quexianXQ.html

@@ -0,0 +1,70 @@
+<!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 quexianXQ">
+        <div class="partTitle">
+          <p><span></span>病案首页合格率占比</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="grayLine"></div>
+        <div class="main-body">
+            <div class="filterBox clearfix">
+                <span class="filterItem typeFilter">
+                    <span>科室名称:</span>
+                    <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入科室名称">
+                </span>
+                <span class="filterItem typeFilter deptListWrap">
+                    <span>时间类型:</span>
+                    <span class="selectDept" data-id="1">本月平均住院花费</span>
+                    <ul class="deptList filterDropList">
+                        <li class="deptItem ellipsis" title="本月平均住院花费" data-id="1" data-name="本月平均住院花费">本月平均住院花费</li>
+                        <li class="deptItem ellipsis" title="上月平均住院花费" data-id="2" data-name="上月平均住院天数">上月平均住院花费</li>
+                        <li class="deptItem ellipsis" title="去年本月平均住院花费" data-id="3" data-name="去年本月平均住院花费">去年本月平均住院花费</li>
+                    </ul>
+                </span>
+                <span class="filterItem dayFilter">
+                    <span>时间类型:</span>
+                    <span class="selectLevel" data-id="1">本年平均住院花费</span>
+                    <ul class="levelList filterDropList">
+                        <Li class="levelItem" data-name="本年平均住院花费" data-status="1" data-id="1">本年平均住院花费</Li>
+                        <Li class="levelItem" data-name="去年平均住院花费" data-status="2" data-id="2">去年平均住院花费</Li>
+                    </ul>
+                </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">清空</span>
+            </div>
+            <div>
+                <table>
+                    <thead>
+                    <th class="moduleName" style="width: 65px;">序号</th>
+                    <th class="beHospitalId textCenter">科室名称</th>
+                    <th class="patientNo textCenter" >平均住院天数</th>
+                    </thead>
+                    <tbody>
+
+                    </tbody>
+                </table>
+            </div>
+
+            <div class="pagination"></div>
+        </div>
+        
+    </div>
+</body>
+
+</html>

+ 121 - 65
src/js/abnormal.js

@@ -20,7 +20,9 @@ $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,statisticsType=2,
   nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
   data_desc=[],data_asc=[];
-
+$(".abnormalClear").click(function(){
+    $(".patientNumInp").val("")
+})
 $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
 $('.iconCalen').on("mouseenter", function(e){
     $(this).attr("src", iconCalenBlue)
@@ -113,26 +115,23 @@ function renderTab(data,hisId,activePage){
     let str = ``
     for(let i = 0; i < data.length; i++){
         const item = data[i]
-        console.log(item)
         str += `
             <tr  data-index=${i}>
                 <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
-                <td>${item.type || "-"}</td>
                 <td>${item.behospitalCode || "-"}</td>
                 <td >${item.typeName || "-"}</td>
                 <td>${item.description || "-"}</td>
                 <td>${item.statusName || "-"}</td>
                 <td>${item.remark || "-"}</td>
                 <td  class="textCenter">
-                    <span data-index=${i} class="patientNameSpan">修改<span>
-                    <span data-index=${i} class="patientNameSpan">删除<span>
+                    <span data-index="${i}" data-type="1" class="patientNameSpan">修改</span>
+
+                    <span data-index="${i}" data-type="2" class="patientNameSpan patientNameSpans">删除</span>
                 </td>
             </tr>
         `
     }
     $('tbody').html(str)
-    bindScoreOperaItem()
-    bindRecordScoreOper()
     bindScoreDetail(hisId)
 }
 
@@ -142,19 +141,124 @@ function scoreDetail(id,age,hid,code){
 function bindScoreDetail(hisId){
     $('.patientNameSpan').on('click',function(e){
         const index = $(this).attr("data-index")
-        const id = tabList[index].behospitalCode
-        const age = tabList[index].age;
-        const noScore = tabList[index].level == '未评分'
-        if(noScore){
-            $.alerModal({"message":'请先进行评分!',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
-            return
-        } else{
-            scoreDetail(id,age,hisId,'YH-BLZK-ZKPF')
-        }
-       
+        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, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//保存修改
+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, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
 //选择病历等级
 $('.selectLevel').on("click", function(e){
     e.stopPropagation()
@@ -184,41 +288,6 @@ function bindLeveldSelect(){
 }
 
 //全选绑定
-bindOperaAll()
-function bindScoreOperaItem(){
-    $(".scoreOperaItem").on("click",  function(e){
-        const index = $(this).parent().attr("data-index")
-        tabList[index].hasSelect = tabList[index].hasSelect ? false:true
-        renderTab(tabList)
-    })
-}
-function bindRecordScoreOper(){
-    $(".recordScoreOperaBtn").on("click",  function(e){
-        if(!hasData('FUNC000017')){
-            return
-        }
-        const index = $(this).parent().attr("data-index")
-        const behospitalCode = tabList[index].behospitalCode
-        loading()
-        recordScore(behospitalCode,1)
-    })
-}
-function bindOperaAll(){
-    $('.scoreOpera').on("click", function(e){
-        const hasSelectAll = $('.scoreOpera').attr("data-selectall")
-        if(hasSelectAll == 'true'){
-
-            for(let i = 0; i < tabList.length; i++){
-                tabList[i].hasSelect = false
-            }
-        }else{
-            for(let i = 0; i < tabList.length; i++){
-                tabList[i].hasSelect = true
-            }
-        }
-        renderTab(tabList)
-    })
-}
 
 $('.selectDept').on("click", function(e){
     e.stopPropagation()
@@ -234,19 +303,6 @@ $('.selectDept').on("click", function(e){
     }
 })
 
-//获取科室列表
-// getDeptList()
-// function getDeptList(){
-//     post(api.getDeptList,{inputStr:""}).then(res =>{
-//         if(res.data.code == '0'){
-//            const  deptList = res.data.data
-//            rendeDeptList(deptList)
-//         }else{}
-//     }).catch((e) =>{
-
-//     })
-// }
-
 
 function rendeDeptList(deptList){
     let str = `<li class="deptItem " data-id=" " data-name="全部">全部</li>`

+ 4 - 0
src/js/api.js

@@ -52,9 +52,13 @@ const api = {
     entryCountGroupByCaseAndDeptPage:'/consoleByDept/entryCountGroupByCaseAndDeptPage',//模块缺陷占比明细(科室)
     entryCountGroupByEntryPage:'/console/entryCountGroupByEntryPage',//条目明细
     entryCountGroupByCasePage:'/console/entryCountGroupByCasePage',//模块缺陷占比明细
+    getAverageDayNumPage:'/console/getAverageDayNumPage',//住院天数详情
+    getAverageFeePage:'/console/getAverageFeePage',//花费详情
     delQcAnnormal:'/qc/abnormal/delQcAnnormal',//异常数据删除
     getQcAnnormal:'/qc/abnormal/getQcAnnormal',//异常数据查询
     saveQcAnnormal:'/qc/abnormal/saveQcAnnormal',//异常数据修改
+    resultStatisticsByDeptPage:'/console/resultStatisticsByDeptPage',//各科室缺陷占比排行(分页)
+    levelPercentGroupByDeptPage:'/console/levelPercentGroupByDeptPage',//甲级科室缺陷占比排行(分页)台州
 }
 
 module.exports = {

+ 126 - 3
src/js/console.js

@@ -8,12 +8,17 @@ require("../images/arrow_down.png")
 const {api} = require('./api.js')
 const echarts = require('echarts');
 const {post,setCookie,delCookie,getCookie} = require('../js/utils.js');
-let payMoney = [],dayLis = [],dateType = 2,slideType = 1;
+let payMoney = [],dayLis = [],dateType = 2,slideType = 1,hospital=getCookie("hospital");
 $(function(){
     if(!hasData('YH-KZT')){
         $("body").html('')
     }
-    $(".partTitle p span").html(getCookie("hospital"))
+    if(hospital == "台州市立"){
+        $(".part03 .partTitlePub .name").html('病案首页合格率')
+    }else{
+        $(".part03 .partTitlePub .name").html('各科室甲级病例占比')
+    }
+    $(".partTitle p span").html(hospital)
     setInterval(() => {
         getTimeDetail()
     }, 1000);
@@ -57,6 +62,15 @@ $(function(){
     getDetails()
 })
 function getDetails(){
+    $(".part02 .bingli,.part02 .bingliLis,.part03 .circle title").click(function(){
+        $(parent.document).find("#contentIframe").attr("src","deptScoreDetailControl.html")
+    })
+    $(".part03 .partTitlePub").click(function(){
+        $(parent.document).find("#contentIframe").attr("src",hospital=="台州市立"?"partDetailControl.html":"jiaji.html")
+    })
+    $(".paymoney .title").click(function(){
+        $(parent.document).find("#contentIframe").attr("src","dayDetail.html")
+    })
     $(".defect .partTitlePub").click(function(){//from 1 console / 2  deptConsole
         $(parent.document).find("#contentIframe").attr("src","mukuai.html?from=1&dateType="+dateType)
     })
@@ -192,7 +206,7 @@ function getBarData(type){
             }
         })
     }
-    if(hasData('FUNC000048')){
+    if(hasData('FUNC000048')&&hospital=="54545"){
         post(api.getLevelResultDept,{//各科室甲级占比
             "type": type||1//1月2年
         }).then((res)=>{
@@ -205,6 +219,23 @@ function getBarData(type){
                     dataY2.push(result2[i].firstPercent.replace('%',''))
                 }
                 lineChart(dataX2,dataY2)
+                lineChartSpecial(dataX2,dataY2)
+            }
+        })
+    }
+    if(hasData('FUNC000048')&&hospital=="台州市立"){
+        post(api.getAverageScore,{//病案首页
+            "type": type||1//1月2年
+        }).then((res)=>{
+            let data = res.data;
+            if(data.code == 0){
+                let result1 = data.data['各科室质控平均分']||[]
+                let dataX1=[],dataY1=[]
+                for(let i = 0;i < result1.length;i++){
+                    dataX1.push(result1[i].name)
+                    dataY1.push(result1[i].averageValue)
+                }
+                lineChartSpecial(dataX1,dataY1)
             }
         })
     }
@@ -507,6 +538,98 @@ function lineChart(dataX,dataY){
     };
     myCharts.setOption(option);
 }
+
+function lineChartSpecial(dataX,dataY){
+    var myCharts = echarts.init(document.getElementById('lineChart'));
+    var lengthNum = dataX.length;
+    $(window).resize(function(){
+        myCharts.resize()
+    });
+    option = {
+        color: ['#3398DB'],
+        tooltip: {
+            trigger: 'axis',
+            position: 'right',
+            axisPointer: {            // 坐标轴指示器,坐标轴触发有效
+                type: 'line'        // 默认为直线,可选为:'line' | 'shadow'
+            }
+        },
+        grid: {
+            left: '3%',
+            right: '4%',
+            bottom: '3%',
+            containLabel: true
+        },
+        xAxis: [
+            {
+                type: 'category',
+                data: dataX,
+                axisTick: {
+                    alignWithLabel: true
+                },
+                axisLabel: {//x轴刻度
+                    textStyle: {
+                        color: '#333'
+                    },
+                    rotate:45,
+                    formatter: function (value) {
+                        //x轴的文字改为竖版显示
+                        if(value.length>7){
+                            return value.slice(0,7)+'...'
+                        }
+                        return value;
+                     }
+                },
+                axisLine: {//x轴
+                    lineStyle:{
+                        color:'#AAAAAA'
+                    }
+                }
+            }
+        ],
+        yAxis: [
+            {
+                type: 'value',
+                axisLine: {//y轴
+                    show: false
+                },
+                axisTick: {
+                    show: false
+                },
+                axisLabel: {//y轴刻度
+                    textStyle: {
+                        color: '#333333'
+                    }
+                },
+                splitLine:{//分割线
+                    lineStyle:{
+                        color:'#EFF3FC'
+                    }
+                }
+            }
+            
+        ],
+        title:[{
+            text: '合格率',
+            top: 15,
+            left: 10,
+            textStyle: {
+                fontSize: 14,
+                color:'#666666',
+                fontWeight: 400
+            }
+        }],
+        series: [
+            {
+                name: '质控平均分',
+                type: 'bar',
+                barWidth: '23%',
+                data: dataY
+            }
+        ]
+    };
+    myCharts.setOption(option);
+}
 //柱状图住院费用
 function barChartPay(dataX,dataY){
     var myCharts = echarts.init(document.getElementById('barChartPay'));

+ 525 - 0
src/js/dayDetail.js

@@ -0,0 +1,525 @@
+const $ = require('jquery');
+require("../css/dayDetail.less");
+require('./modal.js');
+const {api} = require('./api.js')
+const {post,getCookie} = 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  iconCalenBlue= require("./../images/icon_calen_blue.png")
+const  iconCalenGrey= require("./../images/icon_calen_grey.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")
+
+$(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,statisticsType=2,
+  nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
+  data_desc=[],data_asc=[];
+$(".abnormalClear").click(function(){
+    $(".patientNumInp").val("")
+})
+$('.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()
+})
+$('.recordScoreBtn').css("opacity",hasData('FUNC000017')?'1':'0.5')
+dateChange()
+//所有数据切换日期筛选
+function dateChange(){
+    $(".monthYear .mon").click(function(){
+        $(this).css({
+            backgroundColor:'#5A8EEE',
+            color:'#fff'
+        }).siblings().css({
+            color:'#5A8EEE',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","block")
+        $(".dayDetail .dayFilter").css("display","none")
+        statisticsType = 1
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#5A8EEE',
+            color:'#fff'
+        }).siblings().css({
+            color:'#5A8EEE',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","none")
+        $(".dayDetail .dayFilter").css("display","block")
+        statisticsType = 2
+        getTabData(1)
+    })
+}
+//判断有无某一权限
+  function hasData(data){
+    let trdObj = JSON.parse(getCookie("trdObj"))
+    let lis = trdObj['YH-BLZK-ZKPF']
+    if(!lis){
+      return false
+    }
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+}
+function getTabData(activePage){
+    const param = {
+        current:activePage,
+        size: 15,
+        name: behospitalCode||"",
+        type: statisticsType||2, //1-本月,2-本年
+        dateType: level||1,//(3-上月,4-去年本月,5-去年(必填))
+    }
+    post(api.getAverageDayNumPage,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(tabList,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)
+
+$(".filter").on("click", function(e){
+    name = nameTemp
+    behospitalCode = behospitalCodeTemp
+    level = levelTemp
+    deptId = deptIdTemp
+    getTabData(1)
+})
+function renderTab(data,hisId,activePage){
+    let str = ``
+    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.name || "-"}</td>
+                <td >${item.averageValue || "-"}</td>
+            </tr>
+        `
+    }
+    $('tbody').html(str)
+    bindScoreDetail(hisId)
+}
+
+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, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//保存修改
+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, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//选择病历等级
+$('.selectLevel').on("click", function(e){
+    e.stopPropagation()
+    $(".deptList ").css("display", "none")
+    $(".selectDept .arrow").attr("src",iconDown)
+    const showList =  $(".levelList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".levelList ").css("display","block")
+        $(".selectLevel .arrow").attr("src",iconUp)
+    }else{
+        $(".levelList ").css("display", "none")
+        $(".selectLevel .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("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)
+    }
+})
+
+
+function rendeDeptList(deptList){
+    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("click",function(){
+        const deptItemName = $(this).attr("data-name")
+        const deptItemId = $(this).attr("data-id")
+        deptIdTemp =deptItemId
+        if(deptItemName.length > 10){
+            $('.selectDept').html(deptItemName.substring(0,8)+'...')
+        }else{
+            $('.selectDept').html(deptItemName)
+        }
+        $('.selectDept ').attr('title',deptItemName)
+        $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".deptList").css("display", "none")
+    })
+}
+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')){
+        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)
+        }
+    }
+})
+$("th[code]").on("click",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);
+});
+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() {
+    $.datepicker.regional['zh-CN'] = {
+    clearText: '清除',
+    clearStatus: '清除已选e799bee5baa6e59b9ee7ad9431333361303131日期',
+    closeText: '关闭',
+    closeStatus: '不改变当前选择',
+    prevText: '<上月',
+    prevStatus: '显示上月',
+    prevBigText: '<<',
+    prevBigStatus: '显示上一年',
+    nextText: '下月>',
+    nextStatus: '显示下月',
+    nextBigText: '>>',
+    nextBigStatus: '显示下一年',
+    currentText: '今天',
+    currentStatus: '显示本月',
+    monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    yearNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    monthStatus: '选择月份',
+    yearStatus: '选择年份',
+    weekHeader: '周',
+    weekStatus: '年内周次',
+    dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
+    dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
+    dayNamesMin: ['日','一','二','三','四','五','六'],
+    dayStatus: '设置 DD 为一周起始',
+    dateStatus: '选择 m月 d日, DD',
+    dateFormat: 'yy-mm-dd',
+    firstDay: 1,
+    initStatus: '请选择日期',
+    isRTL: false};
+    $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
+
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    });
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    });
+});
+
+//分页渲染
+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")
+    $(".deptList").css("display", "none")
+    $(".selectLevel .arrow").attr("src",iconDown)
+    
+})
+
+$((function($){
+})($));

+ 525 - 0
src/js/deptScoreDetail.js

@@ -0,0 +1,525 @@
+const $ = require('jquery');
+require("../css/deptScoreDetail.less");
+require('./modal.js');
+const {api} = require('./api.js')
+const {post,getCookie} = 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  iconCalenBlue= require("./../images/icon_calen_blue.png")
+const  iconCalenGrey= require("./../images/icon_calen_grey.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")
+
+$(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,statisticsType=2,
+  nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
+  data_desc=[],data_asc=[];
+$(".abnormalClear").click(function(){
+    $(".patientNumInp").val("")
+})
+$('.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()
+})
+$('.recordScoreBtn').css("opacity",hasData('FUNC000017')?'1':'0.5')
+dateChange()
+//所有数据切换日期筛选
+function dateChange(){
+    $(".monthYear .mon").click(function(){
+        $(this).css({
+            backgroundColor:'#5A8EEE',
+            color:'#fff'
+        }).siblings().css({
+            color:'#5A8EEE',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","block")
+        $(".dayDetail .dayFilter").css("display","none")
+        statisticsType = 1
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#5A8EEE',
+            color:'#fff'
+        }).siblings().css({
+            color:'#5A8EEE',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","none")
+        $(".dayDetail .dayFilter").css("display","block")
+        statisticsType = 2
+        getTabData(1)
+    })
+}
+//判断有无某一权限
+  function hasData(data){
+    let trdObj = JSON.parse(getCookie("trdObj"))
+    let lis = trdObj['YH-BLZK-ZKPF']
+    if(!lis){
+      return false
+    }
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+}
+function getTabData(activePage){
+    const param = {
+        current:activePage,
+        size: 15,
+        name: behospitalCode||"",
+        type: statisticsType||2, //1-本月,2-本年
+        dateType: level||1,//(3-上月,4-去年本月,5-去年(必填))
+    }
+    post(api.getAverageDayNumPage,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(tabList,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)
+
+$(".filter").on("click", function(e){
+    name = nameTemp
+    behospitalCode = behospitalCodeTemp
+    level = levelTemp
+    deptId = deptIdTemp
+    getTabData(1)
+})
+function renderTab(data,hisId,activePage){
+    let str = ``
+    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.name || "-"}</td>
+                <td >${item.averageValue || "-"}</td>
+            </tr>
+        `
+    }
+    $('tbody').html(str)
+    bindScoreDetail(hisId)
+}
+
+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, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//保存修改
+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, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//选择病历等级
+$('.selectLevel').on("click", function(e){
+    e.stopPropagation()
+    $(".deptList ").css("display", "none")
+    $(".selectDept .arrow").attr("src",iconDown)
+    const showList =  $(".levelList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".levelList ").css("display","block")
+        $(".selectLevel .arrow").attr("src",iconUp)
+    }else{
+        $(".levelList ").css("display", "none")
+        $(".selectLevel .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("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)
+    }
+})
+
+
+function rendeDeptList(deptList){
+    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("click",function(){
+        const deptItemName = $(this).attr("data-name")
+        const deptItemId = $(this).attr("data-id")
+        deptIdTemp =deptItemId
+        if(deptItemName.length > 10){
+            $('.selectDept').html(deptItemName.substring(0,8)+'...')
+        }else{
+            $('.selectDept').html(deptItemName)
+        }
+        $('.selectDept ').attr('title',deptItemName)
+        $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".deptList").css("display", "none")
+    })
+}
+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')){
+        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)
+        }
+    }
+})
+$("th[code]").on("click",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);
+});
+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() {
+    $.datepicker.regional['zh-CN'] = {
+    clearText: '清除',
+    clearStatus: '清除已选e799bee5baa6e59b9ee7ad9431333361303131日期',
+    closeText: '关闭',
+    closeStatus: '不改变当前选择',
+    prevText: '<上月',
+    prevStatus: '显示上月',
+    prevBigText: '<<',
+    prevBigStatus: '显示上一年',
+    nextText: '下月>',
+    nextStatus: '显示下月',
+    nextBigText: '>>',
+    nextBigStatus: '显示下一年',
+    currentText: '今天',
+    currentStatus: '显示本月',
+    monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    yearNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    monthStatus: '选择月份',
+    yearStatus: '选择年份',
+    weekHeader: '周',
+    weekStatus: '年内周次',
+    dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
+    dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
+    dayNamesMin: ['日','一','二','三','四','五','六'],
+    dayStatus: '设置 DD 为一周起始',
+    dateStatus: '选择 m月 d日, DD',
+    dateFormat: 'yy-mm-dd',
+    firstDay: 1,
+    initStatus: '请选择日期',
+    isRTL: false};
+    $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
+
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    });
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    });
+});
+
+//分页渲染
+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")
+    $(".deptList").css("display", "none")
+    $(".selectLevel .arrow").attr("src",iconDown)
+    
+})
+
+$((function($){
+})($));

+ 525 - 0
src/js/deptScoreDetailControl.js

@@ -0,0 +1,525 @@
+const $ = require('jquery');
+require("../css/deptScoreDetailControl.less");
+require('./modal.js');
+const {api} = require('./api.js')
+const {post,getCookie} = 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  iconCalenBlue= require("./../images/icon_calen_blue.png")
+const  iconCalenGrey= require("./../images/icon_calen_grey.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")
+
+$(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,statisticsType=2,
+  nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
+  data_desc=[],data_asc=[];
+$(".abnormalClear").click(function(){
+    $(".patientNumInp").val("")
+})
+$('.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()
+})
+$('.recordScoreBtn').css("opacity",hasData('FUNC000017')?'1':'0.5')
+dateChange()
+//所有数据切换日期筛选
+function dateChange(){
+    $(".monthYear .mon").click(function(){
+        $(this).css({
+            backgroundColor:'#5A8EEE',
+            color:'#fff'
+        }).siblings().css({
+            color:'#5A8EEE',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","block")
+        $(".dayDetail .dayFilter").css("display","none")
+        statisticsType = 1
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#5A8EEE',
+            color:'#fff'
+        }).siblings().css({
+            color:'#5A8EEE',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","none")
+        $(".dayDetail .dayFilter").css("display","block")
+        statisticsType = 2
+        getTabData(1)
+    })
+}
+//判断有无某一权限
+  function hasData(data){
+    let trdObj = JSON.parse(getCookie("trdObj"))
+    let lis = trdObj['YH-BLZK-ZKPF']
+    if(!lis){
+      return false
+    }
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+}
+function getTabData(activePage){
+    const param = {
+        current:activePage,
+        size: 15,
+        name: behospitalCode||"",
+        type: statisticsType||2, //1-本月,2-本年
+        dateType: level||1,//(3-上月,4-去年本月,5-去年(必填))
+    }
+    post(api.resultStatisticsByDeptPage,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(tabList,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)
+
+$(".filter").on("click", function(e){
+    name = nameTemp
+    behospitalCode = behospitalCodeTemp
+    level = levelTemp
+    deptId = deptIdTemp
+    getTabData(1)
+})
+function renderTab(data,hisId,activePage){
+    let str = ``
+    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.name || "-"}</td>
+                <td >${item.averageValue || "-"}</td>
+            </tr>
+        `
+    }
+    $('tbody').html(str)
+    bindScoreDetail(hisId)
+}
+
+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, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//保存修改
+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, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//选择病历等级
+$('.selectLevel').on("click", function(e){
+    e.stopPropagation()
+    $(".deptList ").css("display", "none")
+    $(".selectDept .arrow").attr("src",iconDown)
+    const showList =  $(".levelList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".levelList ").css("display","block")
+        $(".selectLevel .arrow").attr("src",iconUp)
+    }else{
+        $(".levelList ").css("display", "none")
+        $(".selectLevel .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("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)
+    }
+})
+
+
+function rendeDeptList(deptList){
+    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("click",function(){
+        const deptItemName = $(this).attr("data-name")
+        const deptItemId = $(this).attr("data-id")
+        deptIdTemp =deptItemId
+        if(deptItemName.length > 10){
+            $('.selectDept').html(deptItemName.substring(0,8)+'...')
+        }else{
+            $('.selectDept').html(deptItemName)
+        }
+        $('.selectDept ').attr('title',deptItemName)
+        $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".deptList").css("display", "none")
+    })
+}
+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')){
+        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)
+        }
+    }
+})
+$("th[code]").on("click",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);
+});
+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() {
+    $.datepicker.regional['zh-CN'] = {
+    clearText: '清除',
+    clearStatus: '清除已选e799bee5baa6e59b9ee7ad9431333361303131日期',
+    closeText: '关闭',
+    closeStatus: '不改变当前选择',
+    prevText: '<上月',
+    prevStatus: '显示上月',
+    prevBigText: '<<',
+    prevBigStatus: '显示上一年',
+    nextText: '下月>',
+    nextStatus: '显示下月',
+    nextBigText: '>>',
+    nextBigStatus: '显示下一年',
+    currentText: '今天',
+    currentStatus: '显示本月',
+    monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    yearNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    monthStatus: '选择月份',
+    yearStatus: '选择年份',
+    weekHeader: '周',
+    weekStatus: '年内周次',
+    dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
+    dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
+    dayNamesMin: ['日','一','二','三','四','五','六'],
+    dayStatus: '设置 DD 为一周起始',
+    dateStatus: '选择 m月 d日, DD',
+    dateFormat: 'yy-mm-dd',
+    firstDay: 1,
+    initStatus: '请选择日期',
+    isRTL: false};
+    $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
+
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    });
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    });
+});
+
+//分页渲染
+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")
+    $(".deptList").css("display", "none")
+    $(".selectLevel .arrow").attr("src",iconDown)
+    
+})
+
+$((function($){
+})($));

+ 525 - 0
src/js/jiaji.js

@@ -0,0 +1,525 @@
+const $ = require('jquery');
+require("../css/jiaji.less");
+require('./modal.js');
+const {api} = require('./api.js')
+const {post,getCookie} = 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  iconCalenBlue= require("./../images/icon_calen_blue.png")
+const  iconCalenGrey= require("./../images/icon_calen_grey.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")
+
+$(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,statisticsType=2,
+  nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
+  data_desc=[],data_asc=[];
+$(".abnormalClear").click(function(){
+    $(".patientNumInp").val("")
+})
+$('.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()
+})
+$('.recordScoreBtn').css("opacity",hasData('FUNC000017')?'1':'0.5')
+dateChange()
+//所有数据切换日期筛选
+function dateChange(){
+    $(".monthYear .mon").click(function(){
+        $(this).css({
+            backgroundColor:'#5A8EEE',
+            color:'#fff'
+        }).siblings().css({
+            color:'#5A8EEE',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","block")
+        $(".dayDetail .dayFilter").css("display","none")
+        statisticsType = 1
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#5A8EEE',
+            color:'#fff'
+        }).siblings().css({
+            color:'#5A8EEE',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","none")
+        $(".dayDetail .dayFilter").css("display","block")
+        statisticsType = 2
+        getTabData(1)
+    })
+}
+//判断有无某一权限
+  function hasData(data){
+    let trdObj = JSON.parse(getCookie("trdObj"))
+    let lis = trdObj['YH-BLZK-ZKPF']
+    if(!lis){
+      return false
+    }
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+}
+function getTabData(activePage){
+    const param = {
+        current:activePage,
+        size: 15,
+        name: behospitalCode||"",
+        type: statisticsType||2, //1-本月,2-本年
+        dateType: level||"",//(3-上月,4-去年本月,5-去年(必填))
+    }
+    post(api.levelPercentGroupByDeptPage,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(tabList,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)
+
+$(".filter").on("click", function(e){
+    name = nameTemp
+    behospitalCode = behospitalCodeTemp
+    level = levelTemp
+    deptId = deptIdTemp
+    getTabData(1)
+})
+function renderTab(data,hisId,activePage){
+    let str = ``
+    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.firstPercent || "-"}</td>
+            </tr>
+        `
+    }
+    $('tbody').html(str)
+    bindScoreDetail(hisId)
+}
+
+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, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//保存修改
+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, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//选择病历等级
+$('.selectLevel').on("click", function(e){
+    e.stopPropagation()
+    $(".deptList ").css("display", "none")
+    $(".selectDept .arrow").attr("src",iconDown)
+    const showList =  $(".levelList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".levelList ").css("display","block")
+        $(".selectLevel .arrow").attr("src",iconUp)
+    }else{
+        $(".levelList ").css("display", "none")
+        $(".selectLevel .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("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)
+    }
+})
+
+
+function rendeDeptList(deptList){
+    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("click",function(){
+        const deptItemName = $(this).attr("data-name")
+        const deptItemId = $(this).attr("data-id")
+        deptIdTemp =deptItemId
+        if(deptItemName.length > 10){
+            $('.selectDept').html(deptItemName.substring(0,8)+'...')
+        }else{
+            $('.selectDept').html(deptItemName)
+        }
+        $('.selectDept ').attr('title',deptItemName)
+        $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".deptList").css("display", "none")
+    })
+}
+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')){
+        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)
+        }
+    }
+})
+$("th[code]").on("click",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);
+});
+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() {
+    $.datepicker.regional['zh-CN'] = {
+    clearText: '清除',
+    clearStatus: '清除已选e799bee5baa6e59b9ee7ad9431333361303131日期',
+    closeText: '关闭',
+    closeStatus: '不改变当前选择',
+    prevText: '<上月',
+    prevStatus: '显示上月',
+    prevBigText: '<<',
+    prevBigStatus: '显示上一年',
+    nextText: '下月>',
+    nextStatus: '显示下月',
+    nextBigText: '>>',
+    nextBigStatus: '显示下一年',
+    currentText: '今天',
+    currentStatus: '显示本月',
+    monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    yearNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    monthStatus: '选择月份',
+    yearStatus: '选择年份',
+    weekHeader: '周',
+    weekStatus: '年内周次',
+    dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
+    dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
+    dayNamesMin: ['日','一','二','三','四','五','六'],
+    dayStatus: '设置 DD 为一周起始',
+    dateStatus: '选择 m月 d日, DD',
+    dateFormat: 'yy-mm-dd',
+    firstDay: 1,
+    initStatus: '请选择日期',
+    isRTL: false};
+    $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
+
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    });
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    });
+});
+
+//分页渲染
+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")
+    $(".deptList").css("display", "none")
+    $(".selectLevel .arrow").attr("src",iconDown)
+    
+})
+
+$((function($){
+})($));

+ 1 - 30
src/js/moduleManager.js

@@ -30,35 +30,6 @@ function getTabData(){
     })
 }
 getTabData()
-// const data = [
-//     {
-//         name: '入院记录',
-//         score: 10
-//     },
-//     {
-//         name: '入院记录',
-//         score: 10
-//     },
-//     {
-//         name: '入院记录',
-//         score: 10
-//     },{
-//         name: '入院记录',
-//         score: 10
-//     }
-//     ,{
-//         name: '入院记录',
-//         score: 10
-//     }
-//     ,{
-//         name: '入院记录',
-//         score: 10
-//     },
-//     {
-//         name: '入院记录',
-//         score: 10
-//     }
-// ]
 
 function renderTab(){
     let  str = ``;
@@ -93,7 +64,7 @@ function bindModuleOpera(){
         return
     }
     $(".moduleOperaItem").on("click", function(e){
-        const index = $(this).parent().attr('data-index') 
+        const index = $(this).parent().attr('data-index')
         const item = data[index]
         midifyMsgBox(item)
     })

+ 1 - 1
src/js/mukuai.js

@@ -19,7 +19,7 @@ $(".selectUsed").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(function(){
     dateChange()
     let srcUrl = $("#contentIframe",parent.document).attr("src")
-    isReject = getUrlArgObjectNew("dateType",srcUrl)||2
+    isReject = 2||getUrlArgObjectNew("dateType",srcUrl)
     deptName = getUrlArgObjectNew("deptName",srcUrl)||""
     from = getUrlArgObjectNew("from",srcUrl)||""
     console.log(from,'ssssssssssssssssss')

+ 160 - 126
src/js/partDetail.js

@@ -17,10 +17,12 @@ const arrowRight = require("./../images/arrow_right.png")
 
 $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
-let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,
+let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,statisticsType=2,
   nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
   data_desc=[],data_asc=[];
-
+$(".abnormalClear").click(function(){
+    $(".patientNumInp").val("")
+})
 $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
 $('.iconCalen').on("mouseenter", function(e){
     $(this).attr("src", iconCalenBlue)
@@ -32,7 +34,36 @@ $('.iconCalen').on("click", function(e){
     $(this).parent().find("input").focus()
 })
 $('.recordScoreBtn').css("opacity",hasData('FUNC000017')?'1':'0.5')
-
+dateChange()
+//所有数据切换日期筛选
+function dateChange(){
+    $(".monthYear .mon").click(function(){
+        $(this).css({
+            backgroundColor:'#5A8EEE',
+            color:'#fff'
+        }).siblings().css({
+            color:'#5A8EEE',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","block")
+        $(".dayDetail .dayFilter").css("display","none")
+        statisticsType = 1
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#5A8EEE',
+            color:'#fff'
+        }).siblings().css({
+            color:'#5A8EEE',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","none")
+        $(".dayDetail .dayFilter").css("display","block")
+        statisticsType = 2
+        getTabData(1)
+    })
+}
 //判断有无某一权限
   function hasData(data){
     let trdObj = JSON.parse(getCookie("trdObj"))
@@ -48,25 +79,18 @@ $('.recordScoreBtn').css("opacity",hasData('FUNC000017')?'1':'0.5')
 function getTabData(activePage){
     const param = {
         current:activePage,
-        behospitalCode: behospitalCode,
-        name: name, //条目名
-        level:level,//病历等级
-        deptId: deptId,
-        asc:data_asc,     //升序
-        desc:data_desc,       //降序
-        doctorName: doctorName,
-        doctorCode: doctorNum,
-        behosDateStart: behosDateStart, //1-单项否决 0-非
-        behosDateEnd: behosDateEnd, //0-未启用 1-启用
-        size: 15
+        size: 15,
+        name: behospitalCode||"",
+        type: statisticsType||2, //1-本月,2-本年
+        dateType: level||"",//(3-上月,4-去年本月,5-去年(必填))
     }
-    post(api.qcList,param).then(res =>{
+    post(api.getAverageFeePage,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(tabList,data.hospitalId);
+            renderTab(tabList,data.hospitalId,activePage);
             renderPagination(totalPage,Number(activePage),totalNum)
             if(totalPage > 1){
                 renderPagination(totalPage,Number(activePage),totalNum)
@@ -84,71 +108,25 @@ function getTabData(activePage){
 getTabData(1)
 
 $(".filter").on("click", function(e){
-    behosDateStart = $("#datepicker").val().trim()
-    behosDateEnd = $("#datepicker2").val().trim()
-    const start = new Date(behosDateStart).getTime()
-    const end = new Date(behosDateEnd).getTime()
-    if(start > end){
-        $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
-        return
-    }
-    if(behosDateStart){
-        behosDateStart = behosDateStart.replace(/\//g,'-') + ' 00:00:00'
-    }
-    if(behosDateEnd){
-        behosDateEnd = behosDateEnd.replace(/\//g,'-') + ' 23:59:59'
-    }
     name = nameTemp
     behospitalCode = behospitalCodeTemp
     level = levelTemp
     deptId = deptIdTemp
-    doctorName = doctorNameTemp
-    doctorNum = doctorNumTemp
     getTabData(1)
 })
-function renderTab(data,hisId){
+function renderTab(data,hisId,activePage){
     let str = ``
-    let hasSelectAll = true
     for(let i = 0; i < data.length; i++){
         const item = data[i]
-        if(!item.hasSelect){
-            hasSelectAll = false
-        }
         str += `
             <tr  data-index=${i}>
-                <td class="scoreOperaItem textCenter">${item.hasSelect ? `<img class="iconCheck" src=${iconCheck} />`:`<img class="iconCheck" src=${iconUnCheck} />`}</td>
-                <td  class="recordScoreOperaBtn textCenter" style="opacity:${hasData('FUNC000017')?'1':'0.5'}">评分</td>
-                <td >${item.behospitalCode || "-"}</td>
-                <td>${item.fileCode || "-"}</td>
-                <td  class="textCenter"><span data-index=${i} class="patientNameSpan">${item.name || "-"}<span></td>
-                <td  class="textCenter">${item.sex || "-"}</td>
-                <td  class="textCenter">${item.age || "-"}</td>
-                <td  class="textCenter">${item.bedCode || "-"}</td>
-                <td  class="textCenter">${item.behospitalDate&&item.behospitalDate.slice(0,10) || "-"}</td>
-                <td  class="textCenter">${item.leaveHospitalDate&&item.leaveHospitalDate.slice(0,10)|| "-"}</td>
-                <td  class="textCenter">${item.behDoctorName   || "-"}</td>
-                <td  class="textCenter">${item.doctorName || "-"}</td>
-                <td  class="textCenter">${item.directorDoctorName || "-"}</td>
-                <td  class="textCenter">${item.behDeptName || "-"}</td>
-                <td  class="textCenter">${item.level || "-"}</td>
-                <td  class="textCenter">${item.scoreRes || "-"}</td>
-                <td  class="textCenter">${item.gradeTime&&item.gradeTime.slice(0,10) || "-"}</td>
+                <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
+                <td>${item.name || "-"}</td>
+                <td >${item.averageValue || "-"}</td>
             </tr>
         `
     }
-    if(data.length === 0){
-        hasSelectAll = false
-    }
-    if(hasSelectAll){
-        $('.scoreOpera img').attr("src" ,iconCheck)
-        $('.scoreOpera').attr("data-selectall",true)
-    }else{
-        $('.scoreOpera img').attr("src" ,iconUnCheck)
-        $('.scoreOpera').attr("data-selectall",false)
-    }
     $('tbody').html(str)
-    bindScoreOperaItem()
-    bindRecordScoreOper()
     bindScoreDetail(hisId)
 }
 
@@ -158,19 +136,124 @@ function scoreDetail(id,age,hid,code){
 function bindScoreDetail(hisId){
     $('.patientNameSpan').on('click',function(e){
         const index = $(this).attr("data-index")
-        const id = tabList[index].behospitalCode
-        const age = tabList[index].age;
-        const noScore = tabList[index].level == '未评分'
-        if(noScore){
-            $.alerModal({"message":'请先进行评分!',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
-            return
-        } else{
-            scoreDetail(id,age,hisId,'YH-BLZK-ZKPF')
-        }
-       
+        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, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//保存修改
+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, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
 //选择病历等级
 $('.selectLevel').on("click", function(e){
     e.stopPropagation()
@@ -200,41 +283,6 @@ function bindLeveldSelect(){
 }
 
 //全选绑定
-bindOperaAll()
-function bindScoreOperaItem(){
-    $(".scoreOperaItem").on("click",  function(e){
-        const index = $(this).parent().attr("data-index")
-        tabList[index].hasSelect = tabList[index].hasSelect ? false:true
-        renderTab(tabList)
-    })
-}
-function bindRecordScoreOper(){
-    $(".recordScoreOperaBtn").on("click",  function(e){
-        if(!hasData('FUNC000017')){
-            return
-        }
-        const index = $(this).parent().attr("data-index")
-        const behospitalCode = tabList[index].behospitalCode
-        loading()
-        recordScore(behospitalCode,1)
-    })
-}
-function bindOperaAll(){
-    $('.scoreOpera').on("click", function(e){
-        const hasSelectAll = $('.scoreOpera').attr("data-selectall")
-        if(hasSelectAll == 'true'){
-
-            for(let i = 0; i < tabList.length; i++){
-                tabList[i].hasSelect = false
-            }
-        }else{
-            for(let i = 0; i < tabList.length; i++){
-                tabList[i].hasSelect = true
-            }
-        }
-        renderTab(tabList)
-    })
-}
 
 $('.selectDept').on("click", function(e){
     e.stopPropagation()
@@ -250,19 +298,6 @@ $('.selectDept').on("click", function(e){
     }
 })
 
-//获取科室列表
-getDeptList()
-function getDeptList(){
-    post(api.getDeptList,{inputStr:""}).then(res =>{
-        if(res.data.code == '0'){
-           const  deptList = res.data.data
-           rendeDeptList(deptList)
-        }else{}
-    }).catch((e) =>{
-
-    })
-}
-
 
 function rendeDeptList(deptList){
     let str = `<li class="deptItem " data-id=" " data-name="全部">全部</li>`
@@ -270,8 +305,8 @@ function rendeDeptList(deptList){
         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()
 }
+bindDeptSelect()
 //科室选择
 function bindDeptSelect(){
     $('.deptItem').on("click",function(){
@@ -335,7 +370,6 @@ $("th[code]").on("click",function(e){
       $(this).addClass("asc");
     }
     getTabData(1);
-    console.log(code)
 });
 function recordScore(behospitalCode,totalNum){
     const param = {

+ 525 - 0
src/js/partDetailControl.js

@@ -0,0 +1,525 @@
+const $ = require('jquery');
+require("../css/partDetailControl.less");
+require('./modal.js');
+const {api} = require('./api.js')
+const {post,getCookie} = 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  iconCalenBlue= require("./../images/icon_calen_blue.png")
+const  iconCalenGrey= require("./../images/icon_calen_grey.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")
+
+$(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,statisticsType=2,
+  nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
+  data_desc=[],data_asc=[];
+$(".abnormalClear").click(function(){
+    $(".patientNumInp").val("")
+})
+$('.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()
+})
+$('.recordScoreBtn').css("opacity",hasData('FUNC000017')?'1':'0.5')
+dateChange()
+//所有数据切换日期筛选
+function dateChange(){
+    $(".monthYear .mon").click(function(){
+        $(this).css({
+            backgroundColor:'#5A8EEE',
+            color:'#fff'
+        }).siblings().css({
+            color:'#5A8EEE',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","block")
+        $(".dayDetail .dayFilter").css("display","none")
+        statisticsType = 1
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#5A8EEE',
+            color:'#fff'
+        }).siblings().css({
+            color:'#5A8EEE',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","none")
+        $(".dayDetail .dayFilter").css("display","block")
+        statisticsType = 2
+        getTabData(1)
+    })
+}
+//判断有无某一权限
+  function hasData(data){
+    let trdObj = JSON.parse(getCookie("trdObj"))
+    let lis = trdObj['YH-BLZK-ZKPF']
+    if(!lis){
+      return false
+    }
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+}
+function getTabData(activePage){
+    const param = {
+        current:activePage,
+        size: 15,
+        name: behospitalCode||"",
+        type: statisticsType||2, //1-本月,2-本年
+        dateType: level||"",//(3-上月,4-去年本月,5-去年(必填))
+    }
+    post(api.getAverageFeePage,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(tabList,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)
+
+$(".filter").on("click", function(e){
+    name = nameTemp
+    behospitalCode = behospitalCodeTemp
+    level = levelTemp
+    deptId = deptIdTemp
+    getTabData(1)
+})
+function renderTab(data,hisId,activePage){
+    let str = ``
+    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.name || "-"}</td>
+                <td >${item.averageValue || "-"}</td>
+            </tr>
+        `
+    }
+    $('tbody').html(str)
+    bindScoreDetail(hisId)
+}
+
+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, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//保存修改
+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, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//选择病历等级
+$('.selectLevel').on("click", function(e){
+    e.stopPropagation()
+    $(".deptList ").css("display", "none")
+    $(".selectDept .arrow").attr("src",iconDown)
+    const showList =  $(".levelList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".levelList ").css("display","block")
+        $(".selectLevel .arrow").attr("src",iconUp)
+    }else{
+        $(".levelList ").css("display", "none")
+        $(".selectLevel .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("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)
+    }
+})
+
+
+function rendeDeptList(deptList){
+    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("click",function(){
+        const deptItemName = $(this).attr("data-name")
+        const deptItemId = $(this).attr("data-id")
+        deptIdTemp =deptItemId
+        if(deptItemName.length > 10){
+            $('.selectDept').html(deptItemName.substring(0,8)+'...')
+        }else{
+            $('.selectDept').html(deptItemName)
+        }
+        $('.selectDept ').attr('title',deptItemName)
+        $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".deptList").css("display", "none")
+    })
+}
+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')){
+        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)
+        }
+    }
+})
+$("th[code]").on("click",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);
+});
+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() {
+    $.datepicker.regional['zh-CN'] = {
+    clearText: '清除',
+    clearStatus: '清除已选e799bee5baa6e59b9ee7ad9431333361303131日期',
+    closeText: '关闭',
+    closeStatus: '不改变当前选择',
+    prevText: '<上月',
+    prevStatus: '显示上月',
+    prevBigText: '<<',
+    prevBigStatus: '显示上一年',
+    nextText: '下月>',
+    nextStatus: '显示下月',
+    nextBigText: '>>',
+    nextBigStatus: '显示下一年',
+    currentText: '今天',
+    currentStatus: '显示本月',
+    monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    yearNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    monthStatus: '选择月份',
+    yearStatus: '选择年份',
+    weekHeader: '周',
+    weekStatus: '年内周次',
+    dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
+    dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
+    dayNamesMin: ['日','一','二','三','四','五','六'],
+    dayStatus: '设置 DD 为一周起始',
+    dateStatus: '选择 m月 d日, DD',
+    dateFormat: 'yy-mm-dd',
+    firstDay: 1,
+    initStatus: '请选择日期',
+    isRTL: false};
+    $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
+
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    });
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    });
+});
+
+//分页渲染
+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")
+    $(".deptList").css("display", "none")
+    $(".selectLevel .arrow").attr("src",iconDown)
+    
+})
+
+$((function($){
+})($));

+ 525 - 0
src/js/payDetail.js

@@ -0,0 +1,525 @@
+const $ = require('jquery');
+require("../css/payDetail.less");
+require('./modal.js');
+const {api} = require('./api.js')
+const {post,getCookie} = 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  iconCalenBlue= require("./../images/icon_calen_blue.png")
+const  iconCalenGrey= require("./../images/icon_calen_grey.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")
+
+$(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,statisticsType=2,
+  nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
+  data_desc=[],data_asc=[];
+$(".abnormalClear").click(function(){
+    $(".patientNumInp").val("")
+})
+$('.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()
+})
+$('.recordScoreBtn').css("opacity",hasData('FUNC000017')?'1':'0.5')
+dateChange()
+//所有数据切换日期筛选
+function dateChange(){
+    $(".monthYear .mon").click(function(){
+        $(this).css({
+            backgroundColor:'#5A8EEE',
+            color:'#fff'
+        }).siblings().css({
+            color:'#5A8EEE',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","block")
+        $(".dayDetail .dayFilter").css("display","none")
+        statisticsType = 1
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#5A8EEE',
+            color:'#fff'
+        }).siblings().css({
+            color:'#5A8EEE',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","none")
+        $(".dayDetail .dayFilter").css("display","block")
+        statisticsType = 2
+        getTabData(1)
+    })
+}
+//判断有无某一权限
+  function hasData(data){
+    let trdObj = JSON.parse(getCookie("trdObj"))
+    let lis = trdObj['YH-BLZK-ZKPF']
+    if(!lis){
+      return false
+    }
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+}
+function getTabData(activePage){
+    const param = {
+        current:activePage,
+        size: 15,
+        name: behospitalCode||"",
+        type: statisticsType||2, //1-本月,2-本年
+        dateType: level||"",//(3-上月,4-去年本月,5-去年(必填))
+    }
+    post(api.getAverageFeePage,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(tabList,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)
+
+$(".filter").on("click", function(e){
+    name = nameTemp
+    behospitalCode = behospitalCodeTemp
+    level = levelTemp
+    deptId = deptIdTemp
+    getTabData(1)
+})
+function renderTab(data,hisId,activePage){
+    let str = ``
+    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.name || "-"}</td>
+                <td >${item.averageValue || "-"}</td>
+            </tr>
+        `
+    }
+    $('tbody').html(str)
+    bindScoreDetail(hisId)
+}
+
+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, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//保存修改
+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, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//选择病历等级
+$('.selectLevel').on("click", function(e){
+    e.stopPropagation()
+    $(".deptList ").css("display", "none")
+    $(".selectDept .arrow").attr("src",iconDown)
+    const showList =  $(".levelList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".levelList ").css("display","block")
+        $(".selectLevel .arrow").attr("src",iconUp)
+    }else{
+        $(".levelList ").css("display", "none")
+        $(".selectLevel .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("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)
+    }
+})
+
+
+function rendeDeptList(deptList){
+    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("click",function(){
+        const deptItemName = $(this).attr("data-name")
+        const deptItemId = $(this).attr("data-id")
+        deptIdTemp =deptItemId
+        if(deptItemName.length > 10){
+            $('.selectDept').html(deptItemName.substring(0,8)+'...')
+        }else{
+            $('.selectDept').html(deptItemName)
+        }
+        $('.selectDept ').attr('title',deptItemName)
+        $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".deptList").css("display", "none")
+    })
+}
+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')){
+        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)
+        }
+    }
+})
+$("th[code]").on("click",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);
+});
+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() {
+    $.datepicker.regional['zh-CN'] = {
+    clearText: '清除',
+    clearStatus: '清除已选e799bee5baa6e59b9ee7ad9431333361303131日期',
+    closeText: '关闭',
+    closeStatus: '不改变当前选择',
+    prevText: '<上月',
+    prevStatus: '显示上月',
+    prevBigText: '<<',
+    prevBigStatus: '显示上一年',
+    nextText: '下月>',
+    nextStatus: '显示下月',
+    nextBigText: '>>',
+    nextBigStatus: '显示下一年',
+    currentText: '今天',
+    currentStatus: '显示本月',
+    monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    yearNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    monthStatus: '选择月份',
+    yearStatus: '选择年份',
+    weekHeader: '周',
+    weekStatus: '年内周次',
+    dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
+    dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
+    dayNamesMin: ['日','一','二','三','四','五','六'],
+    dayStatus: '设置 DD 为一周起始',
+    dateStatus: '选择 m月 d日, DD',
+    dateFormat: 'yy-mm-dd',
+    firstDay: 1,
+    initStatus: '请选择日期',
+    isRTL: false};
+    $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
+
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    });
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    });
+});
+
+//分页渲染
+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")
+    $(".deptList").css("display", "none")
+    $(".selectLevel .arrow").attr("src",iconDown)
+    
+})
+
+$((function($){
+})($));

+ 525 - 0
src/js/quexianXQ.js

@@ -0,0 +1,525 @@
+const $ = require('jquery');
+require("../css/quexianXQ.less");
+require('./modal.js');
+const {api} = require('./api.js')
+const {post,getCookie} = 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  iconCalenBlue= require("./../images/icon_calen_blue.png")
+const  iconCalenGrey= require("./../images/icon_calen_grey.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")
+
+$(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,statisticsType=2,
+  nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
+  data_desc=[],data_asc=[];
+$(".abnormalClear").click(function(){
+    $(".patientNumInp").val("")
+})
+$('.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()
+})
+$('.recordScoreBtn').css("opacity",hasData('FUNC000017')?'1':'0.5')
+dateChange()
+//所有数据切换日期筛选
+function dateChange(){
+    $(".monthYear .mon").click(function(){
+        $(this).css({
+            backgroundColor:'#5A8EEE',
+            color:'#fff'
+        }).siblings().css({
+            color:'#5A8EEE',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","block")
+        $(".dayDetail .dayFilter").css("display","none")
+        statisticsType = 1
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#5A8EEE',
+            color:'#fff'
+        }).siblings().css({
+            color:'#5A8EEE',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","none")
+        $(".dayDetail .dayFilter").css("display","block")
+        statisticsType = 2
+        getTabData(1)
+    })
+}
+//判断有无某一权限
+  function hasData(data){
+    let trdObj = JSON.parse(getCookie("trdObj"))
+    let lis = trdObj['YH-BLZK-ZKPF']
+    if(!lis){
+      return false
+    }
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+}
+function getTabData(activePage){
+    const param = {
+        current:activePage,
+        size: 15,
+        name: behospitalCode||"",
+        type: statisticsType||2, //1-本月,2-本年
+        dateType: level||"",//(3-上月,4-去年本月,5-去年(必填))
+    }
+    post(api.getAverageFeePage,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(tabList,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)
+
+$(".filter").on("click", function(e){
+    name = nameTemp
+    behospitalCode = behospitalCodeTemp
+    level = levelTemp
+    deptId = deptIdTemp
+    getTabData(1)
+})
+function renderTab(data,hisId,activePage){
+    let str = ``
+    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.name || "-"}</td>
+                <td >${item.averageValue || "-"}</td>
+            </tr>
+        `
+    }
+    $('tbody').html(str)
+    bindScoreDetail(hisId)
+}
+
+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, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//保存修改
+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, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//选择病历等级
+$('.selectLevel').on("click", function(e){
+    e.stopPropagation()
+    $(".deptList ").css("display", "none")
+    $(".selectDept .arrow").attr("src",iconDown)
+    const showList =  $(".levelList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".levelList ").css("display","block")
+        $(".selectLevel .arrow").attr("src",iconUp)
+    }else{
+        $(".levelList ").css("display", "none")
+        $(".selectLevel .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("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)
+    }
+})
+
+
+function rendeDeptList(deptList){
+    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("click",function(){
+        const deptItemName = $(this).attr("data-name")
+        const deptItemId = $(this).attr("data-id")
+        deptIdTemp =deptItemId
+        if(deptItemName.length > 10){
+            $('.selectDept').html(deptItemName.substring(0,8)+'...')
+        }else{
+            $('.selectDept').html(deptItemName)
+        }
+        $('.selectDept ').attr('title',deptItemName)
+        $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".deptList").css("display", "none")
+    })
+}
+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')){
+        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)
+        }
+    }
+})
+$("th[code]").on("click",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);
+});
+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() {
+    $.datepicker.regional['zh-CN'] = {
+    clearText: '清除',
+    clearStatus: '清除已选e799bee5baa6e59b9ee7ad9431333361303131日期',
+    closeText: '关闭',
+    closeStatus: '不改变当前选择',
+    prevText: '<上月',
+    prevStatus: '显示上月',
+    prevBigText: '<<',
+    prevBigStatus: '显示上一年',
+    nextText: '下月>',
+    nextStatus: '显示下月',
+    nextBigText: '>>',
+    nextBigStatus: '显示下一年',
+    currentText: '今天',
+    currentStatus: '显示本月',
+    monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    yearNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    monthStatus: '选择月份',
+    yearStatus: '选择年份',
+    weekHeader: '周',
+    weekStatus: '年内周次',
+    dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
+    dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
+    dayNamesMin: ['日','一','二','三','四','五','六'],
+    dayStatus: '设置 DD 为一周起始',
+    dateStatus: '选择 m月 d日, DD',
+    dateFormat: 'yy-mm-dd',
+    firstDay: 1,
+    initStatus: '请选择日期',
+    isRTL: false};
+    $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
+
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    });
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    });
+});
+
+//分页渲染
+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")
+    $(".deptList").css("display", "none")
+    $(".selectLevel .arrow").attr("src",iconDown)
+    
+})
+
+$((function($){
+})($));

+ 1 - 1
src/js/tiaomu.js

@@ -19,7 +19,7 @@ $(".selectUsed").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(function(){
     dateChange()
     let srcUrl = $("#contentIframe",parent.document).attr("src")
-    isReject = getUrlArgObjectNew("dateType",srcUrl)||2
+    isReject = 2||getUrlArgObjectNew("dateType",srcUrl)
     deptName = getUrlArgObjectNew("deptName",srcUrl)||""
     from = getUrlArgObjectNew("from",srcUrl)||""
     getTabData(1)//条目缺陷

+ 13 - 0
src/js/utils.js

@@ -19,6 +19,19 @@ const pageMap={
   'YH-ZKK-GMKQXZB_XQ':'mukuai.html?from=1',
   'YH-ZKK-TMQXZB_XQ':'tiaomu.html?from=1',
   'YH-YCSJJK':'abnormal.html',
+  'YH-ZKK-KSPJZYTS_XQ':'dayDetail.html',
+  'YH-ZKK-KSPJZYHF_XQ':'payDetail.html',
+
+  'YH-ZKK-GKSQXZB':'deptScoreDetailControl.html',
+  "YH-ZKK-GKSZKPJF_XQ":'deptScoreDetailControl.html',
+  'YH-JCSJWH':'deptScoreDetailControl.html',
+  
+  "YH-KSZR-KSQXZB_XQ":'deptScoreDetail.html',
+  "YH-ZKK-GKSJJBLZB_XQ":'jiaji.html',
+  
+  "YH-ZKK-BASYHGLZB_XQ":'partDetailControl.html',
+  "YH-KSZR-BASYHGLZB_XQ":'partDetail.html',
+
 };
 
 //重写assign方法

+ 98 - 0
webpack.config.js

@@ -28,6 +28,13 @@ module.exports = {
     mukuai: path.resolve(__dirname, 'src/js', 'mukuai.js'),
     abnormal: path.resolve(__dirname, 'src/js', 'abnormal.js'),
     partDetail: path.resolve(__dirname, 'src/js', 'partDetail.js'),
+    dayDetail: path.resolve(__dirname, 'src/js', 'dayDetail.js'),
+    payDetail: path.resolve(__dirname, 'src/js', 'payDetail.js'),
+    deptScoreDetail: path.resolve(__dirname, 'src/js', 'deptScoreDetail.js'),
+    deptScoreDetailControl: path.resolve(__dirname, 'src/js', 'deptScoreDetailControl.js'),
+    jiaji: path.resolve(__dirname, 'src/js', 'jiaji.js'),
+    partDetailControl: path.resolve(__dirname, 'src/js', 'partDetailControl.js'),
+    quexianXQ: path.resolve(__dirname, 'src/js', 'quexianXQ.js'),
     vendor: 'lodash'// 多个页面所需的公共库文件,防止重复打包带入
   },
   output: {
@@ -66,6 +73,45 @@ module.exports = {
         collapseWhitespace: true //删除空白符与换行符
       }
     }),
+    new HtmlWebpackPlugin({
+      title: 'quexianXQ.html',
+      template: path.resolve(__dirname, 'src/html', 'quexianXQ.html'),
+      filename: 'quexianXQ.html',
+      chunks: ['quexianXQ', 'vendor', 'common'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
+    new HtmlWebpackPlugin({
+      title: 'partDetailControl.html',
+      template: path.resolve(__dirname, 'src/html', 'partDetailControl.html'),
+      filename: 'partDetailControl.html',
+      chunks: ['partDetailControl', 'vendor', 'common'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
+    new HtmlWebpackPlugin({
+      title: 'jiaji.html',
+      template: path.resolve(__dirname, 'src/html', 'jiaji.html'),
+      filename: 'jiaji.html',
+      chunks: ['jiaji', 'vendor', 'common'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
     new HtmlWebpackPlugin({
       title: 'abnormal.html',
       template: path.resolve(__dirname, 'src/html', 'abnormal.html'),
@@ -79,6 +125,32 @@ module.exports = {
         collapseWhitespace: true //删除空白符与换行符
       }
     }),
+    new HtmlWebpackPlugin({
+      title: 'deptScoreDetailControl.html',
+      template: path.resolve(__dirname, 'src/html', 'deptScoreDetailControl.html'),
+      filename: 'deptScoreDetailControl.html',
+      chunks: ['deptScoreDetailControl', 'vendor', 'common'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
+    new HtmlWebpackPlugin({
+      title: 'payDetail.html',
+      template: path.resolve(__dirname, 'src/html', 'payDetail.html'),
+      filename: 'payDetail.html',
+      chunks: ['payDetail', 'vendor', 'common'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
     new HtmlWebpackPlugin({
       title: 'partDetail.html',
       template: path.resolve(__dirname, 'src/html', 'partDetail.html'),
@@ -92,6 +164,32 @@ module.exports = {
         collapseWhitespace: true //删除空白符与换行符
       }
     }),
+    new HtmlWebpackPlugin({
+      title: 'dayDetail.html',
+      template: path.resolve(__dirname, 'src/html', 'dayDetail.html'),
+      filename: 'dayDetail.html',
+      chunks: ['dayDetail', 'vendor', 'common'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
+    new HtmlWebpackPlugin({
+      title: 'deptScoreDetail.html',
+      template: path.resolve(__dirname, 'src/html', 'deptScoreDetail.html'),
+      filename: 'deptScoreDetail.html',
+      chunks: ['deptScoreDetail', 'vendor', 'common'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
     new HtmlWebpackPlugin({
       title: 'deptConsole.html',
       template: path.resolve(__dirname, 'src/html', 'deptConsole.html'),