Przeglądaj źródła

Merge branch 'master' into referMaster

luolei 5 lat temu
rodzic
commit
37d396db1f
81 zmienionych plików z 5316 dodań i 1133 usunięć
  1. 10 3
      src/css/abnormal.less
  2. 402 0
      src/css/assertType.less
  3. 210 0
      src/css/assertTypeDetail.less
  4. 26 0
      src/css/common.less
  5. 62 7
      src/css/console.less
  6. 7 0
      src/css/dayDetail.less
  7. 47 16
      src/css/deptConsole.less
  8. 8 0
      src/css/deptScoreDetail.less
  9. 8 0
      src/css/deptScoreDetailControl.less
  10. 96 10
      src/css/index.less
  11. 3 3
      src/css/itemManager.less
  12. 7 0
      src/css/jiaji.less
  13. 1 1
      src/css/moduleManager.less
  14. 8 0
      src/css/partDetail.less
  15. 7 0
      src/css/partDetailControl.less
  16. 7 0
      src/css/payDetail.less
  17. 3 2
      src/css/qcList.less
  18. 2 1
      src/css/qcListDept.less
  19. 2 1
      src/css/qcListPerson.less
  20. 124 13
      src/css/qcScore.less
  21. 22 0
      src/css/quexianDetail.less
  22. 22 1
      src/css/quexianDetailControl.less
  23. 321 0
      src/css/quexianDetailControlHome.less
  24. 318 0
      src/css/quexianDetailHome.less
  25. 34 16
      src/css/reset.less
  26. 5 0
      src/css/roleManager.less
  27. 1 1
      src/html/abnormal.html
  28. 51 0
      src/html/assertType.html
  29. 47 0
      src/html/assertTypeDetail.html
  30. 89 57
      src/html/console.html
  31. 83 49
      src/html/deptConsole.html
  32. 1 1
      src/html/deptScoreDetail.html
  33. 6 23
      src/html/deptScoreDetailControl.html
  34. 2 1
      src/html/qcList.html
  35. 2 1
      src/html/qcListDept.html
  36. 2 1
      src/html/qcListPerson.html
  37. 88 448
      src/html/qcScore.html
  38. 16 1
      src/html/quexianDetail.html
  39. 18 3
      src/html/quexianDetailControl.html
  40. 64 0
      src/html/quexianDetailControlHome.html
  41. 53 0
      src/html/quexianDetailHome.html
  42. 2 2
      src/html/tiaomu.html
  43. 2 2
      src/html/tiaomuControl.html
  44. BIN
      src/images/arrow_down22.png
  45. 0 0
      src/images/arrow_up11.png
  46. BIN
      src/images/arrow_up22.png
  47. BIN
      src/images/empty.png
  48. BIN
      src/images/empty1.png
  49. BIN
      src/images/emptyHome.png
  50. BIN
      src/images/neck.png
  51. 149 38
      src/js/abnormal.js
  52. 16 5
      src/js/api.js
  53. 615 0
      src/js/assertType.js
  54. 162 0
      src/js/assertTypeDetail.js
  55. 164 73
      src/js/console.js
  56. 3 6
      src/js/dayDetail.js
  57. 121 73
      src/js/deptConsole.js
  58. 28 22
      src/js/deptScoreDetail.js
  59. 68 32
      src/js/deptScoreDetailControl.js
  60. 18 5
      src/js/index.js
  61. 3 6
      src/js/jiaji.js
  62. 2 2
      src/js/moduleManager.js
  63. 3 6
      src/js/mukuai.js
  64. 2 5
      src/js/mukuaiControl.js
  65. 7 10
      src/js/partDetail.js
  66. 4 7
      src/js/partDetailControl.js
  67. 3 6
      src/js/payDetail.js
  68. 75 20
      src/js/qcList.js
  69. 76 16
      src/js/qcListDept.js
  70. 75 16
      src/js/qcListPerson.js
  71. 180 64
      src/js/qcScore.js
  72. 45 13
      src/js/quexianDetail.js
  73. 50 16
      src/js/quexianDetailControl.js
  74. 528 0
      src/js/quexianDetailControlHome.js
  75. 540 0
      src/js/quexianDetailHome.js
  76. 2 5
      src/js/quexianXQ.js
  77. 4 7
      src/js/tiaomu.js
  78. 3 6
      src/js/tiaomuControl.js
  79. 2 5
      src/js/userManager.js
  80. 21 3
      src/js/utils.js
  81. 58 2
      webpack.config.js

+ 10 - 3
src/css/abnormal.less

