Browse Source

科室文件新增

zhouna 3 years ago
parent
commit
14de361049

+ 6 - 6
src/css/dataAnalysis/statisticsDetail.less

@@ -1,4 +1,4 @@
-@import "./reset.less";
+@import "../reset.less";
 .container{
     width: 100%;
     height: 100%;
@@ -64,14 +64,14 @@ h2{
             margin-left: 4px;
             vertical-align: middle;
             background-size: 100%;
-            background-image: url("../images/grey.png");
+            background-image: url("../../images/grey.png");
         }
         &.asc:after{
-            background: url("../images/up_blue.png");
+            background: url("../../images/up_blue.png");
             background-size: 100%;
         }
         &.desc:after{
-            background: url("../images/down_blue.png");
+            background: url("../../images/down_blue.png");
             background-size: 100%;
         }
     }
@@ -143,11 +143,11 @@ h2{
     color: #777;
     white-space: nowrap;
     font-size: 14px;
-    background: url("../images/arrow_down.png") 60px center no-repeat;
+    background: url("../../images/arrow_down.png") 60px center no-repeat;
     padding-right: 15px;
     background-size: 10px 6px;
     &.up{
-        background: url("../images/arrow_up.png") 60px center no-repeat;
+        background: url("../../images/arrow_up.png") 60px center no-repeat;
         background-size: 10px 6px;
     }
 }

+ 431 - 0
src/css/dept/improveStatisticsDept.less

