瀏覽代碼

质控平均分

1178232204@qq.com 3 年之前
父節點
當前提交
e6a7f57769

+ 433 - 403
src/css/doctorQcAverageDetail.less

@@ -1,414 +1,444 @@
-@import './reset.less';
+@import "./reset.less";
 
-.container{
-    width: 100%;
-    height: 100%;
-    overflow: auto;
-    background: #fff;
-    .partTitle {
-        border-bottom: 10px #EFF1F6 solid;
-        height: 54px;
-    }
+.container {
+  width: 100%;
+  height: 100%;
+  overflow: auto;
+  background: #fff;
+  .partTitle {
+    border-bottom: 10px #eff1f6 solid;
+    height: 54px;
+  }
 }
 .doctorQcAverageDetail {
-    // background-color: #fff;
-    .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{
-        .main-body-com;
-        min-width: 1250px;
-        border: 0;
-        border-left: 10px #EFF1F6 solid;
-        // box-sizing: border-box;
-        /*width: 100%;*/
-    }
-    table{
-        .table;
-        min-width: 1090px;
-        th,td{
-            text-align: center;
-        }
-        th{
-            white-space: nowrap;
-        }
-        th[code]{
-            cursor: pointer;
-            &:after{
-                content:"";
-                display:inline-block;
-                width: 11px;
-                height: 14px;
-                margin-left: 4px;
-                vertical-align: middle;
-                background: url("../images/grey.png");
-            }
-            &.asc:after{
-                background: url("../images/up_blue.png");
-                background-size: 11px 14px;
-            }
-            &.desc:after{                
-                background: url("../images/down_blue.png");
-                background-size: 11px 14px;
-            }
-        }
-        td{
-            white-space: nowrap;
-            position: relative;
-        }
-        .moduleNumber{
-            text-align: center;
-        }
-        .scoreOperaItem{
-            width: 50px;
-            cursor: pointer;
-        }
-        .updownimg {
-            width: 9px;
-            margin-left: 5px;
-            position: absolute;
-            top: 7px;
-            right: 1px;
-        }
-    }
-    .tabFoot{
-        height: 40px;
-        /*border: 1px solid #E2E5EF;
+  // background-color: #fff;
+  .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 {
+    .main-body-com;
+    min-width: 1250px;
+    border: 0;
+    border-left: 10px #eff1f6 solid;
+    // box-sizing: border-box;
+    /*width: 100%;*/
+  }
+  table {
+    .table;
+    min-width: 1090px;
+    th,
+    td {
+      text-align: center;
+    }
+    th {
+      white-space: nowrap;
+    }
+    th[code] {
+      cursor: pointer;
+      &:after {
+        content: "";
+        display: inline-block;
+        width: 11px;
+        height: 14px;
+        margin-left: 4px;
+        vertical-align: middle;
+        background: url("../images/grey.png");
+      }
+      &.asc:after {
+        background: url("../images/up_blue.png");
+        background-size: 11px 14px;
+      }
+      &.desc:after {
+        background: url("../images/down_blue.png");
+        background-size: 11px 14px;
+      }
+    }
+    td {
+      white-space: nowrap;
+      position: relative;
+    }
+    .moduleNumber {
+      text-align: center;
+    }
+    .scoreOperaItem {
+      width: 50px;
+      cursor: pointer;
+    }
+    .updownimg {
+      width: 9px;
+      margin-left: 5px;
+      position: absolute;
+      top: 7px;
+      right: 1px;
+    }
+  }
+  .tabFoot {
+    height: 40px;
+    /*border: 1px solid #E2E5EF;
         border-top: none;
         box-sizing: border-box;*/
-    }
-    .scoreOpera{
-        height: 50px;
-        line-height: 50px;
-        margin: 0 20px 0 0;
-        cursor: pointer;
-        img{
-            margin: 0 10px 0 0;
-        }
-    }
-    
-    .recordScoreOperaBtn{
-        cursor: pointer;
-        color: @activeColor;
-    }
-    .recordScoreBtn{
-        cursor: pointer;
-        display: inline-block;
-        width:68px;
-        height:30px;
-        line-height: 30px;
-        text-align: center;
-        border-radius:4px;
-        box-sizing: border-box;
-        border: 1px solid @activeColor;
-        color: @activeColor;
-    }
-    /*.filterBox{
+  }
+  .scoreOpera {
+    height: 50px;
+    line-height: 50px;
+    margin: 0 20px 0 0;
+    cursor: pointer;
+    img {
+      margin: 0 10px 0 0;
+    }
+  }
+
+  .recordScoreOperaBtn {
+    cursor: pointer;
+    color: @activeColor;
+  }
+  .recordScoreBtn {
+    cursor: pointer;
+    display: inline-block;
+    width: 68px;
+    height: 30px;
+    line-height: 30px;
+    text-align: center;
+    border-radius: 4px;
+    box-sizing: border-box;
+    border: 1px solid @activeColor;
+    color: @activeColor;
+  }
+  /*.filterBox{
         margin-bottom: 15px;
     }*/
-    .filterItem{
-        position: relative;
-        display: inline-block;
-        float: left;
-        height: 40px;
-        line-height: 40px;
-        margin: 0 20px 20px 0;
-        span{
-            display: inline-block;
-            line-height: 40px;
-            position: relative;
-        }
-        input{
-            width:120px;
-            height:40px;
-            border-radius:4px;
-            border: 1px solid #E2E5EF;
-            outline: none;
-            margin-right: 10px;
-            padding: 0 10px;
-            box-sizing: border-box;
-        }
-        input:focus{
-            border: 1px solid @activeColor ;
-            outline: 0;
-            -webkit-box-shadow:@activeColor  0px 0px 2px;
-            -moz-box-shadow: @activeColor  0px 0px 2px;
-            box-shadow: @activeColor  0px 0px 2px;
-          }
-    }
-    
-    .filterDropList{
-        position: absolute;
-        right: 0;
-        top: 34px !important;
-        max-height: 200px;
-        overflow-y: auto;
-        background: #fff;
-        display: none;
-        border: 1px solid #e4e7ed;
-        box-shadow: 0 2px 12px 0 #e4e7ed;
-        z-index: 2;
-        li{
-            padding: 0 10px;
-        }
-    }
-    .deptList{
-        width: 160px;
-        max-height: 400px;
-    }
-    .levelList{
-        width: 120px;
-        height: 120px;
-        li:hover{
-            background-color: #EEF4FF;
-            cursor: pointer;
-        }
-    }
-    .selectLevel,.selectDept,.selectLeaveHosType{
-        display: inline-block;
-        position: relative;
-        width:120px;
-        padding: 0 10px;
-        height:40px;
-        border-radius:4px;
-        border: 1px solid #E2E5EF;
-        box-sizing: border-box;
-        cursor: pointer;
-    }
-    .selectDept,.selectLeaveHosType{
-        width: 160px;
-    }
-    
-    .filter{
-        display: inline-block;
-        width:60px;
-        height:36px;
-        background:@activeColor;
-        border-radius:4px;
-        color: #fff;
-        text-align: center;
-        line-height: 36px;
-        position: relative;
-        top: 2px;
-        cursor: pointer;
-        float: left;
-    }
-    .export{
-        display: inline-block;
-        width:60px;
-        height:34px;
-        line-height: 34px;
-        background: #fff;
-        border-radius: 4px;
-        color: #777;
-        text-align: center;
-        border: 1px solid #777;
-        box-sizing: border-box;
-        cursor: pointer;
-        margin:0 0 20px 10px;
-        float: left;
-        top: 0px;
-    }
-    .arrow{
-        position: absolute;
-        width: 10px;
-        top: 16px;
-        right: 10px;
-    }
-    .iconCheck{
-        width: 14px;
-    }
-    .fl{
-        float: left;
-    }
-    .clearfix:after {
-        content: '';
-        height: 0;
-        line-height: 0;
-        display: block;
-        visibility: hidden;
-        clear: both;
-    }
-    .clearfix{
-        zoom:1
-    }
-    .divide{
-        margin: 0 10px;
-    }
-    .datapickerBox{
-        position: relative;
-        display: inline-block;
-        width: 120px;
-        height: 40px;
-        input{
-            position: absolute;
-        }
-    }
-    .iconCalen{
-        position: absolute;
-        width: 15px;
-        top: 12px;
-        right: 10px;
-    }
-    .textCenter{
-        text-align: center;
-    }
-    .patientNameSpan{
-        color: #00A1F0;
-        cursor: pointer;
-    }
-    .patientNameSpans{
-        color: #FF4D4F;
-        cursor: pointer;
-        margin-left: 30px;
-    }
-    
-    .deptItem:hover{
-        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;
-    }
+  .filterItem {
+    position: relative;
+    display: inline-block;
+    float: left;
+    height: 34px;
+    line-height: 34px;
+    margin: 0 20px 20px 0;
+    span {
+      display: inline-block;
+      line-height: 34px;
+      position: relative;
+    }
+    input {
+      width: 120px;
+      height: 34px;
+      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 {
+    width: 120px;
+    height: 120px;
+    li:hover {
+      background-color: #eef4ff;
+      cursor: pointer;
+    }
+  }
+  .selectLevel,
+  .selectDept,
+  .selectLeaveHosType {
+    display: inline-block;
+    position: relative;
+    width: 120px;
+    padding: 0 10px;
+    height: 40px;
+    border-radius: 4px;
+    border: 1px solid #e2e5ef;
+    box-sizing: border-box;
+    cursor: pointer;
+  }
+  .selectDept,
+  .selectLeaveHosType {
+    width: 160px;
+  }
+
+  .filter {
+    display: inline-block;
+    width: 60px;
+    height: 36px;
+    background: @activeColor;
+    border-radius: 4px;
+    color: #fff;
+    text-align: center;
+    line-height: 36px;
+    position: relative;
+    top: 2px;
+    cursor: pointer;
+    float: left;
+  }
+  .export {
+    display: inline-block;
+    width: 60px;
+    height: 34px;
+    line-height: 34px;
+    background: #fff;
+    border-radius: 4px;
+    color: #777;
+    text-align: center;
+    border: 1px solid #777;
+    box-sizing: border-box;
+    cursor: pointer;
+    margin: 0 0 20px 10px;
+    float: left;
+    top: 0px;
+  }
+  .arrow {
+    position: absolute;
+    width: 10px;
+    top: 16px;
+    right: 10px;
+  }
+  .iconCheck {
+    width: 14px;
+  }
+  .fl {
+    float: left;
+  }
+  .clearfix:after {
+    content: "";
+    height: 0;
+    line-height: 0;
+    display: block;
+    visibility: hidden;
+    clear: both;
+  }
+  .clearfix {
+    zoom: 1;
+  }
+  .divide {
+    margin: 0 10px;
+  }
+  .datapickerBox {
+    position: relative;
+    display: inline-block;
+    width: 120px;
+    height: 40px;
+    input {
+      position: absolute;
+    }
+  }
+  .iconCalen {
+    position: absolute;
+    width: 15px;
+    top: 12px;
+    right: 10px;
+  }
+  .textCenter {
+    text-align: center;
+  }
+  .patientNameSpan {
+    color: #00a1f0;
+    cursor: pointer;
+  }
+  .patientNameSpans {
+    color: #ff4d4f;
+    cursor: pointer;
+    margin-left: 30px;
+  }
+
+  .deptItem:hover {
+    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;
+  top: 2px !important;
 }
-.levelList,.checkList,.leaveHosTypeList {
-    width: 120px;
-    // height: 200px;
-    li:hover{
-        background-color: #EEF4FF;
-        cursor: pointer;
-    }
+.levelList,
+.checkList,
+.leaveHosTypeList {
+  width: 120px;
+  // height: 200px;
+  li:hover {
+    background-color: #eef4ff;
+    cursor: pointer;
+  }
+}
+.leaveHosTypeList {
+  width: 158px;
+  max-height: 300px;
+}
+.selectDept {
+  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: auto;
 }
-.leaveHosTypeList{
-    width: 158px;
-    max-height: 300px;
-}

+ 402 - 0
src/css/doctorQcListCopy.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;
+    margin: 44px 0 0;
+    min-width: 1090px;
+    min-height: calc(100% - 84px);
+    // overflow: auto;
+    height:  calc(100% - 44px);
+    padding-top: 30px;
+    .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;
+}
+
+
+
+
+

+ 331 - 0
src/css/doctorQuexianDetailControl.less

@@ -0,0 +1,331 @@
+@import './reset.less';
+
+.quexianDetailControl{
+    width: 100%;
+    height: 100%;
+    overflow-y: auto;
+    .filterDropList{
+        position: absolute;
+        right: 0;
+        max-height: 200px;
+        overflow-y: auto;
+        background: #fff;
+        border: 1px solid #e4e7ed;
+        box-shadow: 0 2px 12px 0 #e4e7ed;
+        z-index: 2;
+        li{
+            padding: 0 10px;
+        }
+    }
+    .deptList{
+        width: 160px;
+        max-height: 400px;
+    }  
+    .selectDepts{
+        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;
+    }  
+    .deptItem:hover{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+    .selectLevel,.selectDept{
+        display: inline-block;
+        position: relative;
+        width:160px;
+        padding: 0 10px;
+        height:40px;
+        border-radius:4px;
+        border: 1px solid #E2E5EF;
+        box-sizing: border-box;
+        cursor: pointer;
+    }
+    .filterItem.deptListWrap {
+        .selectDept,.deptList {
+            width: 180px;
+        }
+    }
+    .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;
+        }
+    }
+    .rejectList {
+        height: 80px !important;
+    }
+    .selectUsed,.selectReject {
+        float: right;
+    }
+    ul,li{
+        padding:0;
+        margin:0;
+        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 40px;
+        padding-bottom: 0px !important;
+        margin-top: 0;
+    }
+    table{
+        width: 100%;
+        border:1px solid #E2E5EF;
+        border-collapse: collapse;
+        thead{
+            background: #EFF0F9;
+           
+        }
+        
+        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%;
+            }
+        }
+        th,td{
+            height: 30px;
+            box-sizing: border-box;
+            // padding: 10px;
+            border:1px solid #E2E5EF;
+            border-collapse: collapse;
+        }
+        th{
+            font-size: 14px;
+            font-weight: 500;
+        }
+        td{
+            font-size: 14px;
+            font-weight: 400;
+        }
+        .moduleNumber{
+            text-align: center;
+        }
+        
+    }
+    // .filterBox{
+    //     margin: 0 0 20px 0;
+    // }
+    .filterItem{
+        position: relative;
+        display: inline-block;
+        margin-right: 20px;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 20px 0;
+    }
+    .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;
+        }
+    }
+    .rejectList, .usedList{
+        height: 120px;
+        li{
+            padding: 0 10px;
+        }
+        li:hover{
+            background-color: #EEF4FF;
+            cursor: pointer;
+        }
+    }
+    .switchImg{
+        width: 30px;
+    }
+    .roleSelect {
+        position: relative;
+        top: 3px;
+        cursor: pointer;
+    }
+    .selectModuleType,.moduleItemInp,.selectUsed, .selectReject{
+        display: inline-block;
+        position: relative;
+        width:140px;
+        padding: 0 10px;
+        height:40px;
+        border-radius:4px;
+        border: 1px solid #E2E5EF;
+        box-sizing: border-box;
+        cursor: pointer;
+        padding-right: 26px;
+    }
+    .arrow{
+        position: absolute;
+        width: 10px;
+        top: 16px;
+        right: 10px;
+    }
+    .moduleItemInp{
+        cursor: text;
+        outline: none;
+    }
+    .moduleTypeList{
+         width: 160px;
+    }
+    .selectUsed, .selectReject{
+        width: 140px;
+    }
+    .modeTypeItem:hover{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+    .rejectList, .usedList {
+        width: 140px;
+    }
+    .filter{
+        display: inline-block;
+        width:60px;
+        height:36px;
+        background:@activeColor;
+        border-radius:4px;
+        color: #fff;
+        text-align: center;
+        line-height: 36px;
+        position: relative;
+        top: -1px;
+        cursor: pointer;
+    }
+    .editItem{
+       color: @activeColor;
+       cursor: pointer;
+    }
+    .editItemDis{
+        color: #aaa;
+        cursor: not-allowed;
+    }
+    
+    .ellipsis{
+        overflow: hidden;
+        text-overflow:ellipsis;
+        white-space: nowrap;
+    }
+    .textCenter{
+        text-align: center;
+    }
+    
+    
+    .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;
+    }
+    
+    input::-webkit-outer-spin-button,
+    input::-webkit-inner-spin-button {
+        -webkit-appearance: none;
+    }
+     
+    input[type="number"] {
+        -moz-appearance: textfield;
+    }
+}
+
+.usrContain .selectReject,.usrContain .selectModuleType ,.managerContainer .selectModuleType  {
+    float: right;
+}
+.usrContain .rejectList,.usrContain .usedList{
+    height: 200px;
+}
+.usrContain .selectModuleType, .usrContain .moduleItemInp, .usrContain .selectUsed, .usrContain .selectReject {
+    width: 170px;
+}
+.managerContainer .moduleTypeList {
+    width: 140px;
+}
+.managerContainer.usrContain .moduleTypeList {
+    width: 170px;
+    height: 400px;
+}
+.managerContainer.usrContain .selectReject {
+    width: 140px;
+}