@@ -48,7 +48,7 @@
         th{
             font-size: 14px;
             font-weight: 500;
-            white-space: nowrap;
+            // white-space: nowrap;
         }
         th[code]{
             cursor: pointer;
@@ -71,7 +71,7 @@
         td{
             font-size: 14px;
             font-weight: 400;
-            white-space: nowrap;
+            // white-space: nowrap;
         }
         .moduleNumber{
             text-align: center;
@@ -139,6 +139,13 @@
             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{
@@ -161,7 +168,7 @@
     }
     .levelList{
         width: 120px;
-        height: 120px;
+        max-height: 120px;
         li:hover{
             background-color: #EEF4FF;
             cursor: pointer;

+ 402 - 0
src/css/assertType.less

@@ -0,0 +1,402 @@
+@import './reset.less';
+
+.container{
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+    background-color: #fff;
+}
+.assertType {
+    .dayFilter {
+        .levelList {
+            height: 80px;
+        }
+        .selectLevel,.levelList  {
+            width: 180px;
+        }
+        .deptListWrap {
+            display: none;
+        }
+    }
+    .filterItem.deptListWrap {
+        .selectDept,.deptList {
+            width: 180px;
+        }
+    }
+    ul,li{
+        list-style: none;
+    }
+    h2{
+        width: 100%;
+        box-sizing: border-box;
+        background-color: #fff;
+        z-index: 20;
+        height: 44px;
+        line-height: 44px;
+        padding: 0 0 0 15px;
+        border-bottom: 1px solid #E2E5EF;
+        font-size: 16px;
+        font-weight: bold   ;
+        letter-spacing: 1px;
+    }
+    .main-body{
+        margin: 20px 0;
+        padding: 0 35px;
+        // min-width: 1090px;
+        /*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");
+            }
+            &.desc:after{
+                background: url("../images/down_blue.png");
+            }
+        }
+        td{
+            white-space: nowrap;
+        }
+        .moduleNumber{
+            text-align: center;
+        }
+        .scoreOperaItem{
+            width: 50px;
+            cursor: pointer;
+        }
+        
+    }
+    .tabFoot{
+        height: 40px;
+        /*border: 1px solid #E2E5EF;
+        border-top: none;
+        box-sizing: border-box;*/
+    }
+    .scoreOpera{
+        height: 50px;
+        line-height: 50px;
+        margin: 0 20px 0 0;
+        cursor: pointer;
+        img{
+            margin: 0 10px 0 0;
+        }
+    }
+    
+    .recordScoreOperaBtn{
+        cursor: pointer;
+        color: @activeColor;
+    }
+    .recordScoreBtn{
+        cursor: pointer;
+        display: inline-block;
+        width:68px;
+        height:30px;
+        line-height: 30px;
+        text-align: center;
+        border-radius:4px;
+        box-sizing: border-box;
+        border: 1px solid @activeColor;
+        color: @activeColor;
+    }
+    .filterBox{
+        margin-bottom: 15px;
+    }
+    .filterItem{
+        position: relative;
+        display: inline-block;
+        float: left;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 15px 0;
+        span{
+            display: inline-block;
+            line-height: 40px;
+            position: relative;
+        }
+        input{
+            width:120px;
+            height:40px;
+            border-radius:4px;
+            border: 1px solid #E2E5EF;
+            outline: none;
+            margin-right: 10px;
+            padding: 0 10px;
+            box-sizing: border-box;
+        }
+        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;
+        max-height: 200px;
+        overflow-y: auto;
+        background: #fff;
+        display: none;
+        border: 1px solid #e4e7ed;
+        box-shadow: 0 2px 12px 0 #e4e7ed;
+        z-index: 2;
+        li{
+            padding: 0 10px;
+        }
+    }
+    .deptList{
+        width: 160px;
+        max-height: 400px;
+    }
+    .levelList{
+        width: 120px;
+        height: 120px;
+        li:hover{
+            background-color: #EEF4FF;
+            cursor: pointer;
+        }
+    }
+    .selectLevel,.selectDept{
+        display: inline-block;
+        position: relative;
+        width:120px;
+        padding: 0 10px;
+        height:40px;
+        border-radius:4px;
+        border: 1px solid #E2E5EF;
+        box-sizing: border-box;
+        cursor: pointer;
+    }
+    .selectDept{
+        width: 160px;
+    }
+    
+    .filter{
+        display: inline-block;
+        width:60px;
+        height:36px;
+        background:@activeColor;
+        border-radius:4px;
+        color: #fff;
+        text-align: center;
+        line-height: 36px;
+        position: relative;
+        top: 2px;
+        cursor: pointer;
+        float: left;
+    }
+    .arrow{
+        position: absolute;
+        width: 10px;
+        top: 16px;
+        right: 10px;
+    }
+    .iconCheck{
+        width: 14px;
+    }
+    .fl{
+        float: left;
+    }
+    .clearfix:after {
+        content: '';
+        height: 0;
+        line-height: 0;
+        display: block;
+        visibility: hidden;
+        clear: both;
+    }
+    .clearfix{
+        zoom:1
+    }
+    .divide{
+        margin: 0 10px;
+    }
+    .datapickerBox{
+        position: relative;
+        display: inline-block;
+        width: 120px;
+        height: 40px;
+        input{
+            position: absolute;
+        }
+    }
+    .iconCalen{
+        position: absolute;
+        width: 15px;
+        top: 12px;
+        right: 10px;
+    }
+    .textCenter{
+        text-align: center;
+    }
+    .patientNameSpan{
+        color: #00A1F0;
+        cursor: pointer;
+    }
+    .patientNameSpans{
+        color: #FF4D4F;
+        cursor: pointer;
+        margin-left: 30px;
+    }
+    
+    .deptItem:hover{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+    .ellipsis{
+        overflow: hidden;
+        text-overflow:ellipsis;
+        white-space: nowrap;
+    }
+    
+    
+    .pagination{
+        margin: 35px 0 0 0  ;
+        text-align: right;
+    }
+    .totalSum{
+        font-size:12px;
+        line-height:17px;
+        color: #777777;
+        margin-right: 20px;
+    }
+    .pageNum,.prePage,.nextPage, .more{
+        display: inline-block;
+        width: 20px;
+        cursor: pointer;
+        margin: 0 20px 0 0;
+        text-align: center;
+        color: #777;
+    }
+    .prePage,.nextPage{
+        img{
+            position: relative;
+            top: 0px   ;
+        }
+    }
+     .more{
+        cursor: not-allowed;
+    }
+    .arrowPage{
+        width: 6px;
+    }
+    .activePage{
+        color: @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;
+    }
+}
+.addTypeAssert {
+    display: inline-block;
+    padding: 0 13px;
+    height: 34px;
+    box-sizing: border-box;
+    border-radius: 4px;
+    color: #00A1FF;
+    text-align: center;
+    line-height: 32px;
+    border: 1px solid #00A1FF;
+    cursor: pointer;
+    float: right;
+    margin-left: 15px;
+    a {
+        color: #00A1FF;
+    }
+}
+.assertTypeActive {
+    padding-left: 30px !important;
+    text-align: center;
+    overflow: hidden;
+    span {
+        border-right: 1px solid #ccc;
+        padding: 0 8px;
+        float: left;
+        cursor: pointer;
+        box-sizing: border-box;
+        color: #00A1F0;
+    }
+    .assertTypeDel {
+        border-right: 1px solid transparent;
+        color: #FF4D4F;
+    }
+}

+ 210 - 0
src/css/assertTypeDetail.less

@@ -0,0 +1,210 @@
+@import './reset.less';
+.container{
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+    background-color: #fff;
+}
+.assertTypeDetail {
+    
+    .filterBox{
+        margin-bottom: 15px;
+    }
+    .main-body{
+        margin: 20px 0;
+        padding: 0 35px;
+        // min-width: 1090px;
+        /*width: 100%;*/
+    }
+    .filterItem{
+        position: relative;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 0px 15px 0;
+        float: none !important;
+        span{
+            display: inline-block;
+            line-height: 40px;
+            position: relative;
+        }
+        .explainL:before {
+            content: "*";
+            color: #f56c6c;
+            margin-right: 4px;
+        }
+        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;
+        }
+    }
+    
+    .selectLevel,.selectDept{
+        display: inline-block;
+        position: relative;
+        width:120px;
+        padding: 0 10px;
+        height:40px;
+        border-radius:4px;
+        border: 1px solid #E2E5EF;
+        box-sizing: border-box;
+        cursor: pointer;
+    }
+    .selectDept{
+        width: 160px;
+    }
+    .filterDropList{
+        position: absolute;
+        right: 0;
+        max-height: 200px;
+        overflow-y: auto;
+        background: #fff;
+        display: none;
+        border: 1px solid #e4e7ed;
+        box-shadow: 0 2px 12px 0 #e4e7ed;
+        z-index: 2;
+        li{
+            padding: 0 10px;
+        }
+    }
+    
+    .deptList{
+        width: 160px;
+        max-height: 400px;
+    }
+    .qcItemTitle{
+        float: left;
+        line-height: 40px;
+    }
+    .listTypeAll {
+        margin-left: 80px; 
+        .caseEntryBlcok {
+            box-sizing: border-box;
+            border: 1px solid #E2E5EF;
+            border-radius: 4px;
+            margin: 0 0 10px 0;
+        }
+        .caseEntryName {
+            // height: 48px;
+            line-height: 34px;
+            background-color: #fff;
+            cursor: pointer;
+            padding: 0 10px;
+            position: relative;
+            // border-bottom: 1px solid #ebeef5;
+            img{
+                width: 10px;
+                position: absolute;
+                right: 10px;
+            }
+        }
+        .tabTitle,.tabInfo{
+            line-height: 30px;
+            position: relative;
+        }
+        .caseEntryDetail{
+            display: none;
+            padding: 10px 20px;
+            border-top: 1px solid #E2E5EF;
+        }
+        .opera,.qcItem,.qcUsed{
+            display: inline-block;
+            text-align: center;
+        }
+        .opera{
+            width: 11%;
+        }
+        .qcItem{
+            width: 76%;
+        }
+        .qcUsed{
+            width: 13%;
+        }
+        .tabTitle{
+            background: #EFF0F9;
+            font-size: 14px;
+            font-weight: 500;
+        }
+        .tabInfo{
+            box-sizing: border-box;
+            border-left: 1px solid #E2E5EF;
+            border-right: 1px solid #E2E5EF;
+            border-bottom: 1px solid #E2E5EF;
+        }
+        .tabInfo{
+            .opera,.qcItem,.qcUsed{
+                box-sizing: border-box;
+            }
+            .qcItem{
+                border-left: 1px solid #E2E5EF;
+                border-right: 1px solid #E2E5EF;
+            }
+            .opera{
+                width: 11%;
+                position: absolute;
+                height: 100%;
+            }
+            .qcItem{
+                width: 76%;
+                position: relative;
+                left: 11%;
+            }
+            .qcUsed{
+                position: absolute;
+                left: 87%;
+                width: 13%;
+                height: 100%;
+            }
+        }
+        .tabInfo:nth-child(2n+1){
+            background:#F5F6FA;
+        }
+    }
+}
+// .borderTop{
+//     border-top: 1px solid #ebeef5;
+// }
+.iconCheck{
+    width: 14px;
+    cursor: pointer;
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    margin: -7px 0 0 -7px;
+}
+.usedRes{
+    display: inline-block;
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    margin: -15px 0 0 -7px;
+}
+.submitBox{
+    text-align: right;
+}
+.submit{
+    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;
+    margin: 0 20px 22px 0;
+}

+ 26 - 0
src/css/common.less

@@ -0,0 +1,26 @@
+@import './reset.less';
+// .partDetailControl {
+//     .monthYear {
+//       border: 0 none;
+//       border-radius: 0;
+//       .mon {
+//         border: 1px solid #777;
+//         float: left;
+//         border-radius: 4px 0 0 4px;
+//         box-sizing: border-box;
+//         border-right: 0;
+//         color: #777;
+//       }
+//       .year {
+//         border-radius: 0 4px 4px 0;
+//       }
+//     }
+//   }
+
+.partTitle p a {
+    color: #8592B9;
+    opacity: 1;
+}
+input:disabled {
+    background-color: @disColor;
+}

+ 62 - 7
src/css/console.less

@@ -4,6 +4,38 @@ body.console {
   overflow: auto;
   overflow-y: hidden;
   background: @activeBg;
+  .innerOuter {
+    display: none;
+  }
+  .barChartLineEmpty {
+    height: 257px;
+    display: none;
+  }
+  .chuyuanEmpty {
+    border-bottom: 10px solid @activeBg;
+    height: 112px;
+    .emptyBoxHome {
+      margin-top: -40px;
+    }
+    box-sizing: border-box;
+  }
+  #emptyCircleWrapEmpty {
+    height: 214px;
+    display: none;
+  }
+  .barChartPayEmpty {
+    display: none;
+    height: 261px;
+  }
+  .pingfendengji {
+    display: none;
+    .pingfendengjiEmpty {
+      height: 210px;
+    }
+    .title {
+      cursor: default;
+    }
+  }
 }
 .echarts {
   width: 100%;
@@ -20,6 +52,13 @@ body.console {
   float: left;
   margin-top: 38px;
 }
+.emptyCircleWrap {
+  // height: 214px;
+}
+.emptyCircleBWrap {
+  display: none;
+  height: 215px;
+}
 #emptyCircleB {
   margin-top: 50px;
 }
@@ -32,7 +71,7 @@ body.console {
   background: @activeBg;
   min-width: 1185px;
   padding: 10px;
-  padding-bottom: 0px;
+  /*padding-bottom: 0px;*/
   box-sizing: border-box;
   ul {
     padding: 0 40px;
@@ -81,6 +120,9 @@ body.console {
     line-height: 40px;
     padding-left: 15px;
     cursor: pointer;
+    span {
+      color: @fstColor;
+    }
     img {
       width: 16px;
       position: relative;
@@ -123,11 +165,9 @@ body.console {
   min-width: 100px;
   p {
     display: inline-block;
-    font-size: 16px;
     color: @fstColor;
     span {
       color: @fstColor;
-      font-size: 16px;
     }
   }
   .dateDetail {
@@ -139,7 +179,6 @@ body.console {
   .monthYear {
     float: right;
     margin-right: 20px;
-    border: 1px solid #00A1FF;
     height: 30px;
     line-height: 30px;
     cursor: pointer;
@@ -258,6 +297,9 @@ body.console {
       }
       .smp {
         width: 100px;
+        &:hover {
+          color: @activeColor;
+        }
       }
     }
     .deptNum {
@@ -274,17 +316,25 @@ body.console {
     }
   }
 }
-
+.explainPanT .explainLi {
+  cursor: pointer;
+}
 
 .part01 {
   width: 28%;
   background-color: @themeColor;
   border-right: 10px solid @activeBg;
   box-sizing: border-box;
+  .chuyuan {
+    height: 113px;
+    border-bottom: 10px solid @activeBg;
+    box-sizing: border-box;
+  }
   ul {
     padding: 15px 20px;
-    border-bottom: 10px solid @activeBg;
-    /*background: @themeColor;*/
+    // border-bottom: 10px solid @activeBg;
+    height: 112px;
+    box-sizing: border-box;
     li {
       float: left;
       width: 33.33%;
@@ -327,6 +377,10 @@ body.console {
         padding: 1px 0;
       }
     }
+    .qtableEmpty {
+      height: 363px;
+      display: none;
+    }
     td {
       padding: 7px 10px;
       color: @fstColor;
@@ -383,6 +437,7 @@ body.console {
       border-right: 1px solid @themeBorderClr;
       box-sizing: border-box;
       width: 30%;
+      cursor: default;
     }
   }
   .bingliLis {

+ 7 - 0
src/css/dayDetail.less

@@ -139,6 +139,13 @@
             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{

+ 47 - 16
src/css/deptConsole.less

@@ -3,6 +3,33 @@
 body.console {
   overflow: auto;
   background-color: @themeColor;
+  .chuyuanEmpty {
+    border-bottom: 10px solid @activeBg;
+    height: 162px;
+    box-sizing: border-box;
+  }
+  .pingfendengji {
+    display: none;
+    .pingfendengjiEmpty {
+      height: 270px;
+    }
+    .title {
+      cursor: default;
+      color: @fstColor;
+    }
+  }
+  .emptyCircleBWrap {
+    display: none;
+    height: 312px;
+  }
+  .emptyCircleBWraps {
+    display: none;
+    height: 312px;
+  }
+  .emptyLineCircleEmpty {
+    display: none;
+    height: 312px;
+  }
 }
 .echarts {
   width: 100%;
@@ -28,8 +55,9 @@ body.console {
 .partWrap {
   // overflow: auto;
   height: auto;
-  background: @themeBorderClr;
-  min-width: 1080px;
+  background: @activeBg;
+  min-width: 1185px;
+  padding: 10px;
   ul {
     padding: 0 40px;
   }
@@ -83,7 +111,7 @@ body.console {
 }
 .grayLine {
   height: 10px;
-  background-color: @themeBorderClr;
+  background-color: @activeBg;
 }
 .partTitleT {
   height: 44px;
@@ -105,11 +133,9 @@ body.console {
   letter-spacing: 1px;
   p {
     display: inline-block;
-    font-size: 16px;
     color: @fstColor;
     span,i {
       color: @fstColor;
-      font-size: 16px;
     }
   }
   .dateDetail {
@@ -162,15 +188,15 @@ body.console {
   display: inline-block;
   margin-bottom: 10px;
   background-color: #fff;
-  border-top: 10px solid @themeBorderClr;
+  border-top: 10px solid @activeBg;
 }
 .pubEchartB {
   width: 55%;
   display: inline-block;
   margin-bottom: 10px;
   background-color: #fff;
-  border-top: 10px solid @themeBorderClr;
-  border-left: 10px solid @themeBorderClr;
+  border-top: 10px solid @activeBg;
+  border-left: 10px solid @activeBg;
   box-sizing: border-box;
 }
 .paymoney {
@@ -194,7 +220,7 @@ body.console {
   display: inline-block;
   background-color: @themeColor;
   box-sizing: border-box;
-  border-top: 10px solid @themeBorderClr;
+  border-top: 10px solid @activeBg;
   position: relative;
   .title {
     cursor: pointer;
@@ -272,11 +298,11 @@ body.console {
 .part01 {
   width: 38%;
   background-color: @themeColor;
-  border-right: 10px solid @themeBorderClr;
+  border-right: 10px solid @activeBg;
   box-sizing: border-box;
   ul {
     padding: 40px 20px;
-    border-bottom: 10px solid @themeBorderClr;
+    border-bottom: 10px solid @activeBg;
     li {
       width: 50%;
       float: left;
@@ -296,9 +322,9 @@ body.console {
   
   .defect {
     background-color: @themeColor;
-    height: 452px;
+    height: 451px;
     overflow: hidden;
-    border-bottom: 10px solid @themeBorderClr;
+    /*border-bottom: 10px solid @activeBg;*/
     .list {
       padding: 15px 5px;
       width: 100%;
@@ -315,6 +341,10 @@ body.console {
       width: 100%;
       overflow: auto;
     }
+    .qtableEmpty {
+      height: 375px;
+      display: none;
+    }
     td {
       padding: 7px 10px;
       color: @fstColor;
@@ -372,6 +402,7 @@ body.console {
       // border-right: 1px solid #E2E5EF;
       box-sizing: border-box;
       width: 30%;
+      cursor: default;
     }
     .four {
       border-right: 0 none;
@@ -388,7 +419,7 @@ body.console {
       padding-bottom: 2px;
       margin-bottom: 10px;
       cursor: pointer;
-      color: @fstColor;
+      color: @secColor;
       img {
         top: 1px;
       }
@@ -451,7 +482,7 @@ body.console {
 }
 .explainNum {
   margin-top: 8px;
-  color: @fstColor;
+  color: @secColor;
 }
 
 .toggleSlide {
@@ -517,7 +548,7 @@ body.console {
   position: relative;
   .homePage {
     width: 45%;
-    border-right: 10px solid @themeBorderClr;
+    border-right: 10px solid @activeBg;
     box-sizing: border-box;
   }
   .homePageNo {

+ 8 - 0
src/css/deptScoreDetail.less

@@ -138,6 +138,13 @@
             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{
@@ -356,6 +363,7 @@
         -moz-appearance: textfield;
     }
 }
+
 .abnormalClear {
     top: 2px !important;
 }

+ 8 - 0
src/css/deptScoreDetailControl.less

@@ -16,6 +16,7 @@
         }
     }
     .filterItem.deptListWrap {
+        display: none;
         .selectDept,.deptList {
             width: 180px;
         }
@@ -138,6 +139,13 @@
             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{

+ 96 - 10
src/css/index.less

@@ -104,6 +104,7 @@
     overflow-y: auto;
     padding-top: 5px;
     position: relative;
+    padding-bottom: 50px;
     .logo{
       margin-bottom: 44px;
       text-indent: 22px;
@@ -387,6 +388,75 @@
       background: #fff;
       border-radius:4px;
     }
+    .midifyMsgContentDel {
+    
+      margin: -110px 0 0 -150px;
+    }
+    .remidifyMsgContent{
+      position: fixed;
+      left: 50%;
+      top: 50%;
+      width: 700px;
+      height:256px;
+      margin: -128px 0 0 -200px;
+      background: #fff;
+      border-radius:4px;
+      .disL {
+        float: left;
+      }
+      .disR {
+        float: left;
+      }
+      .abnormalTxtS {
+        width: 638px;
+        margin-left: 30px;
+        position: relative;
+        top: -14px;
+      }
+      .abnormalStatusLis {
+        width: 218px;
+        max-height: 200px;
+        overflow: auto;
+        li {
+          width: 218px;
+        }
+      }
+      .ellipsis {
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+      }
+      .abnormalAlls {
+        background-color: #f5f5f5;
+        padding: 0 10px;
+        box-sizing: border-box;
+        display: inline-block;
+        height: 34px;
+        line-height: 34px;
+        width: 220px;
+      }
+      .neck {
+        width: 20px;
+        position: relative;
+        left: 15px;
+        top: 25px;
+      }
+      .abnormalAll {
+        width: 220px !important;
+      }
+      .abnormalBtn {
+        top: -10px;
+      }
+      .abnormalLeft {
+        padding-left: 30px;
+        text-align: left;
+        width: auto !important;
+      }
+      .itemInfoRight {
+        display: block;
+        width: auto;
+      }
+    }
     .midifyMsgTitle{
       position: relative;
       height: 40px;
@@ -397,7 +467,7 @@
       color: #1E1E1E;
     }
     .itemMsgInfoBox{
-      line-height: 40px;
+      line-height: 34px;
       margin: 0 0 10px 0;
       position: relative;
       top: 10px;
@@ -409,12 +479,16 @@
         width: 100px;
         box-sizing: border-box;
         border:  1px solid #E2E5EF;
-        height: 40px;
-        line-height: 40px;
+        height: 34px;
+        line-height: 34px;
         border-radius: 2px;
         padding: 0 10px;
         &:focus{
           border-color: @activeColor;
+          outline: 0;
+          -webkit-box-shadow:@activeColor  0px 0px 2px;
+          -moz-box-shadow: @activeColor  0px 0px 2px;
+          box-shadow: @activeColor  0px 0px 2px;
         }
       }
     }
@@ -461,7 +535,7 @@
       left: 50%;
       top: 50%;
       width: 500px;
-      height:468px;
+      height:458px;
       margin: -234px 0 0 -250px;
       background: #fff;
       border-radius:4px;
@@ -482,10 +556,10 @@
       cursor: pointer;
     }
     .itemMsgContentBox{
-      margin: 20px 0 0 0;
+      margin: 30px 0 0 0;
     }
     .itemMsgInfoBox{
-      line-height: 40px;
+      line-height: 34px;
       margin: 0 0 10px 0;
       position: relative;
     }
@@ -496,12 +570,16 @@
         width: 280px;
         box-sizing: border-box;
         border:  1px solid #E2E5EF;
-        height: 40px;
-        line-height: 40px;
+        height: 34px;
+        line-height: 34px;
         border-radius: 2px;
         padding: 0 10px;
         &:focus{
           border-color: @activeColor;
+          outline: 0;
+          -webkit-box-shadow:@activeColor  0px 0px 2px;
+          -moz-box-shadow: @activeColor  0px 0px 2px;
+          box-shadow: @activeColor  0px 0px 2px;
         }
       }
     }
@@ -533,7 +611,7 @@
     .confirmEditBox{
       position: relative;
       text-align: center;
-      top: 30px;
+      top: 20px;
     }
     .confirmEdit{
       display: inline-block;
@@ -731,7 +809,15 @@
     resize: none;
     padding: 10px;
     box-sizing: border-box;
-  }
+    overflow: auto;
+  }
+  textarea: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;
+}
   .midifyMsgContent.abnormal {
     height: 320px;
   }

+ 3 - 3
src/css/itemManager.less

@@ -15,7 +15,7 @@
         .h2;
     }
     .main-body{
-        margin: 10px 40px;
+        margin: 20px 40px;
         padding-bottom: 0px !important;
     }
     table{
@@ -26,14 +26,14 @@
         
     }
     .filterBox{
-        margin-bottom:10px;
+        margin-bottom:20px;
     }
     .filterItem{
         position: relative;
         display: inline-block;
         height: 32px;
         line-height: 32px;
-        margin: 0 20px 20px 0;
+        margin: 0 20px 10px 0;
     }
     .filterDropList{
         position: absolute;

+ 7 - 0
src/css/jiaji.less

@@ -141,6 +141,13 @@
             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{

+ 1 - 1
src/css/moduleManager.less

@@ -6,7 +6,7 @@ h2{
     .h2;
 }
 .main-body{
-    margin: 10px 40px;
+    margin: 20px 40px;
     padding-bottom: 40px;
 }
 .totalSumBox{

+ 8 - 0
src/css/partDetail.less

@@ -141,6 +141,13 @@
             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{
@@ -359,6 +366,7 @@
         -moz-appearance: textfield;
     }
 }
+
 .abnormalClear {
     top: 2px !important;
 }

+ 7 - 0
src/css/partDetailControl.less

@@ -141,6 +141,13 @@
             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{

+ 7 - 0
src/css/payDetail.less

@@ -142,6 +142,13 @@
             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{

+ 3 - 2
src/css/qcList.less

@@ -8,10 +8,11 @@ ul,li{
     list-style: none;
 }
 h2{
-    .h2
+    .h2;
+    position: absolute;
 }
 .main-body{
-    margin: 10px 0;
+    margin: 75px 0 0 10px;
     min-width: 1090px;
     padding: 0 35px;
     // overflow: auto;

+ 2 - 1
src/css/qcListDept.less

@@ -9,9 +9,10 @@ ul,li{
 }
 h2{
     .h2;
+    position: absolute;
 }
 .main-body{
-    margin: 10px 0;    
+    margin: 75px 0 0 10px;   
     padding: 0 35px;
     min-width: 1090px;
     /*width: 100%;*/

+ 2 - 1
src/css/qcListPerson.less

@@ -9,9 +9,10 @@ ul,li{
 }
 h2{
     .h2;
+    position: absolute;
 }
 .main-body{
-    margin: 10px 0;
+    margin: 75px 0 0 10px;
     padding: 0 35px;
     min-width: 1090px;
     /*width: 100%;*/

+ 124 - 13
src/css/qcScore.less

@@ -2,6 +2,12 @@
 .main-part{
   height: 100%;
 }
+
+.ellipsis{
+  overflow: hidden;
+  text-overflow:ellipsis;
+  white-space: nowrap;
+}
 #loading{
   text-align: center;
   /*margin-top: 30px;*/
@@ -14,9 +20,9 @@
 .patient-info{
   /*height: 50px;*/
   line-height: 50px;
-  border-bottom: 1px #E2E5EF solid;
+  border-bottom: 10px #EFF1F6 solid;
   text-align: center;
-  margin-bottom: 20px;
+  /*margin-bottom: 20px;*/
   span{
     color: #333;
     margin-right: 40px;
@@ -43,38 +49,56 @@
     z-index: 1;
   }
   &>ul>li{
-    color: @themeFontClr;
+    color: @fstColor;
     &.menu-0{
       background: url("../images/total.png") 20px 9px no-repeat;
       &.active{
         background: url("../images/total_a.png") 20px 9px no-repeat;
       }
+      &.slide-up{
+        background-color: @activeBg;
+      }
     }
     &.menu-6{
        background: url("../images/index.png") 20px 11px no-repeat;
       &.active{
         background: url("../images/index_a.png") 20px 11px no-repeat;
       }
+      &.slide-up{
+        background-color: @activeBg;
+      }
      }
     &.menu-1{
       background: url("../images/inhis.png") 19px 11px no-repeat;
       &.active{
         background: url("../images/inhis_a.png") 19px 11px no-repeat;
       }
+      &.slide-up{
+        background-color: @activeBg;
+      }
     }
     &.menu-37{
       background: url("../images/prod.png") 20px 10px no-repeat;
       &.active{
         background: url("../images/prod_a.png") 20px 10px no-repeat;
       }
+      &.slide-up{
+        background-color: @activeBg;
+      }
     }
     &.menu-5{
       background: url("../images/out.png") 20px 11px no-repeat;
       &.active{
         background: url("../images/out_a.png") 20px 11px no-repeat;
       }
+      &.slide-up{
+        background-color: @activeBg;
+      }
     }
   }
+  .slide-up {
+    background-color: @activeBg !important;
+  }
   .active{
     color: @activeColor;
     /*background: @activeBg;
@@ -86,7 +110,7 @@
   .list-1{
     position: relative;
     p {
-      color: @themeFontClr;
+      color: @fstColor;
       &:hover {
         color: @activeColor;
       }
@@ -109,7 +133,7 @@
       display: none;
       li.page{
         text-indent: 55px;
-        color: @themeFontClr;
+        color: @fstColor;
         &.active{
           color: @activeColor;
         }
@@ -124,15 +148,14 @@
   .copy-right{
     position: fixed;
     bottom: 0px;
-    width: @menuWt;
+    width: @menuWt+15;
     text-align: center;
     background: @themeColor;
     padding: 10px 0 20px;
     border-top: 1px @themeBorderClr solid;
     p{
       font-size:12px;
-      color: #fff;
-      opacity: .3;
+      color: @trdColor;
     }
   }
 }
@@ -170,6 +193,9 @@
     height: 100%;
     position: relative;
     overflow-y: auto;
+    border-right: 10px #EFF1F6 solid;
+    border-left: 10px #EFF1F6 solid;
+    box-sizing: border-box;
   }
   .content-item{
     display: none;
@@ -372,6 +398,18 @@
         margin-bottom: 5px;
         box-sizing: border-box;
         padding-left: 5px;
+        .add-icon{
+          font-size: 12px;
+          display: inline-block;
+          text-align: center;
+          width:32px;
+          height:14px;
+          line-height: 14px;
+          color: #FFAD00;
+          border:1px #FFAD00 solid;
+          border-radius:8px;
+          margin-right: 6px;
+        }
         &.active{
           background: #FFF0DA;
         }
@@ -415,14 +453,69 @@
     text-indent: 10px;
     line-height: 38px;
     border-radius:2px;
+    box-sizing: border-box;
+  }
+  .flaw-drop-input {
+    padding-right: 28px;
+    box-sizing: border-box;
+  }
+  #addQcMsg {
+    padding-right: 0;
   }
   span{
     display: inline-block;
     width: 70px;
-    margin-right: 20px;
+    margin-right: 12px;
     text-align: right;
   }
 }
+.add-box{
+  .drop-box{
+    position: relative;
+    margin-bottom: 10px;
+    &:after{
+      content: "";
+      display: inline-block;
+      width: 13px;
+      height: 7px;
+      background: url("../images/arrow_down.png") no-repeat;
+      background-size: 13px 7px;
+      position: absolute;
+      left: 365px;
+      top: 16px;
+    }
+  }
+  ul{
+    display: none;
+    position: absolute;
+    right: 0;
+    width: 300px;
+    background: #fff;
+    border:1px @tableBorderColor solid;
+    max-height: 205px;
+    overflow: auto;
+    box-sizing: border-box;
+    li{
+      line-height: 25px;
+      padding: 0 5px;
+      cursor: pointer;
+      white-space: nowrap;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      &:hover{
+        background: @tableBorderColor;
+      }
+    }
+  }
+  .show{
+    ul{
+      display: block;
+    }
+    &:after{
+      background-image: url("../images/arrow_up.png");
+    }
+  }
+}
 .standard_table {
   tr {
     td.standard_fst {
@@ -482,9 +575,9 @@
 
 /********缺陷总览*********/
 .flaw-table{
-  height: 100%;
+  height: 97%;
   overflow-y: auto;
-  margin-right: 30px;
+  /*margin: 0 30px 0 20px;*/
   .slide-up{
     cursor: pointer;
     color: @activeColor;
@@ -500,11 +593,29 @@
       content: "+";
     }
   }
+  .page-item{
+    display: none;
+    h2{
+      height: 44px;
+      line-height: 44px;
+      border-bottom: 1px @tableBorderColor solid;
+      font-size: 16px;
+      font-weight: normal;
+      margin-bottom: 20px;
+      text-indent: 20px;
+    }
+  }
+  .interval-color{
+    tr:nth-child(2n){
+      background: #EFF1F6;
+    }
+  }
   table{
-    width: 100%;
+    width: 97%;
     border:1px solid #E2E5EF;
     border-collapse: collapse;/*关键代码*/
-    margin-bottom: 40px;
+    /*margin-bottom: 40px;*/
+    margin: 0 30px 40px 20px;
     thead{
       background: #EFF0F9;
 

+ 22 - 0
src/css/quexianDetail.less

@@ -101,6 +101,28 @@
             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: 40px;
             box-sizing: border-box;

+ 22 - 1
src/css/quexianDetailControl.less

@@ -10,7 +10,6 @@
         max-height: 200px;
         overflow-y: auto;
         background: #fff;
-        display: none;
         border: 1px solid #e4e7ed;
         box-shadow: 0 2px 12px 0 #e4e7ed;
         z-index: 2;
@@ -101,6 +100,28 @@
             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: 40px;
             box-sizing: border-box;

+ 321 - 0
src/css/quexianDetailControlHome.less

@@ -0,0 +1,321 @@
+@import './reset.less';
+
+.quexianDetailControlHome{
+    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;
+    }    
+    .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;
+        }
+        .selectDepts {
+            border: 0 none;
+            cursor: default;
+        }
+    }
+    .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;
+    }
+    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: 40px;
+            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: default;
+        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 0 0  ;
+        text-align: right;
+    }
+    .totalSum{
+        font-size:12px;
+        line-height:17px;
+        color: #777777;
+        margin-right: 20px;
+    }
+    .pageNum,.prePage,.nextPage, .more{
+        display: inline-block;
+        width: 20px;
+        cursor: pointer;
+        margin: 0 20px 0 0;
+        text-align: center;
+        color: #777;
+    }
+    .prePage,.nextPage{
+        img{
+            position: relative;
+            top: 0px   ;
+        }
+    }
+     .more{
+        cursor: not-allowed;
+    }
+    .arrowPage{
+        width: 6px;
+    }
+    .activePage{
+        color: @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;
+}

+ 318 - 0
src/css/quexianDetailHome.less

@@ -0,0 +1,318 @@
+@import './reset.less';
+
+.quexianDetailHome{
+    width: 100%;
+    height: 100%;
+    overflow-y: auto;
+    .filterDropList{
+        position: absolute;
+        right: 0;
+        max-height: 200px;
+        overflow-y: auto;
+        background: #fff;
+        display: none;
+        border: 1px solid #e4e7ed;
+        box-shadow: 0 2px 12px 0 #e4e7ed;
+        z-index: 2;
+        li{
+            padding: 0 10px;
+        }
+    }
+    .deptList{
+        width: 160px;
+        max-height: 400px;
+    }    
+    .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;
+    }
+    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: 40px;
+            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: default;
+        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 0 0  ;
+        text-align: right;
+    }
+    .totalSum{
+        font-size:12px;
+        line-height:17px;
+        color: #777777;
+        margin-right: 20px;
+    }
+    .pageNum,.prePage,.nextPage, .more{
+        display: inline-block;
+        width: 20px;
+        cursor: pointer;
+        margin: 0 20px 0 0;
+        text-align: center;
+        color: #777;
+    }
+    .prePage,.nextPage{
+        img{
+            position: relative;
+            top: 0px   ;
+        }
+    }
+     .more{
+        cursor: not-allowed;
+    }
+    .arrowPage{
+        width: 6px;
+    }
+    .activePage{
+        color: @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;
+}

+ 34 - 16
src/css/reset.less

@@ -32,7 +32,7 @@ input {
   color: #333333;
   text-decoration: none;
 }
-
+textarea,
 html,
 body {
   font-family: 'Microsoft YaHei', arial, tahoma, sans-serif;
@@ -71,6 +71,9 @@ table {
   thead{
     background: #EFF0F9;
   }
+  tr:nth-child(2n){
+    background: #EFF1F6;
+  }
   th,td{
     height: @trHeight;
     box-sizing: border-box;
@@ -94,6 +97,7 @@ textarea {
   padding: 0;
   outline: none;
 }
+
 .clearfix:after{
   content: ""; 
   display: block; 
@@ -118,6 +122,7 @@ textarea {
 @menuLiHt:40px;   /*菜单项高度*/
 @menuWt:205px;   /*菜单宽度*/
 @themeColor:#203463;    //主题背景色
+@titleColor: #51649C; //面包屑标题颜色
 @themeFontClr:#fff;   //主题字体色
 @greyColor:#A5ADBF;    //灰色二级
 @fstColor:#E9EBEF;    //重要一级,菜单
@@ -133,17 +138,18 @@ textarea {
 @warnColor:#FF4D4F;  /**重点红色**/
 @thBgColor:#EFF0F9; /**标题背景色**/
 @tableBorderColor:#E2E5EF;  /**表格边框**/
+@disColor:#EFF1F6;  /**背景颜色**/
 @trHeight:30px;   /**表格行高**/
 .h2{
   width: 100%;
   /*box-sizing: border-box;*/
   z-index: 20;
-  color: #51649C;
+  color: @titleColor;
   height: 44px;
   line-height: 44px;
   /*padding: 0 0 0 15px;*/
-  border-bottom: 10px solid #F5F6FA;
-  font-size: 16px;
+  border-bottom: 10px solid #EFF1F6;
+  font-size: 14px;
   text-indent: 20px;
   font-weight: normal;
   letter-spacing: 1px;
@@ -341,7 +347,7 @@ input:-ms-input-placeholder{  /* Internet Explorer 10-11 */
 
 .grayLine {
   height: 10px;
-  background-color: #f5f5f5;
+  background-color: #EFF1F6;
 }
 .partTitleT {
   height: 44px;
@@ -356,26 +362,23 @@ input:-ms-input-placeholder{  /* Internet Explorer 10-11 */
   z-index: 20;
   height: 44px;
   line-height: 44px;
-  padding-left: 15px;
+  padding-left: 20px;
   font-size: 14px;
   font-weight: normal;
   letter-spacing: 1px;
   min-width: 100px;
   p {
     display: inline-block;
-    font-size: 16px;
-    color: @themeColor;
+    color: @titleColor;
     a {
-      font-size: 16px;
-      color: @themeColor;
+      color: @titleColor;
       opacity: 70%;
     }
     span {
-      color: @themeColor;
-      font-size: 16px;
+      color: @titleColor;
     }
     i {
-      color: @themeColor;
+      color: @titleColor;
     }
   }
   .dateDetail {
@@ -475,8 +478,8 @@ input:-ms-input-placeholder{  /* Internet Explorer 10-11 */
 }
 
 .filterItem,.patientNumInp,.filter,.moduleItemInp,.selectDept, .filterItem span {
-  height: 32px !important;
-  line-height: 32px !important;
+  height: 34px !important;
+  line-height: 34px !important;
   float: left;
 }
 .filterItem ,.filter {
@@ -492,4 +495,19 @@ input:-ms-input-placeholder{  /* Internet Explorer 10-11 */
 }
 .toggleSlide p {
   border: 1px solid #506597 !important;
-}
+}
+.emptyBoxHome {
+  text-align: center;
+  position: absolute;
+  width: 100%;
+  top: 50%;
+  margin-top: -48px;
+  img {
+    width: 50px;
+  }
+  p {
+    color: #637192;
+    margin-top: 5px;
+  }
+}
+@import './common.less';

+ 5 - 0
src/css/roleManager.less

@@ -7,6 +7,11 @@
     height: 700px;
     background-color: #fff;
 }
+.managerContainer {
+    .main-body {
+        margin-top: 10px;
+    } 
+}
 .pubStyleMeun {
     .roleLis li {
         padding: 0 10px;

+ 1 - 1
src/html/abnormal.html

@@ -59,7 +59,7 @@
                     <th class="beHospitalId textCenter">创建时间</th>
                     <th class="beHospitalId textCenter">病人住院序号</th>
                     <th class="patientNo textCenter" >异常归属模块</th>
-                    <th class="patientName textCenter" style="width: 100px;">异常说明</th>
+                    <th class="patientName textCenter" style="width: 100px;">文书名称</th>
                     <th class="patientSex textCenter" >状态</th>
                     <th class="patientage textCenter" >备注</th>
                     <th class="patientage textCenter" style="width: 150px;">操作</th>

+ 51 - 0
src/html/assertType.html

@@ -0,0 +1,51 @@
+<!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 assertType">
+        <div class="partTitle">
+          <p>质控类型维护</p>
+          <div class="dateDetail fr">
+            
+          </div>
+        </div>
+        <div class="partTitleT"></div>
+        <div class="grayLine"></div>
+        <div class="main-body">
+            <div class="filterBox clearfix">
+                <span class="filterItem typeFilter">
+                    <span>质控类型:</span>
+                    <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入质控类型">
+                </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">重置</span>
+                <span class="addTypeAssert"><a href="assertTypeDetail.html">+添加质控类型</a></span>
+            </div>
+            <div>
+                <table>
+                    <thead>
+                        <th class="moduleName" style="width: 65px;">序号</th>
+                        <th class="beHospitalId textCenter">质控ID</th>
+                        <th class="beHospitalId textCenter">质控类型</th>
+                        <th class="beHospitalId textCenter" style="width: 200px;">操作</th>
+                    </thead>
+                    <tbody>
+
+                    </tbody>
+                </table>
+            </div>
+
+            <div class="pagination"></div>
+        </div>
+        
+    </div>
+</body>
+
+</html>

+ 47 - 0
src/html/assertTypeDetail.html

@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+<body>
+    <div class="container assertTypeDetail">
+        <div class="partTitle">
+            <p><a href="assertType.html">质控类型维护 / </a><span>新增</span></p>
+            <div class="dateDetail fr">
+              
+            </div>
+          </div>
+          <div class="partTitleT"></div>
+          <div class="grayLine"></div>     
+          <div class="main-body">
+            <div class="filterBox clearfix">
+                <!-- <div class="filterItem typeFilter deptListWrap">
+                    <span class="explainL" style="overflow:hidden">科室名称:</span>
+                    <span class="selectDept ellipsis" data-id=""><i>--</i></span>
+                    <ul class="deptList filterDropList">
+                        
+                    </ul>
+                </div>    -->
+                <div class="filterItem typeFilter">
+                    <span class="explainL">质控类型:</span>
+                    <input class="patientNumInp"  type="text" placeholder="请输入质控类型">
+                </div>
+                <div class=" clearfix">
+                    <div class="qcItemTitle">质控条目:</div>
+                    <div class="listTypeAll">
+                        <!-- <div>
+                            <span>病案首页</span><i></i>
+                        </div> -->
+                    </div>
+                </div>
+                <!-- <span class="filter">查询</span>
+                <span class="addTypeAssert"><a href="assertTypeDetail.html">添加质控类型</a></span> -->
+            </div>
+            <div class="submitBox"><span class="submit">确定</span></div>
+            <!-- <div class="pagination"></div> -->
+        </div>
+    </div>
+</body>
+</html>

+ 89 - 57
src/html/console.html

@@ -25,65 +25,79 @@
           <span class="name">出院人数统计</span>
           <span class="personNum">总人数:</span>
         </p>
-        <ul class="clearfix" style="cursor: default;">
-          <li>
-            <p class="numShow died"></p>
-            <p class="explainNum">死亡人数</p>
-          </li>
-          <li class="li02">
-            <p class="numShow newborn"></p>
-            <p class="explainNum">新生儿人数</p>
-          </li>
-          <li class="li03">
-            <p class="numShow patientNum"></p>
-            <p class="explainNum">手术病人数</p>
-          </li>
-        </ul>
+        <div class="chuyuan">
+          <ul class="clearfix" style="cursor: default;">
+            <li>
+              <p class="numShow died"></p>
+              <p class="explainNum">死亡人数</p>
+            </li>
+            <li class="li02">
+              <p class="numShow newborn"></p>
+              <p class="explainNum">新生儿患者</p>
+            </li>
+            <li class="li03">
+              <p class="numShow patientNum"></p>
+              <p class="explainNum">手术病人数</p>
+            </li>
+          </ul>
+        </div>
+        <div class="chuyuanEmpty"></div>
         <div class="defect">
           <p class="partTitlePub">各模块缺陷占比排名 <img class="detailGo" src="../images/details.png" alt=""></p>
           <div class="list">
             <table class="qtable">
   
             </table>
+            <div class="qtableEmpty">
+
+            </div>
           </div>
         </div>
       </div>
       <div class="part02 fl">
-        <ul class="bingli clearfix">
-          <li class="fst">
-            <p class="numShow"></p>
-            <p class="explainNum">累计质控病历数</p>
-          </li>
-          <li>
-            <p class="numShow"></p>
-            <p class="explainNum">甲级病历</p>
-          </li>
-          <li>
-            <p class="numShow"></p>
-            <p class="explainNum">乙级病历</p>
-          </li>
-          <li>
-            <p class="numShow"></p>
-            <p class="explainNum">丙级病历</p>
-          </li>
-        </ul>
-        <div class="bingliLis clearfix">
-          <p>病历评分等级占比 <img class="detailGo" src="../images/details.png" alt=""></p>
-          <div class="panPartPub panPart02">
-            <div class="fen" id="fen01"></div>
-            <p>甲级占比</p>
+        <div class="bldjs">
+          <ul class="bingli clearfix">
+            <li class="fst">
+       -       <p class="numShow"></p>
+              <p class="explainNum">累计质控病历数</p>
+            </li>
+            <li>
+              <p class="numShow"></p>
+              <p class="explainNum">甲级病历</p>
+            </li>
+            <li>
+              <p class="numShow"></p>
+              <p class="explainNum">乙级病历</p>
+            </li>
+            <li>
+              <p class="numShow"></p>
+              <p class="explainNum">丙级病历</p>
+            </li>
+          </ul>
+          <div class="bingliLis clearfix">
+            <p>病历评分等级占比 <img class="detailGo" src="../images/details.png" alt=""></p>
+            <div class="panPartPub panPart02">
+              <div class="fen" id="fen01"></div>
+              <p>甲级占比</p>
+            </div>
+            <div class="panPartPub panPart01">
+              <div class="fen" id="fen02"></div>
+              <p>乙级占比</p>
+            </div>
+            <div class="panPartPub panPart03">
+              <div class="fen" id="fen03"></div>
+              <p>丙级占比</p>
+            </div>
           </div>
-          <div class="panPartPub panPart01">
-            <div class="fen" id="fen02"></div>
-            <p>乙级占比</p>
-          </div>
-          <div class="panPartPub panPart03">
-            <div class="fen" id="fen03"></div>
-            <p>丙级占比</p>
+        </div>
+        <div class="pingfendengji">
+          <p class="title">病历评分数据</p>
+          <div class="pingfendengjiEmpty">
+
           </div>
         </div>
         <div class="pubEchart paymoney">
-          <p class="title">科室平均住院天数柱状图 <img src="../images/details.png" alt=""></p>
+          <p class="title"><span>科室平均住院天数柱状图</span> <img src="../images/details.png" alt=""></p>
           <div class="toggleSlide">
             <p><span>平均住院天数</span><img src="../images/arrow_down.png" alt=""> </p>
             <ul>
@@ -92,6 +106,7 @@
             </ul>
           </div>
           <div id="barChart" class="barChartPay"></div>
+          <div class="barChartPayEmpty"></div>
         </div>
       </div>
       <div class="part03 fl">
@@ -100,14 +115,20 @@
         </p>
         <div class="barChartLineBox">
           <div id="lineChart" class="barChartLine"></div>
+          <div class="barChartLineEmpty"></div>
         </div>
         <div class="circle clearfix">
           <p class="title">各科室缺陷占比 <img class="detailGo" src="../images/details.png" alt=""></p>
-          <div id="emptyCircle" class="emptyCircle"></div>
-          <div class="explainPan explainPanT">
-            <table>
-              
-            </table>
+          <div class="emptyCircleWrap">
+            <div id="emptyCircle" class="emptyCircle"></div>
+            <div class="explainPan explainPanT">
+              <table>
+                
+              </table>
+            </div>
+          </div>
+          <div id="emptyCircleWrapEmpty">
+
           </div>
         </div>
       </div>
@@ -115,20 +136,31 @@
       <div class="part04 clearfix">
         <div class="circleB clearfix">
           <p class="title">条目缺陷占比 <img src="../images/details.png" alt=""></p>
-          <div id="emptyCircleB" class="emptyCircle"></div>
-          <div class="explainPan explainPanB">
-            <table>
-              
-            </table>
+          <div class="emptyCircleBData">
+            <div id="emptyCircleB" class="emptyCircle"></div>
+            <div class="explainPan explainPanB">
+              <table>
+                
+              </table>
+            </div>
+          </div>
+          <div class="emptyCircleBWrap">
+
           </div>
         </div>
-        
         <div class="pubEchartB paymoney">
           <p class="title">各科室质控平均分柱状图 <img src="../images/details.png" alt=""></p>
+          <div class="toggleSlide innerOuter">
+            <p data-str="内科" data-type="3"><span>内科系统</span><img src="../images/arrow_down.png" alt=""> </p>
+            <ul>
+              <li class="toggleAverge toggleSlide1" data-str="内科" data-type="3">内科系统</li>
+              <li class="toggleAverge toggleSlide2" data-str="外科" data-type="4">外科系统</li>
+            </ul>
+          </div>
           <div id="barChartPay" class="barChartPay" style="height: 217px;"></div>
+          <div class="barChartPayEmptys" style="height: 217px;"></div>
         </div>
       </div>
-
   </div>
 </body>
 </html>

+ 83 - 49
src/html/deptConsole.html

@@ -29,82 +29,116 @@
     </div>
   </div>
   <div class="partTitleT"></div>
-  <div class="grayLine"></div>
+  <!--<div class="grayLine"></div>-->
   <div class="partWrap clearfix">
       <div class="part01 fl">
         <p class="partTitlePub clearfix" style="cursor: default;">
           <span class="name">出院人数统计</span>
           <span class="personNum">总人数:</span>
         </p>
-        <ul class="clearfix" style="cursor: default;">
-          <li>
-            <div class="lis">
-              <p class="numShow died"></p>
-              <p class="explainNum">死亡人数</p>
-            </div>
-          </li>
-          <li class="li03">
-            <div class="lis li02">
-              <p class="numShow patientNum"></p>
-              <p class="explainNum">手术病人数</p>
-            </div>
-          </li>
-        </ul>
+        <div class="chuyuan">
+          <ul class="clearfix" style="cursor: default;">
+            <li>
+              <div class="lis">
+                <p class="numShow died"></p>
+                <p class="explainNum">死亡人数</p>
+              </div>
+            </li>
+            <li class="li03">
+              <div class="lis li02">
+                <p class="numShow patientNum"></p>
+                <p class="explainNum">手术病人数</p>
+              </div>
+            </li>
+          </ul>
+        </div>
+        <div class="chuyuanEmpty"></div>
         <div class="defect">
           <p class="partTitlePub">各模块缺陷占比排名 <img class="detailGo" src="../images/details.png" alt=""></p>
           <div class="list">
             <table class="qtable">
   
             </table>
+            <div class="qtableEmpty">
+
+            </div>
           </div>
         </div>
       </div>
       <div class="part02 fl">
-        <ul class="bingli clearfix">
-          <li class="fst">
-            <p class="numShow"></p>
-            <p class="explainNum">累计质控病历数</p>
-          </li>
-          <li>
-            <p class="numShow"></p>
-            <p class="explainNum">甲级病历</p>
-          </li>
-          <li>
-            <p class="numShow"></p>
-            <p class="explainNum">乙级病历</p>
-          </li>
-          <li class="four">
-            <p class="numShow"></p>
-            <p class="explainNum">丙级病历</p>
-          </li>
-        </ul>
-        <div class="bingliLis clearfix">
-          <p>病历评分等级占比 <img class="detailGo" src="../images/details.png" alt=""></p>
-          <div class="panPartPub panPart02">
-            <div class="fen" id="fen01"></div>
-            <p>甲级占比</p>
+        <div class="bldjs">
+          <ul class="bingli clearfix">
+            <li class="fst">
+              <p class="numShow"></p>
+              <p class="explainNum">累计质控病历数</p>
+            </li>
+            <li class="sec">
+              <p class="numShow"></p>
+              <p class="explainNum">甲级病历</p>
+            </li>
+            <li class="sec">
+              <p class="numShow"></p>
+              <p class="explainNum">乙级病历</p>
+            </li>
+            <li class="four sec">
+              <p class="numShow"></p>
+              <p class="explainNum">丙级病历</p>
+            </li>
+          </ul>
+          <div class="bingliLis clearfix">
+            <p>病历评分等级占比 <img class="detailGo" src="../images/details.png" alt=""></p>
+            <div class="panPartPub panPart02">
+              <div class="fen" id="fen01"></div>
+              <p>甲级占比</p>
+            </div>
+            <div class="panPartPub panPart01">
+              <div class="fen" id="fen02"></div>
+              <p>乙级占比</p>
+            </div>
+            <div class="panPartPub panPart03">
+              <div class="fen" id="fen03"></div>
+              <p>丙级占比</p>
+            </div>
+          </div>
+        </div>
+        <div class="pingfendengji">
+          <p class="title">病历评分数据</p>
+          <div class="pingfendengjiEmpty">
+
           </div>
-          <div class="panPartPub panPart01">
-            <div class="fen" id="fen02"></div>
-            <p>乙级占比</p>
+        </div>
+        <div class="circleB circleBSingle clearfix">
+          <p class="title">条目缺陷占比 <img class="detailGo" src="../images/details.png" alt=""></p>
+          <div class="emptyCircleBData">
+            <div id="emptyCircleB" class="emptyCircle"></div>
+            <div class="explainPan explainPanB">
+              <table>
+                
+              </table>
+            </div>
           </div>
-          <div class="panPartPub panPart03">
-            <div class="fen" id="fen03"></div>
-            <p>丙级占比</p>
+          <div class="emptyCircleBWrap">
+
           </div>
         </div>
         <div class="circleBLis">
           <div class="circleB homePage clearfix">
             <p class="title">病案首页合格率占比 <img class="detailGo" src="../images/details.png" alt=""></p>
             <div id="lineChart" class="emptyCircle emptyLineCircle"></div>
+            <div class="emptyLineCircleEmpty"></div>
           </div>
           <div class="circleB homePageNo clearfix">
             <p class="title">条目缺陷占比 <img class="detailGo" src="../images/details.png" alt=""></p>
-            <div id="emptyCircleBc" class="emptyCircle"></div>
-            <div class="explainPan explainPanc explainPanBc">
-              <table>
-                
-              </table>
+            <div class="emptyCircleBDatas">
+              <div id="emptyCircleBc" class="emptyCircle"></div>
+              <div class="explainPan explainPanc explainPanBc">
+                <table>
+                  
+                </table>
+              </div>
+            </div>
+            <div class="emptyCircleBWraps">
+
             </div>
           </div>
 

+ 1 - 1
src/html/deptScoreDetail.html

@@ -42,7 +42,7 @@
                 <table>
                     <thead>
                     <th class="moduleName" style="width: 65px;">序号</th>
-                    <th class="beHospitalId textCenter">科室编码</th>
+                    <!-- <th class="beHospitalId textCenter">科室编码</th> -->
                     <th class="beHospitalId textCenter">主管医生</th>
                     <th class="beHospitalId textCenter">缺陷总数</th>
                     <th class="beHospitalId textCenter">质控平均分</th>

+ 6 - 23
src/html/deptScoreDetailControl.html

@@ -28,38 +28,21 @@
                     <span>科室名称:</span>
                     <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入科室名称">
                 </span>
-                <!-- <span class="filterItem typeFilter deptListWrap">
-                    <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>
+                        <li class="deptItem ellipsis" title="内科系统" data-id="内科" data-name="内科系统">内科系统</li>
+                        <li class="deptItem ellipsis" title="外科系统" data-id="外科" data-name="外科系统">外科系统</li>
                     </ul>
-                </span> -->
+                </span>
                 <span class="filter">查询</span>
                 <span class="filterclear abnormalClear">重置</span>
             </div>
-            <div>
+            <div class="deptScoreDetailControlTable">
                 <table>
-                    <thead>
-                    <th class="moduleName" style="width: 65px;">序号</th>
-                    <th class="beHospitalId textCenter">科室编码</th>
-                    <th class="beHospitalId textCenter">科室名称</th>
-                    <th class="beHospitalId textCenter">缺陷总数</th>
-                    <th class="beHospitalId textCenter">质控平均分</th>
-                    <th class="beHospitalId textCenter">质控病历数</th>
-                    <th class="beHospitalId textCenter">甲级病历数</th>
-                    <th class="beHospitalId textCenter">乙级病历数</th>
-                    <th class="beHospitalId textCenter">丙级病历数</th>
-                    <th class="beHospitalId textCenter">甲级率</th>
-                    <th class="beHospitalId textCenter">乙级率</th>
-                    <th class="beHospitalId textCenter">丙级率</th>
-                    </thead>
-                    <tbody>
 
-                    </tbody>
                 </table>
             </div>
 

+ 2 - 1
src/html/qcList.html

@@ -64,7 +64,7 @@
                 <table>
                     <thead>
                     <tr>
-                        <td colspan="17" style="background: #fff">
+                        <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>
@@ -81,6 +81,7 @@
                     <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>

+ 2 - 1
src/html/qcListDept.html

@@ -63,7 +63,7 @@
                 <table>
                     <thead>
                         <tr>
-                            <td colspan="17" style="background: #fff">
+                            <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>
@@ -80,6 +80,7 @@
                         <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>

+ 2 - 1
src/html/qcListPerson.html

@@ -63,7 +63,7 @@
                 <table>
                     <thead>
                         <tr>
-                            <td colspan="17" style="background: #fff">
+                            <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>
@@ -80,6 +80,7 @@
                         <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>

+ 88 - 448
src/html/qcScore.html

@@ -10,11 +10,11 @@
         <li class="list-1 menu-${id}">
             <p>${name}</p>
             {{else}}
-        <li class="page menu-${id}" code="${name}">${name}
+        <li class="page menu-${id}" code="${name}" mode="${id}">${name}
             {{/if}}
             <ul>
                 {{each sonMode}}
-                <li class="page" code="${name.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g,'')}">${name}</li>
+                <li class="page" code="${name.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g,'')}" mode="${id}">${name}</li>
                 {{/each}}
             </ul>
         </li>
@@ -91,7 +91,6 @@
              </tr>
              <tr><td colspan="2" class="table-tip">入院病情:1.有,2.临床未确定,3.情况不明,4.无。</td></tr>
          </table>
-         <!--<p class="table-tip"></p>-->
          {{else}}
              <table>
          <tr>
@@ -124,444 +123,12 @@
          </table>
          {{/if}}
     </script>
-    <script type="text/html" id="indexTmpl">
-        <div class="content-item" code="${title.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g,'')}">
-            <h2 class="title">${title}</h2>
-            <div class="container content-ht">
-                <div class="info-item cont-2">
-                    <div class="cont">
-                        <span class="label">医疗付费方式:</span>
-                        <span>${医疗付费方式}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">医疗机构:</span>
-                        <span>${医疗机构名称}(组织机构代码:${医疗机构代码}) </span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">健康卡号:</span>
-                        <span>${健康卡号}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">第${住院次数}次住院</span>
-                        <span></span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">病案号:</span>
-                        <span>${病案号}</span>
-                    </div>
-                </div>
-                <div class="info-item cont-5">
-                    <div class="cont">
-                        <span class="label">姓名:</span>
-                        <span>${姓名}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">性别:</span>
-                        <span>${性别}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">出生日期:</span>
-                        <span>${出生日期.slice(0,10)}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">年龄:</span>
-                        <span>${年龄}${年龄单位}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">国籍:</span>
-                        <span>${国籍}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">(年龄不足1周岁的)年龄月数:</span>
-                        <span> ${新生儿出生月数}月&nbsp;&nbsp;${新生儿出生天数}天</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">新生儿出生体重:</span>
-                        <span>${新生儿出生体重}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">新生儿入院体重:</span>
-                        <span>${新生儿入院体重}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">出生地:</span>
-                        <span>${出生地}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">籍贯:</span>
-                        <span>${籍贯}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">民族:</span>
-                        <span>${民族}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">身份证号:</span>
-                        <span>${身份证号}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">职业:</span>
-                        <span>${职业}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">婚姻:</span>
-                        <span>${婚姻}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">现住址:</span>
-                        <span>${现住址}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">电话:</span>
-                        <span>${现住址电话}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">邮编:</span>
-                        <span>${现住址邮编}</span>
-                    </div>
-                </div>
-                <div class="info-item cont-2">
-                    <div class="cont">
-                        <span class="label">户口地址:</span>
-                        <span>${户口地址}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">邮编:</span>
-                        <span>${户口地址邮编}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">工作单位及地址:</span>
-                        <span>${工作单位}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">单位电话:</span>
-                        <span>${工作单位电话}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">邮编:</span>
-                        <span>${工作单位邮编}</span>
-                    </div>
-                </div>
-                <div class="info-item cont-4">
-                    <div class="cont">
-                        <span class="label">联系人姓名:</span>
-                        <span>${联系人姓名}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">关系:</span>
-                        <span>${联系人关系}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">地址:</span>
-                        <span>${联系人地址}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">电话:</span>
-                        <span>${联系人电话}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">入院途径:</span>
-                        <span>${入院途径}</span>
-                    </div>
-                </div>
-                <div class="info-item cont-4">
-                    <div class="cont">
-                        <span class="label">入院时间:</span>
-                        <span>${入院时间}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">入院科别:</span>
-                        <span>${入院科别}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">病床:</span>
-                        <span>${入院床位序号}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">转科科别:</span>
-                        <span>${转科科别}</span>
-                    </div>
-                </div>
-                <div class="info-item cont-4">
-                    <div class="cont">
-                        <span class="label">出院时间:</span>
-                        <span>${出院时间}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">出院科别:</span>
-                        <span>${出院科别}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">病床:</span>
-                        <span>${出院床位号码}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">实际住院:</span>
-                        <span>${实际住院天数}天</span>
-                    </div>
-                </div>
-                <div class="info-item no-border cont-2">
-                    <div class="cont">
-                        <span class="label">门(急)诊诊断:</span>
-                        <span>${门急诊诊断}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">疾病编码:</span>
-                        <span>${门急诊诊断编码}</span>
-                    </div>
-                </div>
-                <div class="info-table" id="diagTable"></div>
-                <div class="info-item cont-2">
-                    <div class="cont">
-                        <span class="label">损伤、中毒的外部原因:</span>
-                        <span>${损伤中毒因素}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">疾病编码:</span>
-                        <span>${损伤中毒因素编码}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">病理诊断:</span>
-                        <span>${病理诊断}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">疾病编码:</span>
-                        <span>${病理诊断编码}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">病理号:</span>
-                        <span>${病理诊断编号}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">药物过敏:</span>
-                        <span>${药物过敏}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">过敏药物:</span>
-                        <span>${过敏药物}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">死亡患者尸检:</span>
-                        <span>${死亡患者尸检}</span>
-                    </div>
-                </div>
-                <div class="info-item cont-2">
-                    <div class="cont">
-                        <span class="label">血型:</span>
-                        <span>${血型}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">Rh:</span>
-                        <span>${Rh}</span>
-                    </div>
-                </div>
-                <div class="info-item cont-4">
-                    <div class="cont">
-                        <span class="label">科主任:</span>
-                        <span>${科主任}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">主任(副主任)医师:</span>
-                        <span>${主任医师}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">主治医师:</span>
-                        <span>${主治医师}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">住院医师:</span>
-                        <span>${住院医师}</span>
-                    </div>
-                </div>
-                <div class="info-item cont-4">
-                    <div class="cont">
-                        <span class="label">责任护士:</span>
-                        <span>${责任护士}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">进修医师:</span>
-                        <span>${进修医师}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">实习医师:</span>
-                        <span>${实习医师}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">编码员:</span>
-                        <span>${编码员}</span>
-                    </div>
-                </div>
-                <div class="info-item cont-4">
-                    <div class="cont">
-                        <span class="label">病案质量:</span>
-                        <span>${病案质量}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">质控医师:</span>
-                        <span>${质控医师}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">质控护士:</span>
-                        <span>${质控护士}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">质控日期:</span>
-                        <span>${质控日期}</span>
-                    </div>
-                </div>
-                <div class="info-table" id="surgeryTable"></div>
-                <div class="info-item cont-2">
-                    <div class="cont">
-                        <span class="label">离院方式:</span>
-                        <span>${离院方式}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">拟接收医疗机构名称:</span>
-                        <span>${接收机构名称}</span>
-                    </div>
-                </div>
-                <div class="info-item cont-2">
-                    <div class="cont">
-                        <span class="label">是否有出院31天内再住院计划:</span>
-                        <span>${a天内再住院计划}</span>
-                    </div>
-                    <div class="cont">
-                        <span class="label">目的:</span>
-                        <span>${再住院目的}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">颅脑损伤患者昏迷时间:</span>
-                        <span>入院前:${颅脑损伤患者昏迷前天数}天${颅脑损伤患者昏迷前小时}小时${颅脑损伤患者昏迷前分钟}分钟&nbsp;&nbsp;&nbsp;&nbsp;入院后:${颅脑损伤患者昏迷后天数}天${颅脑损伤患者昏迷后小时}小时${颅脑损伤患者昏迷后分钟}分钟</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">住院费用(元):</span>
-                        <span>总费用${总费用}(自付金额: ${自付金额})</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">1.综合医疗服务类:</span>
-                        <span>(1)一般医疗服务费:${一般医疗服务费} (2)一般治疗操作费:${一般治疗服务费} (3)护理费:${护理费} (4)其他费用:${其他费用} </span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">2.诊断类:</span>
-                        <span>(5)病理诊断费:${病理诊断费} (6)实验室诊断费:${实验室诊断费} (7)影像学诊断费:${影像学诊断费} (8)临床诊断项目费:${临床诊断项目费}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">3.治疗类:</span>
-                        <span>(9)非手术治疗项目费:${非手术治疗项目费}(临床物理治疗费:${临床物理治疗费}) (10)手术治疗费:${手术治疗费}(麻醉费:${麻醉费} 手术费:${手术费}) </span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">4.康复类:</span>
-                        <span>(11)康复费:${康复类}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">5.中医类:</span>
-                        <span>(12)中医治疗费: ${中医治疗费}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">6.西药类:</span>
-                        <span>(13)西药费:${西药费}(抗菌药物费用:${抗菌药物费用}) </span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">7.中药类:</span>
-                        <span> (14)中成药费:${中成药费} (15)中草药费:${中草药费} </span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">8.血液和血液制品类:</span>
-                        <span>(16)血费:${血费} (17)白蛋白类制品费:${白蛋白类制品费} (18)球蛋白类制品费:${球蛋白类制品费} (19)凝血因子类制品费:${凝血因子类制品费} (20)细胞因子类制品费:${细胞因子类制品费}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">9.耗材类:</span>
-                        <span>(21)检查用一次性医用材料费:${检查用一次性医用材料费} (22)治疗用一次性医用材料费:${治疗用一次性医用材料费} (23)手术用一次性医用材料费:${手术用一次性医用材料费}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">10.其他类:</span>
-                        <span>(24)其他费:${其他类其他费}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">单病种管理:</span>
-                        <span>${单病种管理}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">临床路径管理:</span>
-                        <span>${临床路径管理}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">诊断符合情况:</span>
-                        <span> 1.门诊与出院:${门诊与住院} 2.入院与出院:${入院与出院} 3.术前与术后:${术前与术后} 4.临床与病理:${临床与病理} 5.放射与病理:${放射与病理}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">抢救情况:</span>
-                        <span>抢救${病人抢救次数}次 成功${病人抢救成功次数}次</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">是否为自动出院:</span>
-                        <span>${是否为自动出院}</span>
-                    </div>
-                </div>
-                <div class="info-item">
-                    <div class="cont">
-                        <span class="label">转归情况:</span>
-                        <span>${转归情况}</span>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </script>
     <script type="text/html" id="flawTmpl">
         <div class="flaw-item" code="${modelName.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g,'')}">
             <div class="title">
+                {{if gradeType===2}}
+                <i class="add-icon">人工</i>
+                {{/if}}
                 {{if info}}
                 <a {{if pageKeyList[0]}} anchors="${pageKeyList}" href="#anchor${pageKeyList[0]}" {{/if}}>${msg}(${info})</a>
                 {{else}}
@@ -589,29 +156,84 @@
     </script>
     <script type="text/html" id="editTmpl">
         <div class="edit-box">
-            <p><span>质控条目: </span><input disabled type="text" value="${standardMsg}" /></p>
+            <p><span>质控条目: </span><input disabled type="text" class="ellipsis" title="${standardMsg}" value="${standardMsg}" /></p>
             <!--<p><span>模块名称: </span><input type="text" value="${modelName}" /></p>-->
-            <p><span>提示信息: </span><input id="qcMsg" type="text" value="${msg}" /></p>
+            <p><span>提示信息: </span><input id="qcMsg" class="ellipsis" type="text" title="${msg}" value="${msg}" /></p>
             <p><span>分值: </span> <input id="qcScore" type="text" value="${score}" /></p>
             <p class="warning"><span></span><span class="red">支持≥0的数字输入,最多保留小数点后1位~</span></p>
         </div>
     </script>
-    <script type="text/html" id="flawTotalList">
+    <script type="text/html" id="flawDropTmpl">
+        {{each(i,it) info}}
+        <li idx="${i}" name="${it.entryName}" title="${it.entryName}">${it.entryName}</li>
+        {{/each}}
+    </script>
+    <script type="text/html" id="addFlawTmpl">
+        <div class="edit-box add-box">
+            <div class="drop-box">
+                <span>质控条目: </span>
+                <input type="text" class="flaw-drop-input ellipsis"/>
+                <ul></ul>
+            </div>
+            <!--<p><span>模块名称: </span><input type="text" value="${modelName}" /></p>-->
+            <p><span style="margin-right: 16px;">提示信息:</span><input title="${msg}" class="ellipsis" id="addQcMsg" type="text" value="${msg}" /></p>
+            <p><span>分值:</span> <input id="addQcScore" type="text" value="${score}" /></p>
+            <p class="warning"><span></span><span class="red">支持≥0的数字输入,最多保留小数点后1位~</span></p>
+        </div>
+    </script>
+    <!--<script type="text/html" id="flawTotalList">
         {{if Object.keys(data).length===0}}
             <div class="empty">
                 <img src="../images/empty.png" alt="空"/>
-                <p>暂无数据~</p>
+                <p>暂无信息~</p>
             </div>
         {{else}}
-        <table>
-            <thead>
+        <div class="page-item" code="缺陷总览">
+            <h2 class="title">${title}</h2>
+            <table>
+                <thead>
                 <tr>
                     <th width="250">来源</th>
                     <th>缺陷详情</th>
                     <th width="150">扣分</th>
                 </tr>
-            </thead>
-            <tbody>
+                </thead>
+                <tbody>
+                {{each(i,val) data}}
+                <tr><td colspan="3" class="slide-up">${i}</td></tr>
+                {{each val}}
+                <tr code="${i}">
+                    <td style="text-indent: 14px;">${modelName}</td>
+                    <td>${standardMsg}</td>
+                    <td class="red">${score}</td>
+                </tr>
+                {{/each}}
+                {{/each}}
+                </tbody>
+            </table>
+        </div>
+
+        {{/if}}
+    </script>-->
+    <script type="text/html" id="appointBookTmpl">
+        <div class="page-item" code="${title}">
+            <h2 class="title" code="${title}">${title}</h2>
+            {{if !data}}
+            <div class="empty">
+                <img src="../images/empty.png" alt="空"/>
+                <p>暂无信息~</p>
+            </div>
+            {{else}}
+            {{if title==='缺陷总览'}}
+            <table>
+                <thead>
+                <tr>
+                    <th width="250">来源</th>
+                    <th>缺陷详情</th>
+                    <th width="150">扣分</th>
+                </tr>
+                </thead>
+                <tbody>
                 {{each(i,val) data}}
                 <tr><td colspan="3" class="slide-up">${i}</td></tr>
                 {{each val}}
@@ -622,9 +244,27 @@
                 </tr>
                 {{/each}}
                 {{/each}}
+                </tbody>
+            </table>
+            {{else}}<table code="${title}" class="interval-color">
+            <thead>
+            <tr>
+                <th width="100" align="center">序号</th>
+                <th>文书详情</th>
+            </tr>
+            </thead>
+            <tbody>
+            {{each(i,val) data}}
+            <tr>
+                <td align="center">${i+1}</td>
+                <td>${recTitle}</td>
+            </tr>
+            {{/each}}
             </tbody>
         </table>
-        {{/if}}
+            {{/if}}
+            {{/if}}
+        </div>
     </script>
 </head>
 <body>
@@ -653,7 +293,7 @@
             <div class="operation fr" id="flaws">
                 <div class="flaw-title">
                     <span>缺陷详情</span>
-                    <!--<a href="javascript:void(0);">+ 新增</a>-->
+                    <a href="javascript:void(0);" class="add-flaw">+ 新增</a>
                 </div>
                 <div class="flaw-box content-ht">
                     <!--<div class="empty">

+ 16 - 1
src/html/quexianDetail.html

@@ -25,24 +25,39 @@
         <div class="grayLine"></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="filter">查询</span>
                 <span class="filterclear abnormalClear">重置</span>
             </div>
             <table>
                 <thead>
                     <th class="moduleName" style="width: 65px;">序号</th>
+                    <th class="moduleItemName desc" code="casesName">所属模块</th>
                     <th class="moduleItemName">缺陷名称</th>
                     <th class="moduleItemName textCenter">数量</th>
                     <th class="moduleScore" style="width: 80px;">缺陷占比</th>
                 </thead>
                 <tbody>
-    
+                    
                 </tbody>
             </table>
             <div class="pagination"></div>

+ 18 - 3
src/html/quexianDetailControl.html

@@ -25,21 +25,36 @@
         <div class="grayLine"></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="filter">查询</span>
                 <span class="filterclear abnormalClear">重置</span>
             </div>
             <table>
                 <thead>
                     <th class="moduleName" style="width: 65px;">序号</th>
-                    <th class="moduleItemName">缺陷名称</th>
-                    <th class="moduleItemName textCenter">数量</th>
-                    <th class="moduleScore" style="width: 80px;">缺陷占比</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>
     

+ 64 - 0
src/html/quexianDetailControlHome.html

@@ -0,0 +1,64 @@
+<!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 quexianDetailControlHome">
+        <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="grayLine"></div>
+        <div class="main-body">
+            <div class="filterBox">
+                <span class="filterItem typeFilter deptListWrap">
+                    <span>科室名称:</span>
+                    <span class="selectDept selectDepts" 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">
+                    <span>缺陷名称:</span>
+                    <span class="">
+                        <input class="moduleItemInp" type="text" placeholder="请输入缺陷名称">
+                    </span>
+                </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">重置</span>
+            </div>
+            <table>
+                <thead>
+                    <th class="moduleName" style="width: 65px;">序号</th>
+                    <th class="moduleItemName">缺陷名称</th>
+                    <!-- <th class="moduleItemName desc" code="casesName">所属模块</th> -->
+                    <th class="moduleItemName textCenter">数量</th>
+                    <th class="moduleScore" style="width: 80px;">缺陷占比</th>
+                </thead>
+                <tbody>
+    
+                </tbody>
+            </table>
+            <div class="pagination"></div>
+        </div>
+    </div>
+</body>
+
+</html>

+ 53 - 0
src/html/quexianDetailHome.html

@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>缺陷详情</title>
+    
+</head>
+
+<body>
+    <div class="managerContainer quexianDetailHome">
+        <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="grayLine"></div>
+        <div class="main-body">
+            <div class="filterBox">
+                <span class="filterItem">
+                    <span>缺陷名称:</span>
+                    <span class="">
+                        <input class="moduleItemInp" type="text" placeholder="请输入缺陷名称">
+                    </span>
+                </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">重置</span>
+            </div>
+            <table>
+                <thead>
+                    <th class="moduleName" style="width: 65px;">序号</th>
+                    <th class="moduleItemName">缺陷名称</th>
+                    <th class="moduleItemName textCenter">数量</th>
+                    <th class="moduleScore" style="width: 80px;">缺陷占比</th>
+                </thead>
+                <tbody>
+    
+                </tbody>
+            </table>
+            <div class="pagination"></div>
+        </div>
+    </div>
+</body>
+
+</html>

+ 2 - 2
src/html/tiaomu.html

@@ -26,7 +26,7 @@
         <div class="main-body">
             <div class="filterBox">
                 <span class="filterItem">
-                    <span>条目名称:</span>
+                    <span>缺陷名称:</span>
                     <span class="">
                         <input class="moduleItemInp" type="text" placeholder="请输入条目名称">
                     </span>
@@ -44,7 +44,7 @@
             <table>
                 <thead>
                     <th class="moduleName" style="width: 65px;">序号</th>
-                    <th class="moduleItemName">条目名称</th>
+                    <th class="moduleItemName">缺陷名称</th>
                     <th class="moduleItemName">数量</th>
                     <th class="moduleScore" style="width: 80px;">缺陷占比</th>
                 </thead>

+ 2 - 2
src/html/tiaomuControl.html

@@ -26,7 +26,7 @@
         <div class="main-body">
             <div class="filterBox">
                 <span class="filterItem">
-                    <span>条目名称:</span>
+                    <span>缺陷名称:</span>
                     <span class="">
                         <input class="moduleItemInp" type="text" placeholder="请输入条目名称">
                     </span>
@@ -44,7 +44,7 @@
             <table>
                 <thead>
                     <th class="moduleName" style="width: 65px;">序号</th>
-                    <th class="moduleItemName">条目名称</th>
+                    <th class="moduleItemName">缺陷名称</th>
                     <th class="moduleItemName">数量</th>
                     <th class="moduleScore" style="width: 80px;">缺陷占比</th>
                 </thead>

BIN
src/images/arrow_down22.png


src/images/下收起_深色背景@2x.png → src/images/arrow_up11.png


BIN
src/images/arrow_up22.png


BIN
src/images/empty.png


BIN
src/images/empty1.png


BIN
src/images/emptyHome.png


BIN
src/images/neck.png


+ 149 - 38
src/js/abnormal.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/abnormal.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie} = require('./utils.js')
+const {post,getCookie,emptyBox} = require('./utils.js')
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./../resource/jquery-ui/jquery-ui.min.css');
 const iconCheck= require("./../images/icon_check.png")
@@ -20,9 +20,6 @@ $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,statisticsType=2,
   nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
   data_desc=[],data_asc=[];
-$(".abnormalClear").click(function(){
-    window.location.reload()
-})
 $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
 $('.iconCalen').on("mouseenter", function(e){
     $(this).attr("src", iconCalenBlue)
@@ -60,6 +57,21 @@ function dateChange(){
         getTabData(1)
     })
 }
+$(".abnormalClear").click(function(){
+    behospitalCode = behospitalCodeTemp=""
+    deptId = deptIdTemp = ""
+    level = levelTemp = ""
+    $(".patientNumInp").val("")
+    $(".selectDept").html("全部").attr({
+        "data-id":"",
+        "title":"全部"
+    }).append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    $(".selectLevel").html("全部").attr({
+        "data-id":"",
+        "title":"全部"
+    }).append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    getTabData(1)
+})
 //判断有无某一权限
   function hasData(data){
     let trdObj = JSON.parse(getCookie("trdObj"))
@@ -123,19 +135,37 @@ function renderTab(data,hisId,activePage){
                 <td >${item.typeName || "-"}</td>
                 <td>${item.description || "-"}</td>
                 <td>${item.statusName || "-"}</td>
-                <td>${item.remark || "-"}</td>
+                <td style="width: 200px;">${item.remark || "-"}</td>
                 <td  class="textCenter">
-                    <span data-index="${i}" data-type="1" class="patientNameSpan">修改</span>
-
+                    <span data-index="${i}" style="opacity:${item.type==1&&item.description==''?'0.4':'1'};cursor:${item.type==1&&item.description==''?'no-drop':'pointer'};" data-type="1" data-des="${item.description}" data-mol="${item.type}" class="patientNameSpan">修改</span>
                     <span data-index="${i}" data-type="2" class="patientNameSpan patientNameSpans">删除</span>
                 </td>
             </tr>
         `
     }
-    $('tbody').html(str?str:'<tr><td colspan="17" style="text-align: center;color: #aaa">暂无数据~</td></tr>')
+    $('tbody').html(str?str:emptyBox())
     bindScoreDetail(hisId)
 }
-
+function getQcAnnormalMode(item,type,mol,des){
+    console.log(type)
+    post(api.getQcAnnormalMode,{'description':des}).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data;
+            let tmpName=data.modeMame||'暂无'
+            let tmpid=data.modeId||''
+            let str = '',stic=`<li data-id="" title="" class="ellipsis">暂无</li>`;
+            for(let i = 0;i < data.qcModeDatas.length;i++){
+                let tmp = data.qcModeDatas[i]
+                str += `<li data-id="${tmp.id}" title="${tmp.name}" class="ellipsis">${tmp.name}</li>`
+            }
+            midifyMsgBox(item,type,mol,des,stic+str,tmpName,tmpid)
+        }else{
+            console.log(res)
+        }
+    }).catch((err) =>{
+        console.log(err,11111)
+    })
+}
 function scoreDetail(id,age,hid,code){
     window.open(`./qcScore.html?id=${id}&age=${age}&hid=${hid}&code=${code}`)
 }
@@ -143,41 +173,82 @@ function bindScoreDetail(hisId){
     $('.patientNameSpan').on('click',function(e){
         const index = $(this).attr("data-index")
         const type = $(this).attr("data-type")
+        const mol = $(this).attr("data-mol")
+        const des = $(this).attr("data-des")||''
         const item = tabList[index]
-        midifyMsgBox(item,type)
+        console.log(item.type,item.description)
+        if(type==1&&item.type==1&&item.description==''){
+            return
+        }
+        if(mol&&mol == 1&&des){
+            getQcAnnormalMode(item,type,mol,des)
+        }else{
+            midifyMsgBox(item,type,mol,des)
+        }
     })
 }
 
-  
-function midifyMsgBox(item,type){
+function midifyMsgBox(item,type,mol,des,str,name,id){
     const itemCopy = JSON.parse(JSON.stringify(item))
     let msgBox = ''
-    if(type == 1){
-        msgBox = `<div class="midifyMsgBox">
-            <div class="mask"></div>
-            <div class="midifyMsgContent abnormal">
-                <p class="midifyMsgTitle">修改 <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></p>
-                <div class="itemMsgInfoBox">
-                    <span class="itemMsgLab abnormalLeft">状态:</span> 
-                    <span class="abnormalAll" data-status="${itemCopy.status}">${itemCopy.status == 0?"未处理":"已处理"}<img class="arrow" src=${iconDown} alt="下拉"></span>
-                    <ul class="abnormalStatusLis">
-                        <li data-status="0">未处理</li>
-                        <li data-status="1">已处理</li>
-                    </ul>
+    if(type == 1){//修改(数据模块/其他)
+        if(mol&&mol==1){
+            msgBox = `<div class="midifyMsgBox">
+                <div class="mask"></div>
+                <div class="midifyMsgContent abnormal remidifyMsgContent clearfix">
+                    <p class="midifyMsgTitle">修改 <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></p>
+                    <div class="itemMsgInfoBox disL">
+                        <span class="itemMsgLab abnormalLeft">文书名称:</span> 
+                        <span class="abnormalAlls">${des}</span>
+                    </div>
+                    <img class="fl neck" src="${require('../images/neck.png')}">
+                    <div class="itemMsgInfoBox disR">
+                        <span class="itemMsgLab abnormalLeft">数据模块:</span> 
+                        <span class="abnormalAll" data-id="${id}" title="${name}">${name}<img class="arrow" src=${iconDown} alt="下拉"></span>
+                        <ul class="abnormalStatusLis">
+                            ${str}
+                        </ul>
+                    </div>
+                    <div style="clear:both"></div>
+                    <div class="itemMsgInfoBox disT">
+                        <span class="itemMsgLab abnormalLeft abnormalMark abnormalMarkL">备注:</span> 
+                        <div class="itemInfoRight">
+                            <textarea class="abnormalTxt abnormalTxtS" placeholder="请输入内容" >${itemCopy.remark}</textarea>
+                        </div>
+                    </div>
+                    <div  class="itemMsgInfoTips">支持≥0的数字输入,最多保留小数点后1位~</div>
+                    <div class="midifyMsgBtn abnormalBtn">
+                        <span class="midifyEdit">保存</span>
+                    </div>
                 </div>
-                <div class="itemMsgInfoBox">
-                    <span class="itemMsgLab abnormalLeft abnormalMark">备注:</span> 
-                    <span class="itemInfoRight"> 
-                        <textarea class="abnormalTxt" placeholder="请输入内容" >${itemCopy.remark}</textarea>
-                    </span>
-                </div>
-                <div  class="itemMsgInfoTips">支持≥0的数字输入,最多保留小数点后1位~</div>
-                <div class="midifyMsgBtn abnormalBtn">
-                    <span class="midifyEdit">保存</span>
+            </div>`
+        }else{
+            msgBox = `<div class="midifyMsgBox">
+                <div class="mask"></div>
+                <div class="midifyMsgContent abnormal">
+                    <p class="midifyMsgTitle">修改 <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></p>
+                    <div class="itemMsgInfoBox">
+                        <span class="itemMsgLab abnormalLeft">状态:</span> 
+                        <span class="abnormalAll" data-status="${itemCopy.status}">${itemCopy.status == 0?"未处理":"已处理"}<img class="arrow" src=${iconDown} alt="下拉"></span>
+                        <ul class="abnormalStatusLis">
+                            <li data-status="0">未处理</li>
+                            <li data-status="1">已处理</li>
+                        </ul>
+                    </div>
+                    <div class="itemMsgInfoBox">
+                        <span class="itemMsgLab abnormalLeft abnormalMark">备注:</span> 
+                        <span class="itemInfoRight"> 
+                            <textarea class="abnormalTxt" placeholder="请输入内容" >${itemCopy.remark}</textarea>
+                        </span>
+                    </div>
+                    <div  class="itemMsgInfoTips">支持≥0的数字输入,最多保留小数点后1位~</div>
+                    <div class="midifyMsgBtn abnormalBtn">
+                        <span class="midifyEdit">保存</span>
+                    </div>
                 </div>
-            </div>
-        </div>`
-    }else{
+            </div>`
+        }
+    }else{//删除
         msgBox = `<div class="midifyMsgBox">
             <div class="mask"></div>
             <div class="midifyMsgContent midifyMsgContentDel">
@@ -201,8 +272,14 @@ function midifyMsgBox(item,type){
     })
     $(".abnormalStatusLis li", parent.document).on("click",function(){
         let status = $(this).attr("data-status")
+        let id = $(this).attr("data-id")
+        let title = $(this).attr("title")
         let str = $(this).html()
-        $(".abnormalAll", parent.document).attr("data-status",status).html(str+`<img class="arrow" src=${iconDown} alt="下拉"></img>`)
+        $(".abnormalAll", parent.document).attr({
+            "data-status":status,
+            "data-id":id,
+            "title":title
+        }).html(str+`<img class="arrow" src=${iconDown} alt="下拉"></img>`)
         $(".abnormalStatusLis", parent.document).slideToggle()
     })
     $("#mainBox .midifyMsgBox .iconClose", parent.document).on("click", function(e){
@@ -216,7 +293,11 @@ function midifyMsgBox(item,type){
        itemCopy.score = val
     })
     $("#mainBox .midifyMsgBox .midifyEdit", parent.document).on("click", function(e){
-        saveModifyOne(itemCopy)
+        if(itemCopy.type==1){
+            saveModifyTwo(itemCopy,des)
+        }else{
+            saveModifyOne(itemCopy)
+        }
     })
 }
 //保存修改
@@ -259,6 +340,36 @@ function saveModifyOne(itemCopy){
     
     })
 }
+//保存修改,数据模块
+function saveModifyTwo(itemCopy,des){
+    let txt = $(".abnormalTxt", parent.document).val()
+    let id = $(".abnormalAll", parent.document).attr("data-id")
+    let name = $(".abnormalAll", parent.document).attr("title")
+    let param = {
+        "hospitalId": getCookie("hospitalid"),
+        "hospitalModelName": des,
+        "qcAbnormalName": {
+          "description": des,
+          "remark": txt,
+          "status": 1,
+          "id":itemCopy.id
+        },
+        "standModelId": id||'',
+        "standModelName": name?(name=="暂无"?'':name):''
+      }
+    post(api.saveAndupdataModel,param).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data;
+            getTabData(1)
+            $("#mainBox .midifyMsgBox", parent.document).remove()
+            $.alerModal({"message":'修改成功',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
 //选择病历等级
 $('.selectLevel').on("click", function(e){
     e.stopPropagation()

+ 16 - 5
src/js/api.js

@@ -1,4 +1,3 @@
-
 const api = {
     getMenu:'/sys/user/getUserOrgMenu',     //获取菜单
     midifyPassword:'/sys/user/midifyPassword',     //修改密码
@@ -6,8 +5,8 @@ const api = {
     delScore:'/qc/behospitalInfo/delCase' ,//删除评分项
     editScore:'/qc/behospitalInfo/updCase' ,//修改评分
     addScore:'/qc/behospitalInfo/addCase' ,//添加评分项
+    findQcCasesEntry:"/qc/casesEntryHospital/findQcCasesEntry",//条目下拉列表
     getRecordDetail:'/qc/behospitalInfo/getByBehospitalCode', //获取病例明细
-    getInfoModule:'/qc/module/getById',
     getModuleById:'/qc/module/getModuleMap',
     getQcCases:'/qc/cases/getQcCases',
     getQcCasesAll:'/qc/casesEntryHospital/getQcCasesAll',
@@ -25,6 +24,7 @@ const api = {
     getAverageDayNum:'/console/getAverageDayNum',//平均住院天数
     getAverageFee:'/console/getAverageFee',//平均住院费用
     getAverageScore:'/console/getAverageScore',//各科室质控平均分
+    getAverageScoreByDeptClass:'/console/getAverageScoreByDeptClass',//各科室质控平均分
     leaveHosCount:'/console/leaveHosCount',//出院人数统计
     mrCount:'/console/mrCount',//质控病历统计
     entryCountGroupByCase:'/console/entryCountGroupByCase',//各模块缺陷占比排行
@@ -48,9 +48,11 @@ const api = {
     saveRoleMenu:'/sys/role/saveRoleMenu',//修改角色菜单权限数据
     entryCountGroupByEntryAndDept:'/consoleByDept/entryCountGroupByEntryAndDept',//条目缺陷占比
     entryCountGroupByCaseAndDept:'/consoleByDept/entryCountGroupByCaseAndDept',//各模块缺陷占比排行
-    entryCountGroupByEntryAndDeptPage:'/consoleByDept/entryCountGroupByEntryAndDeptPage',//条目明细(科室)
     entryCountGroupByCaseAndDeptPage:'/consoleByDept/entryCountGroupByCaseAndDeptPage',//模块缺陷占比明细(科室)
+    entryCountGroupByEntryAndDeptPage:'/consoleByDept/entryCountGroupByEntryAndDeptPage',//条目明细(科室)
+    entryGroupByEntryAndDeptInnerPage:'/consoleByDept/entryGroupByEntryAndDeptInnerPage',//条目明细(科室)
     entryCountGroupByEntryPage:'/console/entryCountGroupByEntryPage',//条目明细
+    entryGroupByEntryInnerPage:'/console/entryGroupByEntryInnerPage',//条目明细
     entryCountGroupByCasePage:'/console/entryCountGroupByCasePage',//模块缺陷占比明细
     getAverageDayNumPage:'/console/getAverageDayNumPage',//住院天数详情
     getAverageFeePage:'/console/getAverageFeePage',//花费详情
@@ -58,14 +60,23 @@ const api = {
     getQcAnnormal:'/qc/abnormal/getQcAnnormal',//异常数据查询
     saveQcAnnormal:'/qc/abnormal/saveQcAnnormal',//异常数据修改
     resultStatisticsByDeptPage:'/console/resultStatisticsByDeptPage',//各科室缺陷占比排行(分页)
-    levelPercentGroupByDeptPage:'/console/levelPercentGroupByDeptPage',//甲级科室缺陷占比排行(分页)台州
     levelStatistics:'/console/levelStatistics',//科室缺陷占比排行(组合全局)
+    levelStatisticsByDeptClass:'/console/levelStatisticsByDeptClass',//各科室缺陷占比排行(分页)台州
+    getAverageScoreByDeptPage:'/console/getAverageScoreByDeptPage',//各科室缺陷占比排行(分页)
+    levelPercentGroupByDeptPage:'/console/levelPercentGroupByDeptPage',//甲级科室缺陷占比排行(分页)台州
     homePageLevelStatistics:'/console/homePageLevelStatistics',//病案首页合格率占比
     homePageLevelLimit:'/console/homePageLevelLimit',//病案首页合格率占比
     homePageLevelByDeptLimit:'/consoleByDept/homePageLevelStatisticsByDept',//病案首页合格率占比keshi详情
     homePageLevelStatisticsByDept:'/consoleByDept/homePageLevelByDeptLimit',//病案首页合格率占比(科室)-内页
     levelStatisticsByDept:'/consoleByDept/levelStatisticsByDept',//科室缺陷占比排行
-    resultStatisticsByDeptAndDoctorPage:'/consoleByDept/resultStatisticsByDeptAndDoctorPage'//缺陷明细-科室(分页)-内页
+    resultStatisticsByDeptAndDoctorPage:'/consoleByDept/resultStatisticsByDeptAndDoctorPage',//缺陷明细-科室(分页)-内页
+    qcType:'/qc/qcType/page',//质控类型(分页列表)
+    getEntryByHospital:'/qc/qcType/getEntryByHospital',//质控类型新增条目分组
+    saveOrUpdate:'/qc/qcType/saveOrUpdate',//质控类型新增更新修改
+    typeDelete:'/qc/qcType/delete',//质控类型删除
+    typeGetById:'/qc/qcType/getById',//根据id返回
+    getQcAnnormalMode:'/qc/abnormal/getQcAnnormalMode',//异常修改
+    saveAndupdataModel:'/qc/modelHospital/saveAndupdataModel',//异常保存
 }
 module.exports = {
     api

+ 615 - 0
src/js/assertType.js

@@ -0,0 +1,615 @@
+const $ = require('jquery');
+require("../css/assertType.less");
+require('./modal.js');
+const {api} = require('./api.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
+require('./../resource/jquery-ui/jquery-ui.min.js');
+require('./../resource/jquery-ui/jquery-ui.min.css');
+const iconCheck= require("./../images/icon_check.png")
+const iconUnCheck = require("./../images/icon_unchecked.png")
+const  iconCalenBlue= require("./../images/icon_calen_blue.png")
+const  iconCalenGrey= require("./../images/icon_calen_grey.png")
+const iconDown= require("./../images/arrow_down.png")
+const iconUp = require("./../images/arrow_up.png")
+const loadingImg = require("./../images/loading.gif")
+const arrowLeft= require("./../images/arrow_left.png")
+const arrowRight = require("./../images/arrow_right.png")
+
+$(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,statisticsType=2,
+  nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
+  data_desc=[],data_asc=[];
+let deptList = JSON.parse(getCookie("deptList"))||[]
+$(function(){
+    let srcUrl = $("#contentIframe",parent.document).attr("src")
+    statisticsType = getUrlArgObjectNew("dateType",srcUrl)||2
+    deptId = deptIdTemp = getUrlArgObjectNew("deptName",srcUrl)||""
+    if(statisticsType == 1){
+        $(".monthYear .mon").css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+    }else{
+        $(".monthYear .year").css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+    }
+    if(deptId){
+        $(".selectDept").html(deptId).attr({
+            "data-id":deptId,
+            "title":deptId
+        }).append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        getDeptList()
+    }else{
+        getDeptList(1)
+    }
+    getTabData(1)
+})
+
+$(".abnormalClear").click(function(){
+    behospitalCode = behospitalCodeTemp=""
+    $(".patientNumInp").val("")
+    $(".selectDept").html(deptId).attr({
+        "data-id":deptId,
+        "title":deptId
+    })
+    getTabData(1)
+})
+$(".partTitle a").click(function(){
+    //初始菜单选中        
+    focusMenuItem('YH-KZTKS')
+    $(".container",parent.document).addClass("console-cont");
+})
+
+function focusMenuItem(code){
+    const ele = $(parent.document).find(".menu .page[code="+code+"]");
+    const parEle = ele.parents(".list-1");
+    if(!parEle.is(".list-1-show")){
+      parEle.click();
+    }
+    //console.log($(parent.document).find(".menu .page[code='YH-ZKK-GMKQXZB_XQ']"))
+    ele.click();
+  }
+$('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
+$('.iconCalen').on("mouseenter", function(e){
+    $(this).attr("src", iconCalenBlue)
+})
+$('.iconCalen').on("mouseleave", function(e){
+    $(this).attr("src", iconCalenGrey)
+})
+$('.iconCalen').on("click", function(e){
+    $(this).parent().find("input").focus()
+})
+$('.recordScoreBtn').css("opacity",hasData('FUNC000017')?'1':'0.5')
+
+//科室处理
+function getDeptList(flg){
+    let str = ``
+    if(deptList.length<=0)return
+    if(flg){
+        $(".partDetail .selectDept ").attr("data-id",deptList[0].deptName).find("i").html(deptList[0].deptName)
+        deptId = deptIdTemp = deptList[0].deptName
+    }
+    for(let i = 0;i < deptList.length;i++){
+        let tmp = deptList[i]
+        str += `<li class="deptItem ellipsis" title="${tmp.deptName}" data-id="${tmp.deptName}" data-name="${tmp.deptName}">${tmp.deptName}</li>`
+    }
+    $(".partDetail .filterDropList").html(str)
+    getTabData(1)
+}
+
+dateChange()
+//所有数据切换日期筛选
+function dateChange(){
+    $(".monthYear .mon").click(function(){
+        $(this).css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","block")
+        $(".dayDetail .dayFilter").css("display","none")
+        statisticsType = 1
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        $(".dayDetail .deptListWrap").css("display","none")
+        $(".dayDetail .dayFilter").css("display","block")
+        statisticsType = 2
+        getTabData(1)
+    })
+}
+//判断有无某一权限
+  function hasData(data){
+    let trdObj = JSON.parse(getCookie("trdObj"))
+    let lis = trdObj['YH-BLZK-ZKPF']
+    if(!lis){
+      return false
+    }
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+}
+function getTabData(activePage){
+    const param = {
+        current:activePage,
+        name: behospitalCode, //条目名
+        size: 15
+    }
+    post(api.qcType,param).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data;
+            tabList = data.records||[];
+            const totalPage = data.pages;
+            const totalNum = data.total;
+            renderTab(tabList,data.hospitalId,activePage);
+            
+            renderPagination(totalPage,Number(activePage),totalNum)
+            if(totalPage > 1){
+                renderPagination(totalPage,Number(activePage),totalNum)
+            } else{
+                $('.pagination').html("")
+            }
+        }else{
+            $.alerModal({"message":res.data.msg,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        }
+    }).catch((e) =>{
+    
+    })
+}
+
+
+$(".filter").on("click", function(e){
+    name = nameTemp
+    behospitalCode = behospitalCodeTemp
+    level = levelTemp
+    deptId = deptIdTemp
+    getTabData(1)
+})
+function renderTab(data,hisId,activePage){
+    let str = ``
+    for(let i = 0; i < data.length; i++){
+        const item = data[i]
+        str += `
+            <tr  data-index=${i}>
+                <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
+                <td >${item.id || "-"}</td>
+                <td >${item.name || "-"}</td>
+                <td class="assertTypeActive clearfix">
+                    <span class="assertTypeEdit" data-index="${i}" data-type="1" data-id="${item.id}">修改</span>
+                    <span class="assertTypeCopy" data-index="${i}" data-type="2" data-id="${item.id}">复制</span>
+                    <span class="assertTypeDel" data-index="${i}" data-type="3" data-id="${item.id}">删除</span> 
+                </td>
+            </tr>
+        `
+    }
+    $('tbody').html(str?str:emptyBox())
+    bindScoreDetail(hisId)
+    $(".goHomeDetail").click(function(){
+        let docName = $(this).attr("data-doc")
+        $(parent.document).find("#contentIframe").attr("src","quexianDetail.html?from=1&casesId=243&deptName="+deptIdTemp+"&docName="+docName+"&shijian="+statisticsType)
+    })
+}
+
+function scoreDetail(id,age,hid,code){
+    window.open(`./qcScore.html?id=${id}&age=${age}&hid=${hid}&code=${code}`)
+}
+function bindScoreDetail(hisId){
+    //删除
+    $('.assertTypeDel').on('click',function(e){
+        const index = $(this).attr("data-index")
+        const id = $(this).attr("data-id")
+        const type = $(this).attr("data-type")
+        const item = tabList[index]
+        midifyMsgBox(item,type,id)
+    })
+    //修改
+    $('.assertTypeEdit').on('click',function(e){
+        const index = $(this).attr("data-index")
+        const id = $(this).attr("data-id")
+        const type = $(this).attr("data-type")
+        $(parent.document).find("#contentIframe").attr("src",`assertTypeDetail.html?id=${id}&type="edit"`)
+        console.log('修改')
+    })
+    //复制
+    $('.assertTypeCopy').on('click',function(e){
+        const index = $(this).attr("data-index")
+        const id = $(this).attr("data-id")
+        const type = $(this).attr("data-type")
+        $(parent.document).find("#contentIframe").attr("src",`assertTypeDetail.html?id=${id}&type="copy"`)
+    })
+}
+
+  
+function midifyMsgBox(item,type){
+    const itemCopy = JSON.parse(JSON.stringify(item))
+    let msgBox = ''
+    if(type == 1){
+        msgBox = `<div class="midifyMsgBox">
+            <div class="mask"></div>
+            <div class="midifyMsgContent abnormal">
+                <p class="midifyMsgTitle">修改 <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></p>
+                <div class="itemMsgInfoBox">
+                    <span class="itemMsgLab abnormalLeft">状态:</span> 
+                    <span class="abnormalAll" data-status="${itemCopy.status}">${itemCopy.status == 0?"未处理":"已处理"}</span>
+                    <ul class="abnormalStatusLis">
+                        <li data-status="0">未处理</li>
+                        <li data-status="1">已处理</li>
+                    </ul>
+                </div>
+                <div class="itemMsgInfoBox">
+                    <span class="itemMsgLab abnormalLeft abnormalMark">备注:</span> 
+                    <span class="itemInfoRight"> 
+                        <textarea class="abnormalTxt" placeholder="请输入内容" >${itemCopy.remark}</textarea>
+                    </span>
+                </div>
+                <div  class="itemMsgInfoTips">支持≥0的数字输入,最多保留小数点后1位~</div>
+                <div class="midifyMsgBtn abnormalBtn">
+                    <span class="midifyEdit">保存</span>
+                </div>
+            </div>
+        </div>`
+    }else if(type==3){
+        msgBox = `<div class="midifyMsgBox">
+            <div class="mask"></div>
+            <div class="midifyMsgContent midifyMsgContentDel">
+                <p class="midifyMsgTitle">删除提示 <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></p>
+                <p class="delTips">确认要删除该条质控类型?</p>
+                <div class="midifyMsgBtn midifyMsgBtnDel">
+                    <span class="midifyEdit midifyEditDel">确定</span>
+                </div>
+            </div>
+        </div>`
+    }
+    $("#mainBox", parent.document).append(msgBox)
+    $(".midifyEditDel", parent.document).on("click",function(){
+        let ids = []
+        ids.push(itemCopy.id)
+        console.log(ids)
+        delModifyOne(ids)
+    })
+    $(".midifyEditQuit", parent.document).on("click",function(){
+        $("#mainBox .midifyMsgBox", parent.document).remove()
+    })
+    $(".abnormalAll", parent.document).on("click",function(){
+        $(".abnormalStatusLis", parent.document).slideToggle()
+    })
+    $(".abnormalStatusLis li", parent.document).on("click",function(){
+        let status = $(this).attr("data-status")
+        let str = $(this).html()
+        $(".abnormalAll", parent.document).attr("data-status",status).html(str)
+        $(".abnormalStatusLis", parent.document).slideToggle()
+    })
+    $("#mainBox .midifyMsgBox .iconClose", parent.document).on("click", function(e){
+        $("#mainBox .midifyMsgBox", parent.document).remove()
+    })
+    $("#mainBox .midifyMsgBox .itemScore", parent.document).on("keypress", function(event){
+        return (/[\d\.]/.test(String.fromCharCode(event.keyCode)))
+     })
+    $("#mainBox .midifyMsgBox .itemScore", parent.document).on("input", function(e){
+       const val = $(this).val() 
+       itemCopy.score = val
+    })
+    $("#mainBox .midifyMsgBox .midifyEdit", parent.document).on("click", function(e){
+        saveModifyOne(itemCopy)
+    })
+}
+//保存修改
+function delModifyOne(ids){
+    let param = {
+        "ids": ids
+    }
+    post(api.typeDelete,param).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data;
+            getTabData(1)
+            $("#mainBox .midifyMsgBox", parent.document).remove()
+            $.alerModal({"message":'删除成功',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//保存修改
+function saveModifyOne(itemCopy){
+    let txt = $(".abnormalTxt", parent.document).val()
+    let status = $(".abnormalAll", parent.document).attr("data-status")
+    let param = {
+        "id": itemCopy.id,
+        "remark": txt,
+        "status": status
+    }
+    post(api.saveQcAnnormal,param).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data;
+            getTabData(1)
+            $("#mainBox .midifyMsgBox", parent.document).remove()
+            $.alerModal({"message":'修改成功',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//选择病历等级
+$('.selectLevel').on("click", function(e){
+    e.stopPropagation()
+    $(".deptList ").css("display", "none")
+    $(".selectDept .arrow").attr("src",iconDown)
+    const showList =  $(".levelList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".levelList ").css("display","block")
+        $(".selectLevel .arrow").attr("src",iconUp)
+    }else{
+        $(".levelList ").css("display", "none")
+        $(".selectLevel .arrow").attr("src",iconDown)
+    }
+})
+
+bindLeveldSelect()
+//是否启用选择
+function bindLeveldSelect(){
+    $('.levelItem').on("click",function(){
+        const levelItemName = $(this).attr("data-name")
+        const levelItemItemId = $(this).attr("data-id")
+        levelTemp =levelItemItemId
+        $('.selectLevel').html(levelItemName)
+        $(".levelList").css("display", "none")
+        $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    })
+}
+
+//全选绑定
+
+$('.selectDept').on("click", function(e){
+    e.stopPropagation()
+    $(".levelList ").css("display","none")
+    $(".selectLevel .arrow").attr("src",iconDown)
+    const showList =  $(".deptList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".deptList ").css("display","block")
+        $(".selectDept .arrow").attr("src",iconUp)
+    }else{
+        $(".deptList ").css("display", "none")
+        $(".selectDept .arrow").attr("src",iconDown)
+    }
+})
+
+
+bindDeptSelect()
+//科室选择
+function bindDeptSelect(){
+    $('.deptItem').on("click",function(){
+        const deptItemName = $(this).attr("data-name")
+        const deptItemId = $(this).attr("data-id")
+        deptIdTemp =deptItemId
+        if(deptItemName.length > 10){
+            $('.selectDept').html(deptItemName.substring(0,8)+'...')
+        }else{
+            $('.selectDept').html(deptItemName)
+        }
+        $('.selectDept ').attr({'title':deptItemName,'data-id':deptItemName})
+        $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".deptList").css("display", "none")
+    })
+}
+function loading(){
+    const str = `
+    <div class="loadingBox">
+            <div class="mask"></div>
+            <img class="loadingImg" src=${loadingImg}  alt="loading" />
+        </div>
+    `
+    $("#mainBox", parent.document).append(str)
+}
+function hideLoading(){
+    $("#mainBox .loadingBox", parent.document).remove()
+}
+$('.recordScoreBtn').on("click",function(e){
+    if(!hasData('FUNC000017')){
+        return
+    }
+    let scoreList = []
+    for(let i = 0; i <tabList.length; i++){
+        if(tabList[i].hasSelect){
+            scoreList.push(tabList[i].behospitalCode)
+        }
+    }
+    if(scoreList.length === 0){
+        $.alerModal({"message":'请选择要评分的项!',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        return
+    } else{
+        loading()
+        for(let j = 0; j < scoreList.length; j++){
+            recordScore(scoreList[j],scoreList.length)
+        }
+    }
+})
+$("th[code]").on("click",function(e){
+    const code=$(this).attr("code");
+    if(data_asc[0]===code){
+      data_desc=[code];
+      data_asc=[];
+      $("th[code]").removeClass("asc desc");
+      $(this).addClass("desc");
+    }else{
+      data_desc=[];
+      data_asc=[code];
+      $("th[code]").removeClass("asc desc");
+      $(this).addClass("asc");
+    }
+    getTabData(1);
+});
+function recordScore(behospitalCode,totalNum){
+    const param = {
+        behospitalCode: behospitalCode
+    }
+    post(api.recordScore,param).then(res =>{
+        if(res.data.code == '0'){
+            scoreSum++
+            if(scoreSum === totalNum){
+                hideLoading()
+                scoreSum = 0
+                const activePage = $(".activePage").attr('data-page') || 1
+
+                getTabData(activePage)
+            }
+      
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+$(".patientNumInp").on("input", function(e){
+    const val = $(this).val().trim()
+    behospitalCodeTemp = val
+})
+$(".patientNameInp").on("input", function(e){
+    const val = $(this).val().trim()
+    nameTemp = val
+})
+$(".doctorInp").on("input", function(e){
+    const val = $(this).val().trim()
+    doctorNameTemp = val
+})
+$(".doctorNumInp").on("input", function(e){
+  const val = $(this).val().trim();
+    doctorNumTemp = val
+})
+$(function() {
+    $.datepicker.regional['zh-CN'] = {
+    clearText: '清除',
+    clearStatus: '清除已选e799bee5baa6e59b9ee7ad9431333361303131日期',
+    closeText: '关闭',
+    closeStatus: '不改变当前选择',
+    prevText: '<上月',
+    prevStatus: '显示上月',
+    prevBigText: '<<',
+    prevBigStatus: '显示上一年',
+    nextText: '下月>',
+    nextStatus: '显示下月',
+    nextBigText: '>>',
+    nextBigStatus: '显示下一年',
+    currentText: '今天',
+    currentStatus: '显示本月',
+    monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    yearNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    monthStatus: '选择月份',
+    yearStatus: '选择年份',
+    weekHeader: '周',
+    weekStatus: '年内周次',
+    dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
+    dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
+    dayNamesMin: ['日','一','二','三','四','五','六'],
+    dayStatus: '设置 DD 为一周起始',
+    dateStatus: '选择 m月 d日, DD',
+    dateFormat: 'yy-mm-dd',
+    firstDay: 1,
+    initStatus: '请选择日期',
+    isRTL: false};
+    $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
+
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    });
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    });
+});
+
+//分页渲染
+function renderPagination(totalPage,activePage,totalNum){
+    let str = `<span class="totalSum">共${totalPage}页/${totalNum}条数据</span><span class="prePage"><img class="arrowPage" src=${arrowLeft} /></span>`
+    if(totalPage <= 6){
+        for(let i = 1; i <= totalPage; i++){
+          
+            str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
+        }
+    }else{
+        if(activePage <= 3){ //选中页数小于4
+            for(let i = 1; i <= 4; i++){
+                str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
+            }
+            str += `<span class="more" >...</span>`
+        str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+
+        } else if(activePage > totalPage -3){
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-3)}" data-page=${totalPage -3}>${totalPage -3}</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-2)}" data-page=${totalPage -2}>${totalPage -2}</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-1)}" data-page=${totalPage -1}>${totalPage -1}</span>`
+            str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        } else {
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+(activePage -1)}" data-page=${activePage -1}>${activePage -1}</span>`
+            str += `<span class="pageNum ${'page'+activePage}" data-page=${activePage}>${activePage}</span>`
+            str += `<span class="pageNum ${'page'+(activePage +1)}" data-page=${activePage +1}>${activePage +1}</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        }
+       
+    }
+    str += `<span class="nextPage"><img class="arrowPage" src=${arrowRight} /></span>`
+    $('.pagination').html(str)
+    $('.page' + activePage).addClass('activePage')
+    $(".pageNum").on("click", function(e){
+        const activePageNow = Number($(this).attr('data-page'))
+        getTabData(activePageNow)
+        // renderPagination(totalPage,activePageNow,totalNum)
+    })
+    $(".prePage").on("click", function(e){
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if(activePageNow > 1){
+            activePageNow--
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    $(".nextPage").on("click", function(e){
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if(activePageNow < totalPage){
+            activePageNow++
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    
+}
+
+$(document).on("click", function(){
+    $(".levelList ").css("display", "none")
+    $(".deptList").css("display", "none")
+    $(".selectDept .arrow").attr("src",iconDown)
+})
+
+$((function($){
+})($));

+ 162 - 0
src/js/assertTypeDetail.js

@@ -0,0 +1,162 @@
+const $ = require('jquery');
+require("../css/assertTypeDetail.less");
+require('./modal.js');
+const {api} = require('./api.js')
+const {post,getCookie,getUrlArgObjectNew,getUrlArgObject} = require('./utils.js')
+const iconCheck= require("./../images/icon_check.png")
+const iconUnCheck = require("./../images/icon_unchecked.png")
+const arrowUp = require("./../images/arrow_up22.png")
+const arrowDown = require("./../images/arrow_down22.png")
+
+let dataCopy,paramType,paramId,submitMsg="新增成功"
+$(function(){
+    let srcUrl = $("#contentIframe",parent.document).attr("src")
+    paramType = getUrlArgObject("type")||""
+    paramId = getUrlArgObject("id")||""
+    getList(paramType)//获取条目列表
+
+})
+function setInpWidth(){
+    const winWidth = $(window).width()
+    $('.patientNumInp').css('width', winWidth-153-15 +'px')
+}
+setInpWidth()
+$(window).resize(function(){
+    setInpWidth()
+})
+function getList(type){
+    if(!type){
+        post(api.getEntryByHospital,{}).then(res =>{
+            let result = res.data
+            if(result.code == '0'){
+                const data = result.data;
+                renderData(data)
+                
+            }else{
+                
+            }
+        }).catch((e) =>{
+        
+        })
+    }else{
+        if(type =='"edit"'){
+            $('.partTitle p span').html('修改')
+            submitMsg="修改成功"
+        }else{
+            $('.partTitle p span').html('复制')
+            submitMsg="复制成功"
+        }
+        post(api.typeGetById,{id: paramId}).then(res =>{
+            let result = res.data
+            if(result.code == '0'){
+                const data = result.data;
+                const qcName = data.name
+                const tabData = data.entryMap
+                if(type =='"edit"'){
+                    $('.patientNumInp').val(qcName)
+                }
+                renderData(tabData)
+                
+            }else{
+                
+            }
+        }).catch((e) =>{
+        
+        })
+    }
+    
+}
+
+function renderData(data){
+    dataCopy = data
+    const dataKeys = Object.keys(dataCopy)
+    let str = ""
+    for(let i = 0; i < dataKeys.length; i++){
+        str += `<div class="caseEntryBlcok ${i===0 ? 'borderTop':''}"><div class="caseEntryName">${dataKeys[i]} <img class="arrow" src=${arrowDown}></div>`
+        if(dataCopy[dataKeys[i]].length > 0){
+            str += `<div class="caseEntryDetail"><div class="tabTitle"><span class="opera">操作</span><span class="qcItem">质控条目</span><span class="qcUsed">是否启用</span></div>`
+        }
+        for(let j = 0; j < dataCopy[dataKeys[i]].length; j++){
+            const dataItem = dataCopy[dataKeys[i]][j]
+            str += `<div class="tabInfo"><span  data-pIndex=${dataKeys[i]} data-index=${j} class="opera">${dataItem.sel == '1' ? `<img  class="iconCheck" src=${iconCheck} />`:`<img class="iconCheck" src=${iconUnCheck} />`}</span><span class="qcItem">${dataItem.name}</span><span class="qcUsed"><span class="usedRes">${dataItem.isUsed == '1' ? "是":"否"}</span></span></div>`
+        }
+        if(dataCopy[dataKeys[i]].length > 0){
+            str += `</div>`
+        }
+        str += `</div>`
+    }
+  
+    $('.listTypeAll').html(str)
+    bindBlockSlideToggle()
+    bindCheck()
+}
+function bindBlockSlideToggle(){
+ $('.caseEntryName').click(function(){
+     const display =  $(this).parent().find('.caseEntryDetail').css("display");
+     if(display === "none"){
+        $(this).find('img').attr('src', arrowUp)
+        $('.caseEntryDetail').slideUp()
+        $(this).parent().find('.caseEntryDetail').slideDown()
+     } else{
+        $(this).find('img').attr('src', arrowDown)
+        $('.caseEntryDetail').slideUp()
+     }
+    
+ })
+}
+
+function bindCheck(){
+    $('.iconCheck').click(function(){
+        const checked =  $(this).attr('src') == iconCheck;
+        const index = $(this).parent().attr('data-index')
+        const pIndex = $(this).parent().attr('data-pIndex')
+        if(checked){
+            dataCopy[pIndex][index].sel = 0
+            $(this).attr('src',iconUnCheck)
+        } else{
+            dataCopy[pIndex][index].sel = 1
+            $(this).attr('src',iconCheck)
+        }
+    })
+}
+
+$('.submit').click(function(){
+    const qcName = $('.patientNumInp').val().trim();
+    if(!qcName){
+        $.alerModal({"message":"质控类型不能为空",type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        return
+    }
+    let qcTypeCasesEntryVOList = []
+    const dataKeys = Object.keys(dataCopy)
+    for(let i = 0; i < dataKeys.length; i++){
+        for(let j = 0; j < dataCopy[dataKeys[i]].length; j++){
+            const dataItem = dataCopy[dataKeys[i]][j]
+            if(dataItem.sel == '1'){
+                qcTypeCasesEntryVOList.push({
+                    caseEntryId: dataItem.id
+                })
+            }
+        }
+      
+    }
+    const id = paramType == '"edit"' ? paramId:""
+    const param = {
+        id:id,
+        name: qcName,
+        qcTypeCasesEntryVOList
+    }
+   
+    post(api.saveOrUpdate,param).then(res =>{
+        let result = res.data
+        if(result.code == '0'){
+            $.alerModal({"message":submitMsg,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            setTimeout(function(){
+                $(parent.document).find("#contentIframe").attr("src","./assertType.html")
+            },1000)
+        }else{
+            $.alerModal({"message":res.data.msg,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        }
+    }).catch((e) =>{
+    
+    })
+})

+ 164 - 73
src/js/console.js

@@ -7,16 +7,18 @@ require("../images/arrow_down.png")
 // import 'zrender/lib/svg/svg';
 const {api} = require('./api.js')
 const echarts = require('echarts');
-const {post,setCookie,delCookie,getCookie,focusMenuItem} = require('../js/utils.js');
-let payMoney = [],dayLis = [],dateType = 2,slideType = 1,hospital=getCookie("hospital");
+const {post,setCookie,delCookie,getCookie,focusMenuItem,picEmptyData} = require('../js/utils.js');
+let payMoney = [],dayLis = [],dateType = 2,slideType = 1,hospital=getCookie("hospital"),deptType="内科",deptId="";
 $(function(){
     if(!hasData('YH-KZT')){
         $("body").html('')
     }
     if(hospital == "台州市立"){
         $(".part03 .partTitlePub .name").html('各科室甲级病例占比')
+        $(".innerOuter").css("display","block")
     }else{
         $(".part03 .partTitlePub .name").html('病案首页合格率')
+        $(".innerOuter").css("display","none")
     }
     $(".partTitle p span").html(hospital)
     setInterval(() => {
@@ -50,25 +52,57 @@ $(function(){
                 return
             }
             slideType = 1
-            $(".pubEchart .title").html("科室平均住院天数柱状图")
+            $(".pubEchart .title span").html("科室平均住院天数柱状图")
             barChart(dayLis,dateType)
-        }else{
+            $(this).parent().slideToggle().prev().find("span").html(str)
+        }else if(type == 2){
             if(!hasData('FUNC000046')){
                 return
             }
             slideType = 2
-            $(".pubEchart .title").html("科室平均住院花费柱状图")
+            $(".pubEchart .title span").html("科室平均住院花费柱状图")
             barChart(payMoney,dateType)
+            $(this).parent().slideToggle().prev().find("span").html(str)
+        }else if(type == 3){//科室平均分内科
+            if(!hasData('FUNC000091')){
+                return
+            }
+            deptType="内科"
+            getAverageScoreLis()
+            $(this).parent().slideToggle().prev().find("span").html(str+"系统")
+        }else if(type == 4){//科室平均分外科
+            if(!hasData('FUNC000091')){
+                return
+            }
+            deptType="外科"
+            getAverageScoreLis()
+            $(this).parent().slideToggle().prev().find("span").html(str+"系统")
         }
-        $(this).parent().slideToggle().prev().find("span").html(str)
+    })
+    $(".part02").on("mouseenter",".bingli li.sec",function(){
+      $(this).find(".explainNum").css("color","#00A1FF")
+    })
+    $(".part02").on("mouseleave",".bingli li.sec",function(){
+      $(this).find(".explainNum").css("color","#A5ADBF")
     })
     getDetails()
+    getAverageScoreLis()
 })
 function getDetails(){
-    $(".part02 .bingli,.part02 .bingliLis,.part03 .circle .title,.pubEchartB.paymoney .title").click(function(){
+    $(".pubEchartB.paymoney .title").click(function(){
+      focusMenuItem("YH-ZKK-GKSQXZB_XQ");
+      $(parent.document).find("#contentIframe").attr("src","./deptScoreDetailControl.html?from=1&dateType="+dateType+"&deptType="+deptType)
+    })
+    $(".part02 .bingliLis,.part03 .circle .title").click(function(){
       focusMenuItem("YH-ZKK-GKSQXZB_XQ");
       $(parent.document).find("#contentIframe").attr("src","./deptScoreDetailControl.html?from=1&dateType="+dateType)
     })
+    $(".part02").on("click",".bingli li.sec",function(){
+      focusMenuItem("YH-BLZK-ZKPF");
+      let dataC = $(this).attr("data-c")
+      let chengdu = dataC == 1?'甲':dataC==2?'乙':'丙'
+      $(parent.document).find("#contentIframe").attr("src","./qcList.html?from=1&dateType="+dateType+"&chengdu="+chengdu)
+    })
     $(".part03 .partTitlePub").click(function(){
         if(hospital=="台州市立"){
             focusMenuItem("YH-ZKK-GKSJJBLZB_XQ")
@@ -108,7 +142,7 @@ function hasData(data){
   }
 function resizeBox(){
     $(".partWrap").css({
-        height:$(window).height()-44+'px'
+        height:$(window).height()-43+'px'
     })
 }
 //所有数据切换日期筛选
@@ -125,6 +159,7 @@ function resizeBox(){
             })
             dateType = 1
             getBarData(1)
+            getAverageScoreLis()
         })
         $(".monthYear .year").click(function(){
             $(this).css({
@@ -137,6 +172,7 @@ function resizeBox(){
                 backgroundColor:'#203463'
             })
             dateType = 2
+            getAverageScoreLis()
             getBarData(2)
         })
     }
@@ -179,6 +215,32 @@ function initConsole(result){
     }
     $(".partAll").html(dom)
 }
+//平均分
+function getAverageScoreLis(){
+    let url = ''
+    if(hospital=="台州市立"&&hasData('FUNC000091')){
+        url = api.getAverageScoreByDeptClass
+    }else if(hospital=="长兴医院"&&hasData('FUNC000047')){
+        url = api.getAverageScore
+    }else{
+        return
+    }
+    post(url,{//各科室质控平均分
+        "type": dateType||1,//1月2年
+        "deptClass":deptType
+    }).then((res)=>{
+        let data = res.data;
+        if(data.code == 0){
+            let result1 = (hospital=="台州市立"?data.data:data.data['各科室质控平均分'])||[]
+            let dataX1=[],dataY1=[]
+            for(let i = 0;i < result1.length;i++){
+                dataX1.push(result1[i].name)
+                dataY1.push(result1[i].averageValue)
+            }
+            barChartPay(dataX1,dataY1)
+        }
+    })
+}
 //获取图表数据
 function getBarData(type){
     if(hasData('FUNC000045')){
@@ -213,22 +275,6 @@ function getBarData(type){
     }else{
         $(".toggleSlide2").css("opacity",0.5)
     }
-    if(hasData('FUNC000047')){
-        post(api.getAverageScore,{//各科室质控平均分
-            "type": type||1//1月2年
-        }).then((res)=>{
-            let data = res.data;
-            if(data.code == 0){
-                let result1 = data.data['各科室质控平均分']||[]
-                let dataX1=[],dataY1=[]
-                for(let i = 0;i < result1.length;i++){
-                    dataX1.push(result1[i].name)
-                    dataY1.push(result1[i].averageValue)
-                }
-                barChartPay(dataX1,dataY1)
-            }
-        })
-    }
     if(hasData('FUNC000048')&&hospital=="台州市立"){
         post(api.getLevelResultDept,{//各科室甲级占比
             "type": type||1//1月2年
@@ -281,42 +327,6 @@ function getBarData(type){
             let data = res.data
             if(data.code == 0){
                 let result3 = data.data['病历数统计']||[]
-                if(result3.length == 0){
-                    result3 = [
-                        {
-                            "id":null,
-                            "name":"累计质控病历数",
-                            "totleNum":0,
-                            "num":0,
-                            "percent":null,
-                            "percentStr":null
-                        },
-                        {
-                            "id":null,
-                            "name":"甲级病历",
-                            "totleNum":10,
-                            "num":0,
-                            "percent":0,
-                            "percentStr":"0.00%"
-                        },
-                        {
-                            "id":null,
-                            "name":"乙级病历",
-                            "totleNum":10,
-                            "num":0,
-                            "percent":0,
-                            "percentStr":"0.00%"
-                        },
-                        {
-                            "id":null,
-                            "name":"丙级病历",
-                            "totleNum":10,
-                            "num":0,
-                            "percent":0,
-                            "percentStr":"0.00%"
-                        }
-                    ]
-                }
                 setNumDetail(result3)
             }
         })
@@ -366,6 +376,14 @@ function getBarData(type){
 }
 //part01
 function personNum(data){
+    if(data['总人数']==0){
+        $(".chuyuan,.personNum").css("display","none")
+        picEmptyData(".chuyuanEmpty")
+        return
+    }else{
+        $(".chuyuanEmpty").css("display","none")
+        $(".chuyuan,.personNum").css("display","block")
+    }
     $(".personNum").html("总人数:"+data['总人数'])
     $(".died").html(data['死亡人数'])
     $(".newborn").html(data['新生儿人数'])
@@ -374,11 +392,20 @@ function personNum(data){
 //part02
 function setNumDetail(data){
     // console.log(data,2222222222)
-    if(data.length == 0)return
+    if(data.length == 0){
+        $(".pingfendengji").css("display","block")
+        $(".bldjs").css("display","none")
+        picEmptyData(".pingfendengjiEmpty")
+        return
+    }else{
+        $(".bldjs").css("display","block")
+        $(".pingfendengji").css("display","none")
+
+    }
     let str = ''
     for(let i = 0;i < data.length;i++){
         str += `
-            <li class="${i==0?'fst':''}">
+            <li class="${i==0?'fst':'sec'}" data-c="${i}">
             <p class="numShow">${data[i].num}</p>
             <p class="explainNum">${data[i].name}</p>
             </li>
@@ -465,6 +492,14 @@ function part02pan(data,dom){
 }
 //折现图
 function lineChart(dataX,dataY){
+    if(dataX.length==0&&dataY.length==0){
+        $(".barChartLine").css("display","none")
+        picEmptyData(".barChartLineEmpty")
+        return
+    }else{
+        $(".barChartLine").css("display","block")
+        $(".barChartLineEmpty").css("display","none")
+    }
     var myCharts = echarts.init(document.getElementById('lineChart'));
     $(window).resize(function(){
         myCharts.resize()
@@ -570,8 +605,15 @@ function lineChart(dataX,dataY){
 }
 
 function lineChartSpecial(dataX,dataY){
+    if(dataX.length==0&&dataY.length==0){
+        $(".barChartLine").css("display","none")
+        picEmptyData(".barChartLineEmpty")
+        return
+    }else{
+        $(".barChartLine").css("display","block")
+        $(".barChartLineEmpty").css("display","none")
+    }
     var myCharts = echarts.init(document.getElementById('lineChart'));
-    var lengthNum = dataX.length;
     $(window).resize(function(){
         myCharts.resize()
     });
@@ -582,6 +624,10 @@ function lineChartSpecial(dataX,dataY){
             position: 'right',
             axisPointer: {            // 坐标轴指示器,坐标轴触发有效
                 type: 'line'        // 默认为直线,可选为:'line' | 'shadow'
+            },
+            formatter: function(param) {           
+                return '<div style="color:#fff;">'+ param[0].name + "<br>" +'<i style="background:#37C4FC;margin-right:5px;display:inline-block;width:8px;height:8px;border-radius:50%"></i>病案首页合格率:'+ param[0].value+"%" + "<br>"
+                '</div>'
             }
         },
         grid: {
@@ -662,8 +708,21 @@ function lineChartSpecial(dataX,dataY){
 }
 //柱状图住院费用
 function barChartPay(dataX,dataY){
+    // console.log(dataX,dataY,78787878)
+    if(dataX.length==0&&dataY.length==0){
+        $("#barChartPay,.innerOuter").css("display","none")
+        picEmptyData('.barChartPayEmptys')
+        return
+    }else{
+        if(hospital == "台州市立"){
+            $(".innerOuter").css("display","block")
+        }else{
+            $(".innerOuter").css("display","none")
+        }
+        $("#barChartPay").css("display","block")
+        $(".barChartPayEmptys").css("display","none")
+    }
     var myCharts = echarts.init(document.getElementById('barChartPay'));
-    var lengthNum = dataX.length;
     $(window).resize(function(){
         myCharts.resize()
     });
@@ -754,7 +813,15 @@ function barChartPay(dataX,dataY){
 }
 //柱状图住院日期
 function barChart(data,type){
-    // console.log(data,type)
+    // console.log(data,type,78787888787787)
+    if(data.length==0){
+        $(".toggleSlide,#barChart").css("display","none")
+        picEmptyData('.barChartPayEmpty')
+        return
+    }else{
+        $(".toggleSlide,#barChart").css("display","block")
+        $(".barChartPayEmpty").css("display","none")
+    }
     var myChart = echarts.init(document.getElementById('barChart'));
     $(window).resize(function(){
         myChart.resize()
@@ -980,6 +1047,13 @@ function emptyCircle(data){
     $(window).resize(function(){
         myChart.resize()
     });
+    if(data.length == 0){
+        $(".emptyCircleWrap").css("'display","none !important")
+        picEmptyData("#emptyCircleWrapEmpty")
+    }else{
+        $(".emptyCircleWrap").css("'display","block")
+        $(".console #emptyCircleWrapEmpty").html('')
+    }
     let bgColor = '#203463';
     let title = '总量';
     let color = ['#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336','#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336'];
@@ -1070,6 +1144,13 @@ function emptyCircle(data){
     myChart.setOption(option);
 }
 function emptyCircleB(data){
+    if(data.length == 0){
+        $(".emptyCircleBData,.emptyCircle").css("'display","none !important")
+        picEmptyData(".emptyCircleBWrap")
+    }else{
+        $(".emptyCircleBData").css("'display","block")
+        $(".emptyCircleBWrap").css("display","none")
+    }
     var myChart = echarts.init(document.getElementById('emptyCircleB'));
     $(window).resize(function(){
         myChart.resize()
@@ -1078,10 +1159,7 @@ function emptyCircleB(data){
     let title = '总量';
     let color = ['#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336','#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336'];
     let echartData = data;
-    let total = 0;
-    for(let i = 0;i < echartData.length;i++){
-        total += echartData[i].num
-    }
+    let total = echartData.length>0?echartData[0].totleNum:0;
     option = {
         /*backgroundColor: bgColor,*/
         color: color,
@@ -1173,6 +1251,15 @@ function queList(data){
         <td class="td03">数量</td>
         <td class="td04">占比</td>
         </tr>`
+    if(data.length == 0){
+        $(".qtable").css("display","none")
+        picEmptyData(".qtableEmpty")
+        return
+    }else{
+        $(".qtableEmpty").css("display","none")
+        $(".qtable").css("display","table")
+
+    }
     for(let i = 0;i < data.length;i++){
         strAll += `
             <tr>
@@ -1191,7 +1278,7 @@ function panDetail(data){
     let strAll = '';
     for(let i = 0;i < data.length;i++){
         strAll += `
-            <tr class="explainLi">
+            <tr class="explainLi" data-dept="${data[i].name}" dept-id="${data[i].id}">
                 <td class="deptName" title="${data[i].name}">
                     <p class="smp"><i class="tip" style="background-color:${color[i]}"></i>${data[i].name}</p>
                 </td>
@@ -1201,9 +1288,13 @@ function panDetail(data){
         `
     }
     $(".explainPanT table").html(strAll);
-    // $(".explainPan").css({
-    //     marginTop:-($(".explainPan").height()/2-20)+'px'
-    // })
+    $(".explainPanT .explainLi").click(function(){
+        let deptName = $(this).attr("data-dept")
+        let deptId = $(this).attr("dept-id")
+        focusMenuItem("YH-ZKK-GKSQXZB_XQ");
+        $(parent.document).find("#contentIframe").attr("src","quexianDetailControl.html?shijian"+dateType+"&deptName="+deptName)
+
+    })
 }
 function panDetailB(data){
     let color = ['#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336','#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336'];

+ 3 - 6
src/js/dayDetail.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/dayDetail.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./../resource/jquery-ui/jquery-ui.min.css');
 const iconCheck= require("./../images/icon_check.png")
@@ -41,7 +41,7 @@ if(statisticsType == 1){
     })
 }
 $(".abnormalClear").click(function(){
-        behospitalCode = ""
+        behospitalCode=behospitalCodeTemp = ""
         $(".patientNumInp").val("")
         getTabData(1)
 })
@@ -168,10 +168,7 @@ function renderTab(data,hisId,activePage){
         </thead>
         `}
         <tbody>
-            ${str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
-                <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
-                <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-                </td></tr>`}
+            ${str?str:emptyBox()}
         </tbody>
     `
     $('.tableDay').html(sts)

+ 121 - 73
src/js/deptConsole.js

@@ -7,8 +7,8 @@ require("../images/arrow_down.png")
 // import 'zrender/lib/svg/svg';
 const {api} = require('./api.js')
 const echarts = require('echarts');
-const {post,setCookie,delCookie,getCookie,focusMenuItem} = require('../js/utils.js');
-let payMoney = [],dayLis = [],dateType = 2,curDept = '',datafst=[],datasec=[],datatrd=[],datafour=[],hospital=getCookie("hospital");
+const {post,setCookie,delCookie,getCookie,focusMenuItem,picEmptyData } = require('../js/utils.js');
+let payMoney = [],dayLis = [],dateType = 2,curDept = '',curDeptId='',datafst=[],datasec=[],datatrd=[],datafour=[],hospital=getCookie("hospital");
 $(function(){
     if(!hasData('YH-KZT')&&!hasData('YH-KZTKS')){
         $("body").html('')
@@ -38,6 +38,12 @@ $(function(){
         $(this).next().slideToggle()
     })
 
+    $(".part02").on("mouseenter",".bingli li.sec",function(){
+        $(this).find(".explainNum").css("color","#00A1FF")
+      })
+      $(".part02").on("mouseleave",".bingli li.sec",function(){
+        $(this).find(".explainNum").css("color","#A5ADBF")
+      })
     tiaomu()
 })
 function tiaomu(){
@@ -53,9 +59,15 @@ function tiaomu(){
         focusMenuItem("YH-KSZR-BASYHGLZB_XQ")
         $(parent.document).find("#contentIframe").attr("src","partDetail.html?from=2&deptName="+curDept+"&dateType="+dateType)
     });
-    $(".part02 .bingli,.part02 .bingliLis").click(function(){
+    $(".part02 .bingliLis").click(function(){
         focusMenuItem("YH-KSZR-KSQXZB_XQ");
-        $(parent.document).find("#contentIframe").attr("src","deptScoreDetail.html?from=2&deptName="+curDept+"&dateType="+dateType)
+        $(parent.document).find("#contentIframe").attr("src","deptScoreDetail.html?from=2&deptName="+curDept+"&dateType="+dateType+"&curDeptId="+curDeptId)
+    });
+    $(".part02").on("click",".bingli li.sec",function(){
+        focusMenuItem("YH-BLZK-ZKPFKS");
+        let dataC = $(this).attr("data-c")
+        let chengdu = dataC == 1?'甲':dataC==2?'乙':'丙'
+        $(parent.document).find("#contentIframe").attr("src","./qcListDept.html?from=1&dateType="+dateType+"&chengdu="+chengdu+"&deptName="+curDept+"&deptId="+curDeptId)
     });
 }
 //判断有无某一权限
@@ -101,7 +113,6 @@ function dateChange(){
         getBarData(2)
     })
 }
-
 //控制台数
 function initConsole(result){
     let url = {
@@ -150,7 +161,8 @@ function getOwnDept(){
                 let result = data.data
                 renderDeptLis(result)//科室tab渲染
                 curDept = result[0].deptName
-                $(".partTitle p i,.toggleSlide p span").html(curDept).attr({"title":curDept,'data-dept':curDept})
+                curDeptId = result[0].deptId
+                $(".partTitle p i,.toggleSlide p span").html(curDept).attr({"title":curDept,'data-dept':curDept,'dept-id':curDeptId})
                 getBarData(2)//图标数据获取
             }else {
                 $(".partTitle p i,.toggleSlide p span").html('--')
@@ -164,23 +176,31 @@ function renderDeptLis(data){
     let str = ''
     for(let i = 0; i < data.length;i++){
         str += `
-            <li title="${data[i].deptName}" class="${i == 0?'li0 toggleAverge toggleSlide1':'toggleAverge toggleSlide1'}" data-dept="${data[i].deptName}">${data[i].deptName}</li>
+            <li title="${data[i].deptName}" dept-id="${data[i].deptId}" class="${i == 0?'li0 toggleAverge toggleSlide1':'toggleAverge toggleSlide1'}" data-dept="${data[i].deptName}">${data[i].deptName}</li>
         `
     }
     $(".toggleSlide ul").html(str)
     $(".toggleSlide ul li").click(function(){
         let name = $(this).attr("data-dept")
+        let did = $(this).attr("dept-id")
         curDept = name
-        $(this).parent().slideToggle().prev().find("span").html(name).attr({"title":name,'data-dept':curDept})
-        $(".partTitle p i").html(name).attr({"title":name,'data-dept':curDept})
+        curDeptId = did
+        $(this).parent().slideToggle().prev().find("span").html(name).attr({"title":name,'data-dept':curDept,'dept-id':curDeptId})
+        $(".partTitle p i").html(name).attr({"title":name,'data-dept':curDept,'dept-id':curDeptId})
         personNum(datafst[name]||[])
         setNumDetail(datasec[name]||[])
         queList(datatrd[name]||[])
+        getHomePageLevelStatisticsByDept()
         for(let i = 0;i < datafour[name].length;i++){
             datafour[name][i].value = datafour[name][i].num
         }
-        emptyCircleB(datafour[name])
-        panDetailB(datafour[name])
+        if(hospital=="台州市立"){
+            emptyCircleB(datafour[name])
+            panDetailB(datafour[name])
+        }else{
+            emptyCircleBc(datafour[name])
+            panDetailBc(datafour[name])
+        }
         $(this).addClass("li0").siblings().removeClass("li0")
     })
 }
@@ -255,17 +275,21 @@ function getBarData(type){
             })
         }
     }
+    getHomePageLevelStatisticsByDept(type)
+}
+function getHomePageLevelStatisticsByDept(type){
     if(hospital=="长兴医院"&&hasData("FUNC000076")){
-        post(api.getAverageScore,{//病案首页
-            "type": type||1//1月2年
+        post(api.homePageLevelStatisticsByDept,{//病案首页
+            "type": dateType||2,//1月2年
+            "deptName":curDept
         }).then((res)=>{
             let data = res.data;
             if(data.code == 0){
-                let result1 = data.data['各科室质控平均分']||[]
+                let result1 = data.data||[]
                 let dataX1=[],dataY1=[]
                 for(let i = 0;i < result1.length;i++){
-                    dataX1.push(result1[i].name)
-                    dataY1.push(result1[i].averageValue)
+                    dataX1.push(result1[i].doctorName)
+                    dataY1.push(result1[i].firstLevelPercentStr.replace('%',''))
                 }
                 lineChartSpecial(dataX1,dataY1)
             }
@@ -273,6 +297,14 @@ function getBarData(type){
     }
 }
 function lineChartSpecial(dataX,dataY){
+    if(dataX.length==0&&dataY.length==0){
+        $(".emptyLineCircle").css("display","none")
+        picEmptyData('.emptyLineCircleEmpty')
+        return
+    }else{
+        $(".emptyLineCircle").css("display","block")
+        $(".emptyLineCircleEmpty").css("display","none")
+    }
     var myCharts = echarts.init(document.getElementById('lineChart'));
     var lengthNum = dataX.length;
     $(window).resize(function(){
@@ -285,6 +317,10 @@ function lineChartSpecial(dataX,dataY){
             position: 'right',
             axisPointer: {            // 坐标轴指示器,坐标轴触发有效
                 type: 'line'        // 默认为直线,可选为:'line' | 'shadow'
+            },
+            formatter: function(param) {           
+                return '<div style="color:#fff;">'+ param[0].name + "<br>" +'<i style="background:#37C4FC;margin-right:5px;display:inline-block;width:8px;height:8px;border-radius:50%"></i>病案首页合格率:'+ param[0].value+"%" + "<br>"
+                '</div>'
             }
         },
         grid: {
@@ -354,7 +390,7 @@ function lineChartSpecial(dataX,dataY){
         }],
         series: [
             {
-                name: '质控平均分',
+                name: '病案首页合格率',
                 type: 'bar',
                 barWidth: '23%',
                 data: dataY
@@ -365,6 +401,14 @@ function lineChartSpecial(dataX,dataY){
 }
 //part01
 function personNum(data){
+    if(data['总人数']==0){
+        $(".chuyuan,.personNum").css("display","none")
+        picEmptyData(".chuyuanEmpty")
+        return
+    }else{
+        $(".chuyuanEmpty").css("display","none")
+        $(".chuyuan,.personNum").css("display","block")
+    }
     $(".personNum").html("总人数:"+data['总人数'])
     $(".died").html(data['死亡人数'])
     $(".newborn").html(data['新生儿人数'])
@@ -374,45 +418,19 @@ function personNum(data){
 function setNumDetail(data){
     // console.log(data,2222222222)
     if(data.length == 0){
-        data = [
-            {
-                "id":null,
-                "name":"累计质控病历数",
-                "totleNum":0,
-                "num":0,
-                "percent":null,
-                "percentStr":null
-            },
-            {
-                "id":null,
-                "name":"甲级病历",
-                "totleNum":10,
-                "num":0,
-                "percent":0,
-                "percentStr":"0.00%"
-            },
-            {
-                "id":null,
-                "name":"乙级病历",
-                "totleNum":10,
-                "num":0,
-                "percent":0,
-                "percentStr":"0.00%"
-            },
-            {
-                "id":null,
-                "name":"丙级病历",
-                "totleNum":10,
-                "num":0,
-                "percent":0,
-                "percentStr":"0.00%"
-            }
-        ]
+        $(".pingfendengji").css("display","block")
+        $(".bldjs").css("display","none")
+        picEmptyData(".pingfendengjiEmpty")
+        return
+    }else{
+        $(".bldjs").css("display","block")
+        $(".pingfendengji").css("display","none")
+
     }
     let str = ''
     for(let i = 0;i < data.length;i++){
         str += `
-            <li class="${i==0?'fst':i == data.length-1?' four':''}">
+            <li class="${i==0?'fst':i == data.length-1?' four sec':'sec'}" data-c="${i}">
             <p class="numShow">${data[i].num}</p>
             <p class="explainNum">${data[i].name}</p>
             </li>
@@ -450,7 +468,7 @@ function part02pan(data,dom){
     });
     let bgColor = '#fff';
     let title = '总量';
-    let color = ['#37CBCB','#dedede'];
+    let color = ['#3fffd1','#4c5c82'];
     let echartData = data;
     option = {
         // backgroundColor: bgColor,
@@ -463,14 +481,14 @@ function part02pan(data,dom){
                 rich: {
                     val: {
                         fontSize: 14,
-                        color: '#fff',
+                        color: '#E9EBEF',
                         fontWeight: 'bold',
                         padding: [10, 0]
                     },
                     name: {
                         fontSize: 12,
                         fontWeight: 'normal',
-                        color: '#fff',
+                        color: '#E9EBEF',
                     }
                 }
             }
@@ -480,7 +498,14 @@ function part02pan(data,dom){
             type: 'pie',
             radius: ['70%', '90%'],
             data: echartData,
-            hoverAnimation:false,
+            hoverAnimation:true,
+            hoverOffset:3,
+            itemStyle: {
+              normal: {
+                borderColor: '#203463',
+                borderWidth: 3
+              }
+            },
             label: {
                 normal: {
                     show:false,
@@ -492,9 +517,15 @@ function part02pan(data,dom){
 }
 //柱状图住院日期
 function emptyCircleB(data){
+    if(data.length == 0){
+        $(".emptyCircleBData").css("'display","none !important")
+        picEmptyData(".emptyCircleBWrap")
+    }else{
+        $(".emptyCircleBData").css("'display","block")
+        $(".emptyCircleBWrap").css("display","none")
+    }
     if(!document.getElementById('emptyCircleB'))return
     var myChart = echarts.init(document.getElementById('emptyCircleB'));
-    return
     $(window).resize(function(){
         myChart.resize()
     });
@@ -502,10 +533,7 @@ function emptyCircleB(data){
     let title = '总量';
     let color = ['#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336','#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336'];
     let echartData = data;
-    let total = 0;
-    for(let i = 0;i < echartData.length;i++){
-        total += echartData[i].num
-    }
+    let total = echartData.length>0?echartData[0].totleNum:0;
     option = {
         // backgroundColor: bgColor,
         color: color,
@@ -517,14 +545,14 @@ function emptyCircleB(data){
                 rich: {
                     val: {
                         fontSize: 24,
-                        color: '#fff',
+                        color: '#E9EBEF',
                         fontWeight: 'bold',
                         padding: [10, 0]
                     },
                     name: {
                         fontSize: 12,
                         fontWeight: 'normal',
-                        color: '#fff',
+                        color: '#E9EBEF',
                     }
                 }
             }
@@ -548,7 +576,7 @@ function emptyCircleB(data){
             itemStyle: {
                 normal: {
                     // borderColor: bgColor,
-                    borderWidth: 2
+                    borderWidth: 3
                 }
             },
             labelLine: {
@@ -589,6 +617,13 @@ function emptyCircleB(data){
     myChart.setOption(option);
 }
 function emptyCircleBc(data){
+    if(data.length == 0){
+        $(".emptyCircleBDatas").css("'display","none !important")
+        picEmptyData(".emptyCircleBWraps")
+    }else{
+        $(".emptyCircleBDatas").css("'display","block")
+        $(".emptyCircleBWraps").css("display","none")
+    }
     var myChart = echarts.init(document.getElementById('emptyCircleBc'));
     $(window).resize(function(){
         myChart.resize()
@@ -597,10 +632,7 @@ function emptyCircleBc(data){
     let title = '总量';
     let color = ['#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336','#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336'];
     let echartData = data;
-    let total = 0;
-    for(let i = 0;i < echartData.length;i++){
-        total += echartData[i].num
-    }
+    let total = echartData.length>0?echartData[0].totleNum:0;
     option = {
         // backgroundColor: bgColor,
         color: color,
@@ -612,14 +644,14 @@ function emptyCircleBc(data){
                 rich: {
                     val: {
                         fontSize: 24,
-                        color: '#fff',
+                        color: '#E9EBEF',
                         fontWeight: 'bold',
                         padding: [10, 0]
                     },
                     name: {
                         fontSize: 12,
                         fontWeight: 'normal',
-                        color: '#fff',
+                        color: '#E9EBEF',
                     }
                 }
             }
@@ -642,8 +674,8 @@ function emptyCircleBc(data){
             hoverOffset:5,
             itemStyle: {
                 normal: {
-                    // borderColor: bgColor,
-                    borderWidth: 2
+                    borderColor:  '#203463',
+                    borderWidth: 3
                 }
             },
             labelLine: {
@@ -692,6 +724,15 @@ function queList(data){
         <td class="td03">数量</td>
         <td class="td04">占比</td>
         </tr>`
+    if(data.length == 0){
+        $(".qtable").css("display","none")
+        picEmptyData(".qtableEmpty")
+        return
+    }else{
+        $(".qtableEmpty").css("display","none")
+        $(".qtable").css("display","table")
+
+    }
     for(let i = 0;i < data.length;i++){
         strAll += `
             <tr>
@@ -729,7 +770,7 @@ function panDetailBc(data){
     let strAll = '';
     for(let i = 0;i < data.length;i++){
         strAll += `
-            <tr class="explainLi">
+            <tr class="explainLi" data-dept="${data[i].name}">
                 <td class="deptName" title="${data[i].name}">
                     <p><i class="tip" style="background-color:${color[i]}"></i>${data[i].name}</p>
                 </td>
@@ -742,6 +783,13 @@ function panDetailBc(data){
     $(".explainPan").css({
         marginTop:-($(".explainPanc").height()/2-20)+'px'
     })
+    
+    // $(".homePageNo .explainPanBc .explainLi").click(function(){
+    //     let deptName = $(this).attr("data-dept")
+    //     focusMenuItem("YH-BLZK-ZKPFKS");
+    //     $(parent.document).find("#contentIframe").attr("src","./qcList.html?from=1&dateType="+dateType+"&deptName="+deptName)
+
+    // })
 }
 //时间获取
 function getTimeDetail(){

+ 28 - 22
src/js/deptScoreDetail.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/deptScoreDetail.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,focusMenuItem,emptyBox} = require('./utils.js')
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./../resource/jquery-ui/jquery-ui.min.css');
 const iconCheck= require("./../images/icon_check.png")
@@ -18,14 +18,14 @@ const arrowRight = require("./../images/arrow_right.png")
 $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,statisticsType=2,deptList=[],
-  nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
+  nameTemp = "", behospitalCodeTemp="",levelTemp="",curDeptId="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
   data_desc=[],data_asc=[];
 $(function(){
     deptList = JSON.parse(getCookie("deptList"))||[]
     let srcUrl = $("#contentIframe",parent.document).attr("src")
     deptId = deptIdTemp = getUrlArgObjectNew("deptName",srcUrl)||""
-    statisticsType = getUrlArgObjectNew("dateType",srcUrl)||""
-    console.log(deptIdTemp,deptId)
+    statisticsType = getUrlArgObjectNew("dateType",srcUrl)||"2"
+    curDeptId = getUrlArgObjectNew("curDeptId",srcUrl)||""
     if(statisticsType == 1){
         $(".monthYear .mon").css({
             backgroundColor:'#00A1FF',
@@ -46,6 +46,7 @@ $(function(){
     if(deptId){
         $(".selectDept").html(deptId).attr({
             "data-id":deptId,
+            "dept-id":curDeptId,
             "title":deptId
         }).append(`<img class="arrow" src=${iconDown} alt="下拉">`)
         getDeptList()
@@ -59,10 +60,12 @@ $(function(){
 
 $(".abnormalClear").click(function(){
     deptId = deptIdTemp = deptList[0].deptName
-    behospitalCode = ""
+    curDeptId = deptList[0].deptId
+    behospitalCode=behospitalCodeTemp = ""
     $(".patientNumInp").val("")
     $(".selectDept").html(deptId).attr({
         "data-id":deptId,
+        "dept-id":curDeptId,
         "title":deptId
     }).append(`<img class="arrow" src=${iconDown} alt="下拉">`)
     getTabData(1)
@@ -89,13 +92,13 @@ function getDeptList(flg){
     let str = ``
     if(deptList.length<=0)return
     if(flg){
-        $(".partDetail .selectDept ").attr("data-id",deptList[0].deptName).find("i").html(deptList[0].deptName)
+        $(".deptScoreDetail .selectDept ").attr({"data-id":deptList[0].deptName,'dept-id':deptList[0].deptId}).find("i").html(deptList[0].deptName)
         deptId = deptIdTemp = deptList[0].deptName
+        curDeptId =  deptList[0].deptId
     }
-    // $(".deptScoreDetail .selectDept ").attr("data-id",deptList[0].deptName).find("i").html(deptList[0].deptName)
     for(let i = 0;i < deptList.length;i++){
         let tmp = deptList[i]
-        str += `<li class="deptItem ellipsis" title="${tmp.deptName}" data-id="${tmp.deptName}" data-name="${tmp.deptName}">${tmp.deptName}</li>`
+        str += `<li class="deptItem ellipsis" title="${tmp.deptName}" data-id="${tmp.deptName}" dept-id="${tmp.deptId}" data-name="${tmp.deptName}">${tmp.deptName}</li>`
     }
     $(".deptScoreDetail .filterDropList").html(str)
 }
@@ -143,7 +146,6 @@ function dateChange(){
 }
 
 function getTabData(activePage){
-    console.log(deptIdTemp,deptId,7878778)
     const param = {
         "asc": "",
         "deptName": deptId||"",
@@ -188,29 +190,31 @@ function renderTab(data,hisId,activePage){
         str += `
             <tr  data-index=${i}>
                 <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
-                <td>${item.deptId || "-"}</td>
                 <td >${item.doctorName || "-"}</td>
                 <td class="goHomeDetail" data-doc="${item.doctorName || ""}">${item.entryNum || "-"}</td>
                 <td >${item.averageValue || "-"}</td>
                 <td >${item.mrNum || "-"}</td>
-                <td >${item.firstLevelNum || "-"}</td>
-                <td >${item.secondLevelNum || "-"}</td>
-                <td >${item.thirdLevelNum || "-"}</td>
+                <td  class="goHomeDetailB goHomeDetail" data-dept="${item.doctorName || ""}" data-c="甲">${item.firstLevelNum || "-"}</td>
+                <td  class="goHomeDetailB goHomeDetail" data-dept="${item.doctorName || ""}" data-c="乙">${item.secondLevelNum || "-"}</td>
+                <td  class="goHomeDetailB goHomeDetail" data-dept="${item.doctorName || ""}" data-c="丙">${item.thirdLevelNum || "-"}</td>
                 <td >${item.firstLevelPercentStr || "-"}</td>
                 <td >${item.secondLevelPercentStr || "-"}</td>
                 <td >${item.thirdLevelPercentStr || "-"}</td>
             </tr>
         `
     }
-    $('tbody').html(str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
-        <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
-        <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-    </td></tr>`)
+    $('tbody').html(str?str:emptyBox())
     bindScoreDetail(hisId)
     $(".goHomeDetail").click(function(){
         let docName = $(this).attr("data-doc")
         $(parent.document).find("#contentIframe").attr("src","quexianDetail.html?from=2&deptName="+deptIdTemp+"&docName="+docName+"&shijian="+statisticsType)
     })
+    $(".goHomeDetailB").click(function(){
+        let docName = $(this).attr("data-dept")
+        let deptC = $(this).attr("data-c")
+        focusMenuItem("YH-BLZK-ZKPFKS");
+        $(parent.document).find("#contentIframe").attr("src","qcListDept.html?from=2&deptName="+deptIdTemp+"&docName="+docName+"&shijian="+statisticsType+"&chengdu="+deptC+"&deptId="+curDeptId)
+    })
 }
 
 function scoreDetail(id,age,hid,code){
@@ -385,23 +389,25 @@ $('.selectDept').on("click", function(e){
 function rendeDeptList(deptList){
     let str = `<li class="deptItem " data-id=" " data-name="全部">全部</li>`
     for(let i = 0; i < deptList.length; i++){
-        str += `<li class="deptItem ellipsis" title=${deptList[i].deptName} data-id=${deptList[i].deptName} data-name=${deptList[i].deptName}> ${deptList[i].deptName}</li>`
+        str += `<li class="deptItem ellipsis" title=${deptList[i].deptName} dept-id=${deptList[i].deptId} data-id=${deptList[i].deptName} data-name=${deptList[i].deptName}> ${deptList[i].deptName}</li>`
     }
     $('.deptList').html(str)
 }
 bindDeptSelect()
 //科室选择
 function bindDeptSelect(){
-    $('.deptItem').on("click",function(){
+    $("body").on("click",'.deptItem',function(){
         const deptItemName = $(this).attr("data-name")
         const deptItemId = $(this).attr("data-id")
+        const did = $(this).attr("dept-id")
         deptIdTemp =deptItemId
+        curDeptId = did
         if(deptItemName.length > 10){
-            $('.selectDept').html(deptItemName.substring(0,8)+'...')
+            $('.selectDept').html(deptItemName.substring(0,8)+'...').attr({"dept-id":curDeptId,"title":deptItemName})
         }else{
-            $('.selectDept').html(deptItemName)
+            $('.selectDept').html(deptItemName).attr({"dept-id":curDeptId,"title":deptItemName})
         }
-        $('.selectDept ').attr({'title':deptItemName,'data-id':deptItemName})
+        $('.selectDept ').attr({'title':deptItemName,'data-id':deptItemName,'dept-id':curDeptId})
         $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 
         $(".deptList").css("display", "none")

+ 68 - 32
src/js/deptScoreDetailControl.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/deptScoreDetailControl.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,focusMenuItem,emptyBox} = require('./utils.js')
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./../resource/jquery-ui/jquery-ui.min.css');
 const iconCheck= require("./../images/icon_check.png")
@@ -17,12 +17,19 @@ const arrowRight = require("./../images/arrow_right.png")
 
 $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
-let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,statisticsType=2,
+let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,statisticsType=2,deptType = "",
   nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
-  data_desc=[],data_asc=[];
+  data_desc=[],data_asc=[],hospital=getCookie("hospital");
   let srcUrl = $("#contentIframe",parent.document).attr("src")
-  statisticsType = getUrlArgObjectNew("dateType",srcUrl)||""
-  
+  statisticsType = getUrlArgObjectNew("dateType",srcUrl)||"2"
+  deptType = getUrlArgObjectNew("deptType",srcUrl)||""
+  if(hospital == '台州市立'){
+    $(".deptListWrap").css("display","inline-block")
+    $(".deptListWrap .selectDept").html(deptType?(deptType+'系统'):"全部").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    deptId = deptIdTemp = deptType
+}else{
+    $(".deptListWrap").css("display","none")
+  }
   if(statisticsType == 1){
       $(".monthYear .mon").css({
           backgroundColor:'#00A1FF',
@@ -42,7 +49,9 @@ let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",beho
   }
 $(".abnormalClear").click(function(){
     // window.location.reload()
-    behospitalCode = ""
+    behospitalCode=behospitalCodeTemp = ""
+    deptId =deptIdTemp= ""
+    $(".selectDept").attr({'title':"全部",'data-id':''}).html("全部").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
     $(".patientNumInp").val("")
     getTabData(1)
 })
@@ -94,13 +103,14 @@ function dateChange(){
     })
 }
 //判断有无某一权限
-  function hasData(data){
-    let trdObj = JSON.parse(getCookie("trdObj"))
-    let lis = trdObj['YH-BLZK-ZKPF']
-    if(!lis){
-      return false
+  function hasData(data,parent){
+    let codeLis = getCookie("codeLis")
+    if(parent){
+        if(codeLis.indexOf(parent)==-1){//有权限
+            return false
+        }
     }
-    if(lis.indexOf(data)>-1){//有权限
+    if(codeLis.indexOf(data)>-1){//有权限
         return true
     }
     return false;
@@ -110,10 +120,19 @@ function getTabData(activePage){
         "asc": "",
         "desc": "",
         "name": behospitalCode||"",
-        "level": deptId||'',
+        "deptClass": deptId||'',
         "type": statisticsType||2, //1-本月,2-本年
     }
-    post(api.levelStatistics,param).then(res =>{
+    let url = ''
+
+    if(hospital=="台州市立"&&hasData('FUNC000092','YH-ZKK-GKSQXZB_XQ')){
+        url = api.levelStatisticsByDeptClass
+    }else if(hospital=="长兴医院"&&hasData('FUNC000071','YH-ZKK-GKSQXZB_XQ')){
+        url = api.levelStatistics
+    }else{
+        return
+    }
+    post(url,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data;
             tabList = data.records;
@@ -130,7 +149,7 @@ function getTabData(activePage){
             $.alerModal({"message":res.data.msg,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
         }
     }).catch((e) =>{
-    
+        
     })
 }
 
@@ -145,34 +164,56 @@ $(".filter").on("click", function(e){
 })
 function renderTab(data,hisId,activePage){
     let str = ``
-    for(let i = 0; i < data.length; i++){
+    let tHead = `
+        <thead>
+        <th class="moduleName" style="width: 65px;">序号</th>
+        <th class="beHospitalId textCenter">科室编码</th>
+        ${hospital=='台州市立'?'<th class="beHospitalId textCenter">科室系统</th>':null}
+        <th class="beHospitalId textCenter">科室名称</th>
+        <th class="beHospitalId textCenter">缺陷总数</th>
+        <th class="beHospitalId textCenter">质控平均分</th>
+        <th class="beHospitalId textCenter">质控病历数</th>
+        <th class="beHospitalId textCenter">甲级病历数</th>
+        <th class="beHospitalId textCenter">乙级病历数</th>
+        <th class="beHospitalId textCenter">丙级病历数</th>
+        <th class="beHospitalId textCenter">甲级率</th>
+        <th class="beHospitalId textCenter">乙级率</th>
+        <th class="beHospitalId textCenter">丙级率</th>
+        </thead>`
+    for(let i = 0; i <data.length; i++){
         const item = data[i]
         str += `
             <tr  data-index=${i}>
                 <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
                 <td>${item.deptId || "-"}</td>
+                ${hospital=='台州市立'?('<td >'+(item.deptClass?(item.deptClass+'系统'):"-")+'</td>'):''}
                 <td >${item.deptName || "-"}</td>
-                <td class="goHomeDetail" data-dept="${item.deptName || ""}">${item.entryNum || "-"}</td>
+                <td class="goHomeDetailQuexian goHomeDetail" data-dept="${item.deptName || ""}">${item.entryNum || "-"}</td>
                 <td >${item.averageValue || "-"}</td>
                 <td >${item.mrNum || "-"}</td>
-                <td >${item.firstLevelNum || "-"}</td>
-                <td >${item.secondLevelNum || "-"}</td>
-                <td >${item.thirdLevelNum || "-"}</td>
+                <td  class="goHomeDetailB goHomeDetail" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}" data-c="甲">${item.firstLevelNum || "-"}</td>
+                <td  class="goHomeDetailB goHomeDetail" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}" data-c="乙">${item.secondLevelNum || "-"}</td>
+                <td  class="goHomeDetailB goHomeDetail" data-dept="${item.deptName || ""}" dept-id="${item.deptId || ""}" data-c="丙">${item.thirdLevelNum || "-"}</td>
                 <td >${item.firstLevelPercentStr || "-"}</td>
                 <td >${item.secondLevelPercentStr || "-"}</td>
                 <td >${item.thirdLevelPercentStr || "-"}</td>
             </tr>
         `
     }
-    $('tbody').html(str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
-        <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
-        <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-    </td></tr>`)
+    $('.deptScoreDetailControlTable table').html(str?tHead+'<tbody>'+str+'</tbody>':tHead+`<tbody>${emptyBox()}</tbody>`)
     bindScoreDetail(hisId)
-    $(".goHomeDetail").click(function(){
+    $(".goHomeDetailQuexian").click(function(){
         let deptName = $(this).attr("data-dept")
+        // focusMenuItem("YH-ZKK-GKSQXZB_XQ");
         $(parent.document).find("#contentIframe").attr("src","quexianDetailControl.html?deptName="+deptName+"&from=2"+"&shijian="+statisticsType)
     })
+    $(".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="+statisticsType+"&chengdu="+deptC+"&deptId="+deptIds)
+    })
 }
 
 function scoreDetail(id,age,hid,code){
@@ -358,12 +399,7 @@ function bindDeptSelect(){
         const deptItemName = $(this).attr("data-name")
         const deptItemId = $(this).attr("data-id")
         deptIdTemp =deptItemId
-        if(deptItemName.length > 10){
-            $('.selectDept').html(deptItemName.substring(0,8)+'...')
-        }else{
-            $('.selectDept').html(deptItemName)
-        }
-        $('.selectDept ').attr('title',deptItemName)
+        $('.selectDept').html(deptItemName).attr('title',deptItemName)
         $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 
         $(".deptList").css("display", "none")
@@ -382,7 +418,7 @@ function hideLoading(){
     $("#mainBox .loadingBox", parent.document).remove()
 }
 $('.recordScoreBtn').on("click",function(e){
-    if(!hasData('FUNC000017')){
+    if(!hasData('FUNC000017','YH-BLZK-ZKPF')){
         return
     }
     let scoreList = []

+ 18 - 5
src/js/index.js

@@ -4,7 +4,7 @@ require('jquery-templates');
 const md5 = require('js-md5');
 require("./modal.js")
 const {api} = require('./api.js')
-const {post,pageMap,delCookie,setCookie,getCookie} = require('./utils.js');
+const {post,pageMap,delCookie,setCookie,getCookie,focusMenuItem} = require('./utils.js');
 let userInfo={};
 $(function(){
   getMenu();
@@ -28,10 +28,16 @@ $(function(){
   $("#changeWord").css("opacity",hasData('FUNC000002')?'1':'0.5').hover(function(){
     $(this).css("color","#777777")
   })
-  $("#contentIframe").attr("src",hasData('YH-KZT')?'console.html':hasData('YH-KZTKS')?'deptConsole.html':'console.html');
+  // $("#contentIframe").attr("src",hasData('YH-KZT')?'console.html':hasData('YH-KZTKS')?'deptConsole.html':'console.html');
 });
 //判断有无某一权限
-function hasData(data){
+function hasData(data,list){
+  if(list&&list.length>0){
+    if(list.indexOf(data)>-1){//有权限
+      return true
+    }
+    return false;
+  }
   let lis = JSON.parse(getCookie("codeLis"))||[]
   if(lis.indexOf(data)>-1){//有权限
       return true
@@ -120,7 +126,7 @@ function getOwnDept(){
               let result = data.data
               setCookie("deptList",JSON.stringify(result))
           }
-      })
+        })
   // }
 }
 function getMenu(){
@@ -130,9 +136,10 @@ function getMenu(){
       initMenu(data.menuWrappers,data.userLoginDTO);
       userInfo = data.userLoginDTO
       setCookie("hospital",data.basHospitalInfoDTO.name)
+      setCookie("hospitalid",data.basHospitalInfoDTO.id)
       getAllCode(data.menuWrappers);
     }
-  });
+  })
 };
 function getAllCode(data){
   let lis = [],personCodeLis=[],deptCodeLis=[],trdObj={}
@@ -158,6 +165,12 @@ function getAllCode(data){
       }
     }
   }
+  // $("#contentIframe").attr("src",hasData('YH-KZT')?'console.html':hasData('YH-KZTKS')?'deptConsole.html':'console.html');
+  if(hasData('YH-KZT',lis)){
+    focusMenuItem("YH-KZT");
+  }else if(hasData('YH-KZTKS',lis)){
+    focusMenuItem("YH-KZTKS");
+  }
   setCookie("codeLis",JSON.stringify(lis))
   setCookie("trdObj",JSON.stringify(trdObj))
 }

+ 3 - 6
src/js/jiaji.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/jiaji.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./../resource/jquery-ui/jquery-ui.min.css');
 const iconCheck= require("./../images/icon_check.png")
@@ -41,7 +41,7 @@ if(statisticsType == 1){
     })
 }
 $(".abnormalClear").click(function(){
-    behospitalCode = ""
+    behospitalCode =behospitalCodeTemp= ""
     $(".patientNumInp").val("")
     getTabData(1)
 })
@@ -153,10 +153,7 @@ function renderTab(data,hisId,activePage){
             </tr>
         `
     }
-    $('tbody').html(str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
-            <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
-            <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-            </td></tr>`)
+    $('tbody').html(str?str:emptyBox())
     bindScoreDetail(hisId)
 }
 

+ 2 - 2
src/js/moduleManager.js

@@ -6,7 +6,7 @@ require('./modal.js');
 
 // const  layui = require('layui-src');
 const {api} = require('./api.js')
-const {post,getCookie} = require('./utils.js')
+const {post,getCookie,emptyBox} = require('./utils.js')
 function setTbaleInfoHei(){
  
     $(".tableInfo").css({
@@ -57,7 +57,7 @@ function renderTab(){
     //     <td class="totalSum"></td>
     // </tr>
     // `
-    $('.tableInfo table').html(str?str:'<tr><td colspan="17" style="text-align: center;color: #aaa">暂无数据~</td></tr>')
+    $('.tableInfo table').html(str?str:emptyBox())
     const tableInfoBox =  $(".tableInfo").height()
     const tableInfoHei =  $(".tableInfo table").height()
     if(tableInfoHei > tableInfoBox){

+ 3 - 6
src/js/mukuai.js

@@ -3,7 +3,7 @@ require("../css/mukuai.less");
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
 const switchIconOpen = require("./../images/btn_open.png")
 const switchIconClose = require("./../images/btn_close.png")
 const iconDown= require("./../images/arrow_down.png")
@@ -58,7 +58,7 @@ $(function(){
     })
     $(".abnormalClear").click(function(){
         // window.location.reload()
-        deptId = deptList[0].deptName
+        deptId =deptIdTemp= deptList[0].deptName
         name = ""
         $(".patientNumInp").val("")
         $(".selectDept").html(deptId).attr({
@@ -256,10 +256,7 @@ function renderTab(data,activePage){
             </tr>
         `
     }
-    $('tbody').html(str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
-        <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
-        <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-    </td></tr>`)
+    $('tbody').html(str?str:emptyBox())
     bindEdit(data,activePage)
 }
 

+ 2 - 5
src/js/mukuaiControl.js

@@ -3,7 +3,7 @@ require("../css/mukuai.less");
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
 const switchIconOpen = require("./../images/btn_open.png")
 const switchIconClose = require("./../images/btn_close.png")
 const iconDown= require("./../images/arrow_down.png")
@@ -243,10 +243,7 @@ function renderTab(data,activePage){
             </tr>
         `
     }
-    $('tbody').html(str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
-        <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
-        <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-    </td></tr>`)
+    $('tbody').html(str?str:emptyBox())
     bindEdit(data,activePage)
 }
 

+ 7 - 10
src/js/partDetail.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/partDetail.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./../resource/jquery-ui/jquery-ui.min.css');
 const iconCheck= require("./../images/icon_check.png")
@@ -54,13 +54,13 @@ $(function(){
 })
 
 $(".abnormalClear").click(function(){
-    deptId = deptList[0].deptName
-    behospitalCode = ""
+    deptId=deptIdTemp = deptList[0].deptName
+    behospitalCode=behospitalCodeTemp = ""
     $(".patientNumInp").val("")
     $(".selectDept").html(deptId).attr({
         "data-id":deptId,
         "title":deptId
-    })
+    }).append(`<img class="arrow" src=${iconDown} alt="下拉">`)
     getTabData(1)
 })
 $(".partTitle a").click(function(){
@@ -198,14 +198,11 @@ function renderTab(data,hisId,activePage){
             </tr>
         `
     }
-    $('tbody').html(str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
-        <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
-        <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-    </td></tr>`)
+    $('tbody').html(str?str:emptyBox())
     bindScoreDetail(hisId)
     $(".goHomeDetail").click(function(){
         let docName = $(this).attr("data-doc")
-        $(parent.document).find("#contentIframe").attr("src","quexianDetail.html?from=1&casesId=243&deptName="+deptIdTemp+"&docName="+docName+"&shijian="+statisticsType)
+        $(parent.document).find("#contentIframe").attr("src","quexianDetailHome.html?from=1&casesId=243&deptName="+deptIdTemp+"&docName="+docName+"&shijian="+statisticsType)
     })
 }
 
@@ -381,7 +378,7 @@ $('.selectDept').on("click", function(e){
 bindDeptSelect()
 //科室选择
 function bindDeptSelect(){
-    $('.deptItem').on("click",function(){
+    $("body").on("click",'.deptItem',function(){
         const deptItemName = $(this).attr("data-name")
         const deptItemId = $(this).attr("data-id")
         deptIdTemp =deptItemId

+ 4 - 7
src/js/partDetailControl.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/partDetailControl.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./../resource/jquery-ui/jquery-ui.min.css');
 const iconCheck= require("./../images/icon_check.png")
@@ -43,7 +43,7 @@ let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",beho
 $(".abnormalClear").click(function(){
     // window.location.reload()
     $(".patientNumInp").val("")
-    behospitalCode = ""
+    behospitalCode =behospitalCodeTemp= ""
     getTabData(1)
 })
 $(".partTitle a").click(function(){
@@ -156,14 +156,11 @@ function renderTab(data,hisId,activePage){
         `
     }
     // console.log(str)
-    $('tbody').html(str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
-        <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
-        <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-    </td></tr>`)
+    $('tbody').html(str?str:emptyBox())
     bindScoreDetail(hisId)
     $(".goHomeDetail").click(function(){
         let deptName = $(this).attr("data-dept")
-        $(parent.document).find("#contentIframe").attr("src","quexianDetailControl.html?deptName="+deptName+"&from=1&casesId=243"+"&shijian="+statisticsType)
+        $(parent.document).find("#contentIframe").attr("src","quexianDetailControlHome.html?deptName="+deptName+"&from=1&casesId=243"+"&shijian="+statisticsType)
     })
 }
 

+ 3 - 6
src/js/payDetail.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/payDetail.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./../resource/jquery-ui/jquery-ui.min.css');
 const iconCheck= require("./../images/icon_check.png")
@@ -41,7 +41,7 @@ let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",beho
       })
   }
 $(".abnormalClear").click(function(){
-    behospitalCode = ""
+    behospitalCode=behospitalCodeTemp = ""
     $(".patientNumInp").val("")
     getTabData(1)
 })
@@ -172,10 +172,7 @@ function renderTab(data,hisId,activePage){
         </thead>
         `}
         <tbody>
-            ${str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
-            <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
-            <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-            </td></tr>`}
+            ${str?str:emptyBox()}
         </tbody>
     `
     $('.tableDay').html(sts)

+ 75 - 20
src/js/qcList.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/qcList.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./../resource/jquery-ui/jquery-ui.min.css');
 const iconCheck= require("./../images/icon_check.png")
@@ -15,12 +15,41 @@ const loadingImg = require("./../images/loading.gif")
 const arrowLeft= require("./../images/arrow_left.png")
 const arrowRight = require("./../images/arrow_right.png")
 
+let srcUrl = $("#contentIframe",parent.document).attr("src")
+let statisticsType = getUrlArgObjectNew("dateType",srcUrl)||getUrlArgObjectNew("shijian",srcUrl) || ""
+let chengdu = getUrlArgObjectNew("chengdu",srcUrl)||""
+let deptIdPram = getUrlArgObjectNew("deptId",srcUrl)||""
+let deptNamePram = getUrlArgObjectNew("deptName",srcUrl)||""
+let docName = getUrlArgObjectNew("docName",srcUrl)||""
 $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,
   nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
   data_desc=["leave_hospital_date"],data_asc=[];
-
+if(chengdu){
+    levelTemp = chengdu
+    level = chengdu
+    $('.selectLevel').html(chengdu)
+    $(".levelList").css("display", "none")
+    $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+}
+if(docName){
+    doctorNameTemp = docName
+    doctorName = docName
+    $('.doctorInp').val(docName)
+}
+if(deptIdPram&&deptNamePram){
+    deptIdTemp = deptIdPram
+    deptId = deptIdPram
+    if(deptNamePram.length > 10){
+        $('.selectDept').html(deptNamePram.substring(0,8)+'...')
+    }else{
+        $('.selectDept').html(deptNamePram)
+    }
+    $('.selectDept ').attr('title',deptNamePram)
+    $(".deptList").css("display", "none")
+    $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+}
 $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
 $('.iconCalen').on("mouseenter", function(e){
     $(this).attr("src", iconCalenBlue)
@@ -58,9 +87,10 @@ function getTabData(activePage){
         desc:data_desc,       //降序
         doctorName: doctorName,
         doctorCode: doctorNum,
-        leaveHosDateStart: behosDateStart, //1-单项否决 0-非
-        leaveHosDateEnd: behosDateEnd, //0-未启用 1-启用
-        size: 15
+        leaveHosDateStart: behosDateStart, //出院日期--开始时间
+        leaveHosDateEnd: behosDateEnd, //出院日期--结束时间
+        size: 15,
+        statisticsType:statisticsType
     }
     post(api.qcList,param).then(res =>{
         if(res.data.code == '0'){
@@ -112,9 +142,7 @@ $(".abnormalClear").on("click", function(e){
     tabList = []; 
     name = ""; 
     behospitalCode="";  
-    behosDateStart="";  
     level=""; 
-    behosDateEnd="";  
     scoreSum = 0; 
     nameTemp = "";  
     behospitalCodeTemp=""; 
@@ -132,27 +160,44 @@ $(".abnormalClear").on("click", function(e){
     $('.doctorInp').val('')
     $('.doctorNumInp').val('')
     $('.doctorInp').val('')
-    $('#datepicker').val('')
-    $('#datepicker2').val('')
-    $('.selectDept ').html('选择科室')
+    // $('#datepicker').val('')
+    // $('#datepicker2').val('')
+    //默认日期为近一个月
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd",
+    }).datepicker( "setDate", "-1m");
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    }).datepicker( "setDate",new Date());
+    $('.selectDept ').html('全部')
     $(".deptList").css("display", "none")
     $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
-    $('.selectDept ').addClass('unSelect')
-    $('.selectLevel').html('选择病历等级')
+    // $('.selectDept ').addClass('unSelect')
+    $('.selectLevel').html('全部')
     $(".levelList").css("display", "none")
     $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
-    $('.selectLevel ').addClass('unSelect')
+    // $('.selectLevel ').addClass('unSelect')
     $("th[code]").removeClass("asc desc")
+    behosDateStart = $("#datepicker").val().trim()
+    behosDateEnd = $("#datepicker2").val().trim()
+    if(behosDateStart){
+        behosDateStart = behosDateStart.replace(/\//g,'-') + ' 00:00:00'
+    }
+    if(behosDateEnd){
+        behosDateEnd = behosDateEnd.replace(/\//g,'-') + ' 23:59:59'
+    }
+   
     getTabData(1)
 })
 function renderTab(data,hisId){
     let str = ``
     let hasSelectAll = true;
     if(data.length===0){
-      $('tbody').html(`<tr><td colspan="17" style="text-align: center;color: #aaa">
-          <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
-          <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-      </td></tr>`)
+      $('tbody').html(emptyBox())
       return;
     }
     for(let i = 0; i < data.length; i++){
@@ -172,6 +217,7 @@ function renderTab(data,hisId){
                 <td  class="textCenter">${item.bedCode || "-"}</td>
                 <td  class="textCenter">${item.behospitalDate&&item.behospitalDate.slice(0,10) || "-"}</td>
                 <td  class="textCenter">${item.leaveHospitalDate&&item.leaveHospitalDate.slice(0,10)|| "-"}</td>
+                <td  class="textCenter">${item.diagnose|| "-"}</td>
                 <td  class="textCenter">${item.behDoctorName   || "-"}</td>
                 <td  class="textCenter">${item.doctorName || "-"}</td>
                 <td  class="textCenter">${item.directorDoctorName || "-"}</td>
@@ -464,17 +510,26 @@ $(function() {
     initStatus: '请选择日期',
     isRTL: false};
     $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
-
+    let startDate = "", endDate=new Date()
+    let year = new Date().getFullYear()
+    let month = new Date().getMonth() + 1
+    if(statisticsType == '1'){
+        startDate = new Date(`${year}-${month}-01`)
+    }else if(statisticsType == '2'){
+        startDate = new Date(`${year}-01-01`)
+    } else {
+        startDate = "-1m"
+    }
     $( "#datepicker" ).datepicker({
         changeMonth: true,
         changeYear: true,
         dateFormat:"yy/mm/dd",
-    }).datepicker( "setDate", "-1m" );
+    }).datepicker( "setDate", startDate);
     $( "#datepicker2" ).datepicker({
         changeMonth: true,
         changeYear: true,
         dateFormat:"yy/mm/dd"
-    }).datepicker( "setDate", new Date());
+    }).datepicker( "setDate",endDate);
     $(".filter").click();   //初始查询
 });
 

+ 76 - 16
src/js/qcListDept.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/qcListDept.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./../resource/jquery-ui/jquery-ui.min.css');
 const iconCheck= require("./../images/icon_check.png")
@@ -15,13 +15,47 @@ const loadingImg = require("./../images/loading.gif")
 const arrowLeft= require("./../images/arrow_left.png")
 const arrowRight = require("./../images/arrow_right.png")
 
+
 $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+let srcUrl = $("#contentIframe",parent.document).attr("src")
+let statisticsType = getUrlArgObjectNew("dateType",srcUrl)||getUrlArgObjectNew("shijian",srcUrl) || ""
+let chengdu = getUrlArgObjectNew("chengdu",srcUrl)||""
+let deptIdPram = getUrlArgObjectNew("deptId",srcUrl)||""
+let deptNamePram = getUrlArgObjectNew("deptName",srcUrl)||""
+let docName = getUrlArgObjectNew("docName",srcUrl)||""
 let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,nameTemp = "",
   behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNameTemp="", doctorNum="", doctorNumTemp="",data_desc=["leave_hospital_date"],data_asc=[];
 //   $(".abnormalClear").click(function(){
 //     window.location.reload()
 // })
+
+console.log('docName',docName)
+if(chengdu){
+    levelTemp = chengdu
+    level = chengdu
+    $('.selectLevel').html(chengdu)
+    $(".levelList").css("display", "none")
+    $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+}
+if(docName){
+    doctorNameTemp = docName
+    doctorName = docName
+    $('.doctorInp').val(docName)
+}
+if(deptIdPram&&deptNamePram){
+    deptIdTemp = deptIdPram
+    deptId = deptIdPram
+    if(deptNamePram.length > 10){
+        $('.selectDept').html(deptNamePram.substring(0,8)+'...')
+    }else{
+        $('.selectDept').html(deptNamePram)
+    }
+    $('.selectDept ').attr('title',deptNamePram)
+    $(".deptList").css("display", "none")
+    $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+}
 $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
 $('.iconCalen').on("mouseenter", function(e){
     $(this).attr("src", iconCalenBlue)
@@ -59,7 +93,8 @@ function getTabData(activePage){
         doctorCode: doctorNum,
         leaveHosDateStart: behosDateStart, //1-单项否决 0-非
         leaveHosDateEnd: behosDateEnd, //0-未启用 1-启用
-        size: 15
+        size: 15,
+        statisticsType:statisticsType
     }
     post(api.qcListByDept,param).then(res =>{
         if(res.data.code == '0'){
@@ -111,9 +146,7 @@ $(".abnormalClear").on("click", function(e){
     tabList = []; 
     name = ""; 
     behospitalCode="";  
-    behosDateStart="";  
     level=""; 
-    behosDateEnd="";  
     scoreSum = 0; 
     nameTemp = "";  
     behospitalCodeTemp=""; 
@@ -131,17 +164,36 @@ $(".abnormalClear").on("click", function(e){
     $('.doctorInp').val('')
     $('.doctorNumInp').val('')
     $('.doctorInp').val('')
-    $('#datepicker').val('')
-    $('#datepicker2').val('')
-    $('.selectDept ').html('选择科室')
+   // $('#datepicker').val('')
+    // $('#datepicker2').val('')
+    //默认日期为近一个月
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd",
+    }).datepicker( "setDate", "-1m");
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    }).datepicker( "setDate",new Date());
+    $('.selectDept ').html('全部')
     $(".deptList").css("display", "none")
     $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
-    $('.selectDept ').addClass('unSelect')
-    $('.selectLevel').html('选择病历等级')
+    // $('.selectDept ').addClass('unSelect')
+    $('.selectLevel').html('全部')
     $(".levelList").css("display", "none")
     $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
-    $('.selectLevel ').addClass('unSelect')
+    // $('.selectLevel ').addClass('unSelect')
     $("th[code]").removeClass("asc desc")
+    behosDateStart = $("#datepicker").val().trim()
+    behosDateEnd = $("#datepicker2").val().trim()
+    if(behosDateStart){
+        behosDateStart = behosDateStart.replace(/\//g,'-') + ' 00:00:00'
+    }
+    if(behosDateEnd){
+        behosDateEnd = behosDateEnd.replace(/\//g,'-') + ' 23:59:59'
+    }
     getTabData(1)
 })
 $("th[code]").on("click",function(e){
@@ -164,10 +216,7 @@ function renderTab(data){
     let str = ``
     let hasSelectAll = true;
     if(data.length===0){
-      $('tbody').html(str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
-          <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
-          <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-      </td></tr>`)
+      $('tbody').html(str?str:emptyBox())
       return;
     }
     for(let i = 0; i < data.length; i++){
@@ -187,6 +236,7 @@ function renderTab(data){
                 <td  class="textCenter">${item.bedCode || "-"}</td>
                 <td  class="textCenter">${item.behospitalDate&&item.behospitalDate.slice(0,10) || "-"}</td>
                 <td  class="textCenter">${item.leaveHospitalDate&&item.leaveHospitalDate.slice(0,10)|| "-"}</td>
+                <td  class="textCenter">${item.diagnose|| "-"}</td>
                 <td  class="textCenter">${item.behDoctorName   || "-"}</td>
                 <td  class="textCenter">${item.doctorName || "-"}</td>
                 <td  class="textCenter">${item.directorDoctorName || "-"}</td>
@@ -463,16 +513,26 @@ $(function() {
     isRTL: false};
     $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
 
+    let startDate = "", endDate=new Date()
+    let year = new Date().getFullYear()
+    let month = new Date().getMonth() + 1
+    if(statisticsType == '1'){
+        startDate = new Date(`${year}-${month}-01`)
+    }else if(statisticsType == '2'){
+        startDate = new Date(`${year}-01-01`)
+    } else {
+        startDate = "-1m"
+    }
     $( "#datepicker" ).datepicker({
         changeMonth: true,
         changeYear: true,
         dateFormat:"yy/mm/dd",
-    }).datepicker( "setDate", "-1m" );
+    }).datepicker( "setDate", startDate);
     $( "#datepicker2" ).datepicker({
         changeMonth: true,
         changeYear: true,
         dateFormat:"yy/mm/dd"
-    }).datepicker( "setDate", new Date());
+    }).datepicker( "setDate",endDate);
     $(".filter").click();   //初始查询
 });
 

+ 75 - 16
src/js/qcListPerson.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/qcListPerson.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getUrlArgObject,getCookie} = require('./utils.js')
+const {post,getUrlArgObject,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./../resource/jquery-ui/jquery-ui.min.css');
 const iconCheck= require("./../images/icon_check.png")
@@ -23,9 +23,42 @@ $('.selectDoctor').html(doctorName_global)
 // })
 $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+let srcUrl = $("#contentIframe",parent.document).attr("src")
+let statisticsType = getUrlArgObjectNew("dateType",srcUrl)||getUrlArgObjectNew("shijian",srcUrl) || ""
+let chengdu = getUrlArgObjectNew("chengdu",srcUrl)||""
+let deptIdPram = getUrlArgObjectNew("deptId",srcUrl)||""
+let deptNamePram = getUrlArgObjectNew("deptName",srcUrl)||""
+let docName = getUrlArgObjectNew("docName",srcUrl)||""
+
 let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,nameTemp = "",
   behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName=doctorName_global, doctorNameTemp=doctorName_global,data_desc=["leave_hospital_date"],data_asc=[];
 
+
+if(chengdu){
+    levelTemp = chengdu
+    level = chengdu
+    $('.selectLevel').html(chengdu)
+    $(".levelList").css("display", "none")
+    $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+}
+if(docName){
+    doctorNameTemp = docName
+    doctorName = docName
+    $('.selectDoctor').html(docName)
+}
+if(deptIdPram&&deptNamePram){
+    deptIdTemp = deptIdPram
+    deptId = deptIdPram
+    if(deptNamePram.length > 10){
+        $('.selectDept').html(deptNamePram.substring(0,8)+'...')
+    }else{
+        $('.selectDept').html(deptNamePram)
+    }
+    $('.selectDept ').attr('title',deptNamePram)
+    $(".deptList").css("display", "none")
+    $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+}
 $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
 $('.iconCalen').on("mouseenter", function(e){
     $(this).attr("src", iconCalenBlue)
@@ -61,7 +94,8 @@ function getTabData(activePage){
         doctorName: doctorName,
         leaveHosDateStart: behosDateStart, //1-单项否决 0-非
         leaveHosDateEnd: behosDateEnd, //0-未启用 1-启用
-        size: 15
+        size: 15,
+        statisticsType:statisticsType
     }
     post(api.qcListByPerson,param).then(res =>{
         if(res.data.code == '0'){
@@ -111,9 +145,7 @@ $(".abnormalClear").on("click", function(e){
     tabList = []; 
     name = ""; 
     behospitalCode="";  
-    behosDateStart="";  
     level=""; 
-    behosDateEnd="";  
     scoreSum = 0; 
     nameTemp = "";  
     behospitalCodeTemp=""; 
@@ -131,17 +163,36 @@ $(".abnormalClear").on("click", function(e){
     $('.doctorInp').val('')
     $('.doctorNumInp').val('')
     $('.doctorInp').val('')
-    $('#datepicker').val('')
-    $('#datepicker2').val('')
-    $('.selectDept ').html('选择科室')
+    // $('#datepicker').val('')
+    // $('#datepicker2').val('')
+    //默认日期为近一个月
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd",
+    }).datepicker( "setDate", "-1m");
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    }).datepicker( "setDate",new Date());
+    $('.selectDept ').html('全部')
     $(".deptList").css("display", "none")
     $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
-    $('.selectDept ').addClass('unSelect')
-    $('.selectLevel').html('选择病历等级')
+    // $('.selectDept ').addClass('unSelect')
+    $('.selectLevel').html('全部')
     $(".levelList").css("display", "none")
     $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
-    $('.selectLevel ').addClass('unSelect')
+    // $('.selectLevel ').addClass('unSelect')
     $("th[code]").removeClass("asc desc")
+    behosDateStart = $("#datepicker").val().trim()
+    behosDateEnd = $("#datepicker2").val().trim()
+    if(behosDateStart){
+        behosDateStart = behosDateStart.replace(/\//g,'-') + ' 00:00:00'
+    }
+    if(behosDateEnd){
+        behosDateEnd = behosDateEnd.replace(/\//g,'-') + ' 23:59:59'
+    }
     getTabData(1)
 })
 $("th[code]").on("click",function(e){
@@ -164,10 +215,7 @@ function renderTab(data){
     let str = ``
     let hasSelectAll = true;
     if(data.length===0){
-        $('tbody').html(str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
-            <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
-            <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-        </td></tr>`)
+        $('tbody').html(str?str:emptyBox())
         return;
     }
     for(let i = 0; i < data.length; i++){
@@ -187,6 +235,7 @@ function renderTab(data){
                 <td  class="textCenter">${item.bedCode || "-"}</td>
                 <td  class="textCenter">${item.behospitalDate&&item.behospitalDate.slice(0,10) || "-"}</td>
                 <td  class="textCenter">${item.leaveHospitalDate&&item.leaveHospitalDate.slice(0,10)|| "-"}</td>
+                <td  class="textCenter">${item.diagnose|| "-"}</td>
                 <td  class="textCenter">${item.behDoctorName   || "-"}</td>
                 <td  class="textCenter">${item.doctorName || "-"}</td>
                 <td  class="textCenter">${item.directorDoctorName || "-"}</td>
@@ -459,16 +508,26 @@ $(function() {
     isRTL: false};
     $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
 
+    let startDate = "", endDate=new Date()
+    let year = new Date().getFullYear()
+    let month = new Date().getMonth() + 1
+    if(statisticsType == '1'){
+        startDate = new Date(`${year}-${month}-01`)
+    }else if(statisticsType == '2'){
+        startDate = new Date(`${year}-01-01`)
+    } else {
+        startDate = "-1m"
+    }
     $( "#datepicker" ).datepicker({
         changeMonth: true,
         changeYear: true,
         dateFormat:"yy/mm/dd",
-    }).datepicker( "setDate", "-1m" );
+    }).datepicker( "setDate", startDate);
     $( "#datepicker2" ).datepicker({
         changeMonth: true,
         changeYear: true,
         dateFormat:"yy/mm/dd"
-    }).datepicker( "setDate", new Date());
+    }).datepicker( "setDate",endDate);
     $(".filter").click();   //初始查询
 });
 

+ 180 - 64
src/js/qcScore.js

@@ -4,21 +4,22 @@ require('jquery-templates');
 require('./modal.js');
 const {post,getUrlArgObject,setBoxHeight,getCookie} = require('./utils.js');
 const {api} = require('./api.js');
-//本页全局变量
-let global_flawData = {};    //缺陷数据
-const global_id=getUrlArgObject("id");
-const global_age = getUrlArgObject("age");
-const global_code = getUrlArgObject("code");
-let global_activeTab=$(".sub-menu .page.active").attr("code");  //当前激活菜单项
-let global_modules ={};   //模板数据缓存
 window.document.title="质控评分-"+getUrlArgObject("name");
 
 $(function(){
-  //getSubMenu();
-  //initScoreItem();
-  //getRecordDetail();
-  getAllModules()
-  //getInfoModule(15);    //根据对应id获取模板
+//本页全局变量
+  let global_flawData = {};    //缺陷数据
+  const global_id=getUrlArgObject("id");
+  const global_age = getUrlArgObject("age");
+  const global_code = getUrlArgObject("code");
+  let global_activeTab=$(".sub-menu .page.active").attr("code");  //当前激活菜单项
+  let global_modules ={};   //模板数据缓存
+  let global_flaws=[];  //缺陷条目列表缓存
+  let global_selectedFlaw = {};    //新增时选中的条目信息
+  getAllModules();
+  $(".add-flaw").click(function(){
+    getQcCasesEntry();
+  });
 function initMenu(data){
   const menu=[{id:0,name:"缺陷总览",parentId: -1,sonMode: []},...(data||[])];
   //菜单数据填充
@@ -50,8 +51,10 @@ function initMenu(data){
   });
   //右侧内容切换
   $(".page").on("click",function(){
-    if($(this).attr("code")==="缺陷总览"){
-      $(".flaw-table").show();
+    const title = $(this).attr("code");
+    if(title==="缺陷总览"||title==="谈话告知书"||title==="知情同意书"){
+      $(".flaw-table .page-item").hide();
+      $(".flaw-table,.flaw-table .page-item[code="+title+"]").show();
     }else{
       $(".flaw-table").hide();
     }
@@ -97,31 +100,11 @@ function getRecordDetail(){
       initList(msg);
       initScoreItem(msg);
       global_flawData=msg;
-      /*let obj = JSON.parse(result.pageData)
-      
-      infoNotNull(obj,'查房记录')&&wardRound(obj['查房记录'],'查房记录')
-      infoNotNull(obj,'术前讨论、术前小结')&&preoperation(obj['术前讨论、术前小结'],'术前讨论、术前小结')
-      infoNotNull(obj,'阶段小结')&&summary(obj['阶段小结'],'阶段小结')
-      infoNotNull(obj,'手术记录')&&operationRecord(obj['手术记录'],'手术记录')
-      infoNotNull(obj,'会诊申请单')&&applicationForm(obj['会诊申请单'],'会诊申请单')
-      infoNotNull(obj,'会诊结果单')&&resultForm(obj['会诊结果单'],'会诊结果单')
-      infoNotNull(obj,'会诊记录')&&consultationNote(obj['会诊记录'],'会诊记录')
-      infoNotNull(obj,'疑难病例讨论记录')&&difficultRecord(obj['疑难病例讨论记录'],'疑难病例讨论记录')
-      infoNotNull(obj,'病危通知书')&&illnessNotice(obj['病危通知书'],'病危通知书')
-      infoNotNull(obj,'病理检验送检单')&&pathologicTest(obj['病理检验送检单'],'病理检验送检单')
-      infoNotNull(obj,'抢救记录')&&rescueRecord(obj['抢救记录'],'抢救记录')
-      infoNotNull(obj,'输血后效果评价')&&transfusionEvaluate(obj['输血后效果评价'],'输血后效果评价')*/
       setBoxHeight();
     }
   });
 }
-//判断模块内容是否不为空
-function infoNotNull(obj,moduleName){
-  if( obj[moduleName]&&obj[moduleName].length > 0 &&Object.keys(obj[moduleName][0]).length !== 0 ){
-    return true
-  }
-  return false
-}
+
 //填充患者信息
 function initPatientInfo(data){
   const obj=Object.assign({},data,{age:!global_age||global_age=="null"?"-":global_age});
@@ -132,29 +115,33 @@ function initContent(data){
   const obj = JSON.parse(data);
   let info=[];
   let hml='',moduleId='';
+  formatSpecPage(obj["谈话告知书"],"谈话告知书");
+  formatSpecPage(obj["知情同意书"],"知情同意书");
   for(let k in obj){
-    if(k==="病案首页"){   //病案首页不使用动态模板
-      info=formatInfoData(k,obj[k][0]);
-      $("#indexTmpl").tmpl(info).appendTo("#contentInfo");
+    if(k==="谈话告知书"||k==="知情同意书"){
       continue;
     }
     for(let i in obj[k]){
       info=formatInfoData(k,obj[k][i]);
       moduleId=info.mode_id;
       if(global_modules[moduleId]){
-        hml=initModuleData(moduleId,obj[k].length);
+        hml=initModuleData(moduleId,obj[k]);
         $.tmpl(hml,info).appendTo("#contentInfo");
-      };
+      }else{
+        const icon=require("../images/empty1.png");
+        const sid=moduleId?"("+moduleId+")":"";
+        const emptyStr=`<div class="empty">
+            <img src="${icon}" alt="空"/>
+            <p>暂无信息~</p>
+        </div>`;
+        if(!$(".content-item[code="+k+"] .empty").length){  //显示一条空提示即可
+          hml='<div class="content-item" code="'+k+'">' +
+            '<h2 class="title">'+k+sid+'</h2>'+emptyStr+'</div>';
+          $.tmpl(hml,{}).appendTo("#contentInfo");
+        }
+      }
     }
   }
-  if(obj["病案首页"]&&obj["病案首页"][0]["出院诊断"]){
-    const diag = JSON.parse(obj["病案首页"][0]["出院诊断"]);
-    $("#tableTmpl").tmpl({k:"出院诊断",data:diag}).appendTo("#diagTable");
-  }
-  if(obj["病案首页"]&&obj["病案首页"][0]["手术信息"]){
-    const diag = JSON.parse(obj["病案首页"][0]["手术信息"]);
-    $("#tableTmpl").tmpl({k:"手术信息",data:diag}).appendTo("#surgeryTable");
-  }
   $(".content-item[code="+global_activeTab+"]").show();
   //console.log(obj)
 }
@@ -172,21 +159,15 @@ function formatInfoData(k,data){
   return Object.assign({title:k},obj);
 }
 
-/*function formatData(data,title){
-  if(!keyMaps[title]){
-    return data;
+//知情同意书、谈话告知书
+  function formatSpecPage(data,title){
+    $("#appointBookTmpl").tmpl({title,data}).appendTo(".flaw-table");
   }
-  const keyArr=Object.keys(keyMaps[title]);
-  let obj={};
-  keyArr.map((k)=>{
-    obj[keyMaps[title][k]]=data[0][k]||"";
-  });
-  const obj1=Object.assign({},obj,data[0]);
-  return [obj1];
-}*/
 
 function initList(data){
-  $("#flawTotalList").tmpl({data:data}).appendTo(".flaw-table");
+  //$("#flawTotalList").tmpl({title:"缺陷总览",data:data}).appendTo(".flaw-table");
+  formatSpecPage(data,"缺陷总览");
+  $(".flaw-table .page-item[code="+global_activeTab+"]").show();
   $(".slide-up").off("click").on("click",function(){
     const name = $(this).text();
     $("tr[code='"+name+"']").slideToggle();
@@ -270,6 +251,33 @@ function editScore(info){
     }
   });
 }
+//添加评分项
+function addScore(info){
+  const optResultAlgVO = {
+    "casesEntryId": info.casesEntryId,
+    "casesId": info.casesId,
+    "casesScore": info.caseScore,
+    "code": info.code || "",
+    "id": info.id || "",
+    "info":info.info || "",
+    "isReject": info.isReject,
+    "msg": info.msg || "",
+    "score": info.score
+  }
+  const param={
+    "behospitalCode": global_id,
+    "optResultAlgVO": optResultAlgVO
+  };
+  post(api.addScore,param).then(function(res){
+    if(res.data.code==='0'){
+      $("#delModal").hide();
+      updateFlaws(res.data.data);
+      $.alerModal({"message":"添加成功",type:"tip",time:'1000'});
+    }
+  });
+}
+
+
 //显示删除/修改弹窗
 function showModal(flag,code,i){
   $("#delModal .modal-body").html("");
@@ -279,7 +287,7 @@ function showModal(flag,code,i){
   $("#delModal .confirm").off("click");
   $("#qcScore,#qcMsg").off("input");
   const flawsList = formatFlawKeys(global_flawData);
-  const info = flawsList[global_activeTab][i];
+  const info = flawsList[global_activeTab]&&flawsList[global_activeTab][i];
   if(flag==='0'){   //修改
     $("#delModal .title").text("修改");
     $("#delModal .confirm").text("保存");
@@ -297,6 +305,7 @@ function showModal(flag,code,i){
     //提示信息输入验证
     $("#qcMsg").on("input",function(){
       const val=$(this).val();
+      $(this).attr("title",val)
       if(val.trim()){
         $(".edit-box .warning").hide();
       }else{
@@ -311,6 +320,47 @@ function showModal(flag,code,i){
       const obj = Object.assign({},info,{msg:$("#delModal #qcMsg").val(),score:$("#delModal #qcScore").val()});
       editScore(obj);
     });
+  }else if(flag==='2'){   //新增
+    $("#delModal .title").text("新增");
+    $("#delModal .confirm").text("保存");
+    $("#addFlawTmpl").tmpl().appendTo("#delModal .modal-body");
+    $("#flawDropTmpl").tmpl({info:code}).appendTo("#delModal .modal-body ul");
+    //分数输入验证
+    $("#addQcScore").on("input",function(){
+      const val=$(this).val();
+      if(/^[0-9]\d*$|^[0-9]\d*(.\d)?$/.test(val) && val <= 100){
+        $(".add-box .warning").hide();
+      }else{
+        $(".add-box .warning .red").text("支持≥0且≤100的数字输入,最多保留小数点后1位~");
+        $(".add-box .warning").show();
+      }
+    });
+    //提示信息输入验证
+    $("#addQcMsg").on("input",function(){
+      const val=$(this).val();
+      $(this).attr("title",val)
+      if(val.trim()){
+        $(".add-box .warning").hide();
+      }else{
+        $(".add-box .warning .red").text("提示信息不能为空~");
+        $(".add-box .warning").show();
+      }
+    });
+    $("#delModal .confirm").click(function(){
+      if(!$(".flaw-drop-input").attr("code")){
+        $(".add-box .warning .red").text("请选择质控条目~");
+        $(".add-box .warning").show();
+        return;
+      }
+      const msg=$("#delModal #addQcMsg").val();
+      const score=Number($("#delModal #addQcScore").val());
+      // if($(".add-box .warning").is(":visible")||!msg.trim()||!score){
+      //   return;
+      // }
+      // console.log($(".flaw-drop-input")[0],9999999)
+      const obj = Object.assign({},global_selectedFlaw,{msg,score});
+      addScore(obj);
+    });
   }else{
     $("#delModal .title").text("删除评分");
     $("#delModal .confirm").text("确定");
@@ -328,6 +378,56 @@ function formatFlawKeys(data){
     }
     return obj;
   }
+  //获取缺陷条目下拉列表
+  function getQcCasesEntry(name){
+  const id=$("#subMenu [code="+global_activeTab+"]").attr("mode");
+    const param = {
+      'behospitalCode':global_id,
+      'entryName':name||"",
+      'modeId':id
+    };
+    post(api.findQcCasesEntry,param).then(function(res){
+      if(res.data.code==='0'){
+        const data = res.data.data;
+        if(name){
+          global_flaws=data;
+          $("#delModal .modal-body ul").html("");
+          $("#flawDropTmpl").tmpl({info:data}).appendTo("#delModal .modal-body ul");
+        }else{
+          global_flaws=data;
+          if($("#delModal").css("display") == "block"){
+            $("#flawDropTmpl").tmpl({info:data}).appendTo("#delModal .modal-body ul");
+            return
+          }
+          showModal('2',data);
+        }
+      }
+    });
+  }
+//增加条目弹窗元素事件
+  $("body").on("click",".add-box .flaw-drop-input",function(){
+    $(".add-box .drop-box").addClass("show");
+  });
+  $("body").on("blur",".add-box .flaw-drop-input",function(){
+    setTimeout(function(){
+      $(".add-box .drop-box").removeClass("show");
+    },300)
+  });
+  $("body").on("input",".add-box .flaw-drop-input",function(){
+    $(this).attr({"code":"","title":$(this).val().trim()});
+    getQcCasesEntry($(this).val().trim());
+  });
+  $("body").on("click",".add-box .drop-box li",function(){
+    const n = $(this).attr("idx");
+    const flaw=global_flaws[n];
+    const {score,msg,entryName,casesEntryId}=flaw;
+    global_selectedFlaw=flaw;
+    $(".flaw-drop-input").val(entryName).attr({"code":casesEntryId,"title":entryName});
+    $("#addQcMsg").val(msg).attr("title",msg);
+    $("#addQcScore").val(score);
+    $(".add-box .warning").hide();
+    $(".add-box .drop-box").removeClass("show");
+  });
 
 //更新缺陷列表
   function updateFlaws(info){
@@ -373,7 +473,8 @@ function formatFlawKeys(data){
   }
 
 //初始化模板
-  function initModuleData(mid,n){
+  function initModuleData(mid,obj){
+    const n = obj.length;
     const module=global_modules[mid].moduleDetail;
     const key = global_modules[mid].modeName.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g,'');
     let hml = '<div class="content-item" code="'+key+'">' +
@@ -387,7 +488,7 @@ function formatFlawKeys(data){
         const {tagType} = detal;
         switch (tagType) {
           case 1:
-            hml = hml + simpleStructure(detal);
+            hml = hml + simpleStructure(detal,obj);
             break;
           case 4:
             hml = hml + combineStructure(detal);
@@ -402,8 +503,23 @@ function formatFlawKeys(data){
   }
 
   //基础类型结构生成
-  function simpleStructure(data){
+  function simpleStructure(data,obj){
     const {name, val,monoLine,addLine,position,bold,retract,id} = data;
+    if(name==="手术记录表格-1"){
+      const value = val.replace("【","").replace("】","");
+      const diag = obj[0][value]?JSON.parse(obj[0][value]):"";
+      let thml=`<div class="cont" style="width: 100%;" id="anchor${id}">`;
+      thml+=$("#tableTmpl").tmpl({k:"手术信息",data:diag})[0].outerHTML+"</div>";
+      return thml;
+    }
+    if(name==="出院诊断表格-1"){
+      const value = val.replace("【","").replace("】","");
+      const diag = obj[0][value]?JSON.parse(obj[0][value]):"";
+
+      let thml=`<div class="cont" style="width: 100%;" id="anchor${id}">`;
+      thml+=$("#tableTmpl").tmpl({k:"出院诊断",data:diag})[0].outerHTML+"</div>";
+      return thml;
+    }
     const posClass = position===1?'text-left':'';
     const boldClass = bold===1?'text-bold':'';
     const retractClass = retract===1?'text-indent':'';

+ 45 - 13
src/js/quexianDetail.js

@@ -3,7 +3,7 @@ require("../css/quexianDetail.less");
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
 const switchIconOpen = require("./../images/btn_open.png")
 const switchIconClose = require("./../images/btn_close.png")
 const iconDown= require("./../images/arrow_down.png")
@@ -12,7 +12,7 @@ const arrowLeft= require("./../images/arrow_left.png")
 const arrowRight = require("./../images/arrow_right.png")
 
 
-let casesId="", name="", isReject ="2",deptName="", isUsed ="",casesIdTemp="", nameTemp="",casesIds="", isRejectTemp ="2", isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId=""
+let casesId="", name="", isReject ="2",deptName="", isUsed ="",casesIdTemp="", data_asc=[],data_desc=["casesName"],nameTemp="",casesIds="", isRejectTemp ="2", 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="下拉">`)
@@ -22,9 +22,10 @@ $(function(){
     dateChange()
     let srcUrl = $("#contentIframe",parent.document).attr("src")
     deptName = getUrlArgObjectNew("deptName",srcUrl)||""
+    deptId = deptIdTemp = getUrlArgObjectNew("chengdu",srcUrl)||""
     docName = getUrlArgObjectNew("docName",srcUrl)||""
     casesIds = getUrlArgObjectNew("casesId",srcUrl)||""
-    isReject= isRejectTemp= getUrlArgObjectNew("shijian",srcUrl)||""
+    isReject= isRejectTemp= getUrlArgObjectNew("shijian",srcUrl)||"2"
     if(isReject == 1){
         $(".monthYear .mon").css({
             backgroundColor:'#00A1FF',
@@ -42,7 +43,7 @@ $(function(){
             backgroundColor:'#fff'
         })
     }
-
+    $(".selectDepts").html(deptName)
     getTabData(1)//条目缺陷    
     from = getUrlArgObjectNew("from",srcUrl)||""
     if(from == 1){
@@ -53,7 +54,6 @@ $(function(){
         })
         $(".partTitle .consoleP").click(function(){
             focusMenuItem('YH-KSZR-BASYHGLZB_XQ')
-            console.log(999)
         })
     }else{
         $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台(科室) / </a><a class="consoleP" href="deptScoreDetail.html">各科室缺陷占比 / </a>缺陷详情`)
@@ -66,11 +66,25 @@ $(function(){
         })
     }
     $(".abnormalClear").click(function(){
-        name = ""
+        name =nameTemp= ""
+        deptIdTemp=deptId =''
+        $(".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) =>{
+    
+    })
+}
 function focusMenuItem(code){
     const ele = $(parent.document).find(".menu .page[code="+code+"]");
     const parEle = ele.parents(".list-1");
@@ -86,7 +100,7 @@ function bindDeptSelect(){
     $(document).on("click",'.deptItem',function(){
         const deptItemName = $(this).attr("data-name")
         const deptItemId = $(this).attr("data-id")
-        deptIdTemp =deptItemId
+        deptIdTemp=deptId =deptItemId
         if(deptItemName.length > 10){
             $('.selectDept').html(deptItemName.substring(0,8)+'...')
         }else{
@@ -122,10 +136,26 @@ function getDeptList(){
     $(".tiaomu .selectDept ").attr("data-id",deptList[0].deptName).find("i").html(deptList[0].deptName)
     for(let i = 0;i < deptList.length;i++){
         let tmp = deptList[i]
-        str += `<li class="deptItem ellipsis" title="${tmp.deptName}" data-id="${tmp.deptName}" data-name="${tmp.deptName}">${tmp.deptName}</li>`
+        str += `<li class="deptItem ellipsis" title="${tmp.name}" data-id="${tmp.name}" data-name="${tmp.name}">${tmp.name}</li>`
     }
-    $(".tiaomu .filterDropList").html(str)
+    $(".quexianDetail .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 param = {
         current:activePage,
@@ -133,7 +163,10 @@ function getTabData(activePage){
         name: name, //条目名
         doctorName:docName||"",
         deptName:deptName||"",
+        casesName:deptId||"",
         casesId:casesIds||"",
+        ascs:data_asc,
+        descs:data_desc,
         size: 15
     }
     post(api.entryCountGroupByEntryAndDeptPage,param).then(res =>{
@@ -257,16 +290,14 @@ function renderTab(data,activePage){
         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">${item.num}</td>
                 <td  class="textCenter">${item.percentStr}</td>
             </tr>
         `
     }
-    $('tbody').html(str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
-        <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
-        <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-    </td></tr>`)
+    $('tbody').html(str?str:emptyBox())
     bindEdit(data,activePage)
 }
 
@@ -510,4 +541,5 @@ $(document).on("click", function(){
     $(".selectModuleType .arrow").attr("src",iconDown)
     $(".selectReject .arrow").attr("src",iconDown)
     $(".selectUsed .arrow").attr("src",iconDown)
+    $(".deptList").css("display", "none")
 })

+ 50 - 16
src/js/quexianDetailControl.js

@@ -3,7 +3,7 @@ require("../css/quexianDetailControl.less");
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
 const switchIconOpen = require("./../images/btn_open.png")
 const switchIconClose = require("./../images/btn_close.png")
 const iconDown= require("./../images/arrow_down.png")
@@ -12,18 +12,19 @@ const arrowLeft= require("./../images/arrow_left.png")
 const arrowRight = require("./../images/arrow_right.png")
 
 
-let casesId="", name="", isReject ="2",deptName="", isUsed ="",casesIdTemp="",casesIds="", nameTemp="", isRejectTemp ="2", isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId=""
+let casesId="", name="", isReject ="2",deptName="",data_asc=[],data_desc=["casesName"], isUsed ="",casesIdTemp="",casesIds="", nameTemp="", isRejectTemp ="2", 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 deptList = JSON.parse(getCookie("deptList"))||[]
+let deptList = []
 $(function(){
     dateChange()
     let srcUrl = $("#contentIframe",parent.document).attr("src")
     deptName = getUrlArgObjectNew("deptName",srcUrl)||""
+    deptId = deptIdTemp = getUrlArgObjectNew("caseName",srcUrl)||""
     from = getUrlArgObjectNew("from",srcUrl)||""
-    isReject = isRejectTemp = getUrlArgObjectNew("shijian",srcUrl)||""
+    isReject = isRejectTemp = getUrlArgObjectNew("shijian",srcUrl)||"2"
     casesIds = getUrlArgObjectNew("casesId",srcUrl)||""
     if(isReject == 1){
         $(".monthYear .mon").css({
@@ -42,7 +43,7 @@ $(function(){
             backgroundColor:'#fff'
         })
     }
-
+    $(".selectDepts").html(deptName)
     if(from == 1){
         $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="partDetailControl.html">病案首页合格率占比 / </a>缺陷详情`)
         $(".partTitle .consoleD").click(function(){
@@ -59,18 +60,33 @@ $(function(){
     getTabData(1)//条目缺陷
     
     $(".abnormalClear").click(function(){
-        name = ""
+        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 deptItemName = $(this).attr("data-name")||""
         const deptItemId = $(this).attr("data-id")
-        deptIdTemp =deptItemId
+        deptIdTemp = deptId = deptItemId
         if(deptItemName.length > 10){
             $('.selectDept').html(deptItemName.substring(0,8)+'...')
         }else{
@@ -99,26 +115,45 @@ $('.selectDept').on("click", function(e){
 })
 
 //科室处理
-getDeptList()
+
 function getDeptList(){
     let str = ``
     if(deptList.length<=0)return
-    $(".tiaomu .selectDept ").attr("data-id",deptList[0].deptName).find("i").html(deptList[0].deptName)
     for(let i = 0;i < deptList.length;i++){
         let tmp = deptList[i]
-        str += `<li class="deptItem ellipsis" title="${tmp.deptName}" data-id="${tmp.deptName}" data-name="${tmp.deptName}">${tmp.deptName}</li>`
+        str += `<li class="deptItem ellipsis" title="${tmp.name}" data-id="${tmp.name}" data-name="${tmp.name}">${tmp.name}</li>`
     }
-    $(".tiaomu .filterDropList").html(str)
+    $(".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 param = {
         current:activePage,
         type: isReject,
         name: name, //条目名
         doctorName:"",
+        casesName:deptId,
         deptName:deptName||"",
         casesId:casesIds||"",
         globalType:1,
+        ascs:data_asc,
+        descs:data_desc,
         size: 15
     }
     post(api.entryCountGroupByEntryPage,param).then(res =>{
@@ -242,16 +277,14 @@ function renderTab(data,activePage){
         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">${item.num}</td>
                 <td  class="textCenter">${item.percentStr}</td>
             </tr>
         `
     }
-    $('tbody').html(str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
-        <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
-        <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-    </td></tr>`)
+    $('tbody').html(str?str:emptyBox())
     bindEdit(data,activePage)
 }
 
@@ -495,4 +528,5 @@ $(document).on("click", function(){
     $(".selectModuleType .arrow").attr("src",iconDown)
     $(".selectReject .arrow").attr("src",iconDown)
     $(".selectUsed .arrow").attr("src",iconDown)
+    $(".deptList").css("display", "none")
 })

+ 528 - 0
src/js/quexianDetailControlHome.js

@@ -0,0 +1,528 @@
+const $ = require('jquery');
+require("../css/quexianDetailControlHome.less");
+require('./../resource/jquery-ui/jquery-ui.min.js');
+require('./modal.js');
+const {api} = require('./api.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox} = 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")
+
+
+let casesId="", name="", isReject ="2",deptName="",data_asc=[],data_desc=["casesName"], isUsed ="",casesIdTemp="",casesIds="", nameTemp="", isRejectTemp ="2", 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 deptList = []
+$(function(){
+    dateChange()
+    let srcUrl = $("#contentIframe",parent.document).attr("src")
+    deptName = getUrlArgObjectNew("deptName",srcUrl)||""
+    deptId = deptIdTemp = getUrlArgObjectNew("caseName",srcUrl)||""
+    from = getUrlArgObjectNew("from",srcUrl)||""
+    isReject = isRejectTemp = getUrlArgObjectNew("shijian",srcUrl)||"2"
+    casesIds = getUrlArgObjectNew("casesId",srcUrl)||""
+    $('.selectDept').html(deptName.substring(0,11)+'...').attr("title",deptName)
+    if(isReject == 1){
+        $(".monthYear .mon").css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+    }else{
+        $(".monthYear .year").css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+    }
+    if(from == 1){
+        $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="partDetailControl.html">病案首页合格率占比 / </a>缺陷详情`)
+        $(".partTitle .consoleD").click(function(){
+            $(".menu .page",parent.document).removeClass("active").eq(0).addClass("active");
+            $(".container",parent.document).addClass("console-cont");
+        })
+    }else{
+        $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="deptScoreDetailControl.html">各科室缺陷占比 / </a>缺陷详情`)
+        $(".partTitle .consoleD").click(function(){
+            $(".menu .page",parent.document).removeClass("active").eq(0).addClass("active");
+            $(".container",parent.document).addClass("console-cont");
+        })
+    }
+    getTabData(1)//条目缺陷
+    
+    $(".abnormalClear").click(function(){
+        name = ""
+        $(".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 param = {
+        current:activePage,
+        type: isReject,
+        name: name, //条目名
+        doctorName:"",
+        casesName:deptId,
+        deptName:deptName||"",
+        casesId:casesIds||"",
+        globalType:1,
+        ascs:data_asc,
+        descs:data_desc,
+        size: 15
+    }
+    post(api.entryCountGroupByEntryPage,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 = 1
+        isRejectTemp = 1
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        isReject = 2
+        isRejectTemp = 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>${item.name}</td>
+                <td class="textCenter">${item.num}</td>
+                <td  class="textCenter">${item.percentStr}</td>
+            </tr>
+        `
+    }
+    $('tbody').html(str?str:emptyBox())
+    bindEdit(data,activePage)
+}
+
+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, fatherWrapper: $("#mainBox", parent.document)});
+            getTabData(activePage)
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+
+//获取模块类型
+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)
+})

+ 540 - 0
src/js/quexianDetailHome.js

@@ -0,0 +1,540 @@
+const $ = require('jquery');
+require("../css/quexianDetailHome.less");
+require('./../resource/jquery-ui/jquery-ui.min.js');
+require('./modal.js');
+const {api} = require('./api.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox} = 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")
+
+
+let casesId="", name="", isReject ="2",deptName="", isUsed ="",casesIdTemp="", data_asc=[],data_desc=["casesName"],nameTemp="",casesIds="", isRejectTemp ="2", 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 deptList = JSON.parse(getCookie("deptList"))||[]
+$(function(){
+    dateChange()
+    let srcUrl = $("#contentIframe",parent.document).attr("src")
+    deptName = getUrlArgObjectNew("deptName",srcUrl)||""
+    deptId = deptIdTemp = getUrlArgObjectNew("chengdu",srcUrl)||""
+    docName = getUrlArgObjectNew("docName",srcUrl)||""
+    casesIds = getUrlArgObjectNew("casesId",srcUrl)||""
+    isReject= isRejectTemp= getUrlArgObjectNew("shijian",srcUrl)||"2"
+    if(isReject == 1){
+        $(".monthYear .mon").css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+    }else{
+        $(".monthYear .year").css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+    }
+    getTabData(1)//条目缺陷    
+    from = getUrlArgObjectNew("from",srcUrl)||""
+    if(from == 1){
+        $(".partTitle .titlePic ").html(`<a class="consoleD" href="deptConsole.html">控制台(科室) / </a><a class="consoleP" href="partDetail.html">病案首页合格率占比 / </a>缺陷详情`)
+        $(".partTitle .consoleD").click(function(){
+            focusMenuItem('YH-KZTKS')
+            $(".container",parent.document).addClass("console-cont");
+        })
+        $(".partTitle .consoleP").click(function(){
+            focusMenuItem('YH-KSZR-BASYHGLZB_XQ')
+        })
+    }else{
+        $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台(科室) / </a><a class="consoleP" href="deptScoreDetail.html">各科室缺陷占比 / </a>缺陷详情`)
+        $(".partTitle .consoleD").click(function(){
+            focusMenuItem('YH-KZT')
+            $(".container",parent.document).addClass("console-cont");
+        })
+        $(".partTitle .consoleP").click(function(){
+            focusMenuItem('YH-KSZR-KSQXZB_XQ')
+        })
+    }
+    $(".abnormalClear").click(function(){
+        name = ""
+        $(".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) =>{
+    
+    })
+}
+function focusMenuItem(code){
+    const ele = $(parent.document).find(".menu .page[code="+code+"]");
+    const parEle = ele.parents(".list-1");
+    if(!parEle.is(".list-1-show")){
+      parEle.click();
+    }
+    //console.log($(parent.document).find(".menu .page[code='YH-ZKK-GMKQXZB_XQ']"))
+    ele.click();
+  }
+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)
+    }
+})
+
+//科室处理
+getDeptList()
+function getDeptList(){
+    let str = ``
+    if(deptList.length<=0)return
+    $(".tiaomu .selectDept ").attr("data-id",deptList[0].deptName).find("i").html(deptList[0].deptName)
+    for(let i = 0;i < deptList.length;i++){
+        let tmp = deptList[i]
+        str += `<li class="deptItem ellipsis" title="${tmp.name}" data-id="${tmp.name}" data-name="${tmp.name}">${tmp.name}</li>`
+    }
+    $(".quexianDetail .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 param = {
+        current:activePage,
+        type: isReject,
+        name: name, //条目名
+        doctorName:docName||"",
+        deptName:deptName||"",
+        casesName:deptId||"",
+        casesId:casesIds||"",
+        ascs:data_asc,
+        descs:data_desc,
+        size: 15
+    }
+    post(api.entryCountGroupByEntryAndDeptPage,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 = 1
+        isRejectTemp = 1
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        isReject = 2
+        isRejectTemp = 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>${item.name}</td>
+                <td class="textCenter">${item.num}</td>
+                <td  class="textCenter">${item.percentStr}</td>
+            </tr>
+        `
+    }
+    $('tbody').html(str?str:emptyBox())
+    bindEdit(data,activePage)
+}
+
+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, fatherWrapper: $("#mainBox", parent.document)});
+            getTabData(activePage)
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+
+//获取模块类型
+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)
+})

+ 2 - 5
src/js/quexianXQ.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/quexianXQ.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie} = require('./utils.js')
+const {post,getCookie,emptyBox} = require('./utils.js')
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./../resource/jquery-ui/jquery-ui.min.css');
 const iconCheck= require("./../images/icon_check.png")
@@ -126,10 +126,7 @@ function renderTab(data,hisId,activePage){
             </tr>
         `
     }
-    $('tbody').html(str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
-        <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
-        <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-    </td></tr>`)
+    $('tbody').html(str?str:emptyBox())
     bindScoreDetail(hisId)
 }
 

+ 4 - 7
src/js/tiaomu.js

@@ -3,7 +3,7 @@ require("../css/tiaomu.less");
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
 const switchIconOpen = require("./../images/btn_open.png")
 const switchIconClose = require("./../images/btn_close.png")
 const iconDown= require("./../images/arrow_down.png")
@@ -60,7 +60,7 @@ $(function(){
     })
     $(".abnormalClear").click(function(){
         // window.location.reload()
-        deptId = deptList[0].deptName
+        deptId =deptIdTemp= deptList[0].deptName
         name = ""
         $(".patientNumInp").val("")
         $(".selectDept").html(deptId).attr({
@@ -140,7 +140,7 @@ function getTabData(activePage){
         size: 15
     }
     // console.log(isReject)
-    post(from == 1?api.entryCountGroupByEntryPage:api.entryCountGroupByEntryAndDeptPage,param).then(res =>{
+    post(from == 1?api.entryCountGroupByEntryPage:api.entryGroupByEntryAndDeptInnerPage,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data.records
             const totalPage = res.data.data.pages
@@ -292,10 +292,7 @@ function renderTab(data,activePage){
             </tr>
         `
     }
-    $('tbody').html(str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
-        <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
-        <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-    </td></tr>`)
+    $('tbody').html(str?str:emptyBox())
     bindEdit(data,activePage)
 }
 

+ 3 - 6
src/js/tiaomuControl.js

@@ -3,7 +3,7 @@ require("../css/tiaomu.less");
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
 const switchIconOpen = require("./../images/btn_open.png")
 const switchIconClose = require("./../images/btn_close.png")
 const iconDown= require("./../images/arrow_down.png")
@@ -111,7 +111,7 @@ function getTabData(activePage){
         size: 15
     }
     // console.log(isReject)
-    post(from == 1?api.entryCountGroupByEntryPage:api.entryCountGroupByEntryAndDeptPage,param).then(res =>{
+    post(from == 1?api.entryGroupByEntryInnerPage:api.entryCountGroupByEntryAndDeptPage,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data.records
             const totalPage = res.data.data.pages
@@ -263,10 +263,7 @@ function renderTab(data,activePage){
             </tr>
         `
     }
-    $('tbody').html(str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
-        <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
-        <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-    </td></tr>`)
+    $('tbody').html(str?str:emptyBox())
     bindEdit(data,activePage)
 }
 

+ 2 - 5
src/js/userManager.js

@@ -3,7 +3,7 @@ require("../css/itemManager.less");
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./modal.js');
 const {api} = require('./api.js')
-const {post} = require('./utils.js')
+const {post,emptyBox} = require('./utils.js')
 const switchIconOpen = require("./../images/btn_open.png")
 const switchIconClose = require("./../images/btn_close.png")
 const iconDown= require("./../images/arrow_down.png")
@@ -122,10 +122,7 @@ function renderTab(data,activePage){
             </tr>
         `
     }
-    $('tbody').html(str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
-        <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
-        <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-    </td></tr>`)
+    $('tbody').html(str?str:emptyBox())
     bindEdit(data,activePage)
 }
 

+ 21 - 3
src/js/utils.js

@@ -33,6 +33,7 @@ const pageMap={
   "YH-ZKK-BASYHGLZB_XQ":'partDetailControl.html',
   "YH-KSZR-BASYHGLZB_XQ":'partDetail.html',
 
+  "YH-JCSJWH-ZKLXWH":'assertType.html',
 };
 
 //重写assign方法
@@ -169,8 +170,8 @@ $(".modal .close").click(function(){
 //计算容器高度
 function setBoxHeight(){
   const ht=window.innerHeight;
-  $(".content-box,.flaw-table").height((ht-75)+'px');
-  $(".content-ht").height((ht-140)+"px");
+  $(".content-box,.flaw-table").height((ht-55)+'px');
+  $(".content-ht").height((ht-120)+"px");
 }
 setBoxHeight();
 $(window).resize(function(){
@@ -195,6 +196,21 @@ function focusMenuItem(code){
   //console.log($(parent.document).find(".menu .page[code='YH-ZKK-GMKQXZB_XQ']"))
   ele.click();
 }
+function emptyBox(name){
+  let str = `<tr><td colspan="18" style="text-align: center;color: #aaa">
+  <img style="margin-top:50px;width:100px;" src="${require('../images/empty1.png')}" />
+  <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">${name||'暂无数据~'}</p>
+  </td></tr>`
+  return str
+}
+function picEmptyData(dom,str){
+  let empty = `<div class="emptyBoxHome">
+      <img src="${require('../images/emptyHome.png')}">
+      <p>${str||"暂无数据~"}</p>
+  </div>
+  `
+  $(dom).css({"position":"relative","display":"block"}).html(empty)
+}
 module.exports = {
   pageMap,
   post,
@@ -206,5 +222,7 @@ module.exports = {
   delCookie,
   setBoxHeight,
   hasData,
-  focusMenuItem
+  focusMenuItem,
+  emptyBox,
+  picEmptyData
 };

+ 58 - 2
webpack.config.js

@@ -6,8 +6,8 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin');
 const CopyWebpackPlugin = require('copy-webpack-plugin');
 const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
 const webpack = require('webpack');
-const proxyHost = "http://192.168.2.236:5858";
-// const proxyHost = "http://192.168.2.241:5858";
+// const proxyHost = "http://192.168.2.236:5858";
+const proxyHost = "http://192.168.2.241:5858";
 // const proxyHost = "http://192.168.3.117:5858";//铁钢
 // const proxyHost = "http://192.168.3.113:5858";//王峰
 module.exports = {
@@ -37,8 +37,12 @@ module.exports = {
     quexianXQ: path.resolve(__dirname, 'src/js', 'quexianXQ.js'),
     quexianDetail: path.resolve(__dirname, 'src/js', 'quexianDetail.js'),
     quexianDetailControl: path.resolve(__dirname, 'src/js', 'quexianDetailControl.js'),
+    quexianDetailHome: path.resolve(__dirname, 'src/js', 'quexianDetailHome.js'),
+    quexianDetailControlHome: path.resolve(__dirname, 'src/js', 'quexianDetailControlHome.js'),
     mukuaiControl: path.resolve(__dirname, 'src/js', 'mukuaiControl.js'),
     tiaomuControl: path.resolve(__dirname, 'src/js', 'tiaomuControl.js'),
+    assertType: path.resolve(__dirname, 'src/js', 'assertType.js'),
+    assertTypeDetail: path.resolve(__dirname, 'src/js', 'assertTypeDetail.js'),
     vendor: 'lodash'// 多个页面所需的公共库文件,防止重复打包带入
   },
   output: {
@@ -90,6 +94,32 @@ module.exports = {
         collapseWhitespace: true //删除空白符与换行符
       }
     }),
+    new HtmlWebpackPlugin({
+      title: 'assertTypeDetail.html',
+      template: path.resolve(__dirname, 'src/html', 'assertTypeDetail.html'),
+      filename: 'assertTypeDetail.html',
+      chunks: ['assertTypeDetail', 'vendor', 'common'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
+    new HtmlWebpackPlugin({
+      title: 'assertType.html',
+      template: path.resolve(__dirname, 'src/html', 'assertType.html'),
+      filename: 'assertType.html',
+      chunks: ['assertType', 'vendor', 'common'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
     new HtmlWebpackPlugin({
       title: 'mukuaiControl.html',
       template: path.resolve(__dirname, 'src/html', 'mukuaiControl.html'),
@@ -116,6 +146,19 @@ module.exports = {
         collapseWhitespace: true //删除空白符与换行符
       }
     }),
+    new HtmlWebpackPlugin({
+      title: 'quexianDetailHome.html',
+      template: path.resolve(__dirname, 'src/html', 'quexianDetailHome.html'),
+      filename: 'quexianDetailHome.html',
+      chunks: ['quexianDetailHome', 'vendor', 'common'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
     new HtmlWebpackPlugin({
       title: 'quexianDetailControl.html',
       template: path.resolve(__dirname, 'src/html', 'quexianDetailControl.html'),
@@ -129,6 +172,19 @@ module.exports = {
         collapseWhitespace: true //删除空白符与换行符
       }
     }),
+    new HtmlWebpackPlugin({
+      title: 'quexianDetailControlHome.html',
+      template: path.resolve(__dirname, 'src/html', 'quexianDetailControlHome.html'),
+      filename: 'quexianDetailControlHome.html',
+      chunks: ['quexianDetailControlHome', 'vendor', 'common'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
     new HtmlWebpackPlugin({
       title: 'quexianXQ.html',
       template: path.resolve(__dirname, 'src/html', 'quexianXQ.html'),