Bläddra i källkod

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

zhouna 5 år sedan
förälder
incheckning
242725757d
74 ändrade filer med 2818 tillägg och 403 borttagningar
  1. 1 1
      package.json
  2. 3 4
      src/css/abnormal.less
  3. 3 4
      src/css/assertType.less
  4. 2 3
      src/css/assertTypeDetail.less
  5. 13 1
      src/css/common.less
  6. 11 1
      src/css/console.less
  7. 3 4
      src/css/dayDetail.less
  8. 12 1
      src/css/deptConsole.less
  9. 3 4
      src/css/deptScoreDetail.less
  10. 3 2
      src/css/deptScoreDetailControl.less
  11. 369 0
      src/css/deptScoreDetailControlLevel.less
  12. 80 18
      src/css/index.less
  13. 3 3
      src/css/itemManager.less
  14. 3 3
      src/css/jiaji.less
  15. 2 0
      src/css/login.less
  16. 5 2
      src/css/moduleManager.less
  17. 24 4
      src/css/mukuai.less
  18. 3 4
      src/css/partDetail.less
  19. 3 4
      src/css/partDetailControl.less
  20. 3 4
      src/css/payDetail.less
  21. 24 6
      src/css/qcList.less
  22. 24 6
      src/css/qcListDept.less
  23. 24 6
      src/css/qcListPerson.less
  24. 149 17
      src/css/qcScore.less
  25. 1 0
      src/css/quexianDetailControlHome.less
  26. 2 2
      src/css/reset.less
  27. 5 4
      src/css/roleManager.less
  28. 8 3
      src/css/tiaomu.less
  29. 0 1
      src/html/abnormal.html
  30. 0 1
      src/html/assertType.html
  31. 0 1
      src/html/assertTypeDetail.html
  32. 16 4
      src/html/console.html
  33. 0 1
      src/html/dayDetail.html
  34. 1 2
      src/html/deptScoreDetail.html
  35. 60 0
      src/html/deptScoreDetailControlLevel.html
  36. 11 4
      src/html/index.html
  37. 0 1
      src/html/mukuai.html
  38. 1 2
      src/html/mukuaiControl.html
  39. 5 3
      src/html/partDetail.html
  40. 5 3
      src/html/partDetailControl.html
  41. 0 1
      src/html/payDetail.html
  42. 17 13
      src/html/qcList.html
  43. 50 45
      src/html/qcListDept.html
  44. 9 5
      src/html/qcListPerson.html
  45. 15 10
      src/html/qcScore.html
  46. 3 3
      src/html/quexianDetail.html
  47. 71 0
      src/html/singleVeto.html
  48. 0 1
      src/html/tiaomuControl.html
  49. BIN
      src/images/add.png
  50. BIN
      src/images/ar.png
  51. BIN
      src/images/slice.png
  52. 2 0
      src/js/api.js
  53. 435 99
      src/js/console.js
  54. 8 5
      src/js/deptConsole.js
  55. 11 6
      src/js/deptScoreDetail.js
  56. 3 3
      src/js/deptScoreDetailControl.js
  57. 606 0
      src/js/deptScoreDetailControlLevel.js
  58. 13 10
      src/js/index.js
  59. 10 1
      src/js/mukuai.js
  60. 37 4
      src/js/mukuaiControl.js
  61. 8 4
      src/js/partDetail.js
  62. 12 7
      src/js/partDetailControl.js
  63. 10 7
      src/js/qcList.js
  64. 7 4
      src/js/qcListDept.js
  65. 7 4
      src/js/qcListPerson.js
  66. 18 15
      src/js/qcScore.js
  67. 10 9
      src/js/quexianDetailControl.js
  68. 5 3
      src/js/quexianDetailControlHome.js
  69. 3 1
      src/js/quexianDetailHome.js
  70. 1 1
      src/js/roleManager.js
  71. 529 0
      src/js/singleVeto.js
  72. 3 3
      src/js/tiaomu.js
  73. 15 5
      src/js/utils.js
  74. 15 0
      webpack.config.js

+ 1 - 1
package.json

@@ -37,7 +37,7 @@
     "url-loader": "^4.1.0",
     "webpack": "^4.31.0",
     "webpack-dev-middleware": "^3.6.2",
-    "webpack-dev-server": "^3.3.1"
+    "webpack-dev-server": "^3.11.0"
   },
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1",

+ 3 - 4
src/css/abnormal.less

@@ -3,7 +3,7 @@
     width: 100%;
     height: 100%;
     overflow: auto;