+ 4 - 3
src/html/doctorQcAverageDetail.html

@@ -11,7 +11,7 @@
 <body>
     <div class="container doctorQcAverageDetail">
         <div class="partTitle">
-          <p><a href="console.html">各科室缺陷占比 / </a>医生质控平均分</p>
+          <p><a href="deptScoreDetailControl.html">各科室缺陷占比 / </a>医生质控平均分</p>
           <div class="dateDetail fr">
             
           </div>
@@ -21,8 +21,9 @@
             <div class="filterBox clearfix">
                 <span class="filterItem typeFilter">
                     <span>科室:</span>
-                    <input type="text" class="selectDept canEditDept" value="全部">
-                    <ul class="deptList filterDropList"></ul>
+                    <span class="selectDept" data-id="">全部</span>
+                    <!-- <input type="text" class="selectDept canEditDept" disabled>
+                    <ul class="deptList filterDropList"></ul> -->
                 </span>
                 <span class="filterItem doctorFilter">
                     <span>医生姓名:</span>

+ 176 - 0
src/html/doctorQcListCopy.html

@@ -0,0 +1,176 @@
+<!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">
+        <!-- <h2>质控评分</h2>控制台 / 条目缺陷占比 / 缺陷详情 -->
+        <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 defectItem">
+                        <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">
+                        <!-- <td colspan="18" style="background: #fff">
+                            <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>
+                    <tr class="tabTitle">
+                        <!-- <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 desc" code="leave_hospital_date">出院日期</th>
+                        <th class="diagnose textCenter" code="diagnose">主诊断</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> -->
+                    </tr>
+                    </thead>
+                    <tbody class="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>
+
+    </div>
+</body>
+
+</html>