@@ -0,0 +1,431 @@
+@import '../reset.less';
+
+.container {
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+    background-color: @disColor;
+}
+
+.partDetailControl {
+    .dayFilter {
+        .levelList {
+            height: 80px;
+        }
+
+        .selectLevel,
+        .levelList {
+            width: 180px;
+        }
+
+        .deptListWrap {
+            display: none;
+        }
+    }
+
+    .filterItem.deptListWrap {
+
+        .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 {
+        .main-body-com;
+        min-width: 1160px;
+        /*width: 100%;*/
+    }
+
+    table {
+        .table;
+        min-width: 1090px;
+
+        th,
+        td {
+            text-align: center;
+        }
+
+        th {
+            white-space: nowrap;
+        }
+
+        td {
+            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: @activeColor;
+    }
+
+    .recordScoreBtn {
+        cursor: pointer;
+        display: inline-block;
+        width: 68px;
+        height: 30px;
+        line-height: 30px;
+        text-align: center;
+        border-radius: 4px;
+        box-sizing: border-box;
+        border: 1px solid @activeColor;
+        color: @activeColor;
+    }
+
+    /*.filterBox{
+        margin-bottom: 10px;
+    }*/
+    .filterItem {
+        position: relative;
+        display: inline-block;
+        float: left;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 20px 0;
+
+        span {
+            display: inline-block;
+            line-height: 40px;
+            position: relative;
+        }
+
+        input {
+            width: 120px;
+            height: 40px;
+            border-radius: 4px;
+            border: 1px solid #E2E5EF;
+            outline: none;
+            margin-right: 10px;
+            padding: 0 10px;
+            box-sizing: border-box;
+        }
+
+        input:focus {
+            border: 1px solid @activeColor ;
+            outline: 0;
+            -webkit-box-shadow: @activeColor 0px 0px 2px;
+            -moz-box-shadow: @activeColor 0px 0px 2px;
+            box-shadow: @activeColor 0px 0px 2px;
+        }
+    }
+
+    .filterDropList {
+        position: absolute;
+        top: 34px !important;
+        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: @activeColor;
+        border-radius: 4px;
+        color: #fff;
+        text-align: center;
+        line-height: 36px;
+        position: relative;
+        top: 2px;
+        cursor: pointer;
+        float: left;
+    }
+
+    .export {
+        display: inline-block;
+        width: 60px;
+        height: 34px;
+        line-height: 34px;
+        background: #fff;
+        border-radius: 4px;
+        color: #777;
+        text-align: center;
+        border: 1px solid #777;
+        box-sizing: border-box;
+        cursor: pointer;
+        margin-left: 10px;
+        float: left;
+        top: 0px;
+    }
+
+    .arrow {
+        position: absolute;
+        width: 10px;
+        top: 16px;
+        right: 10px;
+    }
+
+    .iconCheck {
+        width: 14px;
+    }
+
+    .fl {
+        float: left;
+    }
+
+    .clearfix:after {
+        content: '';
+        height: 0;
+        line-height: 0;
+        display: block;
+        visibility: hidden;
+        clear: both;
+    }
+
+    .clearfix {
+        zoom: 1
+    }
+
+    .divide {
+        margin: 0 10px;
+    }
+
+    .textCenter {
+        width: 200px;
+        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 20px 0;
+        text-align: right;
+    }
+
+    .totalSum {
+        font-size: 12px;
+        line-height: 17px;
+        color: #777777;
+        margin-right: 20px;
+    }
+
+    .pageNum,
+    .prePage,
+    .nextPage,
+    .more {
+        display: inline-block;
+        width: 20px;
+        cursor: pointer;
+        margin: 0 20px 0 0;
+        text-align: center;
+        color: #777;
+    }
+
+    .prePage,
+    .nextPage {
+        img {
+            position: relative;
+            top: 0px;
+        }
+    }
+
+    .more {
+        cursor: not-allowed;
+    }
+
+    .arrowPage {
+        width: 6px;
+    }
+
+    .activePage {
+        color: @activeColor;
+    }
+
+
+
+    .ui-datepicker-calendar {
+        border: 0 none;
+        min-width: 0;
+    }
+
+    .ui-datepicker thead {
+        background-color: #fff;
+        color: #c3cbd6;
+    }
+
+    .ui-datepicker td {
+        padding: 0;
+        height: auto;
+        color: #657180;
+    }
+
+    .ui-datepicker td span,
+    .ui-datepicker td a {
+        text-align: center;
+        height: 30px;
+        line-height: 30px;
+    }
+
+    .ui-state-default,
+    .ui-widget-content .ui-state-default,
+    .ui-widget-header .ui-state-default {
+        border: 0;
+        background-color: #fff;
+
+        &:hover {
+            background-color: #c4d8fe;
+        }
+    }
+
+    .ui-datepicker select.ui-datepicker-month,
+    .ui-datepicker select.ui-datepicker-year {
+        color: #333;
+        font-weight: normal;
+        height: 30px;
+        line-height: 30px;
+        margin: 0 5px;
+        width: 40%;
+        border-radius: 3px;
+    }
+
+    .ui-datepicker .ui-datepicker-prev,
+    .ui-datepicker .ui-datepicker-next {
+        top: 5px;
+    }
+
+    .ui-state-active,
+    .ui-widget-content .ui-state-active {
+        background-color: @activeColor  !important;
+        color: #fff;
+    }
+
+    .ui-state-highlight,
+    .ui-widget-content .ui-state-highlight {
+        background-color: #fff5bf !important;
+        color: #657180;
+    }
+
+    .ui-widget-header {
+        background-color: #fff;
+        border: 0 none;
+    }
+
+    input::-webkit-outer-spin-button,
+    input::-webkit-inner-spin-button {
+        -webkit-appearance: none;
+    }
+
+    input[type="number"] {
+        -moz-appearance: textfield;
+    }
+}
+
+.abnormalClear {
+    top: 2px !important;
+}
+
+.goHomeDetail1 {
+    color: #00A1F0;
+    cursor: pointer;
+}

+ 402 - 0
src/css/dept/statisticsDetailDept.less

@@ -0,0 +1,402 @@
+@import "../reset.less";
+.container{
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+    background: #fff;
+    border-bottom: 10px @disColor solid;
+    box-sizing: border-box;
+}
+ul,li{
+    list-style: none;
+}
+h2{
+    .h2;
+    border-bottom: 10px @disColor solid;
+    position: fixed;
+    top: 0;
+}
+.partTitle{
+    border-bottom: 10px @disColor solid;
+    height: 54px;
+}
+.main-body{
+    .main-body-com;
+    border: none;
+    // border:10px @disColor solid;
+    border-left:10px @disColor solid;
+    border-top:10px @disColor solid;
+    margin: 44px 0 0;
+    min-width: 1090px;
+    min-height: calc(100% - 84px);
+    // overflow: auto;
+    height:  calc(100% - 44px);
+    .selectDefect{        
+        background-color: #EFF1F6;
+        min-width: 120px;
+        width: auto;
+        display: inline-block;
+        position: relative;
+        padding: 0 10px;
+        height:32px;
+        border-radius:4px;
+        border: 1px solid #E2E5EF;
+        box-sizing: border-box;
+        cursor: default;
+    }
+}
+.qctable{
+    .table;
+    min-width: 1090px;
+    th,td{
+        padding:5px 10px;
+    }
+    th{
+        white-space: nowrap;
+    }
+    th[code]{
+        cursor: pointer;
+        &:after{
+            content:"";
+            display:inline-block;
+            width: 11px;
+            height: 14px;
+            margin-left: 4px;
+            vertical-align: middle;
+            background-size: 100%;
+            background-image: url("../../images/grey.png");
+        }
+        &.asc:after{
+            background: url("../../images/up_blue.png");
+            background-size: 100%;
+        }
+        &.desc:after{
+            background: url("../../images/down_blue.png");
+            background-size: 100%;
+        }
+    }
+    td{
+        white-space: nowrap;
+    }
+    .moduleNumber{
+        text-align: center;
+    }
+    .scoreOperaItem{
+        width: 50px;
+        cursor: pointer;
+    }
+    .tabTitle   {
+        background: #EFF0F9 !important;
+      }
+    
+}
+.tabFoot{
+    height: 40px;
+    background: none;
+    /*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;
+        vertical-align: middle;
+    }
+}
+
+.recordScoreOperaBtn{
+    cursor: pointer;
+    color: @activeColor;
+}
+.recordScoreBtn{
+    cursor: pointer;
+    display: inline-block;
+    width:68px;
+    height:30px;
+    line-height: 30px;
+    text-align: center;
+    border-radius:4px;
+    box-sizing: border-box;
+    border: 1px solid @activeColor;
+    color: #fff;
+    background: @activeColor;
+}
+.filterBox{
+    position: relative;
+}
+.overAuto{
+    display: table;
+    padding-right: 20px;
+    width: 100%;
+}
+.toggle-item{
+    display: none;
+}
+.filter-toggler{
+    position: absolute;
+    left: 1048px;
+    top: 8px;
+    color: #777;
+    white-space: nowrap;
+    font-size: 14px;
+    background: url("../../images/arrow_down.png") 60px center no-repeat;
+    padding-right: 15px;
+    background-size: 10px 6px;
+    &.up{
+        background: url("../../images/arrow_up.png") 60px center no-repeat;
+        background-size: 10px 6px;
+    }
+}
+.filterItem{
+    position: relative;
+    display: inline-block;
+    float: left;
+    height: 40px;
+    line-height: 40px;
+    margin: 0 20px 20px 0;
+    span{
+        display: inline-block;
+        line-height: 32px;
+        position: relative;
+    }
+    input{
+        width:120px;
+        height:32px;
+        border-radius:4px;
+        border: 1px solid #E2E5EF;
+        outline: none;
+        margin-right: 10px;
+        padding: 0 10px;
+        box-sizing: border-box;
+    }
+    input:focus{
+        border: 1px solid @activeColor ;
+        outline: 0;
+        -webkit-box-shadow:@activeColor  0px 0px 2px;
+        -moz-box-shadow: @activeColor  0px 0px 2px;
+        box-shadow: @activeColor  0px 0px 2px;
+    }
+}
+
+.filterDropList{
+    position: absolute;
+    right: 0;
+    top: 34px !important;
+    max-height: 200px;
+    overflow-y: auto;
+    background: #fff;
+    display: none;
+    border: 1px solid #e4e7ed;
+    box-shadow: 0 2px 12px 0 #e4e7ed;
+    z-index: 2;
+    li{
+        padding: 0 10px;
+    }
+}
+.deptList{
+    width: 160px;
+    max-height: 400px;
+}
+.levelList,.checkList{
+    width: 120px;
+    // height: 200px;
+    li:hover{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+}
+.selectLevel,.selectDept,.fpSelectCheck,.qcSelectCheck{
+    display: inline-block;
+    position: relative;
+    width:120px;
+    padding: 0 10px;
+    height:32px;
+    border-radius:4px;
+    border: 1px solid #E2E5EF;
+    box-sizing: border-box;
+    cursor: pointer;
+}
+.selectDept{
+    width: 160px;
+}
+
+.filter,.reset,.export{
+    display: inline-block;
+    width:60px;
+    height:32px;
+    background:@activeColor;
+    border-radius:4px;
+    color: #fff;
+    text-align: center;
+    line-height: 32px;
+    position: relative;
+    top: 2px;
+    cursor: pointer;
+    float: left;
+    margin: 0 0px 22px 0;
+}
+.export{
+    height:34px;
+    background: #fff;
+    border-radius: 4px;
+    color: #777;
+    border: 1px solid #777;
+    box-sizing: border-box;
+    cursor: pointer;
+    margin-left: 10px;
+    float: left;
+    top: 0px;
+}
+.arrow{
+    position: absolute;
+    width: 10px;
+    top: 12px;
+    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: 32px;
+    input{
+        position: absolute;
+    }
+}
+.setCol{
+    color: #777;
+    cursor: pointer;
+    display: inline-block;
+    // margin: 10px 0 0  0px;
+     margin: 0 0 0  50px;
+}
+.iconSetting{
+    width: 18px;
+    position: relative;
+    top: 3px;
+    margin: 0 3px 0 0;
+}
+.iconCalen{
+    position: absolute;
+    width: 15px;
+    top: 10px;
+    right: 10px;
+}
+.textCenter{
+    text-align: center;
+}
+.patientNameSpan{
+    color: @activeColor;
+    cursor: pointer;
+}
+
+.deptItem:hover{
+    background-color: #EEF4FF;
+    cursor: pointer;
+}
+.ellipsis{
+    overflow: hidden;
+    text-overflow:ellipsis;
+    white-space: nowrap;
+}
+.unSelect{
+    color: #cfccd6
+ }
+
+
+.pagination{
+    margin: 35px 0 20px 0  ;
+    text-align: right;
+}
+.totalSum{
+    font-size:12px;
+    line-height:17px;
+    color: #777777;
+    margin-right: 20px;
+}
+.pageNum,.prePage,.nextPage, .more{
+    display: inline-block;
+    width: 20px;
+    cursor: pointer;
+    margin: 0 20px 0 0;
+    text-align: center;
+    color: #777;
+}
+.prePage,.nextPage{
+    img{
+        position: relative;
+        top: 0px   ;
+    }
+}
+ .more{
+    cursor: not-allowed;
+}
+.arrowPage{
+    width: 6px;
+}
+.activePage{
+    color: @activeColor;
+}
+
+.tipIcon{
+  color: #777;
+  cursor: pointer;
+  display: inline-block;
+  margin-left: 6px;
+  margin-right: 2px;
+}
+.toolTipIcon{
+    width: 18px;
+    position: relative;
+    top: 3px;
+}
+
+.tooltip{
+    visibility: hidden;
+    position: relative;
+    padding: 7px 10px;
+    border-radius: 4px;
+    margin: 100px auto;
+    background-color: #4D4D4D;
+    text-align: center;
+    color: #fff;
+    font-size: 14px;
+}
+.tooltip:before{
+    content: '';
+    display: block;
+    position: absolute;
+    bottom: 9px;
+    left: -12px;
+    border-bottom: 6px solid transparent;
+    border-top: 6px solid transparent;
+    border-left: 6px solid transparent;
+    border-right: 6px solid #4D4D4D;
+}
+
+
+
+

+ 431 - 0
src/css/dept/useStatisticsDept.less

@@ -0,0 +1,431 @@
+@import '../reset.less';
+
+.container {
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+    background-color: @disColor;
+}
+
+.partDetailControl {
+    .dayFilter {
+        .levelList {
+            height: 80px;
+        }
+
+        .selectLevel,
+        .levelList {
+            width: 180px;
+        }
+
+        .deptListWrap {
+            display: none;
+        }
+    }
+
+    .filterItem.deptListWrap {
+
+        .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 {
+        .main-body-com;
+        min-width: 1160px;
+        /*width: 100%;*/
+    }
+
+    table {
+        .table;
+        min-width: 1090px;
+
+        th,
+        td {
+            text-align: center;
+        }
+
+        th {
+            white-space: nowrap;
+        }
+
+        td {
+            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: @activeColor;
+    }
+
+    .recordScoreBtn {
+        cursor: pointer;
+        display: inline-block;
+        width: 68px;
+        height: 30px;
+        line-height: 30px;
+        text-align: center;
+        border-radius: 4px;
+        box-sizing: border-box;
+        border: 1px solid @activeColor;
+        color: @activeColor;
+    }
+
+    /*.filterBox{
+        margin-bottom: 10px;
+    }*/
+    .filterItem {
+        position: relative;
+        display: inline-block;
+        float: left;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 20px 0;
+
+        span {
+            display: inline-block;
+            line-height: 40px;
+            position: relative;
+        }
+
+        input {
+            width: 120px;
+            height: 40px;
+            border-radius: 4px;
+            border: 1px solid #E2E5EF;
+            outline: none;
+            margin-right: 10px;
+            padding: 0 10px;
+            box-sizing: border-box;
+        }
+
+        input:focus {
+            border: 1px solid @activeColor ;
+            outline: 0;
+            -webkit-box-shadow: @activeColor 0px 0px 2px;
+            -moz-box-shadow: @activeColor 0px 0px 2px;
+            box-shadow: @activeColor 0px 0px 2px;
+        }
+    }
+
+    .filterDropList {
+        position: absolute;
+        top: 34px !important;
+        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: @activeColor;
+        border-radius: 4px;
+        color: #fff;
+        text-align: center;
+        line-height: 36px;
+        position: relative;
+        top: 2px;
+        cursor: pointer;
+        float: left;
+    }
+
+    .export {
+        display: inline-block;
+        width: 60px;
+        height: 34px;
+        line-height: 34px;
+        background: #fff;
+        border-radius: 4px;
+        color: #777;
+        text-align: center;
+        border: 1px solid #777;
+        box-sizing: border-box;
+        cursor: pointer;
+        margin-left: 10px;
+        float: left;
+        top: 0px;
+    }
+
+    .arrow {
+        position: absolute;
+        width: 10px;
+        top: 16px;
+        right: 10px;
+    }
+
+    .iconCheck {
+        width: 14px;
+    }
+
+    .fl {
+        float: left;
+    }
+
+    .clearfix:after {
+        content: '';
+        height: 0;
+        line-height: 0;
+        display: block;
+        visibility: hidden;
+        clear: both;
+    }
+
+    .clearfix {
+        zoom: 1
+    }
+
+    .divide {
+        margin: 0 10px;
+    }
+
+    .textCenter {
+        width: 200px;
+        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 20px 0;
+        text-align: right;
+    }
+
+    .totalSum {
+        font-size: 12px;
+        line-height: 17px;
+        color: #777777;
+        margin-right: 20px;
+    }
+
+    .pageNum,
+    .prePage,
+    .nextPage,
+    .more {
+        display: inline-block;
+        width: 20px;
+        cursor: pointer;
+        margin: 0 20px 0 0;
+        text-align: center;
+        color: #777;
+    }
+
+    .prePage,
+    .nextPage {
+        img {
+            position: relative;
+            top: 0px;
+        }
+    }
+
+    .more {
+        cursor: not-allowed;
+    }
+
+    .arrowPage {
+        width: 6px;
+    }
+
+    .activePage {
+        color: @activeColor;
+    }
+
+
+
+    .ui-datepicker-calendar {
+        border: 0 none;
+        min-width: 0;
+    }
+
+    .ui-datepicker thead {
+        background-color: #fff;
+        color: #c3cbd6;
+    }
+
+    .ui-datepicker td {
+        padding: 0;
+        height: auto;
+        color: #657180;
+    }
+
+    .ui-datepicker td span,
+    .ui-datepicker td a {
+        text-align: center;
+        height: 30px;
+        line-height: 30px;
+    }
+
+    .ui-state-default,
+    .ui-widget-content .ui-state-default,
+    .ui-widget-header .ui-state-default {
+        border: 0;
+        background-color: #fff;
+
+        &:hover {
+            background-color: #c4d8fe;
+        }
+    }
+
+    .ui-datepicker select.ui-datepicker-month,
+    .ui-datepicker select.ui-datepicker-year {
+        color: #333;
+        font-weight: normal;
+        height: 30px;
+        line-height: 30px;
+        margin: 0 5px;
+        width: 40%;
+        border-radius: 3px;
+    }
+
+    .ui-datepicker .ui-datepicker-prev,
+    .ui-datepicker .ui-datepicker-next {
+        top: 5px;
+    }
+
+    .ui-state-active,
+    .ui-widget-content .ui-state-active {
+        background-color: @activeColor  !important;
+        color: #fff;
+    }
+
+    .ui-state-highlight,
+    .ui-widget-content .ui-state-highlight {
+        background-color: #fff5bf !important;
+        color: #657180;
+    }
+
+    .ui-widget-header {
+        background-color: #fff;
+        border: 0 none;
+    }
+
+    input::-webkit-outer-spin-button,
+    input::-webkit-inner-spin-button {
+        -webkit-appearance: none;
+    }
+
+    input[type="number"] {
+        -moz-appearance: textfield;
+    }
+}
+
+.abnormalClear {
+    top: 2px !important;
+}
+
+.goHomeDetail1 {
+    color: #00A1F0;
+    cursor: pointer;
+}

+ 73 - 0
src/html/dept/improveStatisticsDept.html

@@ -0,0 +1,73 @@
+<!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>条目缺陷改善统计</p>
+          <!-- <div class="monthYear">
+            <span class="mon">本月</span>
+            <span class="year">本年</span>
+          </div>  -->
+          <div class="dateDetail fr">
+            
+          </div>
+        </div>
+        <div class="partTitleT"></div>
+        <div class="main-body">
+            <div class="filterBox clearfix">
+                <span class="filterItem typeFilter">
+                    <span>科室:</span>
+                    <input type="text" class="selectDept canEditDept" value="全部">
+                    <ul class="deptList filterDropList"></ul>
+                </span>
+                <span class="filterItem typeFilter">
+                    <span>缺陷名称:</span>
+                    <input class="moduleItemInp" id="casesName" type="text" placeholder="缺陷名称" autocomplete="off">
+                </span>
+                <span class="filterItem">
+                    <span>模块名称:</span>
+                    <input class="moduleItemInp" id="entryName" type="text" placeholder="模块名称" autocomplete="off">
+                </span>
+                <span class="filterItem typeFilter clearfix dataSelectLight">
+                    <span class="fl">选择日期:</span>
+                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" readonly/></span>
+                    <span  class="divide fl">-</span>
+                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" readonly/></span>
+                </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">重置</span>
+                <span class="export">导出</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" code="totalNum">总数量</th>
+                        <th class="beHospitalId textCenter">已改善数量</th>
+                        <th class="beHospitalId textCenter" code="improveleNum">待改善数量</th>
+                        <th class="beHospitalId textCenter">改善率</th>
+                    </thead>
+                    <tbody class="tbody">
+
+                    </tbody>
+                </table>
+            </div>
+
+            <div class="pagination"></div>
+        </div>
+        
+    </div>
+</body>
+
+</html>

+ 132 - 0
src/html/dept/statisticsDetailDept.html

@@ -0,0 +1,132 @@
+<!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 qcListCopy">
+        <div class="partTitle">
+            <p class="titlePic"></p>
+        </div>
+        <div class="main-body">
+            <div class="filterBox">
+                <div class="clearfix">
+                    <span class="filterItem typeFilter deptListWrap">
+                        <span>科室:</span>
+                        <input type="text" class="selectDept canEditDept" value="全部">
+                        <ul class="deptList filterDropList"></ul>
+                    </span>
+                    <span class="filterItem typeFilter clearfix" >
+                        <span class="fl">出院日期:</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" readonly /></span>
+                        <span  class="divide fl">-</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" readonly/></span>
+                    </span>
+                    <span class="filterItem">
+                        <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-id="甲">甲</Li>
+                            <li class="levelItem" data-name="乙" data-id=乙>乙</li>
+                            <li class="levelItem" data-name="丙" data-id=丙>丙</li>
+                        </ul>
+                    </span>
+                    <span class="filter">查询</span>
+                    <span class="filterclear abnormalClear filterclearT">重置</span>
+                    <span class="export">导出</span>
+                </div>
+                <a href="javascript:void(0);" class="filter-toggler" id="filterToggler">展开筛选</a>
+                <div class="toggle-item clearfix">
+                    <span class="filterItem typeFilter">
+                        <span>病人姓名:</span>
+                        <input class="patientNameInp" type="text" placeholder="请输入病人姓名">
+                    </span>
+                    <span class="filterItem typeFilter">
+                        <span>病人住院序号:</span>
+                        <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入病人住院序号">
+                    </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 filterHide fpFilterItem">
+                        <span>病案首页核查状态:</span>
+                        <span class="fpSelectCheck">全部</span>
+                        <ul class="checkList filterDropList fpCheckList">
+                            <Li class="fpCheckItem" data-name="全部" data-id="">全部</Li>
+                            <Li class="fpCheckItem" data-name="未核查" data-id="0">未核查</Li>
+                            <Li class="fpCheckItem" data-name="已核查" data-id="1">已核查</Li>
+                        </ul>
+                    </span>
+                    <span class="filterItem filterHide doctorFilter fpFilterItem">
+                        <span>病案首页核查人:</span>
+                        <input class="fpCheckPeople" type="text" placeholder=" 请输入核查人">
+                    </span>
+                    <span class="filterItem filterHide typeFilter clearfix" >
+                        <span class="fl">病案首页核查时间:</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerFp1" autocomplete="off" readonly /></span>
+                        <span  class="divide fl">-</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerFp2"  autocomplete="off" readonly/></span>
+                    </span>
+                    <span class="filterItem qcFiliterItem">
+                        <span>病历核查状态:</span>
+                        <span class="qcSelectCheck">全部</span>
+                        <ul class="checkList filterDropList qcCheckList">
+                            <Li class="qcCheckItem" data-name="全部" data-id="">全部</Li>
+                            <Li class="qcCheckItem" data-name="未核查" data-id="0">未核查</Li>
+                            <Li class="qcCheckItem" data-name="已核查" data-id="1">已核查</Li>
+                        </ul>
+                    </span>
+                    <span class="filterItem doctorFilter qcFiliterItem">
+                        <span>病历核查人:</span>
+                        <input class="qcCheckPeople" type="text" placeholder=" 请输入核查人">
+                    </span>
+                    <span class="filterItem typeFilter clearfix qcFiliterItem" >
+                        <span class="fl">病历核查时间:</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerQc1" autocomplete="off" readonly /></span>
+                        <span  class="divide fl">-</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerQc2"  autocomplete="off" readonly/></span>
+                    </span>
+                    <span class="filterItem doctorFilter">
+                        <span>缺陷名称:</span>
+                        <span class="selectDefect"> 
+                        
+                        </span>
+                        <!-- <input class="doctorInp" type="text" placeholder="请输入医生姓名"> -->
+                    </span>
+                    <span class="filterItem doctorFilter qcFiliterItem">
+                        <span>主诊断:</span>
+                        <input class="qcCheckMain" type="text" placeholder="请输入主诊断">
+                    </span>
+                </div>
+            </div>
+            <div class="overAuto">
+                <table class="qctable">
+                    <thead>
+                    <tr class="tabOpera"></tr>
+                    <tr class="tabTitle"></tr>
+                    </thead>
+                    <tbody class="tbody"></tbody>
+                    <tfoot></tfoot>
+                </table>
+            </div>
+            <div class="pagination"></div>
+        </div>
+
+    </div>
+</body>
+
+</html>

+ 70 - 0
src/html/dept/useStatisticsDept.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 partDetailControl">
+        <div class="partTitle">
+          <p>临床质控使用统计</p>
+          <!-- <div class="monthYear">
+            <span class="mon">本月</span>
+            <span class="year">本年</span>
+          </div>  -->
+          <div class="dateDetail fr">
+            
+          </div>
+        </div>
+        <div class="partTitleT"></div>
+        <div class="main-body">
+            <div class="filterBox clearfix">
+                <span class="filterItem typeFilter">
+                    <span>科室:</span>
+                    <input type="text" class="selectDept canEditDept" value="全部">
+                    <ul class="deptList filterDropList"></ul>
+                </span>
+                <!-- <span class="filterItem typeFilter deptListWrap">
+                    <span>合格率:</span>
+                    <span class="selectDept" data-id="">全部</span>
+                    <ul class="deptList filterDropList">
+                        <li class="deptItem ellipsis" title="全部" data-id="" data-name="全部">全部</li>
+                        <li class="deptItem ellipsis" title="合格" data-id="合格" data-name="合格">合格</li>
+                        <li class="deptItem ellipsis" title="不合格" data-id="不合格" data-name="不合格">不合格</li>
+                    </ul>
+                </span> -->
+                <span class="filterItem typeFilter clearfix dataSelectLight">
+                    <span class="fl">选择日期:</span>
+                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" readonly/></span>
+                    <span  class="divide fl">-</span>
+                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" readonly/></span>
+                </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">重置</span>
+                <span class="export">导出</span>
+            </div>
+            <div>
+                <table>
+                    <thead>
+                        <th class="moduleName" style="width: 65px;">序号</th>
+                        <th class="beHospitalId textCenter">科室</th>
+                        <th class="beHospitalId textCenter" code="totality">使用AI质控次数</th>
+
+                    </thead>
+                    <tbody class="tbody">
+
+                    </tbody>
+                </table>
+            </div>
+
+            <div class="pagination"></div>
+        </div>
+        
+    </div>
+</body>
+
+</html>

+ 21 - 21
src/js/dataAnalysis/statisticsDetail.js

@@ -1,23 +1,23 @@
 const $ = require('jquery');
-require("../css/statisticsDetail.less");
-require('./modal.js');
-const {api} = require('./api.js')
-const {post,getCookie,getLocal,getUrlArgObjectNew,emptyBox,downloadExportedData,expJson,getLogoParam,focusMenuItem,listenScroll,exportTimeLimit} = 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")
-const goUpG= require("./../images/arrow_up_grey.png")
-const goUpB = require("./../images/arrow_up_blue.png")
-const goDownG= require("./../images/arrow_down_grey.png")
-const goDownB = require("./../images/arrow_down_blue.png")
+require("../../css/dataAnalysis/statisticsDetail.less");
+require('../modal.js');
+const {api} = require('../api.js')
+const {post,getCookie,getLocal,getUrlArgObjectNew,emptyBox,downloadExportedData,expJson,getLogoParam,focusMenuItem,listenScroll,exportTimeLimit} = 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")
+const goUpG= require("../../images/arrow_up_grey.png")
+const goUpB = require("../../images/arrow_up_blue.png")
+const goDownG= require("../../images/arrow_down_grey.png")
+const goDownB = require("../../images/arrow_down_blue.png")
 let isPlacefile = getCookie('isPlacefile')||1
 
 let pageSet = [],pageSetCopy = [], showNum = 0, scrollTop=0;
@@ -692,7 +692,7 @@ function renderTabTitle(data){
             <span class="scoreOpera" data-selectAll=false><img class="iconCheck" src="${iconUnCheck}" alt="checkbox">全选</span>
             <span class="recordScoreBtn">评分</span>
             <span class="setCol">列设置</span>
-            <span class="tipIcon"><img class="toolTipIcon" src=${require('./../images/toolTip.png')} alt="关闭" /></span>    
+            <span class="tipIcon"><img class="toolTipIcon" src=${require('../../images/toolTip.png')} alt="关闭" /></span>    
             <span class="tooltip">可设置列的隐藏、显示及排序</span>
         </div>
     </td>`
@@ -829,7 +829,7 @@ function renderColSet(list){
     let str = `<div class='colSetBox'> 
             <div class='mask'></div>
             <div class='cloInfobox'>
-                <div class='cloInfoTitle'><span class='cloInfoTitleTxt'>列显示设置</span> <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></div>
+                <div class='cloInfoTitle'><span class='cloInfoTitleTxt'>列显示设置</span> <img class="iconClose" src=${require('../../images/icon_close_default.png')} alt="关闭" /></div>
                 <div class='cloInfo'></div>
                 <div class='btnBox'><span class='defaultColSet'>恢复默认</span> <span class='cancalColSet'>取消</span> <span class='saveColSet'>保存设置</span></div>
             </div>

+ 343 - 0
src/js/dept/improveStatisticsDept.js

@@ -0,0 +1,343 @@
+require('../mock')
+const $ = require('jquery');
+// require("../css/partDetailControl.less");
+require("../../css/dept/improveStatisticsDept.less");
+
+require('../modal.js');
+const {api} = require('../api.js')
+const {post,getCookie,getLocal,getUrlArgObjectNew,emptyBox,setTitleTxt,setDatePicker,getPickerDate,downloadExportedData,expJson,initScroll,listenScroll} = require('../utils.js')
+require('../../resource/jquery-ui/jquery-ui.min.js');
+require('../../resource/jquery-ui/jquery-ui.min.css');
+const iconDown= require("../../images/arrow_down.png")
+const loadingImg = require("../../images/loading.gif")
+const arrowLeft= require("../../images/arrow_left.png")
+
+const arrowRight = require("../../images/arrow_right.png");
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+listenScroll()
+let isPlacefile = getCookie('isPlacefile')||1
+
+let deptName="",deptNameTemp="", behospitalCode="", level="", behospitalCodeTemp="",deptId="",deptIdTemp="",
+  data_desc=["improveleNum"],data_asc=[];
+  let srcUrl = $("#contentIframe",parent.document).attr("src")
+  from = getUrlArgObjectNew("from",srcUrl)||""
+  lineType = getUrlArgObjectNew("lineType",srcUrl)||""
+  let startDateParam = getUrlArgObjectNew("startDateParam",srcUrl)||""
+  let endDateParam = getUrlArgObjectNew("endDateParam",srcUrl)||""
+  if(lineType){
+        $("th[code="+data_desc+"]").addClass("desc");
+  }
+
+$(function() {
+  const  iconCalenBlue= require("../../images/icon_calen_blue.png")
+  const  iconCalenGrey= require("../../images/icon_calen_grey.png")
+  //获取科室列表
+  getDeptList()
+  //日期控件事件绑定
+  $('.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()
+  })
+  //日期默认当年
+  setDatePicker($("#datepicker"), $("#datepicker2"), 1);
+  //初始列表数据获取
+  getTabData(1);
+  //导出事件绑定
+  $('.export').click(function(){
+	const param = getFilterParam();
+	if(param.start > param.end){
+	  $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+	  return
+	}
+	console.log('我是导出',param)
+	expJson(api.exportIndexQualified,param).then(res =>{
+	  downloadExportedData(res.data,"条目缺陷改善统计"+startDateParam+"-"+endDateParam+".xls");
+	})
+  })
+  //给每一个标题绑定一个排序事件
+  $("th[code]").on("click",function(e){
+	const code=$(this).attr("code");
+	if(data_asc==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);
+  });
+  //重置
+  $(".abnormalClear").click(function(){
+	data_desc=[]
+	data_asc=[]
+	setDatePicker($("#datepicker"),$("#datepicker2"),"default");
+	$("#casesName,#entryName").val("");
+	$("th[code]").removeClass("desc asc");
+	behospitalCode =behospitalCodeTemp= ""
+	deptName = deptNameTemp = ""
+	deptId = deptIdTemp = ""
+	$(".selectDept").attr({'title':"全部",'data-id':''}).val("全部")
+	getTabData(1)
+	getDeptList()
+  })
+
+//查询
+  $(".filter").on("click", function(e){
+	behospitalCode = behospitalCodeTemp
+	deptId = deptIdTemp
+	deptName = deptNameTemp
+	if(deptName == ""){
+	  $(".selectDept").attr({'title':"全部",'data-id':''}).val("全部")
+
+	}
+	getTabData(1)
+  })
+});
+
+function getFilterParam(){
+  const start = new Date(startDateParam).getTime()
+  const end = new Date(endDateParam).getTime()
+  const casesName =$("#casesName").val();
+  const entryName = $("#entryName").val();
+  const param = {
+	"isPlacefile":isPlacefile,
+	"deptId": deptName=="全部"?"":deptId||"", //科室id
+	"casesName": casesName,
+	"entryName":entryName,
+	"deptName": deptName=="全部"?"":deptName||"",
+	"asc":data_asc,     //升序
+	"desc":data_desc,       //降序
+	"startDate":startDateParam,
+	"endDate":endDateParam
+  }
+  return param;
+}
+/*$(".partTitle a").click(function(){
+    //初始菜单选中
+    $(".menu .page",parent.document).removeClass("active").eq(0).addClass("active");
+    $(".container",parent.document).addClass("console-cont");
+})
+//判断有无某一权限
+  function hasData(data){
+    let trdObj = JSON.parse(getLocal("trdObj"))
+    let lis = trdObj['YH-ZKK-TMQXGSTJ']
+    if(!lis){
+      return false
+    }
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+}*/
+function getTabData(activePage){
+    const dateStatrt = getPickerDate($("#datepicker"),1) //开始时间
+    const dateEnd = getPickerDate($("#datepicker2"),2) //结束时间
+    const start = new Date(dateStatrt).getTime()
+    const end = new Date(dateEnd).getTime()
+    const casesName =$("#casesName").val();
+    const entryName = $("#entryName").val();
+    if(start > end){
+        $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        console.log('开始时间',dateStatrt)
+        return
+    }
+    const param = {
+	    hospitalId:behospitalCode,
+        "casesName": casesName,        //模块名称
+        "entryName": entryName,    //缺陷名称
+	    "deptId": deptName=="全部"?"":deptId||"", //科室id
+        "deptName": deptName=="全部"?"":deptName||"", //科室名称
+        "asc":data_asc,     //升序 返回的是升序降序的依据
+        "desc":data_desc,       //降序
+        "type": 0, //1-本月,2-本年,0-自定义时间(现在所有都是自定义时间,都会传开始日期和结束日期)
+        "startDate":dateStatrt,
+        "endDate":dateEnd
+    }
+    console.log('我是param',param)
+    startDateParam = dateStatrt
+    endDateParam = dateEnd
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
+    post(api.getEntryDefectImprove,param).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data;
+            const detail = data.records||[];
+            const totalPage = data.pages;
+            const totalNum = data.total;
+            renderTab(detail,detail.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) =>{
+    
+    })
+}
+//表格dom渲染
+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.casesName || "-"}</td>
+                <td >${item.entryName || "-"}</td>
+                <td class="goHomeDetail">${item.totalNum}</td>
+                <td class="goHomeDetail">${item.handleNum}</td>
+                <td class="goHomeDetail">${item.improveleNum}</td>
+                <td >${item.handleStr|| "-"}</td>
+            </tr>
+        `
+    }
+    $('.tbody').html(str?str:emptyBox())
+    $(".goHomeDetail").click(function(){
+        let index =  $(this).parent().attr("data-index")
+        let deptName = $(this).attr("data-dept")
+        let ruleType = $(this).attr("data-ruleType")
+        let deptId = data[index].deptId ? data[index].deptId : '' 
+        $(parent.document).find("#contentIframe").attr("src", "statisticsDetail.html?deptName=" + deptName + "&deptId=" + deptId + "&casesId=243" + ruleType + "&startDateParam=" + startDateParam + "&endDateParam=" + endDateParam)
+    })
+}
+function getDeptList(val){
+    post(api.getDeptList,{inputStr:val=="全部"?"":val||""}).then(res =>{
+        if(res.data.code == '0'){
+           const deptList = res.data.data||[]
+           rendeDeptList(deptList)
+        }else{
+            rendeDeptList([])
+        }
+    }).catch((e) =>{
+
+    })
+}
+//科室下拉框
+function rendeDeptList(deptList){
+    if(deptList.length == 0){
+      $('.deptList').html("")
+      return
+    }
+    let str = `<li class="deptItem " data-id="" data-name="全部">全部</li>`
+    for(let i = 0; i < deptList.length; i++){
+        str += `<li class="deptItem ellipsis" title=${deptList[i].deptName} data-id=${deptList[i].deptId} data-name=${deptList[i].deptName}> ${deptList[i].deptName}</li>`
+    }
+    $('.deptList').html(str)
+    bindDeptSelect()
+}
+//科室选择
+function bindDeptSelect(){
+    $('.deptItem').on("mousedown",function(){
+        const deptItemName = $(this).attr("data-name")
+        const deptItemId = $(this).attr("data-id")
+        deptNameTemp=deptItemName=="全部"?"":deptItemName;
+        deptIdTemp =deptItemId||''
+        $('.selectDept').val(deptItemName)
+        $('.selectDept ').attr('title',deptItemName)
+        $(".deptList").css("display", "none")
+    })
+  	//科室下拉显示、选中事件
+	$('.selectDept').on("focus", function(e){
+	  e.stopPropagation()
+	  $(".deptList ").css("display","block")
+	})
+	$('.selectDept').on("blur", function(e){
+	  $(".deptList ").css("display", "none")
+	  $(".selectDept .arrow").attr("src",iconDown)
+	})
+	$('.selectDept').on("input", function(e){
+	  let val = $(this).val().trim()
+	  deptName = deptNameTemp = val
+	  getDeptList(deptName)
+	})
+}
+/*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()
+}*/
+
+//分页渲染
+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)
+        }
+    })
+    
+}
+

File diff suppressed because it is too large
+ 1285 - 0
src/js/dept/statisticsDetailDept.js


+ 613 - 0
src/js/dept/useStatisticsDept.js

@@ -0,0 +1,613 @@
+require('../mock')
+const $ = require('jquery');
+// require("../css/partDetailControl.less");
+require("../../css/dept/useStatisticsDept.less");
+
+require('../modal.js');
+const {api} = require('../api.js')
+const {post,getCookie,getLocal,getUrlArgObjectNew,emptyBox,setTitleTxt,setDatePicker,getPickerDate,downloadExportedData,expJson,initScroll,listenScroll} = require('../utils.js')
+require('../../resource/jquery-ui/jquery-ui.min.js');
+require('../../resource/jquery-ui/jquery-ui.min.css');
+const iconCheck= require("../../images/icon_check.png")
+const iconUnCheck = require("../../images/icon_unchecked.png")
+const iconDown= require("../../images/arrow_down.png")
+const iconUp = require("../../images/arrow_up.png")
+const loadingImg = require("../../images/loading.gif")
+// const arrowLeft= require("./../images/arrow_left.png")
+const arrowLeft= require("../../images/arrow_left.png")
+
+// $.ajax({
+//     url: 'test/test1',
+//     type: 'GET',
+//     dataType: 'json',
+//     success: data=> {
+//         console.log(3333, data)
+//     }
+// })
+
+const arrowRight = require("../../images/arrow_right.png");
+const { get } = require('jquery');
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+listenScroll()
+let isPlacefile = getCookie('isPlacefile')||1
+
+let tabList = [], name = "",deptName="",deptNameTemp="", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,statisticsType="",
+  nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
+  data_desc="deptName",data_asc="";
+  let srcUrl = $("#contentIframe",parent.document).attr("src")
+  statisticsType = getUrlArgObjectNew("dateType",srcUrl)||""
+  from = getUrlArgObjectNew("from",srcUrl)||""
+  lineType = getUrlArgObjectNew("lineType",srcUrl)||""
+  let startDateParam = getUrlArgObjectNew("startDateParam",srcUrl)||""
+  let endDateParam = getUrlArgObjectNew("endDateParam",srcUrl)||""
+  data_desc = (lineType == "合格率")?"firstLevelPercent":(lineType=="完整率"?"emptyPercent":"deptName")
+  if(lineType){
+        $("th[code="+data_desc+"]").addClass("desc");
+  }
+  //setTitleTxt('',from)         //导航栏面包屑
+  if(statisticsType == 1){
+      $(".monthYear .mon").css({
+          backgroundColor:'#00A1FF',
+          color:'#fff'
+      }).siblings().css({
+          color:'#00A1FF',
+          backgroundColor:'#fff'
+      })
+      setDatePicker($("#datepicker"),$("#datepicker2"),1)
+  }else if(statisticsType == 2){
+      $(".monthYear .year").css({
+          backgroundColor:'#00A1FF',
+          color:'#fff'
+      }).siblings().css({
+          color:'#00A1FF',
+          backgroundColor:'#fff'
+      })
+      setDatePicker($("#datepicker"),$("#datepicker2"),2)
+  }else if(statisticsType == 3){
+    setDatePicker($("#datepicker"),$("#datepicker2"),3,new Date(startDateParam),new Date(endDateParam))
+  }else{
+    setDatePicker($("#datepicker"),$("#datepicker2"),'default')
+  }
+  if(!statisticsType){
+    setDatePicker($("#datepicker"),$("#datepicker2"),'default')
+  }
+  //重置
+$(".abnormalClear").click(function(){
+    data_desc=""
+    data_asc=""
+    setDatePicker($("#datepicker"),$("#datepicker2"),"default")
+    $(".patientNumInp").val("")
+    $("th[code]").removeClass("desc asc");
+    behospitalCode =behospitalCodeTemp= ""
+    deptName = deptNameTemp = ""
+    level = levelTemp = ""
+    deptId = deptIdTemp = ""
+    $(".selectDept").attr({'title':"全部",'data-id':''}).val("全部")
+    getTabData(1)
+    getDeptList()
+})
+$(".partTitle a").click(function(){
+    //初始菜单选中
+    $(".menu .page",parent.document).removeClass("active").eq(0).addClass("active");
+    $(".container",parent.document).addClass("console-cont");
+})
+
+$('.recordScoreBtn').css("opacity",hasData('FUNC000017')?'1':'0.5')
+dateChange()
+//所有数据切换日期筛选
+function dateChange(){
+    $(".monthYear .mon").click(function(){
+        $(this).css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","block")
+        $(".dayDetail .dayFilter").css("display","none")
+        statisticsType = 1
+        setDatePicker($("#datepicker"),$("#datepicker2"),1)
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","none")
+        $(".dayDetail .dayFilter").css("display","block")
+        statisticsType = 2
+        setDatePicker($("#datepicker"),$("#datepicker2"),2)
+        getTabData(1)
+    })
+}
+
+//判断有无某一权限
+  function hasData(data){
+    let trdObj = JSON.parse(getLocal("trdObj"))
+    let lis = trdObj['YH-BLZK-ZKPF']
+    if(!lis){
+      return false
+    }
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+}
+function getTabData(activePage){
+    const dateStatrt = getPickerDate($("#datepicker"),1) //开始时间
+    const dateEnd = getPickerDate($("#datepicker2"),2) //结束时间
+    const start = new Date(dateStatrt).getTime()
+    const end = new Date(dateEnd).getTime()
+    if(start > end){
+        $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        console.log('开始时间',dateStatrt)
+        return
+    }
+    const param = {
+        "level": "",
+        "name": behospitalCode||"",
+        "deptName": deptName=="全部"?"":deptName||"", //科室名称
+        "asc":data_asc,     //升序 返回的是升序降序的依据
+        "desc":data_desc,       //降序
+        "type": 0, //1-本月,2-本年,0-自定义时间(现在所有都是自定义时间,都会传开始日期和结束日期)
+        "startDate":dateStatrt,
+        "endDate":dateEnd
+    }
+    console.log('我是param',param)
+    startDateParam = dateStatrt
+    endDateParam = dateEnd
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
+    post(api.homePageLevelStatistics,param).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data||[];
+            console.log('我是res',res)
+            renderTab(data,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){
+    console.log('我是查询')
+    name = nameTemp
+    behospitalCode = behospitalCodeTemp
+    level = levelTemp
+    deptId = deptIdTemp
+    deptName = deptNameTemp
+    if(deptName == ""){
+        $(".selectDept").attr({'title':"全部",'data-id':''}).val("全部")
+        console.log('我是查询222')
+        console.log(name)
+        console.log(behospitalCode)
+        console.log(level)
+        console.log(deptId)
+        console.log(deptName)
+        console.log(deptName)
+    }
+    console.log('我是查询111')
+    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.totality+'' || "-"}</td>
+            </tr>
+        `
+    }
+    $('.tbody').html(str?str:emptyBox())
+    bindScoreDetail(hisId)
+    $(".goHomeDetail").click(function(){
+        let index =  $(this).parent().attr("data-index")
+        let deptName = $(this).attr("data-dept")
+        let ruleType = $(this).attr("data-ruleType")
+        let deptId = data[index].deptId ? data[index].deptId : '' 
+        $(parent.document).find("#contentIframe").attr("src", "quexianDetailControlHome.html?deptName=" + deptName + "&deptId=" + deptId + "&from=4&casesId=243" + "&shijian=3" + "&ruleType=" + ruleType + "&startDateParam=" + startDateParam + "&endDateParam=" + endDateParam)
+    })
+    // 不合格数跳转至 病历列表详情页
+    $(".goHomeDetail1").click(function () {
+        let index = $(this).parent().attr("data-index")
+        let deptName = $(this).attr("data-dept")
+        let titleName = $(this).attr("data-title")
+        // let ruleType = $(this).attr("data-ruleType")
+        let deptId = data[index].deptId ? data[index].deptId:''
+        // $(parent.document).find("#contentIframe").attr("src", "qcListCopy.html?deptName=" + deptName + "&deptId=" + deptId + "&from=4&casesId=243" + "&shijian=3" + "&ruleType=" + ruleType + "&startDate=" + startDateParam + "&endDate=" + endDateParam + "&defectName=" + defectName)
+        $(parent.document).find("#contentIframe").attr("src", "qcListCopyUnqualified.html?deptName=" + deptName + "&deptId=" + deptId + "&from=4&casesId=243" + "&shijian=3" + "&startDate=" + startDateParam + "&endDate=" + endDateParam + "&titleName=" + titleName)
+    })
+    // initScroll("partDetailControl","YX",1)
+}
+
+function scoreDetail(id,age,hid,code){
+    window.open(`./qcScore.html?id=${id}&age=${age}&hid=${hid}&code=${code}`)
+}
+function bindScoreDetail(hisId){
+    $('.patientNameSpan').on('click',function(e){
+        const index = $(this).attr("data-index")
+        const type = $(this).attr("data-type")
+        const item = tabList[index]
+        midifyMsgBox(item,type)
+    })
+}
+
+  
+function midifyMsgBox(item,type){
+    const itemCopy = JSON.parse(JSON.stringify(item))
+    let msgBox = ''
+    if(type == 1){
+        msgBox = `<div class="midifyMsgBox">
+            <div class="mask"></div>
+            <div class="midifyMsgContent abnormal">
+                <p class="midifyMsgTitle">修改 <img class="iconClose" src=${require('../../images/icon_close_default.png')} alt="关闭" /></p>
+                <div class="itemMsgInfoBox">
+                    <span class="itemMsgLab abnormalLeft">状态:</span> 
+                    <span class="abnormalAll" data-status="${itemCopy.status}">${itemCopy.status == 0?"未处理":"已处理"}</span>
+                    <ul class="abnormalStatusLis">
+                        <li data-status="0">未处理</li>
+                        <li data-status="1">已处理</li>
+                    </ul>
+                </div>
+                <div class="itemMsgInfoBox">
+                    <span class="itemMsgLab abnormalLeft abnormalMark">备注:</span> 
+                    <span class="itemInfoRight"> 
+                        <textarea class="abnormalTxt" placeholder="请输入内容" >${itemCopy.remark}</textarea>
+                    </span>
+                </div>
+                <div  class="itemMsgInfoTips">支持≥0的数字输入,最多保留小数点后1位~</div>
+                <div class="midifyMsgBtn abnormalBtn">
+                    <span class="midifyEdit">保存</span>
+                </div>
+            </div>
+        </div>`
+    }else{
+        msgBox = `<div class="midifyMsgBox">
+            <div class="mask"></div>
+            <div class="midifyMsgContent midifyMsgContentDel">
+                <p class="midifyMsgTitle">修改 <img class="iconClose" src=${require('../../images/icon_close_default.png')} alt="关闭" /></p>
+                <p class="delTips">确认要删除该条异常记录?</p>
+                <div class="midifyMsgBtn midifyMsgBtnDel">
+                    <span class="midifyEdit midifyEditDel">删除</span>
+                    <span class="midifyEdit midifyEditQuit">取消</span>
+                </div>
+            </div>
+        </div>`
+    }
+    $("#mainBox", parent.document).append(msgBox)
+    $(".midifyEditDel", parent.document).on("click",function(){
+        delModifyOne(itemCopy)
+    })
+    $(".midifyEditQuit", parent.document).on("click",function(){
+        $("#mainBox .midifyMsgBox", parent.document).remove()
+    })
+    $(".abnormalAll", parent.document).on("click",function(){
+        $(".abnormalStatusLis", parent.document).slideToggle()
+    })
+    $(".abnormalStatusLis li", parent.document).on("click",function(){
+        let status = $(this).attr("data-status")
+        let str = $(this).html()
+        $(".abnormalAll", parent.document).attr("data-status",status).html(str)
+        $(".abnormalStatusLis", parent.document).slideToggle()
+    })
+    $("#mainBox .midifyMsgBox .iconClose", parent.document).on("click", function(e){
+        $("#mainBox .midifyMsgBox", parent.document).remove()
+    })
+    $("#mainBox .midifyMsgBox .itemScore", parent.document).on("keypress", function(event){
+        return (/[\d\.]/.test(String.fromCharCode(event.keyCode)))
+     })
+    $("#mainBox .midifyMsgBox .itemScore", parent.document).on("input", function(e){
+       const val = $(this).val() 
+       itemCopy.score = val
+    })
+    $("#mainBox .midifyMsgBox .midifyEdit", parent.document).on("click", function(e){
+        saveModifyOne(itemCopy)
+    })
+}
+//保存修改
+function delModifyOne(itemCopy){
+    let param = {
+        "id": itemCopy.id
+    }
+    post(api.delQcAnnormal,param).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data;
+            getTabData(1)
+            $("#mainBox .midifyMsgBox", parent.document).remove()
+            $.alerModal({"message":'删除成功',type:"tip",time:'1000',isFather: true,win: true, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            $.alerModal({"message":'删除失败,请重试~',type:"tip",time:'1000',win:'default',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            
+        }
+    }).catch((e) =>{
+        $.alerModal({"message":'删除失败,请重试~',type:"tip",time:'1000',win:'default',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+    
+    })
+}
+//保存修改
+function saveModifyOne(itemCopy){
+    let txt = $(".abnormalTxt", parent.document).val()
+    let status = $(".abnormalAll", parent.document).attr("data-status")
+    let param = {
+        "id": itemCopy.id,
+        "remark": txt,
+        "status": status
+    }
+    post(api.saveQcAnnormal,param).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data;
+            getTabData(1)
+            $("#mainBox .midifyMsgBox", parent.document).remove()
+            $.alerModal({"message":'修改成功',type:"tip",time:'1000',isFather: true,win: true, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            $.alerModal({"message":'修改失败,请重试~',type:"tip",time:'1000',isFather: true,win: 'default', fatherWrapper: $("#mainBox", parent.document)});
+            
+        }
+    }).catch((e) =>{
+        $.alerModal({"message":'修改失败,请重试~',type:"tip",time:'1000',isFather: true,win: 'default', fatherWrapper: $("#mainBox", parent.document)});
+    
+    })
+}
+
+
+
+
+//全选绑定
+
+$('.selectDept').on("focus", function(e){
+    e.stopPropagation()
+    $(".deptList ").css("display","block")
+})
+$('.selectDept').on("blur", function(e){
+    $(".deptList ").css("display", "none")
+    $(".selectDept .arrow").attr("src",iconDown)
+  })
+  $('.selectDept').on("input", function(e){
+    let val = $(this).val().trim()
+    deptName = deptNameTemp = val
+    getDeptList(deptName)
+  })
+//获取科室列表
+getDeptList()
+function getDeptList(val){
+    post(api.getDeptList,{inputStr:val=="全部"?"":val||""}).then(res =>{
+        if(res.data.code == '0'){
+           const deptList = res.data.data||[]
+           rendeDeptList(deptList)
+        }else{
+            rendeDeptList([])
+        }
+    }).catch((e) =>{
+
+    })
+}
+//科室下拉框
+function rendeDeptList(deptList){
+    if(deptList.length == 0){
+      $('.deptList').html("")
+      return
+    }
+    let str = `<li class="deptItem " data-id="" data-name="全部">全部</li>`
+    for(let i = 0; i < deptList.length; i++){
+        str += `<li class="deptItem ellipsis" title=${deptList[i].deptName} data-id=${deptList[i].deptId} data-name=${deptList[i].deptName}> ${deptList[i].deptName}</li>`
+    }
+    $('.deptList').html(str)
+    bindDeptSelect()
+}
+//科室选择
+function bindDeptSelect(){
+    $('.deptItem').on("mousedown",function(){
+        const deptItemName = $(this).attr("data-name")
+        const deptItemId = $(this).attr("data-id")
+        deptNameTemp=deptItemName=="全部"?"":deptItemName;
+        deptIdTemp =deptItemId||''
+        $('.selectDept').val(deptItemName)
+        $('.selectDept ').attr('title',deptItemName)
+        $(".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==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 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)
+        }
+    })
+    
+}
+
+
+$(function() {
+    const  iconCalenBlue= require("../../images/icon_calen_blue.png")
+    const  iconCalenGrey= require("../../images/icon_calen_grey.png")
+    $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
+    $('.iconCalen').on("mouseenter", function(e){
+        $(this).attr("src", iconCalenBlue)
+    })
+    $('.iconCalen').on("mouseleave", function(e){
+        $(this).attr("src", iconCalenGrey)
+    })
+    $('.iconCalen').on("click", function(e){
+        $(this).parent().find("input").focus()
+    })
+    $('.export').click(function(){
+        const start = new Date(startDateParam).getTime()
+        const end = new Date(endDateParam).getTime()
+        if(start > end){
+        $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        return
+        }
+        const param = {
+        "isPlacefile":isPlacefile,
+        "level": "",
+        "name": behospitalCode||"",
+        "deptName": deptName=="全部"?"":deptName||"",
+        "asc":data_asc,     //升序
+        "desc":data_desc,       //降序
+        "type": statisticsType||2, //1-本月,2-本年
+        "startDate":startDateParam,
+        "endDate":endDateParam
+        }
+        console.log('我是导出',param)
+        expJson(api.exportIndexQualified,param).then(res =>{
+            console.log(res)
+        downloadExportedData(res.data,"病案首页合格率占比.xls")
+        })
+    })
+});

+ 2 - 0
src/js/utils.js

@@ -70,6 +70,8 @@ const pageMap = {
   'YH-SJBJ':'editableDetail.html',   //数据编辑
   'YH-ZKK-TMQXGSTJ':'improveStatistics.html',//条目缺陷改善统计
   "YH-ZKK-LCZKSYTJ":'useStatistics.html',//临床质控使用统计
+  'YH-KSZR-TMQXGSTJ':'improveStatisticsDept.html',//条目缺陷改善统计(科室)
+  "YH-KSZR-LCZKSYTJ":'useStatisticsDept.html',//临床质控使用统计(科室)
 };
 
 //导出时间天数