-    background-color: #fff;
+    background-color: @disColor;
 }
 .abnormal {
     ul,li{
@@ -23,8 +23,7 @@
         letter-spacing: 1px;
     }
     .main-body{
-        margin: 20px 0;
-        padding: 0 35px;
+        .main-body-com;
         min-width: 1090px;
         /*width: 100%;*/
     }
@@ -269,7 +268,7 @@
     
     
     .pagination{
-        margin: 35px 0 0 0  ;
+        margin: 35px 0 20px 0  ;
         text-align: right;
     }
     .totalSum{

+ 3 - 4
src/css/assertType.less

@@ -4,7 +4,7 @@
     width: 100%;
     height: 100%;
     overflow: auto;
-    background-color: #fff;
+    background-color: @disColor;
 }
 .assertType {
     .dayFilter {
@@ -40,8 +40,7 @@
         letter-spacing: 1px;
     }
     .main-body{
-        margin: 20px 0;
-        padding: 0 35px;
+        .main-body-com;
         // min-width: 1090px;
         /*width: 100%;*/
     }
@@ -271,7 +270,7 @@
     
     
     .pagination{
-        margin: 35px 0 0 0  ;
+        margin: 35px 0 20px 0  ;
         text-align: right;
     }
     .totalSum{

+ 2 - 3
src/css/assertTypeDetail.less

@@ -3,7 +3,7 @@
     width: 100%;
     height: 100%;
     overflow: auto;
-    background-color: #fff;
+    background-color: @disColor;
 }
 .assertTypeDetail {
     
@@ -11,8 +11,7 @@
         margin-bottom: 15px;
     }
     .main-body{
-        margin: 20px 0;
-        padding: 0 35px;
+        .main-body-com;
         // min-width: 1090px;
         /*width: 100%;*/
     }

+ 13 - 1
src/css/common.less

@@ -16,11 +16,23 @@
 //       }
 //     }
 //   }
-
+    
+.ellipsis{
+    overflow: hidden;
+    text-overflow:ellipsis;
+    white-space: nowrap;
+}
 .partTitle p a {
     color: #8592B9;
     opacity: 1;
 }
 input:disabled {
     background-color: @disColor;
+}
+
+.main-body-com{
+    background: #fff;
+    margin: 0;
+    padding: 20px 25px 0;
+    border:10px @disColor solid;
 }

+ 11 - 1
src/css/console.less

@@ -221,6 +221,9 @@ body.console {
   /*margin-bottom: 10px;*/
   background-color: @themeColor;
   border-top: 10px solid @activeBg;
+  .title span {
+    font-size: 16px;
+  }
 }
 .pubEchartB {
   width: 55%;
@@ -407,15 +410,22 @@ body.console {
     }
     .td02name {
       min-width: 113px;
+      max-width: 184px;
       color: @fstColor;
     }
+    .homegodetail {
+      cursor: pointer;
+      &:hover p.td02name {
+        color: @activeColor;
+      }
+    }
     .td02 {
     }
     .td03 {
       width: 40px;
     }
     .td04 {
-      width: 40px;
+      width: 45px;
     }
   }
 }

+ 3 - 4
src/css/dayDetail.less

@@ -6,7 +6,7 @@
     overflow: auto;
 }
 .dayDetail {
-    background-color: #fff;
+    background-color: @disColor;
     .dayFilter {
         .levelList {
             height: 80px;
@@ -38,8 +38,7 @@
         letter-spacing: 1px;
     }
     .main-body{
-        margin: 20px 0;
-        padding: 0 35px;
+        .main-body-com;
         min-width: 1090px;
         /*width: 100%;*/
     }
@@ -269,7 +268,7 @@
     
     
     .pagination{
-        margin: 35px 0 0 0  ;
+        margin: 35px 0 20px 0  ;
         text-align: right;
     }
     .totalSum{

+ 12 - 1
src/css/deptConsole.less

@@ -375,12 +375,23 @@ body.console {
     }
     .td02 {
       
+    }
+    
+    .homegodetail {
+      cursor: pointer;
+      p {
+        color: @fstColor;
+      }
+      &:hover p.td02name {
+        color: @activeColor;
+      }
+
     }
     .td03 {
       width: 40px;
     }
     .td04 {
-      width: 40px;
+      width: 60px;
     }
   }
 }

+ 3 - 4
src/css/deptScoreDetail.less

@@ -4,7 +4,7 @@
     width: 100%;
     height: 100%;
     overflow: auto;
-    background-color: #fff;
+    background-color: @disColor;
 }
 .deptScoreDetail {
     .dayFilter {
@@ -37,8 +37,7 @@
         letter-spacing: 1px;
     }
     .main-body{
-        margin: 20px 0;
-        padding: 0 35px;
+        .main-body-com;
         min-width: 1090px;
         /*width: 100%;*/
     }
@@ -268,7 +267,7 @@
     
     
     .pagination{
-        margin: 35px 0 0 0  ;
+        margin: 35px 0 20px 0  ;
         text-align: right;
     }
     .totalSum{

+ 3 - 2
src/css/deptScoreDetailControl.less

@@ -4,6 +4,7 @@
     width: 100%;
     height: 100%;
     overflow: auto;
+    background: @disColor;
 }
 .deptScoreDetailControl {
     background-color: #fff;
@@ -38,7 +39,7 @@
         letter-spacing: 1px;
     }
     .main-body{
-        padding: 20px 35px 0 35px;
+        .main-body-com;
         min-width: 1090px;
         box-sizing: border-box;
         /*width: 100%;*/
@@ -269,7 +270,7 @@
     
     
     .pagination{
-        margin: 35px 0 0 0  ;
+        margin: 35px 0 20px 0  ;
         text-align: right;
     }
     .totalSum{

+ 369 - 0
src/css/deptScoreDetailControlLevel.less

@@ -0,0 +1,369 @@
+@import './reset.less';
+
+.container{
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+}
+.deptScoreDetailControlLevel {
+    background-color: #fff;
+    .dayFilter {
+        .levelList {
+            height: 80px;
+        }
+        .selectLevel,.levelList  {
+            width: 180px;
+        }
+    }
+    .filterItem.deptListWrap {
+        display: none;
+        .selectDept,.deptList {
+            width: 180px;
+        }
+    }
+    ul,li{
+        list-style: none;
+    }
+    h2{
+        width: 100%;
+        box-sizing: border-box;
+        background-color: #fff;
+        z-index: 20;
+        height: 44px;
+        line-height: 44px;
+        padding: 0 0 0 15px;
+        border-bottom: 1px solid #E2E5EF;
+        font-size: 16px;
+        font-weight: bold   ;
+        letter-spacing: 1px;
+    }
+    .main-body{
+        padding: 20px 35px 0 35px;
+        min-width: 1090px;
+        box-sizing: border-box;
+        /*width: 100%;*/
+    }
+    table{
+        .table;
+        min-width: 1090px;
+        th,td{
+            text-align: center;
+        }
+        th{
+            white-space: nowrap;
+        }
+        th[code]{
+            cursor: pointer;
+            &:after{
+                content:"";
+                display:inline-block;
+                width: 11px;
+                height: 14px;
+                margin-left: 4px;
+                vertical-align: middle;
+                background: url("../images/grey.png");
+            }
+            &.asc:after{
+                background: url("../images/up_blue.png");
+            }
+            &.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;
+    }
+}
+.abnormalClear {
+    top: 2px !important;
+}

+ 80 - 18
src/css/index.less

@@ -108,6 +108,7 @@
     .logo{
       margin-bottom: 44px;
       text-indent: 22px;
+      height: 45px;
       img {
         width: 150px;
         position: relative;
@@ -120,10 +121,15 @@
       right: 0;
       z-index: 1;
     }
-    &>ul>li{
-      text-indent: 42px;
-      background: url("../images/module.png") 16px 12px no-repeat;
-      margin-bottom: 10px;
+    &>ul{
+      overflow-x: hidden;
+      white-space: nowrap;
+      &>li{
+        text-indent: 42px;
+        background: url("../images/module.png") 16px 12px no-repeat;
+        margin-bottom: 10px;
+      }
+
     }
     .YH-KZT,.YH-KZTKS{
       background: url("../images/home.png") 16px 10px no-repeat;
@@ -242,6 +248,13 @@
     height: 100%;
     background: @themeColor;
     position: relative;
+    .logo{
+      height: 50px;
+      line-height: 50px;
+      text-align: center;
+      color: #DEE5EF;
+      margin-bottom: 44px;
+    }
     &>a{
       position: absolute;
       top: 50%;
@@ -254,30 +267,79 @@
       line-height: 40px;
       margin-bottom: 10px;
       background: url("../images/module.png") center no-repeat;
+      position: relative;
+      cursor: pointer;
+      &:hover{
+        ul{
+          display: block;
+        }
+      }
       & ul{
         display: none;
         left: 60px;
         position: absolute;
-        width: 140px;
+        width: 186px;
+        background: @themeColor;
+        border-radius:4px;
+        box-shadow:0px 2px 16px -4px rgba(15,28,59,1);
+        margin-left: 3px;
+        &:before{
+          content: "";
+          display: inline-block;
+          width: 8px;
+          height: 32px;
+          background: url("../images/ar.png") no-repeat;
+          position: absolute;
+          left: -8px;
+        }
+        li{
+          height: 40px;
+          line-height: 40px;
+          color: #A5ADBF;
+          text-indent: 30px;
+          border-radius: 4px;
+          &:hover,&.active{
+            background: @activeBg;
+            color: @activeColor;
+          }
+        }
       }
-      &.YH-KZT{
-        background: url("../images/home.png") 16px 12px no-repeat;
+    }
+
+    .YH-KZT,.YH-KZTKS{
+      background: url("../images/home.png") 20px 10px no-repeat;
+      &:hover,&.active{
+        background: url("../images/home_a.png") @activeBg 20px 10px no-repeat;
       }
-      &.YH-ZKK{
-        background: url("../images/module.png") 16px 12px no-repeat;
+    }
+    .YH-ZKK,.YH-KSZR{
+      background: url("../images/data.png") 21px 10px no-repeat;
+      &:hover,&.active{
+        background: url("../images/data_a.png") @activeBg 21px 10px no-repeat;
       }
-      &.YH-QBYH-JCGN{
-        background: url("../images/item.png") 16px 12px no-repeat;
+    }
+    .YH-JCSJWH{
+      background: url("../images/item.png") 22px 13px no-repeat;
+      &:hover,&.active{
+        background: url("../images/item_a.png") @activeBg 22px 13px no-repeat;
       }
-      &.YH-JCSJWH{
-        background: url("../images/data.png") 16px 10px no-repeat;
+    }
+    .YH-BLZK{
+      background: url("../images/ba.png") 23px 10px no-repeat;
+      &:hover,&.active{
+        background: url("../images/ba_a.png") @activeBg 23px 10px no-repeat;
       }
-      &.YH-BLZK{
-        background: url("../images/un.png") 16px 11px no-repeat;
+    }
+    .YH-QXGL{
+      background: url("../images/qxgl.png") 25px 11px no-repeat;
+      &:hover,&.active{
+        background: url("../images/qxgl_a.png") @activeBg 25px 11px no-repeat;
       }
-      &.active{
-        background-color: #EEF4FF;
-        border-left: 3px @activeColor solid;
+    }
+    .YH-YCSJJK{
+      background: url("../images/un.png") 25px 11px no-repeat;
+      &:hover,&.active,&.list-1-show{
+        background: url("../images/un_a.png") @activeBg 25px 11px no-repeat;
       }
     }
   }

+ 3 - 3
src/css/itemManager.less

@@ -3,6 +3,7 @@
     width: 100%;
     height: 100%;
     overflow-y: auto;
+    background: @disColor;
     .selectUsed,.selectReject {
         float: right;
     }
@@ -15,8 +16,7 @@
         .h2;
     }
     .main-body{
-        margin: 20px 40px;
-        padding-bottom: 0px !important;
+        .main-body-com;
     }
     table{
         .table;
@@ -144,7 +144,7 @@
     
     
     .pagination{
-        margin: 35px 0 0 0  ;
+        margin: 35px 0 20px 0  ;
         text-align: right;
     }
     .totalSum{

+ 3 - 3
src/css/jiaji.less

@@ -4,6 +4,7 @@
     width: 100%;
     height: 100%;
     overflow: auto;
+    background: @disColor;
 }
 .jiaji {
     .dayFilter {
@@ -40,8 +41,7 @@
         letter-spacing: 1px;
     }
     .main-body{
-        margin: 20px 0;
-        padding: 0 35px;
+        .main-body-com;
         min-width: 1090px;
         /*width: 100%;*/
     }
@@ -271,7 +271,7 @@
     
     
     .pagination{
-        margin: 35px 0 0 0  ;
+        margin: 35px 0 20px 0  ;
         text-align: right;
     }
     .totalSum{

+ 2 - 0
src/css/login.less

@@ -1,5 +1,6 @@
 @import './reset.less';
 body {
+  background: @themeColor;
   background:linear-gradient(133deg,rgba(45,79,139,1) 0%,rgba(20,39,83,1) 100%);
 }
 .login {
@@ -39,6 +40,7 @@ p.title {
   .message {
     width: 38%;
     height: 100%;
+    background: @activeBg;
     background:linear-gradient(180deg,rgba(0,25,82,1) 0%,rgba(0,24,78,0.94) 100%);
     box-sizing: border-box;
     position: relative;

+ 5 - 2
src/css/moduleManager.less

@@ -1,4 +1,7 @@
 @import "./reset.less";
+body{
+    background: @disColor;
+}
 .container{
     width: 100%;
 }
@@ -6,8 +9,8 @@ h2{
     .h2;
 }
 .main-body{
-    margin: 20px 40px;
-    padding-bottom: 40px;
+    .main-body-com;
+    padding-bottom: 20px;
 }
 .totalSumBox{
     margin: 0 0 10px 0;

+ 24 - 4
src/css/mukuai.less

@@ -4,7 +4,7 @@
     width: 100%;
     height: 100%;
     overflow-y: auto;
-    background-color: #fff;
+    background-color: @disColor;
     .filterDropList{
         position: absolute;
         right: 0;
@@ -88,8 +88,7 @@
         letter-spacing: 1px;
     }
     .main-body {
-        margin: 20px 40px;
-        padding-bottom: 40px;
+        .main-body-com;
     }
     table{
         .table;
@@ -209,7 +208,7 @@
     
     
     .pagination{
-        margin: 35px 0 0 0  ;
+        margin: 35px 0 20px 0;
         text-align: right;
     }
     .totalSum{
@@ -251,6 +250,27 @@
         -moz-appearance: textfield;
     }
 }
+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%;
+    }
+}
 
 .usrContain .selectReject,.usrContain .selectModuleType ,.managerContainer .selectModuleType  {
     float: right;

+ 3 - 4
src/css/partDetail.less

@@ -4,7 +4,7 @@
     width: 100%;
     height: 100%;
     overflow: auto;
-    background-color: #fff;
+    background-color: @disColor;
 }
 .partDetail {
     .dayFilter {
@@ -40,8 +40,7 @@
         letter-spacing: 1px;
     }
     .main-body{
-        margin: 20px 0;
-        padding: 0 35px;
+        .main-body-com;
         min-width: 1090px;
         /*width: 100%;*/
     }
@@ -271,7 +270,7 @@
     
     
     .pagination{
-        margin: 35px 0 0 0  ;
+        margin: 35px 0 20px 0  ;
         text-align: right;
     }
     .totalSum{

+ 3 - 4
src/css/partDetailControl.less

@@ -4,7 +4,7 @@
     width: 100%;
     height: 100%;
     overflow: auto;
-    background-color: #fff;
+    background-color: @disColor;
 }
 .partDetailControl {
     .dayFilter {
@@ -40,8 +40,7 @@
         letter-spacing: 1px;
     }
     .main-body{
-        margin: 20px 0;
-        padding: 0 35px;
+        .main-body-com;
         min-width: 1090px;
         /*width: 100%;*/
     }
@@ -271,7 +270,7 @@
     
     
     .pagination{
-        margin: 35px 0 0 0  ;
+        margin: 35px 0 20px 0  ;
         text-align: right;
     }
     .totalSum{

+ 3 - 4
src/css/payDetail.less

@@ -4,7 +4,7 @@
     width: 100%;
     height: 100%;
     overflow: auto;
-    background-color: #fff;
+    background-color: @disColor;
 }
 .payDetail {
     .dayFilter {
@@ -41,8 +41,7 @@
         letter-spacing: 1px;
     }
     .main-body{
-        margin: 20px 0;
-        padding: 0 35px;
+        .main-body-com;
         min-width: 1090px;
         /*width: 100%;*/
     }
@@ -272,7 +271,7 @@
     
     
     .pagination{
-        margin: 35px 0 0 0  ;
+        margin: 35px 0 20px 0  ;
         text-align: right;
     }
     .totalSum{

+ 24 - 6
src/css/qcList.less

@@ -3,6 +3,7 @@
     width: 100%;
     height: 100%;
     overflow: auto;
+    background: @disColor;
 }
 ul,li{
     list-style: none;
@@ -12,9 +13,9 @@ h2{
     position: absolute;
 }
 .main-body{
-    margin: 75px 0 0 10px;
+    .main-body-com;
+    margin: 44px 0 0;
     min-width: 1090px;
-    padding: 0 35px;
     // overflow: auto;
 }
 table{
@@ -93,9 +94,26 @@ table{
     border: 1px solid @activeColor;
     color: @activeColor;
 }
-/*.filterBox{
-    margin-bottom: 15px;
-}*/
+.filterBox{
+    position: relative;
+}
+.overAuto{
+    overflow: auto;
+}
+.filter-toggler{
+    position: absolute;
+    left: 960px;
+    top: 8px;
+    color: #aaa;
+    font-size: 14px;
+    background: url("../images/arrow_up.png") 60px center no-repeat;
+    padding-right: 15px;
+    background-size: 10px 6px;
+    &.up{
+        background: url("../images/arrow_down.png") 60px center no-repeat;
+        background-size: 10px 6px;
+    }
+}
 .filterItem{
     position: relative;
     display: inline-block;
@@ -259,7 +277,7 @@ table{
 
 
 .pagination{
-    margin: 35px 0 0 0  ;
+    margin: 35px 0 20px 0  ;
     text-align: right;
 }
 .totalSum{

+ 24 - 6
src/css/qcListDept.less

@@ -3,6 +3,7 @@
     width: 100%;
     height: 100%;
     overflow: auto;
+    background: @disColor;
 }
 ul,li{
     list-style: none;
@@ -12,8 +13,8 @@ h2{
     position: absolute;
 }
 .main-body{
-    margin: 75px 0 0 10px;   
-    padding: 0 35px;
+    .main-body-com;
+    margin: 44px 0 0;
     min-width: 1090px;
     /*width: 100%;*/
 }
@@ -91,9 +92,26 @@ table{
     border: 1px solid @activeColor;
     color: @activeColor;
 }
-/*.filterBox{
-    margin-bottom: 15px;
-}*/
+.filterBox{
+    position: relative;
+}
+.overAuto{
+    overflow: auto;
+}
+.filter-toggler{
+    position: absolute;
+    left: 960px;
+    top: 8px;
+    color: #aaa;
+    font-size: 14px;
+    background: url("../images/arrow_up.png") 60px center no-repeat;
+    padding-right: 15px;
+    background-size: 10px 6px;
+    &.up{
+        background: url("../images/arrow_down.png") 60px center no-repeat;
+        background-size: 10px 6px;
+    }
+}
 .filterItem{
     position: relative;
     display: inline-block;
@@ -259,7 +277,7 @@ table{
 
 
 .pagination{
-    margin: 35px 0 0 0  ;
+    margin: 35px 0 20px 0  ;
     text-align: right;
 }
 .totalSum{

+ 24 - 6
src/css/qcListPerson.less

@@ -3,6 +3,7 @@
     width: 100%;
     height: 100%;
     overflow: auto;
+    background: @disColor;
 }
 ul,li{
     list-style: none;
@@ -12,8 +13,8 @@ h2{
     position: absolute;
 }
 .main-body{
-    margin: 75px 0 0 10px;
-    padding: 0 35px;
+    .main-body-com;
+    margin: 44px 0 0;
     min-width: 1090px;
     /*width: 100%;*/
 }
@@ -96,9 +97,26 @@ table{
     border: 1px solid @activeColor;
     color: @activeColor;
 }
-/*.filterBox{
-    margin-bottom: 15px;
-}*/
+.filterBox{
+    position: relative;
+}
+.overAuto{
+    overflow: auto;
+}
+.filter-toggler{
+    position: absolute;
+    left: 960px;
+    top: 8px;
+    color: #aaa;
+    font-size: 14px;
+    background: url("../images/arrow_up.png") 60px center no-repeat;
+    padding-right: 15px;
+    background-size: 10px 6px;
+    &.up{
+        background: url("../images/arrow_down.png") 60px center no-repeat;
+        background-size: 10px 6px;
+    }
+}
 .filterItem{
     position: relative;
     display: inline-block;
@@ -263,7 +281,7 @@ table{
 
 
 .pagination{
-    margin: 35px 0 0 0  ;
+    margin: 35px 0 20px 0  ;
     text-align: right;
 }
 .totalSum{

+ 149 - 17
src/css/qcScore.less

@@ -19,6 +19,7 @@
 }
 .patient-info{
   /*height: 50px;*/
+  background: #fff;
   line-height: 50px;
   border-bottom: 10px #EFF1F6 solid;
   text-align: center;
@@ -41,6 +42,7 @@
   .logo{
     margin:8px 0 44px;
     text-indent: 22px;
+    height: 42px;
   }
   &>a{
     position: absolute;
@@ -48,8 +50,13 @@
     right: 0;
     z-index: 1;
   }
+  &>ul{
+    overflow-x: hidden;
+    white-space: nowrap;
+  }
   &>ul>li{
     color: @fstColor;
+    margin-bottom: 10px;
     &.menu-0{
       background: url("../images/total.png") 20px 9px no-repeat;
       &.active{
@@ -133,7 +140,7 @@
       display: none;
       li.page{
         text-indent: 55px;
-        color: @fstColor;
+        color: @greyColor;
         &.active{
           color: @activeColor;
         }
@@ -162,35 +169,105 @@
 .menu-mini{
   display: none;
   width: 60px;
+  height: 100%;
+  background: @themeColor;
+  position: relative;
+  .logo{
+    height: 50px;
+    line-height: 50px;
+    text-align: center;
+    color: #DEE5EF;
+    margin-bottom: 44px;
+  }
+  &>a{
+    position: absolute;
+    top: 50%;
+    right: 0;
+    z-index: 1;
+  }
   &>ul>li{
     width: 100%;
     height: 40px;
     line-height: 40px;
-    background: url("../images/icon3.png") center no-repeat;
+    background: url("../images/module.png") center no-repeat;
+    cursor: pointer;
+    margin-bottom: 10px;
+    &:hover{
+      ul{
+        display: block;
+      }
+    }
     & ul{
       display: none;
       left: 60px;
       position: absolute;
-      width: 140px;
+      width: 186px;
+      background: @themeColor;
+      border-radius:4px;
+      box-shadow:0px 2px 16px -4px rgba(15,28,59,1);
+      margin-left: 3px;
+      z-index: 9;
+      &:before{
+        content: "";
+        display: inline-block;
+        width: 8px;
+        height: 32px;
+        background: url("../images/ar.png") no-repeat;
+        position: absolute;
+        left: -8px;
+      }
+      li{
+        height: 40px;
+        line-height: 40px;
+        color: @greyColor;
+        text-indent: 30px;
+        border-radius: 4px;
+        &:hover,&.active{
+          background: @activeBg;
+          color: @activeColor;
+        }
+      }
     }
-    &.YH-KZT{
-      background: url("../images/icon3.png") center no-repeat;
+    &.menu-0{
+      background: url("../images/total.png") 20px 9px no-repeat;
+      &:hover,&.active{
+        background: url("../images/total_a.png") @activeBg 20px 9px no-repeat;
+      }
+    }
+    &.menu-6{
+      background: url("../images/index.png") 20px 11px no-repeat;
+      &:hover,&.active{
+        background: url("../images/index_a.png") @activeBg 20px 11px no-repeat;
+      }
+    }
+    &.menu-1{
+      background: url("../images/inhis.png") 19px 11px no-repeat;
+      &:hover,&.active{
+        background: url("../images/inhis_a.png") @activeBg 19px 11px no-repeat;
+      }
     }
-    &.YH-QBYH-JCGN{
-      background: url("../images/icon2.png") center no-repeat;
+    &.menu-37{
+      background: url("../images/prod.png") 20px 10px no-repeat;
+      &:hover,&.active{
+        background: url("../images/prod_a.png") @activeBg 20px 10px no-repeat;
+      }
     }
-    &.active{
-      background-color: #EEF4FF;
-      border-left: 3px @activeColor solid;
+    &.menu-5{
+      background: url("../images/out.png") 21px 11px no-repeat;
+      &:hover,&.active{
+        background: url("../images/out_a.png") @activeBg 21px 11px no-repeat;
+      }
     }
   }
 }
 .tab-container{
   margin-left: @menuWt+15px;
+  background: @disColor;
   /*height: 100%;*/
   .content-box{
     width:78%;
     height: 100%;
+    background: #fff;
     position: relative;
     overflow-y: auto;
     border-right: 10px #EFF1F6 solid;
@@ -303,7 +380,7 @@
         box-sizing: border-box;
         padding-left: 5px;
         &.active{
-          background: #FFF0DA;
+          background: #FEE6C4;
         }
         span{
           line-height: 20px;
@@ -349,10 +426,11 @@
     }
   }
   .operation{
-    width:20%;
+    width:calc(22% - 11px);
     height: 100%;
     margin-right: 10px;
     position: relative;
+    background: #fff;
     .flaw-title{
       position: absolute;
       top:0;
@@ -411,7 +489,7 @@
           margin-right: 6px;
         }
         &.active{
-          background: #FFF0DA;
+          background: #FEE6C4;
         }
       }
     }
@@ -575,22 +653,29 @@
 
 /********缺陷总览*********/
 .flaw-table{
+  display: none;
   height: 97%;
-  overflow-y: auto;
-  /*margin: 0 30px 0 20px;*/
+  background: #fff;
+  margin: 0 10px 10px;
+  /*overflow-y: auto;
+  margin: 0 30px 0 20px;*/
   .slide-up{
     cursor: pointer;
     color: @activeColor;
     &:before{
       display: inline-block;
       width: 14px;
-      content: "-";
+      height: 14px;
+      content: "";
       font-size: 18px;
       color: @activeColor;
       text-align: center;
+      vertical-align: middle;
+      margin-right: 4px;
+      background: url("../images/slice.png") no-repeat;
     }
     &.down:before{
-      content: "+";
+      background: url("../images/add.png") no-repeat;
     }
   }
   .page-item{
@@ -643,3 +728,50 @@
     }
   }
 }
+.scroll-table{
+  thead,tbody{
+    display: block;
+    width: 100%;
+    box-sizing: border-box;
+    th,td{
+      width: 49%;
+      display: inline-block;
+      box-sizing: border-box;
+      border: none;
+      line-height: 32px;
+      &:first-child{
+        width: 30%;
+        border-right: 1px @tableBorderColor solid;
+      }
+      &:last-child{
+        width: 20%;
+        border-left: 1px @tableBorderColor solid;
+      }
+    }
+    td[colspan]{
+      border-right: none;
+      border-left: none;
+    }
+  }
+  thead{
+    border-bottom: 1px @tableBorderColor solid;
+    tr{
+      width: calc(100% - 18px);
+      border-bottom:none;
+    }
+  }
+  tbody{
+    overflow-y: auto;
+  }
+  tr{
+    display: block;
+    border-bottom: 1px @tableBorderColor solid;
+    &:last-child{
+      border-bottom: none;
+    }
+  }
+  tr,td[colspan]{
+    width: 100%;
+    box-sizing: border-box;
+  }
+}

+ 1 - 0
src/css/quexianDetailControlHome.less

@@ -43,6 +43,7 @@
         .selectDepts {
             border: 0 none;
             cursor: default;
+            width: auto;
         }
     }
     .filterItem{

+ 2 - 2
src/css/reset.less

@@ -147,8 +147,8 @@ textarea {
   color: @titleColor;
   height: 44px;
   line-height: 44px;
-  /*padding: 0 0 0 15px;*/
-  border-bottom: 10px solid #EFF1F6;
+  /*padding: 0 0 0 15px;
+  border-bottom: 10px solid #EFF1F6;*/
   font-size: 14px;
   text-indent: 20px;
   font-weight: normal;

+ 5 - 4
src/css/roleManager.less

@@ -8,9 +8,10 @@
     background-color: #fff;
 }
 .managerContainer {
-    .main-body {
+    overflow-y: hidden;
+   /* .main-body {
         margin-top: 10px;
-    } 
+    } */
 }
 .pubStyleMeun {
     .roleLis li {
@@ -41,8 +42,8 @@
 .rightMenu {
     position: absolute;
     width: 100%;
-    top: 64px;
-    right: 40px;
+    top: 74px;
+    right: 30px;
     border: 1px solid #ccc;
     // overflow: auto;
     .toptools {

+ 8 - 3
src/css/tiaomu.less

@@ -4,6 +4,7 @@
     width: 100%;
     height: 100%;
     overflow-y: auto;
+    background: @disColor;
     .filterDropList{
         position: absolute;
         right: 0;
@@ -90,8 +91,7 @@
         letter-spacing: 1px;
     }
     .main-body{
-        margin: 20px 40px;
-        padding-bottom: 0px !important;
+        .main-body-com;
     }
     table{
         .table;
@@ -211,7 +211,7 @@
     
     
     .pagination{
-        margin: 35px 0 0 0  ;
+        margin: 35px 0 20px 0  ;
         text-align: right;
     }
     .totalSum{
@@ -253,6 +253,11 @@
         -moz-appearance: textfield;
     }
 }
+.singleVeto{
+    .rejectList{
+        height: 101px !important;
+    }
+}
 
 .usrContain .selectReject,.usrContain .selectModuleType ,.managerContainer .selectModuleType  {
     float: right;

+ 0 - 1
src/html/abnormal.html

@@ -21,7 +21,6 @@
           </div>
         </div>
         <div class="partTitleT"></div>
-        <div class="grayLine"></div>
         <div class="main-body">
             <div class="filterBox clearfix">
                 <span class="filterItem typeFilter">

+ 0 - 1
src/html/assertType.html

@@ -17,7 +17,6 @@
           </div>
         </div>
         <div class="partTitleT"></div>
-        <div class="grayLine"></div>
         <div class="main-body">
             <div class="filterBox clearfix">
                 <span class="filterItem typeFilter">

+ 0 - 1
src/html/assertTypeDetail.html

@@ -14,7 +14,6 @@
             </div>
           </div>
           <div class="partTitleT"></div>
-          <div class="grayLine"></div>     
           <div class="main-body">
             <div class="filterBox clearfix">
                 <!-- <div class="filterItem typeFilter deptListWrap">

+ 16 - 4
src/html/console.html

@@ -19,7 +19,6 @@
   <div class="partTitleT"></div>
   <!--<div class="grayLine"></div>-->
   <div class="partWrap clearfix">
-
       <div class="part01 fl">
         <p class="partTitlePub clearfix" style="cursor: default;">
           <span class="name">出院人数统计</span>
@@ -97,6 +96,19 @@
           </div>
         </div>
         <div class="pubEchart paymoney">
+          <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>
+              <li class="toggleAverge toggleSlide1" data-str="甲级" data-level="甲" data-type="1">甲级</li>
+              <li class="toggleAverge toggleSlide2" data-str="乙级" data-level="乙" data-type="2">乙级</li>
+              <li class="toggleAverge toggleSlide2" data-str="丙级" data-level="丙" data-type="6">丙级</li>
+            </ul>
+          </div>
+          <div id="barChart" class="barChartPay"></div>
+          <div class="barChartPayEmpty"></div>
+        </div>
+        <!-- <div class="pubEchart paymoney">
           <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>
@@ -107,18 +119,18 @@
           </div>
           <div id="barChart" class="barChartPay"></div>
           <div class="barChartPayEmpty"></div>
-        </div>
+        </div> -->
       </div>
       <div class="part03 fl">
         <p class="partTitlePub clearfix">
-          <span class="name">各科室甲级病历占比</span> <img class="detailGo" src="../images/details.png" alt="">
+          <span class="name">病案首页合格率占比</span> <img class="detailGo" src="../images/details.png" alt="">
         </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>
+          <p class="title">单项否决占比 <img class="detailGo" src="../images/details.png" alt=""></p>
           <div class="emptyCircleWrap">
             <div id="emptyCircle" class="emptyCircle"></div>
             <div class="explainPan explainPanT">

+ 0 - 1
src/html/dayDetail.html

@@ -21,7 +21,6 @@
           </div>
         </div>
         <div class="partTitleT"></div>
-        <div class="grayLine"></div>
         <div class="main-body">
             <div class="filterBox clearfix">
                 <span class="filterItem typeFilter">

+ 1 - 2
src/html/deptScoreDetail.html

@@ -11,7 +11,7 @@
 <body>
     <div class="container deptScoreDetail">
         <div class="partTitle">
-          <p><a href="console.html">控制台 / </a>科室缺陷占比</p>
+          <p><a href="deptConsole.html">控制台(科室) / </a>科室缺陷占比</p>
           <div class="monthYear">
             <span class="mon">本月</span>
             <span class="year">本年</span>
@@ -21,7 +21,6 @@
           </div>
         </div>
         <div class="partTitleT"></div>
-        <div class="grayLine"></div>
         <div class="main-body">
             <div class="filterBox clearfix">
                 <span class="filterItem typeFilter">

+ 60 - 0
src/html/deptScoreDetailControlLevel.html

@@ -0,0 +1,60 @@
+<!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 deptScoreDetailControlLevel">
+        <div class="partTitle">
+          <p><a href="console.html">控制台 / </a>各科室缺陷占比</p>
+          <div class="monthYear">
+            <span class="mon">本月</span>
+            <span class="year">本年</span>
+          </div> 
+          <div class="dateDetail fr">
+            
+          </div>
+        </div>
+        <div class="partTitleT"></div>
+        <div class="grayLine"></div>
+        <div class="main-body">
+            <div class="filterBox clearfix">
+                <span class="filterItem typeFilter">
+                    <span>科室名称:</span>
+                    <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入科室名称">
+                </span>
+                <span class="filterItem typeFilter deptListWrap">
+                    <span>科室系统:</span>
+                    <span class="selectDept" data-id="">全部</span>
+                    <ul class="deptList filterDropList">
+                        <li class="deptItem ellipsis" title="全部" data-id="" data-name="全部">全部</li>
+                        <li class="deptItem ellipsis" title="内科系统" data-id="内科" data-name="内科系统">内科系统</li>
+                        <li class="deptItem ellipsis" title="外科系统" data-id="外科" data-name="外科系统">外科系统</li>
+                    </ul>
+                </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">重置</span>
+            </div>
+            <div class="deptScoreDetailControlTable">
+                <table>
+
+                </table>
+            </div>
+
+            <!--<div class="tabFoot">
+                <span class="scoreOpera" data-selectAll=false><img class="iconCheck" src="" alt="checkbox">全选</span>
+                <span class="recordScoreBtn">评分</span>
+            </div>-->
+
+            <div class="pagination"></div>
+        </div>
+        
+    </div>
+</body>
+
+</html>

+ 11 - 4
src/html/index.html

@@ -22,17 +22,21 @@
     </li>
 </script>
 <script type="text/html" id="miniMenuTmpl">
+    {{if showStatus}}
     {{if subMenuList.length}}
     <li class="list-1 ${code}">
         {{else}}
     <li class="page ${code}" code="${code}">
         {{/if}}
+        {{if subMenuList.length}}
         <ul>
             {{each subMenuList}}
             <li class="page" code="${code}">${name}</li>
             {{/each}}
         </ul>
+        {{/if}}
     </li>
+    {{/if}}
 </script>
 <body>
   <div class="container">
@@ -41,16 +45,19 @@
               <div class="logo">
                   <img src="../images/lantone.png" alt="">
               </div>
-              <!--<a href="javescript:void(0);" class="slide-hide">
+              <a href="javescript:void(0);" class="slide-hide">
                   <img src="../images/down.png" alt="">
-              </a>-->
+              </a>
               <ul></ul>
               <div class="copy-right"><p>©杭州朗通信息技术有限公司</p></div>
           </div>
           <div class="menu-mini fl">
-              <!--<a href="javescript:void(0);" class="slide-show">
+              <div class="logo">
+                  朗通
+              </div>
+              <a href="javescript:void(0);" class="slide-show">
                   <img src="../images/up.png" alt="">
-              </a>-->
+              </a>
               <ul></ul>
           </div>
           <div class="main" id="mainBox">

+ 0 - 1
src/html/mukuai.html

@@ -22,7 +22,6 @@
           </div>
         </div>
         <div class="partTitleT"></div>
-        <div class="grayLine"></div>
         <div class="main-body">
             <div class="filterBox">
                 <span class="filterItem">

+ 1 - 2
src/html/mukuaiControl.html

@@ -22,7 +22,6 @@
           </div>
         </div>
         <div class="partTitleT"></div>
-        <div class="grayLine"></div>
         <div class="main-body">
             <div class="filterBox">
                 <span class="filterItem">
@@ -45,7 +44,7 @@
                 <thead>
                     <th class="moduleName" style="width: 65px;">序号</th>
                     <th class="moduleItemName">模块名称</th>
-                    <th class="moduleScore" style="width: 80px;">缺陷占比</th>
+                    <th class="moduleScore desc" style="width: 105px;" code="percentStr">缺陷占比</th>
                 </thead>
                 <tbody>
     

+ 5 - 3
src/html/partDetail.html

@@ -21,7 +21,6 @@
           </div>
         </div>
         <div class="partTitleT"></div>
-        <div class="grayLine"></div>
         <div class="main-body">
             <div class="filterBox clearfix">
                 <span class="filterItem typeFilter">
@@ -44,10 +43,13 @@
                     <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>
 

+ 5 - 3
src/html/partDetailControl.html

@@ -21,7 +21,6 @@
           </div>
         </div>
         <div class="partTitleT"></div>
-        <div class="grayLine"></div>
         <div class="main-body">
             <div class="filterBox clearfix">
                 <span class="filterItem typeFilter">
@@ -46,10 +45,13 @@
                         <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>
 

+ 0 - 1
src/html/payDetail.html

@@ -21,7 +21,6 @@
           </div>
         </div>
         <div class="partTitleT"></div>
-        <div class="grayLine"></div>
         <div class="main-body">
             <div class="filterBox clearfix">
                 <span class="filterItem typeFilter">

+ 17 - 13
src/html/qcList.html

@@ -13,38 +13,45 @@
     <div class="container">
         <h2>质控评分</h2>
         <div class="main-body">
-            <div class="filterBox clearfix">
-                <span class="filterItem typeFilter">
+            <div class="filterBox">
+                <div class="clearfix">
+                    <span class="filterItem typeFilter">
                     <span>病人住院序号:</span>
                     <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入病人住院序号">
                 </span>
-                <span class="filterItem typeFilter">
+                    <span class="filterItem typeFilter">
                     <span>病人姓名:</span>
                     <input class="patientNameInp" type="text" placeholder="请输入病人姓名">
                 </span>
-                <span class="filterItem typeFilter deptListWrap">
+                    <span class="filterItem typeFilter deptListWrap">
                     <span>科室:</span>
                     <span class="selectDept">
                         全部
                     </span>
-                   
+
                     <ul class="deptList filterDropList"></ul>
                 </span>
-                <span class="filterItem doctorFilter">
+                    <span class="filter">查询</span>
+                    <span class="export">导出</span>
+                    <span class="filterclear abnormalClear filterclearT">重置</span>
+                </div>
+                <a href="javascript:void(0);" class="filter-toggler" id="filterToggler">收起筛选</a>
+                <div class="toggle-item clearfix">
+                    <span class="filterItem doctorFilter">
                     <span>医生姓名:</span>
                     <input class="doctorInp" type="text" placeholder="请输入医生姓名">
                 </span>
-                <span class="filterItem doctorFilter">
+                    <span class="filterItem doctorFilter">
                     <span>医生工号:</span>
                     <input class="doctorNumInp" type="text" placeholder="请输入医生工号">
                 </span>
-                <span class="filterItem typeFilter clearfix" style="margin-top: 3px;">
+                    <span class="filterItem typeFilter clearfix" style="margin-top: 3px;">
                     <span class="fl">出院日期:</span>
                     <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" /></span>
                     <span  class="divide fl">-</span>
                     <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" /></span>
                 </span>
-                <span class="filterItem">
+                    <span class="filterItem">
                     <span>病历等级:</span>
                     <span class="selectLevel">全部</span>
                     <ul class="levelList filterDropList">
@@ -55,10 +62,7 @@
                         <li class="levelItem" data-name="丙" data-id=丙>丙</li>
                     </ul>
                 </span>
-               
-                <span class="filter">查询</span>
-                <span class="export">导出</span>
-                <span class="filterclear abnormalClear filterclearT">重置</span>
+                </div>
             </div>
             <div class="overAuto">
                 <table>

+ 50 - 45
src/html/qcListDept.html

@@ -13,53 +13,58 @@
     <div class="container">
         <h2>质控评分</h2>
         <div class="main-body">
-            <div class="filterBox clearfix">
-                <span class="filterItem typeFilter">
-                    <span>病人住院序号:</span>
-                    <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入病人住院序号">
-                </span>
-                <span class="filterItem typeFilter">
-                    <span>病人姓名:</span>
-                    <input class="patientNameInp" type="text" placeholder="请输入病人姓名">
-                </span>
-                <span class="filterItem typeFilter">
-                    <span>科室:</span>
-                    <span class="selectDept">
-                        全部
+            <div class="filterBox">
+                <div class="clearfix">
+                    <span class="filterItem typeFilter">
+                        <span>病人住院序号:</span>
+                        <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入病人住院序号">
                     </span>
-                   
-                    <ul class="deptList filterDropList"></ul>
-                </span>
-                <span class="filterItem typeFilter">
-                    <span>医生姓名:</span>
-                    <input class="doctorInp" type="text" placeholder="请输入医生姓名">
-                </span>
-                <span class="filterItem doctorFilter">
-                    <span>医生工号:</span>
-                    <input class="doctorNumInp" type="text" placeholder="请输入医生工号">
-                </span>
-                <span class="filterItem typeFilter clearfix" style="margin-top: 3px;">
-                    <span class="fl">出院日期:</span>
-                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" /></span>
-                    <span  class="divide fl">-</span>
-                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" /></span>
-                </span>
-                <span class="filterItem">
-                    <span>病历等级:</span>
-                    <span class="selectLevel">全部</span>
-                    <ul class="levelList filterDropList">
-                        <Li class="levelItem" data-name="全部" data-id="全部">全部</Li>
-                        <Li class="levelItem" data-name="未评分" data-id="未评分">未评分</Li>
-                        <Li class="levelItem" data-name="甲" data-id="甲">甲</Li>
-                        <li class="levelItem" data-name="乙" data-id=乙>乙</li>
-                        <li class="levelItem" data-name="丙" data-id=丙>丙</li>
-                    </ul>
-                </span>
-                <span class="filter">查询</span>
-                <span class="export">导出</span>
-                <span class="filterclear abnormalClear filterclearT">重置</span>
+                    <span class="filterItem typeFilter">
+                        <span>病人姓名:</span>
+                        <input class="patientNameInp" type="text" placeholder="请输入病人姓名">
+                    </span>
+                    <span class="filterItem typeFilter">
+                        <span>科室:</span>
+                        <span class="selectDept">
+                            全部
+                        </span>
+
+                        <ul class="deptList filterDropList"></ul>
+                    </span>
+                    <span class="filter">查询</span>
+                    <span class="export">导出</span>
+                    <span class="filterclear abnormalClear filterclearT">重置</span>
+                </div>
+                <a href="javascript:void(0);" class="filter-toggler" id="filterToggler">收起筛选</a>
+                <div class="toggle-item clearfix">
+                    <span class="filterItem typeFilter">
+                        <span>医生姓名:</span>
+                        <input class="doctorInp" type="text" placeholder="请输入医生姓名">
+                    </span>
+                    <span class="filterItem doctorFilter">
+                        <span>医生工号:</span>
+                        <input class="doctorNumInp" type="text" placeholder="请输入医生工号">
+                    </span>
+                    <span class="filterItem typeFilter clearfix" style="margin-top: 3px;">
+                        <span class="fl">出院日期:</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" /></span>
+                        <span  class="divide fl">-</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" /></span>
+                    </span>
+                    <span class="filterItem">
+                        <span>病历等级:</span>
+                        <span class="selectLevel">全部</span>
+                        <ul class="levelList filterDropList">
+                            <Li class="levelItem" data-name="全部" data-id="全部">全部</Li>
+                            <Li class="levelItem" data-name="未评分" data-id="未评分">未评分</Li>
+                            <Li class="levelItem" data-name="甲" data-id="甲">甲</Li>
+                            <li class="levelItem" data-name="乙" data-id=乙>乙</li>
+                            <li class="levelItem" data-name="丙" data-id=丙>丙</li>
+                        </ul>
+                    </span>
+                </div>
             </div>
-            <div>
+            <div class="overAuto">
                 <table>
                     <thead>
                         <tr>

+ 9 - 5
src/html/qcListPerson.html

@@ -13,7 +13,8 @@
     <div class="container">
         <h2>质控评分</h2>
         <div class="main-body">
-            <div class="filterBox clearfix">
+            <div class="filterBox">
+                <div class="clearfix">
                 <span class="filterItem typeFilter">
                     <span>病人住院序号:</span>
                     <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入病人住院序号">
@@ -30,6 +31,11 @@
                    
                     <ul class="deptList filterDropList"></ul>
                 </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear filterclearT">重置</span>
+            </div>
+            <a href="javascript:void(0);" class="filter-toggler" id="filterToggler">收起筛选</a>
+            <div class="toggle-item clearfix">
                 <span class="filterItem doctorFilter">
                     <span>医生:</span>
                     <span class="selectDoctor"> 
@@ -55,11 +61,9 @@
                         <li class="levelItem" data-name="丙" data-id=丙>丙</li>
                     </ul>
                 </span>
-                <span class="filter">查询</span>
-                <!-- <span class="reset">重置</span> -->
-                <span class="filterclear abnormalClear filterclearT">重置</span>
             </div>
-            <div>
+            </div>
+            <div class="overAuto">
                 <table>
                     <thead>
                         <tr>

+ 15 - 10
src/html/qcScore.html

@@ -21,15 +21,17 @@
     </script>
     <script type="text/html" id="miniMenuTmpl">
         {{if sonMode.length}}
-        <li class="list-1 ${code}">
+        <li class="list-1  menu-${id}">
             {{else}}
-        <li class="page ${code}" code="${name}">
+        <li class="page  menu-${id}" code="${name}">
             {{/if}}
+            {{if sonMode.length}}
             <ul>
                 {{each sonMode}}
                 <li class="page" code="${name.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g,'')}">${name}</li>
                 {{/each}}
             </ul>
+            {{/if}}
         </li>
     </script>
     <script type="text/html" id="infoTmpl">
@@ -159,7 +161,7 @@
             <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" class="ellipsis" type="text" title="${msg}" value="${msg}" /></p>
-            <p><span>分值: </span> <input id="qcScore" type="text" value="${score}" /></p>
+            <p><span style="margin-right: 8px">分值: </span> <input id="qcScore" type="text" value="${score}" /></p>
             <p class="warning"><span></span><span class="red">支持≥0的数字输入,最多保留小数点后1位~</span></p>
         </div>
     </script>
@@ -225,7 +227,7 @@
             </div>
             {{else}}
             {{if title==='缺陷总览'}}
-            <table>
+            <table class="scroll-table">
                 <thead>
                 <tr>
                     <th width="250">来源</th>
@@ -273,16 +275,19 @@
             <div class="logo">
                 <img src="../images/lantone.png" alt="" style="width: 150px;">
             </div>
-            <!--<a href="javescript:void(0);" class="slide-show">
-                <img src="../images/up.png" alt="">
-            </a>-->
+            <a href="javescript:void(0);" class="slide-show">
+                <img src="../images/down.png" alt="">
+            </a>
             <ul id="subMenu"></ul>
             <div class="copy-right"><p>©杭州朗通信息技术有限公司</p></div>
         </div>
         <div class="menu-mini fl">
-           <!-- <a href="javescript:void(0);" class="slide-show">
-                <img src="../images/down.png" alt="">
-            </a>-->
+            <div class="logo">
+                朗通
+            </div>
+            <a href="javescript:void(0);" class="slide-hide">
+                <img src="../images/up.png" alt="">
+            </a>
             <ul></ul>
         </div>
         <div class="tab-container clearfix">

+ 3 - 3
src/html/quexianDetail.html

@@ -52,9 +52,9 @@
                 <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>
+                    <th class="moduleItemName" code="name">缺陷名称</th>
+                    <th class="moduleItemName textCenter" code="num">数量</th>
+                    <th class="moduleScore" style="width: 100px;" code="percent">缺陷占比</th>
                 </thead>
                 <tbody>
                     

+ 71 - 0
src/html/singleVeto.html

@@ -0,0 +1,71 @@
+<!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 tiaomu singleVeto">
+        <div class="partTitle">
+          <p class="pices"><a href="console.html">控制台 / </a><span>条目缺陷占比</span></p>
+          <div class="monthYear">
+            <span class="mon">本月</span>
+            <span class="year">本年</span>
+          </div> 
+          <div class="dateDetail fr">
+            
+          </div>
+        </div>
+        <div class="partTitleT"></div>
+        <div class="grayLine"></div>
+        <div class="main-body">
+            <div class="filterBox">
+                <span class="filterItem">
+                    <span>缺陷名称:</span>
+                    <span class="">
+                        <input class="moduleItemInp" type="text" placeholder="请输入缺陷名称">
+                    </span>
+                </span>
+                
+                <span class="filterItem typeFilter">
+                    <span>所属模块:</span>
+                    <span class="selectModuleType ellipsis">全部 </span>
+                    <ul class="moduleTypeList filterDropList"></ul>
+                </span>
+                <span class="filterItem">
+                    <span>单项否决:</span>
+                    <span class="selectReject ellipsis">全部</span>
+                    <ul class="rejectList filterDropList">
+                        <Li  class="rejectItem" data-name="全部" data-id="">全部</Li>
+                        <li  class="rejectItem" data-name="是" data-id=1>是</li>
+                        <li  class="rejectItem" data-name="否" data-id=0>否</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">缺陷名称</th>
+                    <th class="moduleItemName">分值</th>
+                    <th class="moduleItemName">单项否决</th>
+                    <th class="moduleItemName">数量</th>
+                    <th class="moduleScore" style="width: 80px;">缺陷占比</th>
+                </thead>
+                <tbody>
+
+                </tbody>
+            </table>
+            <div class="pagination"></div>
+        </div>
+    </div>
+</body>
+
+</html>

+ 0 - 1
src/html/tiaomuControl.html

@@ -22,7 +22,6 @@
           </div>
         </div>
         <div class="partTitleT"></div>
-        <div class="grayLine"></div>
         <div class="main-body">
             <div class="filterBox">
                 <span class="filterItem">

BIN
src/images/add.png


BIN
src/images/ar.png


BIN
src/images/slice.png


+ 2 - 0
src/js/api.js

@@ -79,6 +79,8 @@ const api = {
     saveAndupdataModel:'/qc/modelHospital/saveAndupdataModel',//异常保存
     exportQcList:'/qc/behospitalInfo/exportQcresult',//质控评分导出
     exportQcListDept:'/qc/behospitalInfo/exportQcresultByDept',//质控评分(科室)导出
+    entryRejectPercent:'/console/entryRejectPercent',//单项否决占比
+    qcResultLevelPercent:'/console/qcResultLevelPercent',//各科室甲乙丙级占比
 }
 module.exports = {
     api

+ 435 - 99
src/js/console.js

@@ -8,18 +8,18 @@ require("../images/arrow_down.png")
 const {api} = require('./api.js')
 const echarts = require('echarts');
 const {post,setCookie,delCookie,getCookie,focusMenuItem,picEmptyData} = require('../js/utils.js');
-let payMoney = [],dayLis = [],dateType = 2,slideType = 1,hospital=getCookie("hospital"),deptType="内科",deptId="";
+let payMoney = [],dayLis = [],dateType = 2,slideType = 1,hospital=getCookie("hospital"),deptType="内科",deptId="",level="甲";
 $(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")
-    }
+    // 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(() => {
         getTimeDetail()
@@ -48,20 +48,34 @@ $(function(){
     $(".toggleSlide li").click(function(){
         let str = $(this).attr("data-str"),type = $(this).attr("data-type") 
         if(type == 1){
-            if(!hasData('FUNC000045')){
-                return
-            }
+            // if(!hasData('FUNC000045')){
+            //     return
+            // }
             slideType = 1
-            $(".pubEchart .title span").html("科室平均住院天数柱状图")
-            barChart(dayLis,dateType)
+            level = "甲"
+            getEveryDeptLevel()
+            // $(".pubEchart .title span").html("科室平均住院天数柱状图")
+            // barChart(dayLis,dateType)
             $(this).parent().slideToggle().prev().find("span").html(str)
         }else if(type == 2){
-            if(!hasData('FUNC000046')){
-                return
-            }
+            // if(!hasData('FUNC000046')){
+            //     return
+            // }
             slideType = 2
-            $(".pubEchart .title span").html("科室平均住院花费柱状图")
-            barChart(payMoney,dateType)
+            level = "乙"
+            getEveryDeptLevel()
+            // $(".pubEchart .title span").html("科室平均住院花费柱状图")
+            // barChart(payMoney,dateType)
+            $(this).parent().slideToggle().prev().find("span").html(str)
+        }else if(type == 6){
+            // if(!hasData('FUNC000046')){
+            //     return
+            // }
+            slideType = 6
+            level = "丙"
+            getEveryDeptLevel()
+            // $(".pubEchart .title span").html("科室平均住院花费柱状图")
+            // barChart(payMoney,dateType)
             $(this).parent().slideToggle().prev().find("span").html(str)
         }else if(type == 3){//科室平均分内科
             if(!hasData('FUNC000091')){
@@ -87,16 +101,21 @@ $(function(){
     })
     getDetails()
     getAverageScoreLis()
+    getEveryDeptLevel()
 })
 function getDetails(){
     $(".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(){
+    $(".part02 .bingliLis").click(function(){
       focusMenuItem("YH-ZKK-GKSQXZB_XQ");
       $(parent.document).find("#contentIframe").attr("src","./deptScoreDetailControl.html?from=1&dateType="+dateType)
     })
+    $(".part03 .circle .title").click(function(){
+      focusMenuItem("YH-ZKK-TMQXZB_XQ");
+      $(parent.document).find("#contentIframe").attr("src","./singleVeto.html?from=1&shijian="+dateType+"&qxName=&selectReject=1")
+    })
     $(".part02").on("click",".bingli li.sec",function(){
       focusMenuItem("YH-BLZK-ZKPF");
       let dataC = $(this).attr("data-c")
@@ -104,30 +123,35 @@ function getDetails(){
       $(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")
-            $(parent.document).find("#contentIframe").attr("src","./jiaji.html?from=1&dateType="+dateType)
-        }else{
-            focusMenuItem("YH-ZKK-BASYHGLZB_XQ");
-            $(parent.document).find("#contentIframe").attr("src","./partDetailControl.html?from=1&dateType="+dateType)
-        }
+        // if(hospital=="台州市立"){
+        //     focusMenuItem("YH-ZKK-GKSJJBLZB_XQ")
+        //     $(parent.document).find("#contentIframe").attr("src","./jiaji.html?from=1&dateType="+dateType)
+        // }else{
+        //     focusMenuItem("YH-ZKK-BASYHGLZB_XQ");
+        //     $(parent.document).find("#contentIframe").attr("src","./partDetailControl.html?from=1&dateType="+dateType)
+        // }
+        
+        focusMenuItem("YH-ZKK-BASYHGLZB_XQ");
+        $(parent.document).find("#contentIframe").attr("src","./partDetailControl.html?from=1&dateType="+dateType)
     })
     $(".paymoney.pubEchart .title").click(function(){
-        if($(this).text().indexOf("花费")!==-1){
-            focusMenuItem("YH-ZKK-KSPJZYHF_XQ");
-            $(parent.document).find("#contentIframe").attr("src","./payDetail.html?from=1&dateType="+dateType)
-        }else{
-            focusMenuItem("YH-ZKK-KSPJZYTS_XQ");
-            $(parent.document).find("#contentIframe").attr("src","./dayDetail.html?from=1&dateType="+dateType)
-        }
+        // if($(this).text().indexOf("花费")!==-1){
+        //     focusMenuItem("YH-ZKK-KSPJZYHF_XQ");
+        //     $(parent.document).find("#contentIframe").attr("src","./payDetail.html?from=1&dateType="+dateType)
+        // }else{
+        //     focusMenuItem("YH-ZKK-KSPJZYTS_XQ");
+        //     $(parent.document).find("#contentIframe").attr("src","./dayDetail.html?from=1&dateType="+dateType)
+        // }
+        focusMenuItem("YH-ZKK-GKSQXZB_XQ");
+        $(parent.document).find("#contentIframe").attr("src","./deptScoreDetailControl.html?from=1&dateType="+dateType)
     })
-    $(".defect .partTitlePub").click(function(){//from 1 console / 2  deptConsole
+    $(".defect .partTitlePub").click(function(){    //from 1 console / 2  deptConsole
         focusMenuItem("YH-ZKK-GMKQXZB_XQ");
         $(parent.document).find("#contentIframe").attr("src","./mukuaiControl.html?from=1&dateType="+dateType)
     })
     $(".circleB .title").click(function(){
         focusMenuItem("YH-ZKK-TMQXZB_XQ");
-        $(parent.document).find("#contentIframe").attr("src","./tiaomuControl.html?from=1&dateType="+dateType)
+        $(parent.document).find("#contentIframe").attr("src","./singleVeto.html?from=1&special=1&dateType="+dateType)
     })
 }
 
@@ -160,6 +184,7 @@ function resizeBox(){
             dateType = 1
             getBarData(1)
             getAverageScoreLis()
+            getEveryDeptLevel()
         })
         $(".monthYear .year").click(function(){
             $(this).css({
@@ -172,8 +197,9 @@ function resizeBox(){
                 backgroundColor:'#203463'
             })
             dateType = 2
-            getAverageScoreLis()
             getBarData(2)
+            getAverageScoreLis()
+            getEveryDeptLevel()
         })
     }
 //控制台数
@@ -241,69 +267,109 @@ function getAverageScoreLis(){
         }
     })
 }
-//获取图表数据
-function getBarData(type){
-    if(hasData('FUNC000045')){
-        post(api.getAverageDayNum,{//平均住院天数
-            "type": type||1//1月2年
+//获取各科室病历等级占比
+function getEveryDeptLevel(){
+    if(1){
+        post(api.qcResultLevelPercent,{//各科室病历等级占比
+            "type": dateType||2,//1月2年
+            "level":level
         }).then((res)=>{
             let data = res.data;
             if(data.code == 0){
-                let result2 = data.data['平均住院日']||[]
-                dayLis = result2
-                if(slideType == 1){
-                    barChart(result2,type||1)
+                let result1 = data.data||[]
+                let dataX1=[],dataY1=[]
+                for(let i = 0;i < result1.length;i++){
+                    dataX1.push(result1[i].deptName)
+                    dataY1.push(result1[i].percentStr.replace('%',''))
                 }
+                barChartLevel(dataX1,dataY1)
             }
         })
     }else{
         $(".toggleSlide1").css("opacity",0.5)
     }
-    if(hasData('FUNC000046')){
-        post(api.getAverageFee,{//平均住院费用
-            "type": type||1//1月2年
-        }).then((res)=>{
-            let data = res.data;
-            if(data.code == 0){
-                let result3 = data.data['平均住院费用']||[]
-                payMoney = result3;
-                if(slideType == 2){
-                    barChart(result3,type||1)
-                }
-            }
-        })
-    }else{
-        $(".toggleSlide2").css("opacity",0.5)
-    }
-    if(hasData('FUNC000048')&&hospital=="台州市立"){
-        post(api.getLevelResultDept,{//各科室甲级占比
-            "type": type||1//1月2年
-        }).then((res)=>{
-            let data = res.data;
-            if(data.code == 0){
-                let result2 = data.data['各科室甲级病历占比']||[]
-                let dataX2=[],dataY2=[];
-                for(let i = 0;i < result2.length;i++){
-                    dataX2.push(result2[i].deptName)
-                    dataY2.push(result2[i].firstPercent.replace('%',''))
-                }
-                lineChart(dataX2,dataY2)
-            }
-        })
-    }
-    if(hasData('FUNC000075')&&hospital=="长兴医院"){
+}
+//获取图表数据
+function getBarData(type){
+    // if(hasData('FUNC000045')){
+    //     post(api.getAverageDayNum,{//平均住院天数
+    //         "type": type||1//1月2年
+    //     }).then((res)=>{
+    //         let data = res.data;
+    //         if(data.code == 0){
+    //             let result2 = data.data['平均住院日']||[]
+    //             dayLis = result2
+    //             if(slideType == 1){
+    //                 barChart(result2,type||1)
+    //             }
+    //         }
+    //     })
+    // }else{
+    //     $(".toggleSlide1").css("opacity",0.5)
+    // }
+    // if(hasData('FUNC000046')){
+    //     post(api.getAverageFee,{//平均住院费用
+    //         "type": type||1//1月2年
+    //     }).then((res)=>{
+    //         let data = res.data;
+    //         if(data.code == 0){
+    //             let result3 = data.data['平均住院费用']||[]
+    //             payMoney = result3;
+    //             if(slideType == 2){
+    //                 barChart(result3,type||1)
+    //             }
+    //         }
+    //     })
+    // }else{
+    //     $(".toggleSlide2").css("opacity",0.5)
+    // }
+    // if(hasData('FUNC000048')&&hospital=="台州市立"){
+    //     post(api.getLevelResultDept,{//各科室甲级占比
+    //         "type": type||1//1月2年
+    //     }).then((res)=>{
+    //         let data = res.data;
+    //         if(data.code == 0){
+    //             let result2 = data.data['各科室甲级病历占比']||[]
+    //             let dataX2=[],dataY2=[];
+    //             for(let i = 0;i < result2.length;i++){
+    //                 dataX2.push(result2[i].deptName)
+    //                 dataY2.push(result2[i].firstPercent.replace('%',''))
+    //             }
+    //             lineChart(dataX2,dataY2)
+    //         }
+    //     })
+    // }
+    // if(hasData('FUNC000075')&&hospital=="长兴医院"){
+    //     post(api.homePageLevelLimit,{//病案首页
+    //         "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].deptName)
+    //                 dataY1.push(result1[i].firstLevelPercentStr.replace('%',''))
+    //             }
+    //             lineChartSpecial(dataX1,dataY1)
+    //         }
+    //     })
+    // }
+    if(hasData("FUNC000075")){
         post(api.homePageLevelLimit,{//病案首页
             "type": type||1//1月2年
         }).then((res)=>{
             let data = res.data;
             if(data.code == 0){
                 let result1 = data.data||[]
-                let dataX1=[],dataY1=[]
+                let dataX1=[],dataY1=[],dataY2=[],dataY3=[]
                 for(let i = 0;i < result1.length;i++){
                     dataX1.push(result1[i].deptName)
-                    dataY1.push(result1[i].firstLevelPercentStr.replace('%',''))
+                    dataY1.push((result1[i].firstLevelPercentStr.replace('%','')-0))
+                    dataY2.push((result1[i].emptyPercentStr.replace('%','')-0))
+                    dataY3.push((result1[i].errorPercentStr.replace('%','')-0))
                 }
-                lineChartSpecial(dataX1,dataY1)
+                lineChartHome(dataX1,dataY1,dataY2,dataY3)
             }
         })
     }
@@ -358,13 +424,30 @@ function getBarData(type){
             }
         })
     }
-    if(hasData('FUNC000053')){
-        post(api.entryByDept,{//各科室缺陷占比
-            "type": type||1//1月2年
+    // if(hasData('FUNC000053')){
+    //     post(api.entryByDept,{//各科室缺陷占比
+    //         "type": type||1//1月2年
+    //     }).then((res)=>{
+    //         let data = res.data;
+    //         if(data.code == 0){
+    //             let result2 = data.data['各科室缺陷占比']||[]
+    //             for(let i = 0;i < result2.length;i++){
+    //                 result2[i].value = result2[i].num
+    //             }
+    //             emptyCircle(result2)
+    //             panDetail(result2)
+    //         }
+    //     })
+    // }
+    // if(1){
+        post(api.entryRejectPercent,{//单项否决
+            "type": type||2,//1月2年
+            "deptClass": "",
+            "level": "",
         }).then((res)=>{
             let data = res.data;
             if(data.code == 0){
-                let result2 = data.data['各科室缺陷占比']||[]
+                let result2 = data.data||[]
                 for(let i = 0;i < result2.length;i++){
                     result2[i].value = result2[i].num
                 }
@@ -372,7 +455,7 @@ function getBarData(type){
                 panDetail(result2)
             }
         })
-    }
+    // }
 }
 //part01
 function personNum(data){
@@ -490,7 +573,7 @@ function part02pan(data,dom){
     };      
     dom.setOption(option);
 }
-//折现图
+//折现图各科室甲级病历占比(长兴)
 function lineChart(dataX,dataY){
     if(dataX.length==0&&dataY.length==0){
         $(".barChartLine").css("display","none")
@@ -706,6 +789,153 @@ function lineChartSpecial(dataX,dataY){
     };
     myCharts.setOption(option);
 }
+//折线图病案首页
+function lineChartHome(dataX,dataY1,dataY2,dataY3){
+    console.log(dataX,dataY1,dataY2,dataY3)
+    if(dataX.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()
+    });
+    option = {
+        color:['#00A1FF','#FF2B92','#3EFFD1'],   
+        title: {
+            text: '百分比',
+            top: 15,
+            left: 10,
+            textStyle: {
+                fontSize: 14,
+                color:'#E9EBEF',
+                fontWeight: 400
+            }
+        },
+        tooltip: {
+            trigger: 'axis',
+            position: 'right',
+            axisPointer: {            // 坐标轴指示器,坐标轴触发有效
+                type: 'line'        // 默认为直线,可选为:'line' | 'shadow'
+            },
+            formatter: function(param) {           
+                return `<div style="color:#fff;">${param[0].name}<br>
+                    <i style="background:#00A1FF;margin-right:5px;display:inline-block;width:8px;height:8px;border-radius:50%"></i>病案首页合格率:${param[0]&&param[0].value}%<br>
+                    <i style="background:#FF2B92;margin-right:5px;display:inline-block;width:8px;height:8px;border-radius:50%"></i>病案首页完整率:${param[1]&&param[1].value}%<br>
+                    <i style="background:#3EFFD1;margin-right:5px;display:inline-block;width:8px;height:8px;border-radius:50%"></i>病案首页完善率:${param[2]&&param[2].value}%<br>
+                </div>`
+            }
+        },
+        legend: {
+            selectedMode :false,
+            right:15,
+            top:15,
+            data: [
+                {
+                    name: '合格率',
+                    textStyle: {
+                        color: '#A5ADBF'
+                    }
+                },
+                {
+                    name: '完整率',
+                    textStyle: {
+                        color: '#A5ADBF'
+                    }
+                },
+                {
+                    name: '完善率',
+                    textStyle: {
+                        color: '#A5ADBF'
+                    }
+                }
+            ]
+        },
+        grid: {
+            left: '3%',
+            right: '4%',
+            bottom: '3%',
+            containLabel: true
+        },
+        xAxis: {
+            type: 'category',
+            boundaryGap: false,
+            data: dataX,
+            axisTick: {
+                alignWithLabel: true
+            },
+            axisLabel: {//x轴刻度
+                textStyle: {
+                    color: '#E9EBEF'
+                },
+                rotate:45,
+                formatter: function (value) {
+                    //x轴的文字改为竖版显示
+                    if(value.length>7){
+                        return value.slice(0,7)+'...'
+                    }
+                    return value;
+                 }
+            },
+            axisLine: {//x轴
+                lineStyle:{
+                    color:'#4A5D8E'
+                }
+            }
+        },
+        yAxis: {
+            type: 'value',
+            min:0,
+            boundaryGap: [0.01, 0.01],axisLabel: {  
+                show: true,  
+                },  
+            axisLine: {//y轴
+                show: false
+            },
+            axisTick: {
+                show: false
+            },
+            axisLabel: {//y轴刻度
+                textStyle: {
+                    color: '#E9EBEF'
+                },
+                
+                interval: 'auto',  
+                formatter: '{value} %'  
+            },
+            splitLine:{//分割线
+                lineStyle:{
+                    color:'#344876'
+                }
+            }
+        },
+        series: [
+            {
+                name: '合格率',
+                type: 'line',
+                // stack: '总量',
+                data: dataY1
+            },
+            {
+                name: '完整率',
+                type: 'line',
+                // stack: '总量',
+                data: dataY2
+            },
+            {
+                name: '完善率',
+                type: 'line',
+                // stack: '总量',
+                data: dataY3
+            }
+        ]
+    };   
+    myCharts.setOption(option); 
+}
 //柱状图住院费用
 function barChartPay(dataX,dataY){
     // console.log(dataX,dataY,78787878)
@@ -812,6 +1042,113 @@ function barChartPay(dataX,dataY){
     myCharts.setOption(option);
 }
 //柱状图住院日期
+function barChartLevel(dataX,dataY){
+    // console.log(dataX,dataY,7887878787)
+    if(dataX.length==0&&dataY.length==0){
+        $("#barChart,.innerOuter").css("display","none")
+        picEmptyData('.barChartPayEmpty')
+        return
+    }else{
+        $("#barChart").css("display","block")
+        $(".barChartPayEmpty").css("display","none")
+    }
+    var myCharts = echarts.init(document.getElementById('barChart'));
+    $(window).resize(function(){
+        myCharts.resize()
+    });
+    option = {
+        color: ['#37C4FC'],
+        tooltip: {
+            trigger: 'axis',
+            position: 'right',
+            axisPointer: {            // 坐标轴指示器,坐标轴触发有效
+                type: 'line'        // 默认为直线,可选为:'line' | 'shadow'
+            },
+            formatter: function(param) { 
+                return `<div style="color:#fff;">${param[0].name}<br>
+                    <i style="background:#00A1FF;margin-right:5px;display:inline-block;width:8px;height:8px;border-radius:50%"></i>${level}级病历占比:${param[0]&&param[0].value}%<br>
+                </div>`
+            }
+        },
+        grid: {
+            left: '3%',
+            right: '4%',
+            bottom: '3%',
+            containLabel: true
+        },
+        xAxis: [
+            {
+                type: 'category',
+                data: dataX,
+                axisTick: {
+                    alignWithLabel: true
+                },
+                axisLabel: {//x轴刻度
+                    textStyle: {
+                        color: '#E9EBEF'
+                    },
+                    rotate:45,
+                    formatter: function (value) {
+                        //x轴的文字改为竖版显示
+                        if(value.length>7){
+                            return value.slice(0,7)+'...'
+                        }
+                        return value;
+                     }
+                },
+                axisLine: {//x轴
+                    lineStyle:{
+                        color:'#4A5D8E'
+                    }
+                }
+            }
+        ],
+        yAxis: [
+            {
+                type: 'value',
+                axisLine: {//y轴
+                    show: false
+                },
+                axisTick: {
+                    show: false
+                },
+                axisLabel: {//y轴刻度
+                    textStyle: {
+                        color: '#E9EBEF'
+                    },
+                
+                    interval: 'auto',  
+                    formatter: '{value} %'  
+                },
+                splitLine:{//分割线
+                    lineStyle:{
+                        color:'#344876'
+                    }
+                }
+            }
+            
+        ],
+        title:[{
+            text: dataX.length>0?'百分比':'',
+            top: 15,
+            left: 10,
+            textStyle: {
+                fontSize: 14,
+                color:'#E9EBEF',
+                fontWeight: 400
+            }
+        }],
+        series: [
+            {
+                name: level+'级病历占比',
+                type: 'bar',
+                barWidth: '23%',
+                data: dataY
+            }
+        ]
+    };
+    myCharts.setOption(option);
+}
 function barChart(data,type){
     // console.log(data,type,78787888787787)
     if(data.length==0){
@@ -1058,10 +1395,8 @@ function emptyCircle(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,
@@ -1248,8 +1583,7 @@ function queList(data){
         <tr class="thead">
         <td class="td01">排名</td>
         <td class="td02">缺陷详情</td>
-        <td class="td03">数量</td>
-        <td class="td04">占比</td>
+        <td class="td04">错误率</td>
         </tr>`
     if(data.length == 0){
         $(".qtable").css("display","none")
@@ -1258,19 +1592,22 @@ function queList(data){
     }else{
         $(".qtableEmpty").css("display","none")
         $(".qtable").css("display","table")
-
     }
     for(let i = 0;i < data.length;i++){
         strAll += `
             <tr>
                 <td style="text-align:center;"><i style="background:${i < 3?'#ECB22E':'#526186'};color:${i < 3?'#fff':'#B7BDCC'};">${i+1}</i></td>
-                <td><p class="td02name">${data[i].name}</p></td>
-                <td>${data[i].num}</td>
+                <td class="homegodetail" data-name="${data[i].name}"><p class="td02name ellipsis">${data[i].name}</p></td>
                 <td>${data[i].percentStr}</td>
             </tr>
         `
     }
     $(".qtable").html(tmp+strAll)
+    $(".homegodetail").click(function(){
+        let name = $(this).attr("data-name")
+        focusMenuItem("YH-ZKK-TMQXZB_XQ");
+        $(parent.document).find("#contentIframe").attr("src","./singleVeto.html?from=1&special=1&shijian="+dateType+"&model="+name)
+    })
 }
 //饼图列表注释渲染
 function panDetail(data){
@@ -1291,9 +1628,8 @@ function panDetail(data){
     $(".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)
-
+        focusMenuItem("YH-ZKK-TMQXZB_XQ");
+        $(parent.document).find("#contentIframe").attr("src","singleVeto.html?from=1&shijian="+dateType+"&qxName="+deptName)
     })
 }
 function panDetailB(data){

+ 8 - 5
src/js/deptConsole.js

@@ -53,7 +53,7 @@ function tiaomu(){
     });
     $(".circleBSingle .title,.homePageNo .title").click(function(){
         focusMenuItem("YH-KSZR-TMQXZB_XQ");
-        $(parent.document).find("#contentIframe").attr("src","tiaomu.html?from=2&deptName="+curDept+"&dateType="+dateType)
+        $(parent.document).find("#contentIframe").attr("src","singleVeto.html?from=2&deptName="+curDept+"&shijian="+dateType)
     });
     $(".homePage .title").click(function(){
         focusMenuItem("YH-KSZR-BASYHGLZB_XQ")
@@ -721,8 +721,7 @@ function queList(data){
         <tr class="thead">
         <td class="td01">排名</td>
         <td class="td02">缺陷详情</td>
-        <td class="td03">数量</td>
-        <td class="td04">占比</td>
+        <td class="td04">错误率</td>
         </tr>`
     if(data.length == 0){
         $(".qtable").css("display","none")
@@ -737,13 +736,17 @@ function queList(data){
         strAll += `
             <tr>
                 <td style="text-align:center;"><i style="background:${i < 3?'#ECB22E':'#526186'};color:${i < 3?'#fff':'#B7BDCC'};">${i+1}</i></td>
-                <td>${data[i].name}</td>
-                <td>${data[i].num}</td>
+                <td class="homegodetail" data-name="${data[i].name}"><p class="td02name ellipsis">${data[i].name}</p></td>
                 <td>${data[i].percentStr}</td>
             </tr>
         `
     }
     $(".qtable").html(tmp+strAll)
+    $(".homegodetail").click(function(){
+        let name = $(this).attr("data-name")
+        focusMenuItem("YH-KSZR-TMQXZB_XQ");
+        $(parent.document).find("#contentIframe").attr("src","./singleVeto.html?from=1&special=1&shijian="+dateType+"&model="+name)
+    })
 }
 //饼图列表注释渲染
 function panDetailB(data){

+ 11 - 6
src/js/deptScoreDetail.js

@@ -25,6 +25,7 @@ $(function(){
     let srcUrl = $("#contentIframe",parent.document).attr("src")
     deptId = deptIdTemp = getUrlArgObjectNew("deptName",srcUrl)||""
     statisticsType = getUrlArgObjectNew("dateType",srcUrl)||"2"
+    from = getUrlArgObjectNew("from",srcUrl)||"1"
     curDeptId = getUrlArgObjectNew("curDeptId",srcUrl)||""
     if(statisticsType == 1){
         $(".monthYear .mon").css({
@@ -72,7 +73,11 @@ $(".abnormalClear").click(function(){
 })
 $(".partTitle a").click(function(){
     //初始菜单选中
-    $(".menu .page",parent.document).removeClass("active").eq(0).addClass("active");
+    if(from == 2){
+        focusMenuItem('YH-KZTKS')
+    }else{
+        focusMenuItem('YH-KZT')
+    }
     $(".container",parent.document).addClass("console-cont");
 })
 $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
@@ -191,12 +196,12 @@ function renderTab(data,hisId,activePage){
             <tr  data-index=${i}>
                 <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
                 <td >${item.doctorName || "-"}</td>
-                <td class="goHomeDetail" data-doc="${item.doctorName || ""}">${item.entryNum || "-"}</td>
+                <td class="goHomeDetail" data-doc="${item.doctorName || ""}">${item.entryNum+'' || "-"}</td>
                 <td >${item.averageValue || "-"}</td>
-                <td >${item.mrNum || "-"}</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.mrNum+'' || "-"}</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>

+ 3 - 3
src/js/deptScoreDetailControl.js

@@ -191,9 +191,9 @@ function renderTab(data,hisId,activePage){
                 <td class="goHomeDetailQuexian goHomeDetail" data-dept="${item.deptName || ""}">${item.entryNum || "-"}</td>
                 <td >${item.averageValue || "-"}</td>
                 <td >${item.mrNum || "-"}</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  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>

+ 606 - 0
src/js/deptScoreDetailControlLevel.js

@@ -0,0 +1,606 @@
+const $ = require('jquery');
+require("../css/deptScoreDetailControlLevel.less");
+require('./modal.js');
+const {api} = require('./api.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")
+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,deptType = "",
+  nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
+  data_desc=[],data_asc=[],hospital=getCookie("hospital");
+  let srcUrl = $("#contentIframe",parent.document).attr("src")
+  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',
+          color:'#fff'
+      }).siblings().css({
+          color:'#00A1FF',
+          backgroundColor:'#fff'
+      })
+  }else{
+      $(".monthYear .year").css({
+          backgroundColor:'#00A1FF',
+          color:'#fff'
+      }).siblings().css({
+          color:'#00A1FF',
+          backgroundColor:'#fff'
+      })
+  }
+$(".abnormalClear").click(function(){
+    // window.location.reload()
+    behospitalCode=behospitalCodeTemp = ""
+    deptId =deptIdTemp= ""
+    $(".selectDept").attr({'title':"全部",'data-id':''}).html("全部").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    $(".patientNumInp").val("")
+    getTabData(1)
+})
+
+$(".partTitle a").click(function(){
+    //初始菜单选中
+    $(".menu .page",parent.document).removeClass("active").eq(0).addClass("active");
+    $(".container",parent.document).addClass("console-cont");
+})
+$('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
+$('.iconCalen').on("mouseenter", function(e){
+    $(this).attr("src", iconCalenBlue)
+})
+$('.iconCalen').on("mouseleave", function(e){
+    $(this).attr("src", iconCalenGrey)
+})
+$('.iconCalen').on("click", function(e){
+    $(this).parent().find("input").focus()
+})
+$('.recordScoreBtn').css("opacity",hasData('FUNC000017')?'1':'0.5')
+dateChange()
+//所有数据切换日期筛选
+function dateChange(){
+    $(".monthYear .mon").click(function(){
+        $(this).css({
+            backgroundColor:'#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,parent){
+    let codeLis = getCookie("codeLis")
+    if(parent){
+        if(codeLis.indexOf(parent)==-1){//有权限
+            return false
+        }
+    }
+    if(codeLis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+}
+function getTabData(activePage){
+    const param = {
+        "asc": "",
+        "desc": "",
+        "name": behospitalCode||"",
+        "deptClass": deptId||'',
+        "type": statisticsType||2, //1-本月,2-本年
+    }
+    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;
+            const totalPage = data.pages;
+            const totalNum = data.total;
+            renderTab(data,data.hospitalId,activePage);
+            renderPagination(totalPage,Number(activePage),totalNum)
+            if(totalPage > 1){
+                renderPagination(totalPage,Number(activePage),totalNum)
+            } else{
+                $('.pagination').html("")
+            }
+        }else{
+            $.alerModal({"message":res.data.msg,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        }
+    }).catch((e) =>{
+        
+    })
+}
+
+getTabData(1)
+
+$(".filter").on("click", function(e){
+    name = nameTemp
+    behospitalCode = behospitalCodeTemp
+    level = levelTemp
+    deptId = deptIdTemp
+    getTabData(1)
+})
+function renderTab(data,hisId,activePage){
+    let str = ``
+    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="goHomeDetailQuexian goHomeDetail" data-dept="${item.deptName || ""}">${item.entryNum || "-"}</td>
+                <td >${item.averageValue || "-"}</td>
+                <td >${item.mrNum || "-"}</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>
+        `
+    }
+    $('.deptScoreDetailControlTable table').html(str?tHead+'<tbody>'+str+'</tbody>':tHead+`<tbody>${emptyBox()}</tbody>`)
+    bindScoreDetail(hisId)
+    $(".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){
+    window.open(`./qcScore.html?id=${id}&age=${age}&hid=${hid}&code=${code}`)
+}
+function bindScoreDetail(hisId){
+    $('.patientNameSpan').on('click',function(e){
+        const index = $(this).attr("data-index")
+        const type = $(this).attr("data-type")
+        const item = tabList[index]
+        midifyMsgBox(item,type)
+    })
+}
+
+  
+function midifyMsgBox(item,type){
+    const itemCopy = JSON.parse(JSON.stringify(item))
+    let msgBox = ''
+    if(type == 1){
+        msgBox = `<div class="midifyMsgBox">
+            <div class="mask"></div>
+            <div class="midifyMsgContent abnormal">
+                <p class="midifyMsgTitle">修改 <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></p>
+                <div class="itemMsgInfoBox">
+                    <span class="itemMsgLab abnormalLeft">状态:</span> 
+                    <span class="abnormalAll" data-status="${itemCopy.status}">${itemCopy.status == 0?"未处理":"已处理"}</span>
+                    <ul class="abnormalStatusLis">
+                        <li data-status="0">未处理</li>
+                        <li data-status="1">已处理</li>
+                    </ul>
+                </div>
+                <div class="itemMsgInfoBox">
+                    <span class="itemMsgLab abnormalLeft abnormalMark">备注:</span> 
+                    <span class="itemInfoRight"> 
+                        <textarea class="abnormalTxt" placeholder="请输入内容" >${itemCopy.remark}</textarea>
+                    </span>
+                </div>
+                <div  class="itemMsgInfoTips">支持≥0的数字输入,最多保留小数点后1位~</div>
+                <div class="midifyMsgBtn abnormalBtn">
+                    <span class="midifyEdit">保存</span>
+                </div>
+            </div>
+        </div>`
+    }else{
+        msgBox = `<div class="midifyMsgBox">
+            <div class="mask"></div>
+            <div class="midifyMsgContent midifyMsgContentDel">
+                <p class="midifyMsgTitle">修改 <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></p>
+                <p class="delTips">确认要删除该条异常记录?</p>
+                <div class="midifyMsgBtn midifyMsgBtnDel">
+                    <span class="midifyEdit midifyEditDel">删除</span>
+                    <span class="midifyEdit midifyEditQuit">取消</span>
+                </div>
+            </div>
+        </div>`
+    }
+    $("#mainBox", parent.document).append(msgBox)
+    $(".midifyEditDel", parent.document).on("click",function(){
+        delModifyOne(itemCopy)
+    })
+    $(".midifyEditQuit", parent.document).on("click",function(){
+        $("#mainBox .midifyMsgBox", parent.document).remove()
+    })
+    $(".abnormalAll", parent.document).on("click",function(){
+        $(".abnormalStatusLis", parent.document).slideToggle()
+    })
+    $(".abnormalStatusLis li", parent.document).on("click",function(){
+        let status = $(this).attr("data-status")
+        let str = $(this).html()
+        $(".abnormalAll", parent.document).attr("data-status",status).html(str)
+        $(".abnormalStatusLis", parent.document).slideToggle()
+    })
+    $("#mainBox .midifyMsgBox .iconClose", parent.document).on("click", function(e){
+        $("#mainBox .midifyMsgBox", parent.document).remove()
+    })
+    $("#mainBox .midifyMsgBox .itemScore", parent.document).on("keypress", function(event){
+        return (/[\d\.]/.test(String.fromCharCode(event.keyCode)))
+     })
+    $("#mainBox .midifyMsgBox .itemScore", parent.document).on("input", function(e){
+       const val = $(this).val() 
+       itemCopy.score = val
+    })
+    $("#mainBox .midifyMsgBox .midifyEdit", parent.document).on("click", function(e){
+        saveModifyOne(itemCopy)
+    })
+}
+//保存修改
+function delModifyOne(itemCopy){
+    let param = {
+        "id": itemCopy.id
+    }
+    post(api.delQcAnnormal,param).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data;
+            getTabData(1)
+            $("#mainBox .midifyMsgBox", parent.document).remove()
+            $.alerModal({"message":'删除成功',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//保存修改
+function saveModifyOne(itemCopy){
+    let txt = $(".abnormalTxt", parent.document).val()
+    let status = $(".abnormalAll", parent.document).attr("data-status")
+    let param = {
+        "id": itemCopy.id,
+        "remark": txt,
+        "status": status
+    }
+    post(api.saveQcAnnormal,param).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data;
+            getTabData(1)
+            $("#mainBox .midifyMsgBox", parent.document).remove()
+            $.alerModal({"message":'修改成功',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        }else{
+            
+        }
+    }).catch((e) =>{
+    
+    })
+}
+//选择病历等级
+$('.selectLevel').on("click", function(e){
+    e.stopPropagation()
+    $(".deptList ").css("display", "none")
+    $(".selectDept .arrow").attr("src",iconDown)
+    const showList =  $(".levelList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".levelList ").css("display","block")
+        $(".selectLevel .arrow").attr("src",iconUp)
+    }else{
+        $(".levelList ").css("display", "none")
+        $(".selectLevel .arrow").attr("src",iconDown)
+    }
+})
+
+bindLeveldSelect()
+//是否启用选择
+function bindLeveldSelect(){
+    $('.levelItem').on("click",function(){
+        const levelItemName = $(this).attr("data-name")
+        const levelItemItemId = $(this).attr("data-id")
+        levelTemp =levelItemItemId
+        $('.selectLevel').html(levelItemName)
+        $(".levelList").css("display", "none")
+        $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    })
+}
+
+//全选绑定
+
+$('.selectDept').on("click", function(e){
+    e.stopPropagation()
+    $(".levelList ").css("display","none")
+    $(".selectLevel .arrow").attr("src",iconDown)
+    const showList =  $(".deptList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".deptList ").css("display","block")
+        $(".selectDept .arrow").attr("src",iconUp)
+    }else{
+        $(".deptList ").css("display", "none")
+        $(".selectDept .arrow").attr("src",iconDown)
+    }
+})
+
+
+function rendeDeptList(deptList){
+    let str = `<li class="deptItem " data-id=" " data-name="全部">全部</li>`
+    for(let i = 0; i < deptList.length; i++){
+        str += `<li class="deptItem ellipsis" title=${deptList[i].deptName} data-id=${deptList[i].deptId} data-name=${deptList[i].deptName}> ${deptList[i].deptName}</li>`
+    }
+    $('.deptList').html(str)
+}
+bindDeptSelect()
+//科室选择
+function bindDeptSelect(){
+    $('.deptItem').on("click",function(){
+        const deptItemName = $(this).attr("data-name")
+        const deptItemId = $(this).attr("data-id")
+        deptIdTemp =deptItemId
+        $('.selectDept').html(deptItemName).attr('title',deptItemName)
+        $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".deptList").css("display", "none")
+    })
+}
+function loading(){
+    const str = `
+    <div class="loadingBox">
+            <div class="mask"></div>
+            <img class="loadingImg" src=${loadingImg}  alt="loading" />
+        </div>
+    `
+    $("#mainBox", parent.document).append(str)
+}
+function hideLoading(){
+    $("#mainBox .loadingBox", parent.document).remove()
+}
+$('.recordScoreBtn').on("click",function(e){
+    if(!hasData('FUNC000017','YH-BLZK-ZKPF')){
+        return
+    }
+    let scoreList = []
+    for(let i = 0; i <tabList.length; i++){
+        if(tabList[i].hasSelect){
+            scoreList.push(tabList[i].behospitalCode)
+        }
+    }
+    if(scoreList.length === 0){
+        $.alerModal({"message":'请选择要评分的项!',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        return
+    } else{
+        loading()
+        for(let j = 0; j < scoreList.length; j++){
+            recordScore(scoreList[j],scoreList.length)
+        }
+    }
+})
+$("th[code]").on("click",function(e){
+    const code=$(this).attr("code");
+    if(data_asc[0]===code){
+      data_desc=[code];
+      data_asc=[];
+      $("th[code]").removeClass("asc desc");
+      $(this).addClass("desc");
+    }else{
+      data_desc=[];
+      data_asc=[code];
+      $("th[code]").removeClass("asc desc");
+      $(this).addClass("asc");
+    }
+    getTabData(1);
+});
+function recordScore(behospitalCode,totalNum){
+    const param = {
+        behospitalCode: behospitalCode
+    }
+    post(api.recordScore,param).then(res =>{
+        if(res.data.code == '0'){
+            scoreSum++
+            if(scoreSum === totalNum){
+                hideLoading()
+                scoreSum = 0
+                const activePage = $(".activePage").attr('data-page') || 1
+
+                getTabData(activePage)
+            }
+      
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+$(".patientNumInp").on("input", function(e){
+    const val = $(this).val().trim()
+    behospitalCodeTemp = val
+})
+$(".patientNameInp").on("input", function(e){
+    const val = $(this).val().trim()
+    nameTemp = val
+})
+$(".doctorInp").on("input", function(e){
+    const val = $(this).val().trim()
+    doctorNameTemp = val
+})
+$(".doctorNumInp").on("input", function(e){
+  const val = $(this).val().trim();
+    doctorNumTemp = val
+})
+$(function() {
+    $.datepicker.regional['zh-CN'] = {
+    clearText: '清除',
+    clearStatus: '清除已选e799bee5baa6e59b9ee7ad9431333361303131日期',
+    closeText: '关闭',
+    closeStatus: '不改变当前选择',
+    prevText: '<上月',
+    prevStatus: '显示上月',
+    prevBigText: '<<',
+    prevBigStatus: '显示上一年',
+    nextText: '下月>',
+    nextStatus: '显示下月',
+    nextBigText: '>>',
+    nextBigStatus: '显示下一年',
+    currentText: '今天',
+    currentStatus: '显示本月',
+    monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    yearNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+    monthStatus: '选择月份',
+    yearStatus: '选择年份',
+    weekHeader: '周',
+    weekStatus: '年内周次',
+    dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
+    dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
+    dayNamesMin: ['日','一','二','三','四','五','六'],
+    dayStatus: '设置 DD 为一周起始',
+    dateStatus: '选择 m月 d日, DD',
+    dateFormat: 'yy-mm-dd',
+    firstDay: 1,
+    initStatus: '请选择日期',
+    isRTL: false};
+    $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
+
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    });
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    });
+});
+
+//分页渲染
+function renderPagination(totalPage,activePage,totalNum){
+    let str = `<span class="totalSum">共${totalPage}页/${totalNum}条数据</span><span class="prePage"><img class="arrowPage" src=${arrowLeft} /></span>`
+    if(totalPage <= 6){
+        for(let i = 1; i <= totalPage; i++){
+          
+            str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
+        }
+    }else{
+        if(activePage <= 3){ //选中页数小于4
+            for(let i = 1; i <= 4; i++){
+                str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
+            }
+            str += `<span class="more" >...</span>`
+        str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+
+        } else if(activePage > totalPage -3){
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-3)}" data-page=${totalPage -3}>${totalPage -3}</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-2)}" data-page=${totalPage -2}>${totalPage -2}</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-1)}" data-page=${totalPage -1}>${totalPage -1}</span>`
+            str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        } else {
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+(activePage -1)}" data-page=${activePage -1}>${activePage -1}</span>`
+            str += `<span class="pageNum ${'page'+activePage}" data-page=${activePage}>${activePage}</span>`
+            str += `<span class="pageNum ${'page'+(activePage +1)}" data-page=${activePage +1}>${activePage +1}</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        }
+       
+    }
+    str += `<span class="nextPage"><img class="arrowPage" src=${arrowRight} /></span>`
+    $('.pagination').html(str)
+    $('.page' + activePage).addClass('activePage')
+    $(".pageNum").on("click", function(e){
+        const activePageNow = Number($(this).attr('data-page'))
+        getTabData(activePageNow)
+        // renderPagination(totalPage,activePageNow,totalNum)
+    })
+    $(".prePage").on("click", function(e){
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if(activePageNow > 1){
+            activePageNow--
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    $(".nextPage").on("click", function(e){
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if(activePageNow < totalPage){
+            activePageNow++
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    
+}
+
+$(document).on("click", function(){
+    $(".levelList ").css("display", "none")
+    $(".deptList").css("display", "none")
+    $(".selectLevel .arrow").attr("src",iconDown)
+    
+})
+
+$((function($){
+})($));

+ 13 - 10
src/js/index.js

@@ -29,6 +29,7 @@ $(function(){
     $(this).css("color","#777777")
   })
   // $("#contentIframe").attr("src",hasData('YH-KZT')?'console.html':hasData('YH-KZTKS')?'deptConsole.html':'console.html');
+  
 });
 //判断有无某一权限
 function hasData(data,list){
@@ -62,15 +63,15 @@ function initMenu(data,userInfo){
     $(".container").addClass("console-cont");
   }
   //菜单收起展开
-  $(".list-1").on("click",function(){
+  $(".menu .list-1").on("click",function(){
     if($(this).is(".list-1-show")){
       $(this).removeClass("list-1-show")
       $(this).find("ul").slideToggle();
       return;
     }
 
-    $(".list-1-show ul").slideUp();
-    $(".list-1").removeClass("list-1-show");
+    $(".menu .list-1-show ul").slideUp();
+    $(".menu .list-1").removeClass("list-1-show");
     const ulShow =  $(this).find("ul").css("display")
     if(ulShow == "none"){
       $(this).addClass("list-1-show")
@@ -79,11 +80,12 @@ function initMenu(data,userInfo){
   });
 //收起菜单
   $(".slide-hide").click(function(){
-    $(".menu").animate({"width":"45px"},function(){
+
+    $(".menu").animate({"width":"60px"},function(){
       $(this).hide();
       $(".menu-mini").show();
     });
-    $(".main").animate({"margin-left":"45px"});
+    $(".main").animate({"margin-left":"60px"});
   });
   //展开菜单
   $(".slide-show").click(function(){
@@ -93,15 +95,16 @@ function initMenu(data,userInfo){
     $(".main").animate({"margin-left":"205px"});
   });
 
-  $(".list-1 li").on("click",function(e){
+  $(".menu .list-1 li").on("click",function(e){
     e.stopPropagation();
   });
   //右侧页面切换
   $(".page").on("click",function(){
-    $(".menu .active").removeClass('active');
-    $(this).addClass("active");
-    $(this).parents(".list-1-show").addClass("active");
-    const code = $(this).attr("code");
+    $(".menu .active,.menu-mini .active").removeClass('active');
+    const code=$(this).attr("code");
+    const mItems = $(".menu .page[code="+code+"],.menu-mini .page[code="+code+"]");
+    mItems.addClass("active");
+    mItems.parents(".list-1").addClass("active");
     let url = './'+pageMap[code];
     if(code === 'YH-BLZK-ZKPFGR'){
       url += `?doctorName=${userInfo.linkman}`

+ 10 - 1
src/js/mukuai.js

@@ -24,6 +24,10 @@ $(function(){
     isReject = getUrlArgObjectNew("dateType",srcUrl)||2
     deptId = deptIdTemp = getUrlArgObjectNew("deptName",srcUrl)||""
     from = getUrlArgObjectNew("from",srcUrl)||""
+    name =nameTemp = getUrlArgObjectNew("name",srcUrl)||""
+    if(name){
+        $(".moduleItemInp").val(name)
+    }
     getTabData(1)//条目缺陷
     if(isReject == 1){
         $(".monthYear .mon").css({
@@ -251,13 +255,18 @@ function renderTab(data,activePage){
         str += `
             <tr data-id=${item.id} data-index=${i}>
                 <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
-                <td>${item.name}</td>
+                <td class="goHomeDetail" data-model="${item.name}">${item.name}</td>
                 <td  class="textCenter">${item.percentStr}</td>
             </tr>
         `
     }
     $('tbody').html(str?str:emptyBox())
     bindEdit(data,activePage)
+    $(".goHomeDetail").click(function(){
+        let model = $(this).attr("data-model")
+        focusMenuItem("YH-ZKK-TMQXZB_XQ");
+        $(parent.document).find("#contentIframe").attr("src","./singleVeto.html?from=1&special=1&model="+model+"&shijian="+isReject)
+    })
 }
 
 function bindEdit(data,activePage){

+ 37 - 4
src/js/mukuaiControl.js

@@ -12,7 +12,8 @@ const arrowLeft= require("./../images/arrow_left.png")
 const arrowRight = require("./../images/arrow_right.png")
 
 
-let casesId="", name="", isReject ="2", isUsed ="",casesIdTemp="", nameTemp="", isRejectTemp ="2", isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId=""
+let casesId="", name="", isReject ="2", isUsed ="",casesIdTemp="", nameTemp="", isRejectTemp ="2", isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId="",data_asc=[], data_desc=['percentStr']    
+
 $(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
@@ -24,6 +25,10 @@ $(function(){
     // deptName = getUrlArgObjectNew("deptName",srcUrl)||""
     isRejectTemp = isReject = getUrlArgObjectNew("dateType",srcUrl)||"2"
     from = getUrlArgObjectNew("from",srcUrl)||""
+    name =nameTemp = getUrlArgObjectNew("name",srcUrl)||""
+    if(name){
+        $(".moduleItemInp").val(name)
+    }
     getTabData(1)//条目缺陷
     
     $(".partTitle a").click(function(){
@@ -33,7 +38,11 @@ $(function(){
     })
     $(".abnormalClear").click(function(){
         // window.location.reload()
-        name = ""
+        name=nameTemp = ""
+        data_asc=[],
+        data_desc=['percentStr']
+        $("th[code]").removeClass("asc desc");
+        $(".moduleScore").addClass("desc")
         $(".patientNumInp").val("")
         getTabData(1)
     })
@@ -146,6 +155,22 @@ function dateChange(){
         getTabData(1)
     })
 }
+$("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 = {
@@ -153,7 +178,9 @@ function getTabData(activePage){
         type: isReject,
         name: name, //条目名
         deptName: deptId, //科室名
-        size: 15
+        size: 15,
+        asc:data_asc,     //升序
+        desc: data_desc,       //降序
     }
     post(from == 1?api.entryCountGroupByCasePage:api.entryCountGroupByCaseAndDeptPage,param).then(res =>{
         if(res.data.code == '0'){
@@ -238,13 +265,19 @@ function renderTab(data,activePage){
         str += `
             <tr data-id=${item.id} data-index=${i}>
                 <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
-                <td>${item.name}</td>
+                <td class="goHomeDetail" data-model="${item.name}">${item.name}</td>
                 <td class="textCenter">${item.percentStr}</td>
             </tr>
         `
     }
     $('tbody').html(str?str:emptyBox())
     bindEdit(data,activePage)
+    $(".goHomeDetail").click(function(){
+        let model = $(this).attr("data-model")
+        focusMenuItem("YH-ZKK-TMQXZB_XQ");
+        // $(parent.document).find("#contentIframe").attr("src","quexianDetailControlHome.html?deptName="+deptName+"&from=1&casesId=243"+"&shijian="+statisticsType+"&ruleType="+ruleType)
+        $(parent.document).find("#contentIframe").attr("src","./singleVeto.html?from=1&special=1&model="+model+"&shijian="+isReject)
+    })
 }
 
 function bindEdit(data,activePage){

+ 8 - 4
src/js/partDetail.js

@@ -190,11 +190,14 @@ function renderTab(data,hisId,activePage){
             <tr  data-index=${i}>
                 <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
                 <td >${item.doctorName || "-"}</td>
-                <td data-doc="${item.doctorName || ""}" class="goHomeDetail">${item.entryNum || "-"}</td>
+                <td data-doc="${item.doctorName || ""}" data-ruleType="" class="goHomeDetail">${item.entryNum || "-"}</td>
+                <td >${item.firstLevelPercentStr || "-"}</td>
+                <td  class="goHomeDetail" data-ruleType="1" data-dept="${item.deptName || ""}">${item.emptyNum+'' || "-"}</td>
+                <td >${item.emptyPercentStr+'' || "-"}</td>
+                <td  class="goHomeDetail" data-ruleType="2" data-dept="${item.deptName || ""}">${item.errorNum+'' || "-"}</td>
+                <td >${item.errorPercentStr+'' || "-"}</td>
                 <td >${item.averageValue || "-"}</td>
                 <td >${item.mrNum || "-"}</td>
-                <td >${item.firstLevelPercentStr || "-"}</td>
-                <td >${item.secondLevelPercentStr || "-"}</td>
             </tr>
         `
     }
@@ -202,7 +205,8 @@ function renderTab(data,hisId,activePage){
     bindScoreDetail(hisId)
     $(".goHomeDetail").click(function(){
         let docName = $(this).attr("data-doc")
-        $(parent.document).find("#contentIframe").attr("src","quexianDetailHome.html?from=1&casesId=243&deptName="+deptIdTemp+"&docName="+docName+"&shijian="+statisticsType)
+        let ruleType = $(this).attr("data-ruleType")
+        $(parent.document).find("#contentIframe").attr("src","quexianDetailHome.html?from=1&casesId=243&deptName="+deptIdTemp+"&docName="+docName+"&shijian="+statisticsType+"&ruleType="+ruleType)
     })
 }
 

+ 12 - 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,emptyBox} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,setTitleTxt} = 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")
@@ -22,7 +22,8 @@ let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",beho
   data_desc=[],data_asc=[];
   let srcUrl = $("#contentIframe",parent.document).attr("src")
   statisticsType = getUrlArgObjectNew("dateType",srcUrl)||""
-  
+  from = getUrlArgObjectNew("from",srcUrl)||""
+  //setTitleTxt('',from)         //导航栏面包屑
   if(statisticsType == 1){
       $(".monthYear .mon").css({
           backgroundColor:'#00A1FF',
@@ -147,11 +148,14 @@ function renderTab(data,hisId,activePage){
             <tr  data-index=${i}>
                 <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
                 <td >${item.deptName || "-"}</td>
-                <td class="goHomeDetail" data-dept="${item.deptName || ""}">${item.entryNum || "-"}</td>
-                <td >${item.averageValue || "-"}</td>
-                <td >${item.mrNum || "-"}</td>
+                <td class="goHomeDetail" data-ruleType="" data-dept="${item.deptName || ""}">${item.entryNum || "-"}</td>
                 <td >${item.firstLevelPercentStr || "-"}</td>
-                <td >${item.secondLevelPercentStr || "-"}</td>
+                <td class="goHomeDetail" data-ruleType="1" data-dept="${item.deptName || ""}">${item.emptyNum+'' || "-"}</td>
+                <td >${item.emptyPercentStr+'' || "-"}</td>
+                <td class="goHomeDetail" data-ruleType="2" data-dept="${item.deptName || ""}">${item.errorNum+'' || "-"}</td>
+                <td >${item.errorPercentStr+'' || "-"}</td>
+                <td >${item.averageValue || "-"}</td>
+                <td >${item.mrNum+'' || "-"}</td>
             </tr>
         `
     }
@@ -160,7 +164,8 @@ function renderTab(data,hisId,activePage){
     bindScoreDetail(hisId)
     $(".goHomeDetail").click(function(){
         let deptName = $(this).attr("data-dept")
-        $(parent.document).find("#contentIframe").attr("src","quexianDetailControlHome.html?deptName="+deptName+"&from=1&casesId=243"+"&shijian="+statisticsType)
+        let ruleType = $(this).attr("data-ruleType")
+        $(parent.document).find("#contentIframe").attr("src","quexianDetailControlHome.html?deptName="+deptName+"&from=1&casesId=243"+"&shijian="+statisticsType+"&ruleType="+ruleType)
     })
 }
 

+ 10 - 7
src/js/qcList.js

@@ -61,9 +61,12 @@ $('.iconCalen').on("click", function(e){
     $(this).parent().find("input").focus()
 })
 $('.recordScoreBtn').css("opacity",hasData('FUNC000017')?'1':'0.5')
-// $(".abnormalClear").click(function(){
-//     window.location.reload()
-// })
+
+$("#filterToggler").click(function(){
+    const text = $(this).text();
+    $(".toggle-item").slideToggle();
+    $(this).text(text==="收起筛选"?"展开筛选":"收起筛选").toggleClass("up");
+});
 //判断有无某一权限
   function hasData(data){
     let trdObj = JSON.parse(getCookie("trdObj"))
@@ -246,7 +249,7 @@ function renderTab(data,hisId){
 }
 
 function scoreDetail(id,age,hid,code,name){
-    window.open(`./qcScore.html?id=${id}&age=${age}&name=${name}&hid=${hid}&code=${code}`)
+    window.open(`./qcScore.html?id=${id}&age=${age}&name=${name}&hid=${getCookie('hospitalid')}&code=${code}`)
 }
 function bindScoreDetail(hisId){
     $('.patientNameSpan').on('click',function(e){
@@ -613,9 +616,9 @@ $((function($){
             "deptId": deptId,
             "doctorCode":doctorNum,
             "doctorName": doctorName,
-            "leaveHosDateEnd": behosDateEnd,
-            "leaveHosDateStart": behosDateStart,
-            "level": level,
+            "leaveHosDateEnd": '2020-04-03 00:00:00'||behosDateEnd,
+            "leaveHosDateStart": '2020-04-01 00:00:00'||behosDateStart,
+            "level": 2||level,
             "name": name
         }
         expJson(api.exportQcList,param).then(res =>{

+ 7 - 4
src/js/qcListDept.js

@@ -27,9 +27,12 @@ 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()
-// })
+
+$("#filterToggler").click(function(){
+  const text = $(this).text();
+  $(".toggle-item").slideToggle();
+  $(this).text(text==="收起筛选"?"展开筛选":"收起筛选").toggleClass("up");
+});
 
 console.log('docName',docName)
 if(chengdu){
@@ -264,7 +267,7 @@ function renderTab(data){
 }
 
 function scoreDetail(id,age,code){
-    window.open(`./qcScore.html?id=${id}&age=${age}&code=${code}`)
+    window.open(`./qcScore.html?id=${id}&age=${age}&code=${code}&hid=${getCookie('hospitalid')}`)
 }
 function bindScoreDetail(){
     $('.patientNameSpan').on('click',function(e){

+ 7 - 4
src/js/qcListPerson.js

@@ -18,9 +18,12 @@ let doctorName_global = getUrlArgObject("doctorName")
 
 // console.log('doctorName_global',doctorName_global)
 $('.selectDoctor').html(doctorName_global)
-// $(".abnormalClear").click(function(){
-//     window.location.reload()
-// })
+
+$("#filterToggler").click(function(){
+  const text = $(this).text();
+  $(".toggle-item").slideToggle();
+  $(this).text(text==="收起筛选"?"展开筛选":"收起筛选").toggleClass("up");
+});
 $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 
@@ -263,7 +266,7 @@ function renderTab(data){
 }
 
 function scoreDetail(id,age,code){
-    window.open(`./qcScore.html?id=${id}&age=${age}&code=${code}`)
+    window.open(`./qcScore.html?id=${id}&age=${age}&code=${code}&hid=${getCookie('hospitalid')}`)
 }
 function bindScoreDetail(){
     $('.patientNameSpan').on('click',function(e){

+ 18 - 15
src/js/qcScore.js

@@ -26,28 +26,28 @@ function initMenu(data){
   $("#subMenuTmpl").tmpl(menu).appendTo("#subMenu");
   $("#miniMenuTmpl").tmpl(menu).appendTo(".menu-mini ul");
   //菜单收起展开
-  $(".list-1").on("click",function(){
-    $(".list-1 .slide-up").removeClass('slide-up');
+  $(".sub-menu .list-1").on("click",function(){
+    $(".sub-menu .list-1 .slide-up").removeClass('slide-up');
     $(this).toggleClass('slide-up');
     $(this).find("ul").slideToggle();
   });
-  $(".list-1 li").on("click",function(e){
+  $(".sub-menu .list-1 li").on("click",function(e){
     e.stopPropagation();
   });
 //收起菜单
-  $(".slide-hide").click(function(){
-    $(".sub-menu").animate({"width":"45px"},function(){
+  $(".slide-show").click(function(){
+    $(".sub-menu").animate({"width":"60px"},function(){
       $(this).hide();
       $(".menu-mini").show();
     });
-    $(".tab-container").animate({"margin-left":"45px"});
+    $(".tab-container").animate({"margin-left":"60px"});
   });
   //展开菜单
-  $(".slide-show").click(function(){
+  $(".slide-hide").click(function(){
     $(".menu-mini").hide();
-    $(".sub-menu").show().animate({"width":"205px"},function(){
+    $(".sub-menu").show().animate({"width":"220px"},function(){
     });
-    $(".tab-container").animate({"margin-left":"205px"});
+    $(".tab-container").animate({"margin-left":"220px"});
   });
   //右侧内容切换
   $(".page").on("click",function(){
@@ -60,9 +60,10 @@ function initMenu(data){
     }
 
     //选中样式
-    $(".sub-menu .active").removeClass('active');
-    $(this).parents(".list-1").addClass("active");
-    $(this).addClass("active");
+    $(".sub-menu .active,.menu-mini .active").removeClass('active');
+    const mItems = $(".sub-menu .page[code="+title+"],.menu-mini .page[code="+title+"]");
+    mItems.addClass("active");
+    mItems.parents(".list-1").addClass("active");
     //显示对应内容
     const code=$(this).attr("code");
     global_activeTab=code;
@@ -93,7 +94,7 @@ function getRecordDetail(){
       const {beHospital,result,msg} = data;
       const info=Object.assign(beHospital,result);
       initMenu(JSON.parse(result.menuData));
-      $(".sub-menu>ul>li:first-child.page").addClass("active");
+      $(".sub-menu>ul>li:first-child.page,.menu-mini>ul>li:first-child.page").addClass("active");
      global_activeTab=$(".sub-menu .page.active").attr("code");
       initPatientInfo(info);
       initContent(result.pageData);
@@ -130,12 +131,13 @@ function initContent(data){
       }else{
         const icon=require("../images/empty1.png");
         const sid=moduleId?"("+moduleId+")":"";
+        const code=k.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g,'');
         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+'">' +
+        if(!$(".content-item[code="+code+"] .empty").length){  //显示一条空提示即可
+          hml='<div class="content-item" code="'+code+'">' +
             '<h2 class="title">'+k+sid+'</h2>'+emptyStr+'</div>';
           $.tmpl(hml,{}).appendTo("#contentInfo");
         }
@@ -167,6 +169,7 @@ function formatInfoData(k,data){
 function initList(data){
   //$("#flawTotalList").tmpl({title:"缺陷总览",data:data}).appendTo(".flaw-table");
   formatSpecPage(data,"缺陷总览");
+  $(".flaw-table").show();
   $(".flaw-table .page-item[code="+global_activeTab+"]").show();
   $(".slide-up").off("click").on("click",function(){
     const name = $(this).text();

+ 10 - 9
src/js/quexianDetailControl.js

@@ -44,19 +44,20 @@ $(function(){
         })
     }
     $(".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(){
-            $(".menu .page",parent.document).removeClass("active").eq(0).addClass("active");
-            $(".container",parent.document).addClass("console-cont");
-        })
-    }else{
+    // if(from == 1){
         $(".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");
         })
-    }
+    // }
+    // 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(){
@@ -149,7 +150,7 @@ function getTabData(activePage){
         name: name, //条目名
         doctorName:"",
         casesName:deptId,
-        deptName:deptName||"",
+        deptName:deptName=="全院"?"":(deptName||""),
         casesId:casesIds||"",
         globalType:1,
         ascs:data_asc,

+ 5 - 3
src/js/quexianDetailControlHome.js

@@ -12,7 +12,7 @@ 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=""
+let casesId="", name="", isReject ="2",deptName="",data_asc=[],data_desc=["casesName"], isUsed ="",ruleType="",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="下拉">`)
@@ -26,7 +26,8 @@ $(function(){
     from = getUrlArgObjectNew("from",srcUrl)||""
     isReject = isRejectTemp = getUrlArgObjectNew("shijian",srcUrl)||"2"
     casesIds = getUrlArgObjectNew("casesId",srcUrl)||""
-    $('.selectDept').html(deptName.substring(0,11)+'...').attr("title",deptName)
+    ruleType = getUrlArgObjectNew("ruleType",srcUrl)||""
+    $('.selectDept').html(deptName).attr("title",deptName)
     if(isReject == 1){
         $(".monthYear .mon").css({
             backgroundColor:'#00A1FF',
@@ -147,7 +148,8 @@ function getTabData(activePage){
         name: name, //条目名
         doctorName:"",
         casesName:deptId,
-        deptName:deptName||"",
+        ruleType:ruleType||null,
+        deptName:deptName=="全院"?"":(deptName||""),
         casesId:casesIds||"",
         globalType:1,
         ascs:data_asc,

+ 3 - 1
src/js/quexianDetailHome.js

@@ -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="", data_asc=[],data_desc=["casesName"],nameTemp="",casesIds="", isRejectTemp ="2", isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId=""
+let casesId="", name="", isReject ="2",deptName="", isUsed ="",ruleType="",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="下拉">`)
@@ -26,6 +26,7 @@ $(function(){
     docName = getUrlArgObjectNew("docName",srcUrl)||""
     casesIds = getUrlArgObjectNew("casesId",srcUrl)||""
     isReject= isRejectTemp= getUrlArgObjectNew("shijian",srcUrl)||"2"
+    ruleType= getUrlArgObjectNew("ruleType",srcUrl)||""
     if(isReject == 1){
         $(".monthYear .mon").css({
             backgroundColor:'#00A1FF',
@@ -164,6 +165,7 @@ function getTabData(activePage){
         casesId:casesIds||"",
         ascs:data_asc,
         descs:data_desc,
+        ruleType:ruleType||null,
         size: 15
     }
     post(api.entryCountGroupByEntryAndDeptPage,param).then(res =>{

+ 1 - 1
src/js/roleManager.js

@@ -189,7 +189,7 @@ $(function(){
                                 ++num
                             }
                         }
-                        if(num == tmpPer.length){//内层全部都取消了,父级取消选中
+                        if(num == tmpPer.length&&tmpPer.length>0){//内层全部都取消了,父级取消选中
                             tmpDataLis[i].haveMenu = '0'
                         }else{
                             tmpDataLis[i].haveMenu = '1'

+ 529 - 0
src/js/singleVeto.js

@@ -0,0 +1,529 @@
+const $ = require('jquery');
+require("../css/tiaomu.less");
+require('./../resource/jquery-ui/jquery-ui.min.js');
+require('./modal.js');
+const {api} = require('./api.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,focusMenuItem} = 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="", nameTemp="", isRejectTemp ="2",model='', isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId="",isSingleReject="", isSingleRejectTemp="",casesName="",casesNameTemp=""
+$(".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)||""
+    isRejectTemp = isReject = getUrlArgObjectNew("shijian",srcUrl)||"2"
+    selectReject = getUrlArgObjectNew("selectReject",srcUrl)||""
+    from = getUrlArgObjectNew("from",srcUrl)||""
+    special = getUrlArgObjectNew("special",srcUrl)||""
+    name=nameTemp = getUrlArgObjectNew("qxName",srcUrl)||""
+    casesName =casesNameTemp = getUrlArgObjectNew("model",srcUrl)||""
+    if(name){
+        $(".moduleItemInp").attr("title",name).val(name)
+        selectReject=1
+    }
+    if(casesName){
+        $(".selectModuleType").html(casesName).attr("title",casesName).append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    }
+    if(selectReject){
+        isSingleReject = isSingleRejectTemp = '1'
+        $(".selectReject").html("是").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    }
+    if(special){
+        $(".singleVeto .partTitle .pices span").html("条目缺陷占比")
+    }
+    if(from == 2){
+        $(".partTitle a").attr("href","deptConsole.html").html("控制台(科室) / ")
+    }
+    getTabData(1)//条目缺陷
+    $(".partTitle a").click(function(){
+        //初始菜单选中
+        $(".managerContainer").remove()
+        if(from == 2){
+            focusMenuItem('YH-KZTKS')
+        }else{
+            focusMenuItem('YH-KZT')
+        }
+        $(".container",parent.document).addClass("console-cont");
+    })
+    $(".abnormalClear").click(function(){
+        // window.location.reload()
+        $(".selectModuleType").html("全部")
+        $(".selectReject").html("全部")
+        $(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        $(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        name = ""
+        casesName=casesNameTemp=""
+        casesId=casesIdTemp=""
+        isSingleReject=isSingleRejectTemp=""
+        $(".moduleItemInp").val("")
+        getTabData(1)
+    })
+    
+    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'
+        })
+    }
+})
+bindDeptSelect()
+//科室选择
+function bindDeptSelect(){
+    $(document).on("click",'.deptItem',function(){
+        const deptItemName = $(this).attr("data-name")
+        const deptItemId = $(this).attr("data-id")
+        deptIdTemp =deptItemId
+        if(deptItemName.length > 10){
+            $('.selectDept').html(deptItemName.substring(0,8)+'...')
+        }else{
+            $('.selectDept').html(deptItemName)
+        }
+        $('.selectDept ').attr('title',deptItemName)
+        $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".deptList").css("display", "none")
+    })
+}
+//全选绑定
+
+$('.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.deptName}" data-id="${tmp.deptName}" data-name="${tmp.deptName}">${tmp.deptName}</li>`
+    }
+    $(".tiaomu .filterDropList").html(str)
+}
+function getTabData(activePage){
+    const param = {
+        current:activePage,
+        type: isReject,
+        casesId:casesId, //模块Id
+        casesName:casesName=='全部'?'':casesName, //模块Id
+        isReject:isSingleReject, //是否单项否决
+        name: name, //条目名
+        deptName: deptId, //科室名
+        size: 15
+    }
+    post(from == 1?api.entryGroupByEntryInnerPage:api.entryGroupByEntryAndDeptInnerPage,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'
+        })
+        isRejectTemp = 1
+        isReject = 1
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        isRejectTemp = 2
+        isReject = 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,isSingleReject = isSingleRejectTemp,casesName = casesNameTemp 
+    getTabData(1)
+})
+$(".filterclear").on("click", function(e){
+    nameTemp = ""
+    $(".moduleItemInp").val("")
+})
+$('.selectModuleType').on("click", function(e){
+    e.stopPropagation()
+    $(".rejectList ").css("display","none")
+    $(".usedList ").css("display", "none")
+    $(".selectReject .arrow").attr("src",iconDown)
+    $(".selectUsed .arrow").attr("src",iconDown)
+    const showList =  $(".moduleTypeList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".moduleTypeList ").css("display","block")
+        $(".selectModuleType .arrow").attr("src",iconUp)
+    }else{
+        $(".moduleTypeList ").css("display", "none")
+        $(".selectModuleType .arrow").attr("src",iconDown)
+    }
+})
+$('.selectReject').on("click", function(e){
+    e.stopPropagation()
+    $(".moduleTypeList ").css("display", "none")
+    $(".usedList ").css("display", "none")
+    $(".selectModuleType .arrow").attr("src",iconDown)
+    $(".selectUsed .arrow").attr("src",iconDown)
+    const showList =  $(".rejectList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".rejectList ").css("display","block")
+        $(".selectUsed .arrow").attr("src",iconUp)
+    }else{
+        $(".rejectList ").css("display", "none")
+        $(".selectUsed .arrow").attr("src",iconDown)
+    }
+})
+$('.selectUsed').on("click", function(e){
+    e.stopPropagation()
+    $(".moduleTypeList ").css("display", "none")
+    $(".rejectList ").css("display","none")
+    $(".selectModuleType .arrow").attr("src",iconDown)
+    $(".selectReject .arrow").attr("src",iconDown)
+    const showList =  $(".usedList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".usedList ").css("display","block")
+        $(".selectUsed .arrow").attr("src",iconUp)
+    }else{
+        $(".usedList ").css("display", "none")
+        $(".selectUsed .arrow").attr("src",iconDown)
+    }
+})
+// bindRejectSelect()
+// bindUsedSelect()
+// getTabData(1)
+// getmoduleTypeList()
+function renderTab(data,activePage){
+    let str = ``;
+    const cls = hasData("FUNC000007")?"editItem":"editItemDis";
+    for(let i = 0; i < data.length; i++){
+        const item = data[i]
+        str += `
+            <tr data-id=${item.id} data-index=${i}>
+                <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
+                <td class="textCenter">${item.casesName||'-'}</td>
+                <td>${item.name||'-'}</td>
+                <td  class="textCenter">${item.score||'-'}</td>
+                <td  class="textCenter">${item.isReject == '1'?'是':'否'}</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) =>{
+    
+    })
+}
+getmoduleTypeList()
+
+//获取模块类型
+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
+        if(modeTypeItemId){
+            casesName=casesNameTemp = modeTypeItemName
+        }else{
+            casesName=casesNameTemp = ""
+        }
+        $('.selectModuleType').html(modeTypeItemName).attr("title",modeTypeItemName)
+        $(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".moduleTypeList ").css("display", "none")
+    })
+}
+bindRejectSelect()
+//单项否决选择
+function bindRejectSelect(){
+    $('.rejectItem').on("click",function(){
+        const rejectItemName = $(this).attr("data-name")
+        const rejectItemId = $(this).attr("data-id")
+        isSingleReject=isSingleRejectTemp=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)
+})

+ 3 - 3
src/js/tiaomu.js

@@ -121,10 +121,10 @@ 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)
+        $(".partDetail .selectDept ").attr({"data-id":deptList[0].deptName,"title":deptList[0].deptName}).find("i").html(deptList[0].deptName)
         deptId = deptIdTemp = deptList[0].deptName
     }
-    $(".tiaomu .selectDept ").attr("data-id",deptList[0].deptName).find("i").html(deptList[0].deptName)
+    $(".tiaomu .selectDept ").attr({"data-id":deptList[0].deptName,"title":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>`
@@ -140,7 +140,7 @@ function getTabData(activePage){
         size: 15
     }
     // console.log(isReject)
-    post(from == 1?api.entryCountGroupByEntryPage:api.entryGroupByEntryAndDeptInnerPage,param).then(res =>{
+    post(api.entryGroupByEntryAndDeptInnerPage,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data.records
             const totalPage = res.data.data.pages

+ 15 - 5
src/js/utils.js

@@ -2,7 +2,7 @@ const qs = require('qs');
 const $ = require("jquery");
 const axios = require("axios")
 var Utils = require('./rePromise');
-const baseUrl = "http://192.168.2.236:5858"
+const baseUrl = "http://192.168.2.121:5858"
 //页面映射
 const pageMap={
   'YH-KZT':'console.html',
@@ -16,9 +16,9 @@ const pageMap={
   'YH-QXGL-YHGL':'userManager.html',
   'YH-QXGL-JSGL':'roleManager.html',
   'YH-KSZR-GMKQXZB_XQ':'mukuai.html?from=2',
-  'YH-KSZR-TMQXZB_XQ':'tiaomu.html?from=2',
+  'YH-KSZR-TMQXZB_XQ':'singleVeto.html?from=2&special=1',
   'YH-ZKK-GMKQXZB_XQ':'mukuaiControl.html?from=1',
-  'YH-ZKK-TMQXZB_XQ':'tiaomuControl.html?from=1',
+  'YH-ZKK-TMQXZB_XQ':'singleVeto.html?from=1&special=1',
   'YH-YCSJJK':'abnormal.html',
   'YH-ZKK-KSPJZYTS_XQ':'dayDetail.html',
   'YH-ZKK-KSPJZYHF_XQ':'payDetail.html',
@@ -28,13 +28,14 @@ const pageMap={
   'YH-JCSJWH':'deptScoreDetailControl.html',
   "YH-ZKK-GKSQXZB_XQ":'deptScoreDetailControl.html',
   
-  "YH-KSZR-KSQXZB_XQ":'deptScoreDetail.html',
+  "YH-KSZR-KSQXZB_XQ":'deptScoreDetail.html?from=2',
   "YH-ZKK-GKSJJBLZB_XQ":'jiaji.html',
   
   "YH-ZKK-BASYHGLZB_XQ":'partDetailControl.html',
   "YH-KSZR-BASYHGLZB_XQ":'partDetail.html',
 
   "YH-JCSJWH-ZKLXWH":'assertType.html',
+  "YH-ZKK-TMQXZB_XQ":'singleVeto.html?from=1',
 };
 
 //重写assign方法
@@ -246,8 +247,10 @@ $(".modal .close").click(function(){
 //计算容器高度
 function setBoxHeight(){
   const ht=window.innerHeight;
-  $(".content-box,.flaw-table").height((ht-55)+'px');
+  $(".content-box").height((ht-55)+'px');
+  $(".flaw-table").height((ht-70)+'px');
   $(".content-ht").height((ht-120)+"px");
+  $(".scroll-table tbody").css("max-height",(ht-200)+"px")
 }
 setBoxHeight();
 $(window).resize(function(){
@@ -287,6 +290,12 @@ function picEmptyData(dom,str){
   `
   $(dom).css({"position":"relative","display":"block"}).html(empty)
 }
+function setTitleTxt(dom,from){
+  console.log(dom,from)
+  if(!from){
+    $(dom?dom:".partTitle").find("a").remove()
+  }
+}
 module.exports = {
   pageMap,
   post,
@@ -301,6 +310,7 @@ module.exports = {
   focusMenuItem,
   emptyBox,
   picEmptyData,
+  setTitleTxt,
   downloadExportedData,
   expJson
 };

+ 15 - 0
webpack.config.js

@@ -43,6 +43,7 @@ module.exports = {
     tiaomuControl: path.resolve(__dirname, 'src/js', 'tiaomuControl.js'),
     assertType: path.resolve(__dirname, 'src/js', 'assertType.js'),
     assertTypeDetail: path.resolve(__dirname, 'src/js', 'assertTypeDetail.js'),
+    singleVeto:path.resolve(__dirname, 'src/js', 'singleVeto.js'),
     vendor: 'lodash'// 多个页面所需的公共库文件,防止重复打包带入
   },
   output: {
@@ -471,6 +472,20 @@ module.exports = {
         collapseWhitespace: true //删除空白符与换行符
       }
     }),
+    new HtmlWebpackPlugin({
+      title: 'singleVeto.html', //单项否决详情页
+      template: path.resolve(__dirname, 'src/html', 'singleVeto.html'),
+      filename: 'singleVeto.html',
+      chunks: ['singleVeto', 'vendor', 'common'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
+    
     new CopyWebpackPlugin([
       {
         from:'src/resource',