+ 74 - 0
src/html/doctorQuexianDetailControl.html

@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>缺陷详情</title>
+    
+</head>
+
+<body>
+    <div class="managerContainer quexianDetailControl">
+        <div class="partTitle">
+          <p class="titlePic"></p>
+          <!-- <div class="monthYear">
+            <span class="mon">本月</span>
+            <span class="year">本年</span>
+          </div>  -->
+          <div class="dateDetail fr">
+            
+          </div>
+        </div>
+        <div class="partTitleT"></div>
+        <div class="main-body">
+            <div class="filterBox">
+                <span class="filterItem typeFilter deptListWrap">
+                    <span>科室:</span>
+                    <span class="selectDepts" data-id="">全部</span>
+                </span>
+                <span class="filterItem">
+                    <span>缺陷名称:</span>
+                    <span class="">
+                        <input class="moduleItemInp" type="text" placeholder="请输入缺陷名称">
+                    </span>
+                </span>
+                <span class="filterItem typeFilter deptListWrap">
+                    <span>模块名称:</span>
+                    <span class="selectDept" data-id="">全部</span>
+                    <ul class="deptList filterDropList">
+                        <li class="deptItem ellipsis" title="全部" data-id="" data-name="全部">全部</li>
+                        <li class="deptItem ellipsis" title="甲级病历" data-id="甲" data-name="甲级病历">甲级病历</li>
+                        <li class="deptItem ellipsis" title="乙级病历" data-id="乙" data-name="乙级病历">乙级病历</li>
+                        <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="exportData">导出</span>
+            </div>
+            <table>
+                <thead>
+                    <th class="moduleName" style="width: 65px;">序号</th>
+                    <th class="moduleItemName desc" code="casesName">模块名称</th>
+                    <th class="moduleItemName" code="name">缺陷名称</th>
+                    <th class="moduleItemName textCenter" code="num">数量</th>
+                    <th class="moduleScore" style="width: 100px;" code="percent">缺陷占比</th>
+                </thead>
+                <tbody class="tbody">
+    
+                </tbody>
+            </table>
+            <div class="pagination"></div>
+        </div>
+    </div>
+</body>
+
+</html>

+ 8 - 0
src/js/api.js

@@ -229,6 +229,14 @@ const api = {
 
   getMedRecordOtherPage:'/qc/medRecordOther/getMedRecordOtherPage', //其他信息列表
   getMedRecordContentOther:'/qc/medRecordOther/getMedRecordContentOther', //文书内容展示
+
+  doctorAverageStatistics:'/consoleByDoctor/doctorAverageStatistics', //各科室平均分列表
+  doctorAverageStatisticsExport:'/consoleByDoctor/doctorAverageStatisticsExport', //各科室平均分列表导出
+  getDoctorDetailPage:'/consoleByDoctor/getDoctorDetailPage', //各科室缺陷列表
+  getDoctorDetailPageExport:'/consoleByDoctor/getDoctorDetailPageExport', //缺陷列表导出
+  getDetailRecordListPage:'/consoleByDoctor/getDetailRecordListPage', //各科室平均分病历列表
+  getDetailRecordListPageExport:'/consoleByDoctor/getDetailRecordListPageExport', //各科室平均分病历列表导出缺陷进入
+  doctorAverageLevelExport:'/consoleByDoctor/doctorAverageLevelExport', //各科室平均分病历列表导出
 }
 const ywCheckApi = {
   addMedCheckInfo: '/qc/medCheckInfo/addMedCheckInfo',   //核查

+ 1 - 1
src/js/deptScoreDetailControl.js

@@ -272,7 +272,7 @@ function renderTab(data,hisId,activePage){
                     ${item.entrySameNum<0?'<img class="updownimg" src="'+jiantou_down+'"/>':item.entrySameNum>0?'<img class="updownimg" src="'+jiantou_up+'"/>':''}
                 </td>
                 <td data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}">${item.sameNum}</td>
-                <td class="goHomeDetailAvg goHomeDetail">
+                <td class="goHomeDetailAvg goHomeDetail" data-dept="${item.deptName || ""}"  dept-id="${item.deptId || ""}">
                 ${item.averageValue || "-"}
                 ${item.avSameValue<0?'<img class="updownimg" src="'+jiantou_down+'"/>':item.avSameValue>0?'<img class="updownimg" src="'+jiantou_up+'"/>':''}
                 </td>

+ 184 - 203
src/js/doctorQcAverageDetail.js

@@ -1,55 +1,53 @@
 const $ = require('jquery');
 require("../css/doctorQcAverageDetail.less");
 require('./modal.js');
-const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,focusMenuItem,emptyBox,setDatePicker,getPickerDate,downloadExportedData,expJson,initScroll,listenScroll} = require('./utils.js')
+const { api } = require('./api.js')
+const { post, getCookie, getUrlArgObjectNew, focusMenuItem, emptyBox, setDatePicker, getPickerDate, downloadExportedData, expJson, initScroll, listenScroll } = require('./utils.js')
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./../resource/jquery-ui/jquery-ui.min.css');
-const iconDown= require("./../images/arrow_down.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")
 const arrowRight = require("./../images/arrow_right.png")
 const jiantou_up = require("./../images/jiantou_up.png")
 const jiantou_down = require("./../images/jiantou_down.png")
-let isPlacefile = getCookie('isPlacefile')||1
+let isPlacefile = getCookie('isPlacefile') || 1
 
 listenScroll()
 //下拉箭头图标添加
 $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`);
-let tabList = [], name = "",leaveHosType="",leaveHosTypeTemp="", behospitalCode="", level="", /*statisticsType="",*/
-  nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", deptName="",deptNameTemp="", doctorNameTemp="",doctorNumTemp="",
-  data_desc="entryNum",data_asc="",hospital=getCookie("hospital");
-  let srcUrl = $("#contentIframe",parent.document).attr("src")
-  /*statisticsType = getUrlArgObjectNew("dateType",srcUrl)||""*/
-  deptType = getUrlArgObjectNew("deptType",srcUrl)||""
-  deptName = getUrlArgObjectNew("deptName",srcUrl)||""
-  let startDateParam = getUrlArgObjectNew("startDateParam",srcUrl)||""
-  let endDateParam = getUrlArgObjectNew("endDateParam",srcUrl)||""
-  //传入的日期显示
-  setDatePicker($("#datepicker"),$("#datepicker2"),3,new Date(startDateParam),new Date(endDateParam))
+let tabList = [], /*statisticsType="",*/
+    levelTemp = "", deptId = "", deptIdTemp = "", deptName = "", deptNameTemp = "", doctorName = "", doctorNameTemp = "",
+    data_desc = ['entryNum'], data_asc = [],doctorNum = "",doctorNumTemp = "", hospital = getCookie("hospital");
+let srcUrl = $("#contentIframe", parent.document).attr("src")
+/*statisticsType = getUrlArgObjectNew("dateType",srcUrl)||""*/
+deptType = getUrlArgObjectNew("deptType", srcUrl) || ""
+deptName = getUrlArgObjectNew("deptName", srcUrl) || ""
+deptId = getUrlArgObjectNew("deptId", srcUrl) || ""
 
-  //重置按钮事件绑定
-$(".abnormalClear").click(function(){
-    setDatePicker($("#datepicker"),$("#datepicker2"),"default")
-    behospitalCode=behospitalCodeTemp = ""
-    deptId =deptIdTemp= ""
-    leaveHosType =leaveHosTypeTemp= ""
-    deptName =deptNameTemp= ""
-    leaveHosType="";
-    leaveHosTypeTemp="";
+let startDateParam = getUrlArgObjectNew("startDateParam", srcUrl) || ""
+let endDateParam = getUrlArgObjectNew("endDateParam", srcUrl) || ""
+$('.selectDept').html(deptName).attr("title", deptName)
+//传入的日期显示
+setDatePicker($("#datepicker"), $("#datepicker2"), 3, new Date(startDateParam), new Date(endDateParam))
 
-    $(".leaveHosTypeList").css("display", "none")
-    $(".selectDept").attr({'title':"全部",'data-id':''}).val("全部")
-    $(".patientNumInp").val("")
+//重置按钮事件绑定
+$(".abnormalClear").click(function () {
+    setDatePicker($("#datepicker"), $("#datepicker2"), "default")
+    doctorName = doctorNameTemp = ""
+    doctorNum = doctorNumTemp = ""
+    $(".selectDept").attr({ 'title': "全部", 'data-id': '' }).val("全部")
+    $(".doctorInp").val("")
+    $(".doctorNumInp").val("")
     getTabData(1)
     getDeptList()
 })
 
 //面包屑点击事件
-$(".partTitle a").click(function(){//初始菜单选中
-    $(".menu .page",parent.document).removeClass("active").eq(0).addClass("active");
-    $(".container",parent.document).addClass("console-cont");
+$(".partTitle a").click(function () {//初始菜单选中
+    $(".menu .page", parent.document).removeClass("active").eq(0).addClass("active");
+    $(".container", parent.document).addClass("console-cont");
 })
 
 
@@ -58,102 +56,93 @@ $(".menu .page", parent.document).removeClass("active")
 $(parent.document).find(".menu .page[code=YH-ZKK-GKSQXZB_XQ]").addClass("active")
 
 //判断有无某一权限
-  function hasData(data,parent){
+function hasData(data, parent) {
     let codeLis = getCookie("codeLis")
-    if(parent){
-        if(codeLis.indexOf(parent)==-1){//有权限
+    if (parent) {
+        if (codeLis.indexOf(parent) == -1) {//有权限
             return false
         }
     }
-    if(codeLis.indexOf(data)>-1){//有权限
+    if (codeLis.indexOf(data) > -1) {//有权限
         return true
     }
     return false;
 }
-function getTabData(activePage){
-    const dateStatrt = getPickerDate($("#datepicker"),1)
-    const dateEnd = getPickerDate($("#datepicker2"),2)
+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)});
+    if (start > end) {
+        $.alerModal({ "message": '开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
         return
     }
     const param = {
         "asc": data_asc,
         "desc": data_desc,
-        "doctorName": behospitalCode||"",
-        "name": behospitalCode||"",
-        "deptClass": leaveHosType||'',
-        "deptName": deptName=="全部"?"":deptName||"",
+        "doctorName": doctorName || "",
+        "doctorId":doctorNum || "",
+        "deptId": deptId,
+        "deptName": deptName == "全院" ? "" : (deptName || ""),
         "type": 0, //1-本月,2-本年,0-自定义时间(现在 都是自定义时间,都会传具体时间进去)
-        "startDate":dateStatrt,
-        "endDate":dateEnd
-    }
-    let url = ''
-
-    if(hospital=="台州市立"&&hasData('FUNC000092','YH-ZKK-GKSQXZB_XQ')){
-        url = api.levelStatisticsByDeptClass
-    }else{
-        url = api.levelStatistics
+        "startDate": dateStatrt,
+        "endDate": dateEnd
     }
     startDateParam = dateStatrt
     endDateParam = dateEnd
     $('.pagination').html("")
-    $('.doctorQcAverageDetailTable table').html(`<tbody>${emptyBox('努力加载中...','',1)}</tbody>`)
+    $('.doctorQcAverageDetailTable table').html(`<tbody>${emptyBox('努力加载中...', '', 1)}</tbody>`)
 
-    post(url,param).then(res =>{
-        if(res.data.code == '0'){
+    post(api.doctorAverageStatistics, param).then(res => {
+        if (res.data.code == '0') {
             const data = res.data.data;
             tabList = data.records;
             const totalPage = data.pages;
             const totalNum = data.total;
-            renderTab(data,data.hospitalId,activePage);
-            renderPagination(totalPage,Number(activePage),totalNum)
-            if(totalPage > 1){
-                renderPagination(totalPage,Number(activePage),totalNum)
-            } else{
+            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)});
+        } else {
+            $.alerModal({ "message": res.data.msg, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
         }
-    }).catch((e) =>{
-        
+    }).catch((e) => {
+
     })
 }
 
 getTabData(1)
 
 
-$("body").on("click","th[code]",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");
+$("body").on("click", "th[code]", 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);
 });
-$(".filter").on("click", function(e){
-    name = nameTemp
-    behospitalCode = behospitalCodeTemp
-    level = levelTemp
+$(".filter").on("click", function (e) {
     deptId = deptIdTemp
-    leaveHosType = leaveHosTypeTemp
     deptName = deptNameTemp
-    if(deptName == ""){
-        $(".selectDept").attr({'title':"全部",'data-id':''}).val("全部")
+    doctorNum = doctorNumTemp
+    doctorName = doctorNameTemp
+    if (deptName == "") {
+        $(".selectDept").attr({ 'title': "全部", 'data-id': '' }).val("全部")
     }
     getTabData(1)
 })
-function renderTab(data,hisId,activePage){
+function renderTab(data, hisId, activePage) {
     let str = ``
     let tHead = `
         <thead>
@@ -161,71 +150,71 @@ function renderTab(data,hisId,activePage){
         <th class="beHospitalId textCenter">科室</th>
         <th class="beHospitalId textCenter">医生姓名</th>
         <th class="beHospitalId textCenter">医生工号</th>
-        <th class="beHospitalId textCenter ${data_asc == 'entryNum'?'asc':data_desc == 'entryNum'?'desc':''}" code="entryNum">缺陷总数</th>
-        <th class="beHospitalId textCenter ${data_asc == 'averageValue'?'asc':data_desc == 'averageValue'?'desc':''}" code="averageValue">质控平均分</th>
-        <th class="beHospitalId textCenter ${data_asc == 'firstLevelNum'?'asc':data_desc == 'firstLevelNum'?'desc':''}" code="firstLevelNum">甲级病历数</th>
-        <th class="beHospitalId textCenter ${data_asc == 'secondLevelNum'?'asc':data_desc == 'secondLevelNum'?'desc':''}" code="secondLevelNum">乙级病历数</th>
-        <th class="beHospitalId textCenter ${data_asc == 'thirdLevelNum'?'asc':data_desc == 'thirdLevelNum'?'desc':''}" code="thirdLevelNum">丙级病历数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'entryNum' ? 'asc' : data_desc == 'entryNum' ? 'desc' : ''}" code="entryNum">缺陷总数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'averageValue' ? 'asc' : data_desc == 'averageValue' ? 'desc' : ''}" code="averageValue">质控平均分</th>
+        <th class="beHospitalId textCenter ${data_asc == 'firstLevelStrNum' ? 'asc' : data_desc == 'firstLevelStrNum' ? 'desc' : ''}" code="firstLevelStrNum">甲级病历数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'secondLevelStrNum' ? 'asc' : data_desc == 'secondLevelStrNum' ? 'desc' : ''}" code="secondLevelStrNum">乙级病历数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'thirdLevelStrNum' ? 'asc' : data_desc == 'thirdLevelStrNum' ? 'desc' : ''}" code="thirdLevelStrNum">丙级病历数</th>
         </thead>`
-    for(let i = 0; i <data.length; i++){
+    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  class="textCenter">${(activePage - 1) * 15 + i + 1}</td>
                 <td >${item.deptName || "-"}</td>
                 <td >${item.doctorName || "-"}</td>
                 <td >${item.doctorId || "-"}</td>
-                <td class="goHomeDetailQuexian goHomeDetail" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}">
+                <td class="goHomeDetailQuexian goHomeDetail" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}" dept-doc="${item.doctorName || ""}" dept-docId="${item.doctorId || ""}">
                     ${item.entryNum || "-"}
-                    ${item.entrySameNum<0?'<img class="updownimg" src="'+jiantou_down+'"/>':item.entrySameNum>0?'<img class="updownimg" src="'+jiantou_up+'"/>':''}
-                </td>
-                <td class="goHomeDetailAvg goHomeDetail">
-                ${item.averageValue || "-"}
-                ${item.avSameValue<0?'<img class="updownimg" src="'+jiantou_down+'"/>':item.avSameValue>0?'<img class="updownimg" src="'+jiantou_up+'"/>':''}
+                    ${item.entrySameNum < 0 ? '<img class="updownimg" src="' + jiantou_down + '"/>' : item.entrySameNum > 0 ? '<img class="updownimg" src="' + jiantou_up + '"/>' : ''}
                 </td>
-                <td  class="goHomeDetailB goHomeDetail" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}" data-c="甲">
-                ${item.firstLevelNum+'' || "-"}
-                ${item.firSameLevelNum<0?'<img class="updownimg" src="'+jiantou_down+'"/>':item.firSameLevelNum>0?'<img class="updownimg" src="'+jiantou_up+'"/>':''}
+                <td >${item.averageValue || "-"} </td>
+                <td  class="goHomeDetailB goHomeDetail" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}" data-c="甲" dept-doc="${item.doctorName || ""}" dept-docId="${item.doctorId || ""}">
+                ${item.firstLevelStrNum + '' || "-"}
+                ${item.firSameLevelNum < 0 ? '<img class="updownimg" src="' + jiantou_down + '"/>' : item.firSameLevelNum > 0 ? '<img class="updownimg" src="' + jiantou_up + '"/>' : ''}
                 </td>
-                <td  class="goHomeDetailB goHomeDetail" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}" data-c="乙">
-                ${item.secondLevelNum+'' || "-"}
-                ${item.secSameLevelNum<0?'<img class="updownimg" src="'+jiantou_down+'"/>':item.secSameLevelNum>0?'<img class="updownimg" src="'+jiantou_up+'"/>':''}
+                <td  class="goHomeDetailB goHomeDetail" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}" data-c="乙" dept-doc="${item.doctorName || ""}" dept-docId="${item.doctorId || ""}">
+                ${item.secondLevelStrNum + '' || "-"}
+                ${item.secSameLevelNum < 0 ? '<img class="updownimg" src="' + jiantou_down + '"/>' : item.secSameLevelNum > 0 ? '<img class="updownimg" src="' + jiantou_up + '"/>' : ''}
                 </td>
-                <td  class="goHomeDetailB goHomeDetail" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}" data-c="丙">
-                ${item.thirdLevelNum+'' || "-"}
-                ${item.thiSameLevelNum<0?'<img class="updownimg" src="'+jiantou_down+'"/>':item.thiSameLevelNum>0?'<img class="updownimg" src="'+jiantou_up+'"/>':''}
+                <td  class="goHomeDetailB goHomeDetail" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}" data-c="丙" dept-doc="${item.doctorName || ""}" dept-docId="${item.doctorId || ""}">
+                ${item.thirdLevelStrNum + '' || "-"}
+                ${item.thiSameLevelNum < 0 ? '<img class="updownimg" src="' + jiantou_down + '"/>' : item.thiSameLevelNum > 0 ? '<img class="updownimg" src="' + jiantou_up + '"/>' : ''}
                 </td>
             </tr>
         `
     }
-    $('.doctorQcAverageDetailTable table').html(str?tHead+'<tbody>'+str+'</tbody>':tHead+`<tbody>${emptyBox()}</tbody>`)
-  // 缺陷总数跳转
-    $(".goHomeDetailQuexian").click(function(){
+    $('.doctorQcAverageDetailTable table').html(str ? tHead + '<tbody>' + str + '</tbody>' : tHead + `<tbody>${emptyBox()}</tbody>`)
+    // 缺陷总数跳转
+    $(".goHomeDetailQuexian").click(function () {
         let deptName = $(this).attr("data-dept")
         let deptId = $(this).attr("dept-id")
-        $(parent.document).find("#contentIframe").attr("src", "quexianDetailControl.html?deptName=" + deptName+"&deptId=" + deptId +"&from=2"+"&shijian=3"+"&startDateParam="+startDateParam+"&endDateParam="+endDateParam)
+        let doctorName = $(this).attr("dept-doc")
+        let doctorId = $(this).attr("dept-docId")
+        $(parent.document).find("#contentIframe").attr("src", "doctorQuexianDetailControl.html?deptName=" + deptName + "&deptId=" + deptId+ "&doctorName=" + doctorName+ "&doctorId=" + doctorId + "&from=2" + "&shijian=3" + "&startDateParam=" + startDateParam + "&endDateParam=" + endDateParam)
     })
-  //病历跳转
-    $(".goHomeDetailB").click(function(){
+    //病历跳转
+    $(".goHomeDetailB").click(function () {
         let deptName = $(this).attr("data-dept")
         let deptC = $(this).attr("data-c")
         let deptIds = $(this).attr("dept-id")
-        focusMenuItem("YH-BLZK-ZKPF");
-        $(parent.document).find("#contentIframe").attr("src","qcList.html?deptName="+deptName+"&from=2"+"&shijian=3&chengdu="+deptC+"&deptId="+deptIds+"&startDateParam="+startDateParam+"&endDateParam="+endDateParam)
+        let doctorName = $(this).attr("dept-doc")
+        let doctorId = $(this).attr("dept-docId")
+        $(parent.document).find("#contentIframe").attr("src", "doctorQcListCopy.html?deptName=" + deptName + "&from=3" + "&shijian=3&chengdu=" + deptC + "&deptId=" + deptIds+ "&doctorName=" + doctorName+ "&doctorId=" + doctorId + "&startDate=" + startDateParam + "&endDate=" + endDateParam)
     })
 }
 
 //科室下拉事件绑定
-$('.selectDept').on("focus", function(e){
+$('.selectDept').on("focus", function (e) {
     e.stopPropagation()
-    $(".deptList ").css("display","block")
+    $(".deptList ").css("display", "block")
 })
 
-$('.selectDept').on("blur", function(e){
+$('.selectDept').on("blur", function (e) {
     $(".deptList ").css("display", "none")
-    $(".selectDept .arrow").attr("src",iconDown)
+    $(".selectDept .arrow").attr("src", iconDown)
 })
-$('.selectDept').on("input", function(e){
+$('.selectDept').on("input", function (e) {
     let val = $(this).val().trim()
     deptName = deptNameTemp = val
     getDeptList(deptName)
@@ -233,45 +222,45 @@ $('.selectDept').on("input", function(e){
 
 //获取科室列表
 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{
+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) =>{
+    }).catch((e) => {
 
     })
 }
 
-function rendeDeptList(deptList){
-    if(deptList.length == 0){
+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++){
+    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(){
+function bindDeptSelect() {
+    $('.deptItem').on("mousedown", function () {
         const deptItemName = $(this).attr("data-name")
         const deptItemId = $(this).attr("data-id")
-        deptIdTemp =deptItemId
-        deptNameTemp=deptItemName==="全部"?"":deptItemName;
+        deptIdTemp = deptItemId
+        deptNameTemp = deptItemName === "全部" ? "" : deptItemName;
         $('.selectDept').val(deptItemName)
-        $('.selectDept ').attr('title',deptItemName)
+        $('.selectDept ').attr('title', deptItemName)
         $(".deptList").css("display", "none")
         $('.selectDept').removeClass('unSelect')
     })
 }
-function loading(){
+function loading() {
     const str = `
     <div class="loadingBox">
             <div class="mask"></div>
@@ -280,122 +269,114 @@ function loading(){
     `
     $("#mainBox", parent.document).append(str)
 }
-function hideLoading(){
+function hideLoading() {
     $("#mainBox .loadingBox", parent.document).remove()
 }
-$(".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){
+$(".doctorInp").on("input", function (e) {
     const val = $(this).val().trim()
     doctorNameTemp = val
 })
-$(".doctorNumInp").on("input", function(e){
-  const val = $(this).val().trim();
+$(".doctorNumInp").on("input", function (e) {
+    const val = $(this).val().trim();
     doctorNumTemp = val
 })
 
 //分页渲染
-function renderPagination(totalPage,activePage,totalNum){
+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>`
+    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>`
+    } 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>`
+            str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
 
-        } else if(activePage > totalPage -3){
+        } 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>`
+            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="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="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){
+    $(".pageNum").on("click", function (e) {
         const activePageNow = Number($(this).attr('data-page'))
         getTabData(activePageNow)
         // renderPagination(totalPage,activePageNow,totalNum)
     })
-    $(".prePage").on("click", function(e){
+    $(".prePage").on("click", function (e) {
         let activePageNow = Number($(".activePage").attr('data-page'))
-        if(activePageNow > 1){
+        if (activePageNow > 1) {
             activePageNow--
             getTabData(activePageNow)
             // renderPagination(totalPage,activePageNow,totalNum)
         }
     })
-    $(".nextPage").on("click", function(e){
+    $(".nextPage").on("click", function (e) {
         let activePageNow = Number($(".activePage").attr('data-page'))
-        if(activePageNow < totalPage){
+        if (activePageNow < totalPage) {
             activePageNow++
             getTabData(activePageNow)
             // renderPagination(totalPage,activePageNow,totalNum)
         }
     })
-    
+
 }
 
-$(function() {
-    const  iconCalenBlue= require("./../images/darkDate.png")
-    const  iconCalenGrey= require("./../images/icon_calen_grey.png")
+$(function () {
+    const iconCalenBlue = require("./../images/darkDate.png")
+    const iconCalenGrey = require("./../images/icon_calen_grey.png")
     $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
-    $('.iconCalen').on("mouseenter", function(e){
+    $('.iconCalen').on("mouseenter", function (e) {
         $(this).attr("src", iconCalenBlue)
     })
-    $('.iconCalen').on("mouseleave", function(e){
+    $('.iconCalen').on("mouseleave", function (e) {
         $(this).attr("src", iconCalenGrey)
     })
-    $('.iconCalen').on("click", function(e){
+    $('.iconCalen').on("click", function (e) {
         $(this).parent().find("input").focus()
     });
-  $('.export').click(function(){
-    const start = new Date(startDateParam).getTime()
-    const end = new Date(endDateParam).getTime()
-    if(start > end){
-      $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
-      return
-    }
-    const param = {
-        "asc": data_asc,
-        "desc": data_desc,
-        "name": behospitalCode||"",
-        "doctorName": behospitalCode||"",
-        "deptClass": leaveHosType||'',
-        "deptName": deptName=="全部"?"":deptName||"",
-        /*"type": statisticsType||2,*/ //1-本月,2-本年
-        "startDate":startDateParam,
-        "isPlacefile":isPlacefile,
-        "endDate":endDateParam
-    };
-    const url = hospital == '台州市立'?api.exportDeptFlawsTz:api.exportDeptFlaws;
-    expJson(url,param).then(res =>{
-      downloadExportedData(res.data, "各科室缺陷占比.xls")
+    $('.export').click(function () {
+        const start = new Date(startDateParam).getTime()
+        const end = new Date(endDateParam).getTime()
+        if (start > end) {
+            $.alerModal({ "message": '开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+            return
+        }
+        const param = {
+            "asc": data_asc,
+            "desc": data_desc,
+            "doctorName": doctorName || "",
+            "doctorId":doctorNum || "",
+            "deptName": deptName == "全部" ? "" : deptName || "",
+            "deptId": deptId,
+            /*"type": statisticsType||2,*/ //1-本月,2-本年
+            "startDate": startDateParam,
+            "isPlacefile": isPlacefile,
+            "endDate": endDateParam
+        };
+        const url = hospital == '台州市立' ? api.exportDeptFlawsTz : api.exportDeptFlaws;
+        expJson(api.doctorAverageStatisticsExport, param).then(res => {
+            downloadExportedData(res.data, "医生质控平均分.xls")
+        })
     })
-  })
 });

文件差異過大導致無法顯示
+ 1310 - 0
src/js/doctorQcListCopy.js


+ 615 - 0
src/js/doctorQuexianDetailControl.js

@@ -0,0 +1,615 @@
+const $ = require('jquery');
+require("../css/doctorQuexianDetailControl.less");
+require('./../resource/jquery-ui/jquery-ui.min.js');
+require('./modal.js');
+const { api } = require('./api.js')
+const { post, getCookie, getUrlArgObjectNew, emptyBox, setDatePicker, getPickerDate, expJson, downloadExportedData, initScroll, listenScroll } = require('./utils.js')
+const switchIconOpen = require("./../images/btn_open.png")
+const switchIconClose = require("./../images/btn_close.png")
+const iconDown = require("./../images/arrow_down.png")
+const iconUp = require("./../images/arrow_up.png")
+const arrowLeft = require("./../images/arrow_left.png")
+const arrowRight = require("./../images/arrow_right.png")
+listenScroll('.quexianDetailControl')
+let casesId = "", doctorId = "",doctorName = "", name = "", isReject = "", deptName = "", data_asc = [], data_desc = ["casesName"], isUsed = "", casesIdTemp = "", nameTemp = "", isRejectTemp = "", isUsedTemp = "", from = "", deptIdTemp = "", deptItemId = "", deptId = ""
+$(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectUsed").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let srcUrl = $("#contentIframe", parent.document).attr("src")
+let deptList = []
+let isPlacefile = getCookie('isPlacefile') || 1
+let deptPushId = getUrlArgObjectNew("deptId", srcUrl) || ""
+$(function () {
+    dateChange()
+    let srcUrl = $("#contentIframe", parent.document).attr("src")
+    deptName = getUrlArgObjectNew("deptName", srcUrl) || ""
+    deptId = deptIdTemp = getUrlArgObjectNew("caseName", srcUrl) || ""
+    doctorName = getUrlArgObjectNew("doctorName", srcUrl) || ""
+    doctorId = getUrlArgObjectNew("doctorId", srcUrl) || ""
+    from = getUrlArgObjectNew("from", srcUrl) || ""
+    isReject = isRejectTemp = getUrlArgObjectNew("shijian", srcUrl) || ""
+    casesId = getUrlArgObjectNew("casesId", srcUrl) || ""
+    let startDateParam = getUrlArgObjectNew("startDateParam", srcUrl) || ""
+    let endDateParam = getUrlArgObjectNew("endDateParam", srcUrl) || ""
+    if (isReject == 1) {
+        $(".monthYear .mon").css({
+            backgroundColor: '#00A1FF',
+            color: '#fff'
+        }).siblings().css({
+            color: '#00A1FF',
+            backgroundColor: '#fff'
+        })
+        setDatePicker($("#datepicker"), $("#datepicker2"), 1)
+    } else if (isReject == 2) {
+        $(".monthYear .year").css({
+            backgroundColor: '#00A1FF',
+            color: '#fff'
+        }).siblings().css({
+            color: '#00A1FF',
+            backgroundColor: '#fff'
+        })
+        setDatePicker($("#datepicker"), $("#datepicker2"), 2)
+    } else if (isReject == 3) {
+        setDatePicker($("#datepicker"), $("#datepicker2"), 3, new Date(startDateParam), new Date(endDateParam))
+    }
+    if (!isReject) {
+        setDatePicker($("#datepicker"), $("#datepicker2"), 'default')
+    }
+    $(".selectDepts").html(deptName)
+    // if(from == 1){
+    $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="doctorQcAverageDetail.html">各科室缺陷占比 / </a><a class="consoleP" href="doctorQcAverageDetail.html">医生质控平均分 / </a>缺陷列表${doctorName && doctorName!='-' ? '(' + doctorName + ')' : ''}`)
+    $(".partTitle .consoleD").click(function () {
+        $(".menu .page", parent.document).removeClass("active").eq(0).addClass("active");
+        $(".container", parent.document).addClass("console-cont");
+    })
+    // }
+    // else{
+    //     $(".partTitle .titlePic").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="deptScoreDetailControl.html">各科室缺陷占比 / </a>缺陷详情`)
+    //     $(".partTitle .consoleD").click(function(){
+    //         $(".menu .page",parent.document).removeClass("active").eq(0).addClass("active");
+    //         $(".container",parent.document).addClass("console-cont");
+    //     })
+    // }
+    getTabData(1)//条目缺陷
+
+    $(".abnormalClear").click(function () {
+        setDatePicker($("#datepicker"), $("#datepicker2"), "default")
+        name = nameTemp = ""
+        deptId = deptIdTemp = ""
+        $(".selectDept").html("全部").attr("data-id", "").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        $(".patientNumInp").val("")
+        getTabData(1)
+    })
+    getMolist()
+})
+
+function getMolist() {
+    post(api.getQcCases).then(res => {
+        if (res.data.code == '0') {
+            data = res.data.data
+            deptList = data
+            getDeptList()
+        } else { }
+    }).catch((e) => {
+
+    })
+}
+bindDeptSelect()
+//科室选择
+function bindDeptSelect() {
+    $(document).on("click", '.deptItem', function () {
+        const deptItemName = $(this).attr("data-name") || ""
+        const deptItemId = $(this).attr("data-id")
+        deptIdTemp = deptId = 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")
+    })
+}
+//全选绑定
+
+$('.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 getDeptList() {
+    let str = ``
+    if (deptList.length <= 0) return
+    for (let i = 0; i < deptList.length; i++) {
+        let tmp = deptList[i]
+        str += `<li class="deptItem ellipsis" title="${tmp.name}" data-id="${tmp.name}" data-name="${tmp.name}">${tmp.name}</li>`
+    }
+    $(".quexianDetailControl .filterDropList").html('<li class="deptItem ellipsis" title="" data-id="" data-id="" data-name="全部">全部</li>' + str)
+}
+
+$("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);
+    // console.log(code)
+});
+function getTabData(activePage) {
+    const dateStatrt = getPickerDate($("#datepicker"), 1)
+    const dateEnd = getPickerDate($("#datepicker2"), 2)
+    const start = new Date(dateStatrt).getTime()
+    const end = new Date(dateEnd).getTime()
+    if (start > end) {
+        $.alerModal({ "message": '开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+        return
+    }
+    const param = {
+        current: activePage,
+        type: 0,//1-本月,2-本年,0-自定义时间(现在 都是自定义时间,都会传具体时间进去)
+        name: name, //条目名
+        doctorName: doctorName,
+        doctorId:doctorId,
+        casesName: deptId,
+        deptName: deptName == "全院" ? "" : (deptName || ""),
+        casesId: casesId || "",
+        globalType: 1,
+        ascs: data_asc,
+        descs: data_desc,
+        size: 15,
+        "startDate": dateStatrt,
+        "endDate": dateEnd
+    }
+    startDateParam = dateStatrt
+    endDateParam = dateEnd
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...', '', 1))
+    post(api.getDoctorDetailPage, param).then(res => {
+        if (res.data.code == '0') {
+            const data = res.data.data.records
+            const totalPage = res.data.data.pages
+            const totalNum = res.data.data.total
+            renderTab(data, activePage)
+            if (totalPage > 1) {
+                renderPagination(totalPage, Number(activePage), totalNum)
+            } else {
+                $('.pagination').html("")
+            }
+        } else { }
+    }).catch((e) => {
+
+    })
+}
+//所有数据切换日期筛选
+function dateChange() {
+    $(".monthYear .mon").click(function () {
+        $(this).css({
+            backgroundColor: '#00A1FF',
+            color: '#fff'
+        }).siblings().css({
+            color: '#00A1FF',
+            backgroundColor: '#fff'
+        })
+        isReject = isRejectTemp = 1
+        setDatePicker($("#datepicker"), $("#datepicker2"), 1)
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function () {
+        $(this).css({
+            backgroundColor: '#00A1FF',
+            color: '#fff'
+        }).siblings().css({
+            color: '#00A1FF',
+            backgroundColor: '#fff'
+        })
+        isReject = isRejectTemp = 2
+        setDatePicker($("#datepicker"), $("#datepicker2"), 2)
+        getTabData(1)
+    })
+}
+//判断有无某一权限
+function hasData(data) {
+    let lis = JSON.parse(getCookie("codeLis")) || []
+    if (lis.indexOf(data) > -1) {//有权限
+        return true
+    }
+    return false;
+}
+
+$(".moduleItemInp").on("input", function (e) {
+    const val = $(this).val().trim()
+    nameTemp = val
+})
+$(".filter").on("click", function (e) {
+    casesId = casesIdTemp, name = nameTemp, isReject = isRejectTemp, isUsed = isUsedTemp, deptId = deptIdTemp
+    getTabData(1)
+})
+$(".filterclear").on("click", function (e) {
+    nameTemp = ""
+    $(".moduleItemInp").val("")
+})
+$('.selectModuleType').on("click", function (e) {
+    e.stopPropagation()
+    $(".rejectList ").css("display", "none")
+    $(".usedList ").css("display", "none")
+    $(".selectReject .arrow").attr("src", iconDown)
+    $(".selectUsed .arrow").attr("src", iconDown)
+    const showList = $(".moduleTypeList ").css("display")
+    if (showList == "none" || !showList) {
+        $(".moduleTypeList ").css("display", "block")
+        $(".selectModuleType .arrow").attr("src", iconUp)
+    } else {
+        $(".moduleTypeList ").css("display", "none")
+        $(".selectModuleType .arrow").attr("src", iconDown)
+    }
+})
+$('.selectReject').on("click", function (e) {
+    e.stopPropagation()
+    $(".moduleTypeList ").css("display", "none")
+    $(".usedList ").css("display", "none")
+    $(".selectModuleType .arrow").attr("src", iconDown)
+    $(".selectUsed .arrow").attr("src", iconDown)
+    const showList = $(".rejectList ").css("display")
+    if (showList == "none" || !showList) {
+        $(".rejectList ").css("display", "block")
+        $(".selectUsed .arrow").attr("src", iconUp)
+    } else {
+        $(".rejectList ").css("display", "none")
+        $(".selectUsed .arrow").attr("src", iconDown)
+    }
+})
+$('.selectUsed').on("click", function (e) {
+    e.stopPropagation()
+    $(".moduleTypeList ").css("display", "none")
+    $(".rejectList ").css("display", "none")
+    $(".selectModuleType .arrow").attr("src", iconDown)
+    $(".selectReject .arrow").attr("src", iconDown)
+    const showList = $(".usedList ").css("display")
+    if (showList == "none" || !showList) {
+        $(".usedList ").css("display", "block")
+        $(".selectUsed .arrow").attr("src", iconUp)
+    } else {
+        $(".usedList ").css("display", "none")
+        $(".selectUsed .arrow").attr("src", iconDown)
+    }
+})
+// bindRejectSelect()
+// bindUsedSelect()
+// getTabData(1)
+// getmoduleTypeList()
+function renderTab(data, activePage) {
+    let str = ``;
+    const cls = hasData("FUNC000007") ? "editItem" : "editItemDis";
+    for (let i = 0; i < data.length; i++) {
+        const item = data[i]
+        str += `
+            <tr data-id=${item.id} data-index=${i}>
+                <td  class="textCenter">${(activePage - 1) * 15 + i + 1}</td>
+                <td class="textCenter">${item.casesName}</td>
+                <td>${item.name}</td>
+                <td class="textCenter goHomeDetail" data-id="${item.casesId}" data-ruleType="${item.ruleType}">${item.num}</td>
+                <td  class="textCenter">${item.percentStr}</td>
+            </tr>
+        `
+    }
+    $('.tbody').html(str ? str : emptyBox())
+    bindEdit(data, activePage)
+    // initScroll("quexianDetailControl","Y",1)
+    $(".goHomeDetail").click(function () {
+        let ruleType = $(this).attr("data-ruleType")
+        let index = $(this).parent().attr("data-index")
+        let casesId = $(this).attr("data-id")
+        let defectName = data[index].name
+        $(parent.document).find("#contentIframe").attr("src", "doctorQcListCopy.html?deptName=" + deptName + "&deptId=" + deptPushId + "&from=9&casesId=" + casesId + "&shijian=3" + "&ruleType=" + ruleType + "&startDate=" + startDateParam + "&endDate=" + endDateParam + "&defectName=" + defectName)
+        // $(parent.document).find("#contentIframe").attr("src", "uccDetail.html?from=3&deptName=" + name + "&deptId=" + id + "&casesEntryId=" + casesId + "&defectName=" + casesName + "&startDate=" + startDateParam + "&endDate=" + endDateParam)
+    })
+}
+
+function bindEdit(data, activePage) {
+    if (!hasData('FUNC000007')) {
+        return
+    }
+    $('.editItem').click(function (e) {
+        const index = $(this).parent().attr('data-index')
+        editItem(data[index], activePage)
+    })
+}
+
+//修改
+function editItem(item, activePage) {
+    const itemCpoy = JSON.parse(JSON.stringify(item))
+    $('.pop-box').remove()
+    $('.container').append('<div class="pop-box"></div>')
+    const str = `
+        <div class="itemMsgBox">
+            <div class="mask"></div>
+            <div class="itemMsgContent">
+                <p class="itemMsgTitle">修改 <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></p>
+                <div class="itemMsgContentBox">
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">模块名称:</span> <span class="itemInfoRight">${itemCpoy.casesName}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">条目名称:</span> <span class="itemInfoRight"> ${itemCpoy.name}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">提示信息:</span> <span class="itemInfoRight"> <input class="itemTipMsg" value="${itemCpoy.msg}" /></span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">
+                        分值:
+                        </span> <span class="itemInfoRight"> 
+                            <input class="itemScore" type="number" min="0" value=${itemCpoy.score} />
+                        </span>
+                        <p class="itemMsgInfoTips">支持≥0的数字输入,最多保留小数点后1位~</p>
+                    </div>
+                 
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">单项否决:</span><span class="itemInfoRight itemReject">${item.isReject == '1' ? `<img class="switchImg" src=${switchIconOpen} /><span class="imgInfo">  是</span>` : `<img class="switchImg" src=${switchIconClose} /> <span class="imgInfo"> 否</span>`}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">启用:</span><span class=" temInfoRight itemUsed">${item.isUsed == '1' ? `<img class="switchImg" src=${switchIconOpen} /><span class="imgInfo"> 是</span>` : `<img class="switchImg" src=${switchIconClose} /> <span class="imgInfo"> 否</span>`}</span></div>
+                </div>
+                
+                <div class="confirmEditBox"><span class="confirmEdit">保存</span></div>
+            </div>
+        </div>
+       
+    `
+    $("#mainBox", parent.document).append(str)
+    $("#mainBox .itemMsgBox .iconClose", parent.document).on("click", function (e) {
+        $("#mainBox .itemMsgBox", parent.document).remove()
+    })
+    $("#mainBox .itemMsgBox .itemTipMsg", parent.document).on("input", function (e) {
+        const val = $(this).val().trim()
+        itemCpoy.msg = val
+    })
+    $("#mainBox .itemMsgBox .itemScore", parent.document).on("keypress", function (e) {
+        return (/[0-9\.]/.test(String.fromCharCode(e.keyCode)))
+    })
+    $("#mainBox .itemMsgBox .itemScore", parent.document).on("input", function (e) {
+        const val = $(this).val()
+        itemCpoy.score = val
+    })
+    $("#mainBox .itemMsgBox .itemReject", parent.document).on("click", function (e) {
+        itemCpoy.isReject = itemCpoy.isReject == 1 ? 0 : 1
+        $('#mainBox .itemMsgBox', parent.document).remove()
+        editItem(itemCpoy, activePage)
+    })
+    $("#mainBox .itemMsgBox .itemUsed", parent.document).on("click", function (e) {
+        itemCpoy.isUsed = itemCpoy.isUsed == 1 ? 0 : 1
+        $('#mainBox .itemMsgBox', parent.document).remove()
+        editItem(itemCpoy, activePage)
+    })
+
+    $("#mainBox .itemMsgBox .confirmEdit", parent.document).on("click", function () {
+        var reg = new RegExp(/^\d+(\.\d)?$/);
+        if (reg.test(itemCpoy.score)) {
+            // console.log('itemCopy', itemCpoy)
+            if (!itemCpoy.msg.trim()) {
+                $.alerModal({ "message": "提示信息不能为空~", type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+                return
+            }
+
+            saveEdit(itemCpoy, activePage)
+            $("#mainBox .itemMsgBox .itemMsgInfoTips", parent.document).css("display", "none")
+            $('#mainBox .itemMsgBox', parent.document).remove()
+            return
+        } else {
+            $("#mainBox .itemMsgBox .itemMsgInfoTips", parent.document).css("display", "block")
+
+            return
+        }
+
+    })
+
+
+}
+
+//保存修改
+function saveEdit(item, activePage) {
+    const param = {
+        id: item.id,
+        isReject: item.isReject,
+        isUsed: item.isUsed,
+        msg: item.msg,
+        score: item.score
+    }
+
+    post(api.updataQcCasesEntry, param).then(res => {
+        if (res.data.code == '0') {
+            // const data = res.data.data
+            $.alerModal({ "message": "修改成功", type: "tip", time: '1000', isFather: true, win: true, fatherWrapper: $("#mainBox", parent.document) });
+            getTabData(activePage)
+        } else {
+            $.alerModal({ "message": '修改失败,请重试~', type: "tip", time: '1000', isFather: true, win: 'default', fatherWrapper: $("#mainBox", parent.document) });
+
+        }
+    }).catch((e) => {
+        $.alerModal({ "message": '修改失败,请重试~', type: "tip", time: '1000', isFather: true, win: 'default', fatherWrapper: $("#mainBox", parent.document) });
+
+    })
+}
+
+//获取模块类型
+function getmoduleTypeList() {
+    post(api.getQcCasesAll).then(res => {
+        if (res.data.code == '0') {
+            const moduleTypeList = res.data.data
+            renderModuleTypeList(moduleTypeList)
+        } else { }
+    }).catch((e) => {
+
+    })
+}
+
+
+function renderModuleTypeList(moduleTypeList) {
+    let str = `<li class="modeTypeItem " data-id=" " data-name="全部">全部</li>`
+    for (let i = 0; i < moduleTypeList.length; i++) {
+        str += `<li class="modeTypeItem ellipsis" title=${moduleTypeList[i].name} data-id=${moduleTypeList[i].id} data-name=${moduleTypeList[i].name}> ${moduleTypeList[i].name}</li>`
+    }
+    $('.moduleTypeList').html(str)
+    bindModuleTypeSelect()
+}
+
+//模块类型选择
+function bindModuleTypeSelect() {
+    $('.modeTypeItem').on("click", function () {
+        const modeTypeItemName = $(this).attr("data-name")
+        const modeTypeItemId = $(this).attr("data-id")
+        casesIdTemp = modeTypeItemId
+        $('.selectModuleType').html(modeTypeItemName).attr("title", modeTypeItemName)
+        $(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".moduleTypeList ").css("display", "none")
+    })
+}
+//单项否决选择
+function bindRejectSelect() {
+    $('.rejectItem').on("click", function () {
+        const rejectItemName = $(this).attr("data-name")
+        const rejectItemId = $(this).attr("data-id")
+        isRejectTemp = rejectItemId
+        $('.selectReject').html(rejectItemName)
+        $(".rejectList ").css("display", "none")
+        $(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+    })
+}
+//是否启用选择
+function bindUsedSelect() {
+    $('.usedItem').on("click", function () {
+        const usedItemName = $(this).attr("data-name")
+        const usedItemItemId = $(this).attr("data-id")
+        isUsedTemp = usedItemItemId
+        $('.selectUsed').html(usedItemName)
+        $(".usedList").css("display", "none")
+        $(".selectUsed").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    })
+}
+
+
+
+
+//分页渲染
+function renderPagination(totalPage, activePage, totalNum) {
+    let str = `<span class="totalSum">共${totalPage}页/${totalNum}条数据</span><span class="prePage"><img class="arrowPage" src=${arrowLeft} /></span>`
+    if (totalPage <= 6) {
+        for (let i = 1; i <= totalPage; i++) {
+            str += `<span class="pageNum ${'page' + i}" data-page=${i}>${i}</span>`
+        }
+    } else {
+        if (activePage <= 3) { //选中页数小于4
+            for (let i = 1; i <= 4; i++) {
+                str += `<span class="pageNum ${'page' + i}" data-page=${i}>${i}</span>`
+            }
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
+
+        } else if (activePage > totalPage - 3) {
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page' + (totalPage - 3)}" data-page=${totalPage - 3}>${totalPage - 3}</span>`
+            str += `<span class="pageNum ${'page' + (totalPage - 2)}" data-page=${totalPage - 2}>${totalPage - 2}</span>`
+            str += `<span class="pageNum ${'page' + (totalPage - 1)}" data-page=${totalPage - 1}>${totalPage - 1}</span>`
+            str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        } else {
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page' + (activePage - 1)}" data-page=${activePage - 1}>${activePage - 1}</span>`
+            str += `<span class="pageNum ${'page' + activePage}" data-page=${activePage}>${activePage}</span>`
+            str += `<span class="pageNum ${'page' + (activePage + 1)}" data-page=${activePage + 1}>${activePage + 1}</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        }
+
+    }
+    str += `<span class="nextPage"><img class="arrowPage" src=${arrowRight} /></span>`
+    $('.pagination').html(str)
+    $('.page' + activePage).addClass('activePage')
+    $(".pageNum").on("click", function (e) {
+        const activePageNow = Number($(this).attr('data-page'))
+        getTabData(activePageNow)
+        // renderPagination(totalPage,activePageNow,totalNum)
+    })
+    $(".prePage").on("click", function (e) {
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if (activePageNow > 1) {
+            activePageNow--
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    $(".nextPage").on("click", function (e) {
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if (activePageNow < totalPage) {
+            activePageNow++
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+
+}
+
+$(document).on("click", function () {
+    $(".moduleTypeList ").css("display", "none")
+    $(".rejectList ").css("display", "none")
+    $(".usedList ").css("display", "none")
+    $(".selectModuleType .arrow").attr("src", iconDown)
+    $(".selectReject .arrow").attr("src", iconDown)
+    $(".selectUsed .arrow").attr("src", iconDown)
+    $(".deptList").css("display", "none")
+})
+$(function () {
+    const iconCalenBlue = require("./../images/darkDate.png")
+    const iconCalenGrey = require("./../images/icon_calen_grey.png")
+    $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
+    $('.iconCalen').on("mouseenter", function (e) {
+        $(this).attr("src", iconCalenBlue)
+    })
+    $('.iconCalen').on("mouseleave", function (e) {
+        $(this).attr("src", iconCalenGrey)
+    })
+    $('.iconCalen').on("click", function (e) {
+        $(this).parent().find("input").focus()
+    })
+    $('.exportData').click(function () {
+        const start = new Date(startDateParam).getTime()
+        const end = new Date(endDateParam).getTime()
+        if (start > end) {
+            $.alerModal({ "message": '开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+            return
+        }
+        const param = {
+            type: 0,//1-本月,2-本年,0-自定义时间(现在 都是自定义时间,都会传具体时间进去)
+            name: name, //条目名
+            doctorName: doctorName,
+            doctorId:doctorId,
+            casesName: deptId,
+            deptName: deptName == "全院" ? "" : (deptName || ""),
+            casesId: casesId || "",
+            globalType: 1,
+            ascs: data_asc,
+            descs: data_desc,
+            "startDate": startDateParam,
+            "endDate": endDateParam,
+            isPlacefile: isPlacefile,
+        }
+        expJson(api.getDoctorDetailPageExport, param).then(res => {
+            downloadExportedData(res.data, "医生质控平均分 / 缺陷列表.xls")
+        })
+    })
+});

+ 2 - 2
src/js/qcScore.js

@@ -375,8 +375,8 @@ $(function () {
     $("#flaws .flaw-box").html("");
     let hasAu = showCheckBtns && global_check_show && hasData('FUNC000013');    //修改缺陷权限
     let hasAu2 = showCheckBtns && global_check_show && hasData('FUNC000012');   //删除缺陷权限
+    let hasAu4 = check_Operation_WithAppeal && showCheckBtns
     let hasAu3 = check_Operation_WithAppeal
-    console.log(hasAu3);
     for (let k in data) {
       for (let i = 0; i < data[k].length; i++) {
         let item = data[k][i];
@@ -402,7 +402,7 @@ $(function () {
     })
     $(".edit-flaw").css({ "display": hasAu ? "inline" : "none" });
     $(".del-flaw").css({ "display": hasAu2 ? "inline" : "none" });
-    $(".add-flaw").css({ "display": hasAu3 && global_check_show ? "inline" : "none" });
+    $(".add-flaw").css({ "display": hasAu4 && global_check_show ? "inline" : "none" });
     $(".recover-flaw").css({ "display": hasAu2 ? "inline" : "none" });
     $(".flaw-item .title a[href]").unbind("click").click(function () {
       const id = $(this).attr("href");