浏览代码

Merge branch 'master' into referMaster

luolei 5 年之前
父节点
当前提交
310026fa53
共有 82 个文件被更改,包括 2848 次插入629 次删除
  1. 1 1
      src/css/abnormal.less
  2. 18 0
      src/css/common.less
  3. 76 68
      src/css/console.less
  4. 1 1
      src/css/dayDetail.less
  5. 67 63
      src/css/deptConsole.less
  6. 1 1
      src/css/deptScoreDetail.less
  7. 2 2
      src/css/deptScoreDetailControl.less
  8. 13 2
      src/css/index.less
  9. 1 0
      src/css/itemDefectDetail.less
  10. 5 1
      src/css/itemManager.less
  11. 1 1
      src/css/jiaji.less
  12. 7 0
      src/css/keyItemFlawControl.less
  13. 16 0
      src/css/moduleManager.less
  14. 1 1
      src/css/mukuai.less
  15. 1 1
      src/css/partDetail.less
  16. 1 1
      src/css/partDetailControl.less
  17. 1 1
      src/css/payDetail.less
  18. 13 2
      src/css/qcList.less
  19. 363 0
      src/css/qcListCopy.less
  20. 7 1
      src/css/qcListDept.less
  21. 7 2
      src/css/qcListDocteam.less
  22. 8 4
      src/css/qcListPerson.less
  23. 27 10
      src/css/qcScore.less
  24. 4 3
      src/css/quexianDetail.less
  25. 4 3
      src/css/quexianDetailControl.less
  26. 4 3
      src/css/quexianDetailControlHome.less
  27. 4 3
      src/css/quexianDetailHome.less
  28. 4 3
      src/css/reset.less
  29. 86 0
      src/css/roll.css
  30. 2 1
      src/css/single.less
  31. 189 177
      src/html/console.html
  32. 1 0
      src/html/dayDetail.html
  33. 144 137
      src/html/deptConsole.html
  34. 1 1
      src/html/index.html
  35. 2 2
      src/html/itemDefectDetail.html
  36. 1 0
      src/html/jiaji.html
  37. 2 1
      src/html/keyItemFlawControl.html
  38. 1 0
      src/html/moduleManager.html
  39. 1 0
      src/html/mukuaiControl.html
  40. 1 0
      src/html/payDetail.html
  41. 1 1
      src/html/qcList.html
  42. 136 0
      src/html/qcListCopy.html
  43. 1 1
      src/html/qcListDept.html
  44. 1 1
      src/html/qcListDocteam.html
  45. 1 1
      src/html/qcListPerson.html
  46. 2 2
      src/html/qcScore.html
  47. 1 0
      src/html/quexianDetailControl.html
  48. 2 1
      src/html/quexianDetailControlHome.html
  49. 2 1
      src/js/abnormal.js
  50. 10 1
      src/js/api.js
  51. 2 1
      src/js/assertType.js
  52. 28 7
      src/js/console.js
  53. 14 3
      src/js/dayDetail.js
  54. 10 6
      src/js/deptConsole.js
  55. 2 1
      src/js/deptScoreDetail.js
  56. 8 12
      src/js/deptScoreDetailControl.js
  57. 10 1
      src/js/index.js
  58. 25 20
      src/js/itemDefectDetail.js
  59. 2 1
      src/js/itemManager.js
  60. 23 2
      src/js/jiaji.js
  61. 23 4
      src/js/keyItemFlawControl.js
  62. 3 1
      src/js/moduleManager.js
  63. 2 1
      src/js/mukuai.js
  64. 22 2
      src/js/mukuaiControl.js
  65. 2 1
      src/js/partDetail.js
  66. 23 23
      src/js/partDetailControl.js
  67. 14 4
      src/js/payDetail.js
  68. 3 1
      src/js/qcList.js
  69. 934 0
      src/js/qcListCopy.js
  70. 3 1
      src/js/qcListDept.js
  71. 3 1
      src/js/qcListDocteam.js
  72. 3 1
      src/js/qcListPerson.js
  73. 8 2
      src/js/qcScore.js
  74. 28 1
      src/js/quexianDetailControl.js
  75. 33 4
      src/js/quexianDetailControlHome.js
  76. 2 1
      src/js/quexianDetailHome.js
  77. 2 1
      src/js/roleManager.js
  78. 286 0
      src/js/scrollBar.js
  79. 11 12
      src/js/singleVeto.js
  80. 2 1
      src/js/userManager.js
  81. 55 5
      src/js/utils.js
  82. 16 2
      webpack.config.js

+ 1 - 1
src/css/abnormal.less

@@ -24,7 +24,7 @@
     }
     .main-body{
         .main-body-com;
-        min-width: 1090px;
+        min-width: 1160px;
         /*width: 100%;*/
     }
     table{

+ 18 - 0
src/css/common.less

@@ -20,6 +20,24 @@ input:disabled {
     box-sizing: border-box;
 }
 
+.exportData{
+    display: inline-block;
+    width:60px;
+    height:34px;
+    line-height: 34px;
+    background: #fff;
+    border-radius: 4px;
+    color: #777;
+    text-align: center;
+    border: 1px solid #777;
+    box-sizing: border-box;
+    cursor: pointer;
+    margin-left: 10px;
+    margin-bottom: 10px;
+    float: left;
+    top: 0px;
+}
+
 th[code]{
     cursor: pointer;
     &:after{

+ 76 - 68
src/css/console.less

@@ -1,65 +1,12 @@
 @import './reset.less';
-
-body.console {
+@import './roll.css';
+div.console {
   overflow: auto;
   overflow-y: hidden;
+  // overflow: hidden;
   background: @activeBg;
-
-  .ui-widget.ui-widget-content,
-  .ui-widget-header,.ui-datepicker thead,.ui-state-default, 
-  .ui-datepicker-month,.ui-datepicker-year,
-  .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
-    background-color: @themeColor;
-    font-family: 'Microsoft YaHei', arial, tahoma, sans-serif;
-    color: @fstColor;
-  }
-  .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next{
-    &:hover {
-      background-color: #142753;
-      border: 0 none;
-    }
-  }
-  .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span {
-    display: block;
-    position: absolute;
-    left: 50%;
-    margin-left: -8px;
-    top: 50%;
-    margin-top: -8px;
-}
-  .ui-state-active, .ui-widget-content .ui-state-active {
-    background-color: #00A0FE;
-  }
-  .ui-state-default:hover, .ui-widget-content .ui-state-default:hover, .ui-widget-header .ui-state-default:hover {
-    background-color: #142753;
-  }
-  .ui-state-hover .ui-icon {
-    background-image:"url(../images/add.png)";
-  }
-  .dataSelectDark .iconCalen {
-    top:10px;
-  }
-  .dataSelectDark input {
-    height: 28px;
-  }
-  .ui-widget-header .ui-icon {
-    background:url(../images/calendarkL.png) no-repeat;
-    background-size: 14px 14px;
-  }
-  .ui-datepicker-next .ui-icon.ui-icon-circle-triangle-e {
-    background:url(../images/calendarkR.png) no-repeat;
-    background-size: 14px 14px;
-  }
-  .ui-datepicker th span {
-    color: @fstColor;
-  }
-  .ui-datepicker-month,.ui-datepicker-year,
-  .ui-widget.ui-widget-content{
-    border-color: @themeBorderClr;
-  }
-  .ui-state-highlight, .ui-widget-content .ui-state-highlight {
-    background-color: #5B70A4 !important;
-  }
+  height: 100%;
+  
 
   .sureDate {
     cursor: pointer;
@@ -77,11 +24,7 @@ body.console {
     text-align: center;
     box-sizing: border-box;
   }
-  .ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year {
-    height: 28px;
-    line-height: 28px;
-    box-sizing: border-box;
-  }
+  
   .innerOuter {
     display: none;
   }
@@ -92,6 +35,7 @@ body.console {
   .chuyuanEmpty {
     border-bottom: 10px solid @activeBg;
     height: 112px;
+    display: none;
     .emptyBoxHome {
       margin-top: -40px;
     }
@@ -227,7 +171,7 @@ body.console {
   height: 44px;
 }
 .partTitle {
-  position: absolute;
+  position: fixed;
   top: 0;
   right: 0;
   width: 100%;
@@ -322,7 +266,7 @@ body.console {
   box-sizing: border-box;
 }
 .circle {
-  height: 256px;
+  height: 260px;
   width: 100%;
   display: inline-block;
   box-sizing: border-box;
@@ -437,15 +381,16 @@ body.console {
   
   .defect {
     /*background-color: @themeColor;*/
-    height: 410px;
+    height: 414px;
     overflow: hidden;
     .list {
       padding: 6px 5px;
       width: 100%;
       box-sizing: border-box;
+      // overflow-y: hidden;
       overflow-y: auto;
       overflow-x: hidden;
-      height: 410px;
+      height: 375px;
     }
     /*.thead {
       td {
@@ -675,4 +620,67 @@ body.console {
       }
     }
   }
-}
+}
+
+
+.ui-widget.ui-widget-content,
+  .ui-widget-header,.ui-datepicker thead,.ui-state-default, 
+  .ui-datepicker-month,.ui-datepicker-year,
+  .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
+    background-color: @themeColor;
+    font-family: 'Microsoft YaHei', arial, tahoma, sans-serif;
+    color: @fstColor;
+  }
+  .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next{
+    &:hover {
+      background-color: #142753;
+      border: 0 none;
+    }
+  }
+  .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span {
+    display: block;
+    position: absolute;
+    left: 50%;
+    margin-left: -8px;
+    top: 50%;
+    margin-top: -8px;
+}
+  .ui-state-active, .ui-widget-content .ui-state-active {
+    background-color: #00A0FE;
+  }
+  .ui-state-default:hover, .ui-widget-content .ui-state-default:hover, .ui-widget-header .ui-state-default:hover {
+    background-color: #142753;
+  }
+  .ui-state-hover .ui-icon {
+    background-image:"url(../images/add.png)";
+  }
+  .dataSelectDark .iconCalen {
+    top:10px;
+  }
+  .dataSelectDark input {
+    height: 28px;
+  }
+  .ui-widget-header .ui-icon {
+    background:url(../images/calendarkL.png) no-repeat;
+    background-size: 14px 14px;
+  }
+  .ui-datepicker-next .ui-icon.ui-icon-circle-triangle-e {
+    background:url(../images/calendarkR.png) no-repeat;
+    background-size: 14px 14px;
+  }
+  .ui-datepicker th span {
+    color: @fstColor;
+  }
+  .ui-datepicker-month,.ui-datepicker-year,
+  .ui-widget.ui-widget-content{
+    border-color: @themeBorderClr;
+  }
+  .ui-state-highlight, .ui-widget-content .ui-state-highlight {
+    background-color: #5B70A4 !important;
+  }
+  .ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year {
+    height: 28px;
+    line-height: 28px;
+    box-sizing: border-box;
+    color:@themeFontClr;
+  }

+ 1 - 1
src/css/dayDetail.less

@@ -39,7 +39,7 @@
     }
     .main-body{
         .main-body-com;
-        min-width: 1090px;
+        min-width: 1160px;
         /*width: 100%;*/
     }
     table{

+ 67 - 63
src/css/deptConsole.less

@@ -1,63 +1,10 @@
 @import './reset.less';
 
-body.console {
+div.console {
   overflow: auto;
   background-color: @themeColor;
-  .ui-widget.ui-widget-content,
-  .ui-widget-header,.ui-datepicker thead,.ui-state-default, 
-  .ui-datepicker-month,.ui-datepicker-year,
-  .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
-    background-color: @themeColor;
-    font-family: 'Microsoft YaHei', arial, tahoma, sans-serif;
-    color: @fstColor;
-  }
-  .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next{
-    &:hover {
-      background-color: #142753;
-      border: 0 none;
-    }
-  }
-  .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span {
-    display: block;
-    position: absolute;
-    left: 50%;
-    margin-left: -8px;
-    top: 50%;
-    margin-top: -8px;
-}
-  .ui-state-active, .ui-widget-content .ui-state-active {
-    background-color: #00A0FE;
-  }
-  .ui-state-default:hover, .ui-widget-content .ui-state-default:hover, .ui-widget-header .ui-state-default:hover {
-    background-color: #142753;
-  }
-  .ui-state-hover .ui-icon {
-    background-image:"url(../images/add.png)";
-  }
-  .dataSelectDark .iconCalen {
-    top:10px;
-  }
-  .dataSelectDark input {
-    height: 28px;
-  }
-  .ui-widget-header .ui-icon {
-    background:url(../images/calendarkL.png) no-repeat;
-    background-size: 14px 14px;
-  }
-  .ui-datepicker-next .ui-icon.ui-icon-circle-triangle-e {
-    background:url(../images/calendarkR.png) no-repeat;
-    background-size: 14px 14px;
-  }
-  .ui-datepicker th span {
-    color: @fstColor;
-  }
-  .ui-datepicker-month,.ui-datepicker-year,
-  .ui-widget.ui-widget-content{
-    border-color: @themeBorderClr;
-  }
-  .ui-state-highlight, .ui-widget-content .ui-state-highlight {
-    background-color: #5B70A4 !important;
-  }
+  height: 100%;
+  
 
   .sureDate {
     cursor: pointer;
@@ -75,11 +22,7 @@ body.console {
     text-align: center;
     box-sizing: border-box;
   }
-  .ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year {
-    height: 28px;
-    line-height: 28px;
-    box-sizing: border-box;
-  }
+ 
 
 
 
@@ -411,7 +354,7 @@ body.console {
   
   .defect {
     background-color: @themeColor;
-    height: 451px;
+    height: 455px;
     overflow: hidden;
     /*border-bottom: 10px solid @activeBg;*/
     .list {
@@ -660,4 +603,65 @@ body.console {
   width: 100%;
   height: 300px;
   margin-top: 0;
-}
+}
+.ui-widget.ui-widget-content,
+  .ui-widget-header,.ui-datepicker thead,.ui-state-default, 
+  .ui-datepicker-month,.ui-datepicker-year,
+  .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
+    background-color: @themeColor;
+    font-family: 'Microsoft YaHei', arial, tahoma, sans-serif;
+    color: @fstColor;
+  }
+  .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next{
+    &:hover {
+      background-color: #142753;
+      border: 0 none;
+    }
+  }
+  .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span {
+    display: block;
+    position: absolute;
+    left: 50%;
+    margin-left: -8px;
+    top: 50%;
+    margin-top: -8px;
+}
+  .ui-state-active, .ui-widget-content .ui-state-active {
+    background-color: #00A0FE;
+  }
+  .ui-state-default:hover, .ui-widget-content .ui-state-default:hover, .ui-widget-header .ui-state-default:hover {
+    background-color: #142753;
+  }
+  .ui-state-hover .ui-icon {
+    background-image:"url(../images/add.png)";
+  }
+  .dataSelectDark .iconCalen {
+    top:10px;
+  }
+  .dataSelectDark input {
+    height: 28px;
+  }
+  .ui-widget-header .ui-icon {
+    background:url(../images/calendarkL.png) no-repeat;
+    background-size: 14px 14px;
+  }
+  .ui-datepicker-next .ui-icon.ui-icon-circle-triangle-e {
+    background:url(../images/calendarkR.png) no-repeat;
+    background-size: 14px 14px;
+  }
+  .ui-datepicker th span {
+    color: @fstColor;
+  }
+  .ui-datepicker-month,.ui-datepicker-year,
+  .ui-widget.ui-widget-content{
+    border-color: @themeBorderClr;
+  }
+  .ui-state-highlight, .ui-widget-content .ui-state-highlight {
+    background-color: #5B70A4 !important;
+  }
+  .ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year {
+    height: 28px;
+    line-height: 28px;
+    box-sizing: border-box;
+    color:@themeFontClr;
+  }

+ 1 - 1
src/css/deptScoreDetail.less

@@ -38,7 +38,7 @@
     }
     .main-body{
         .main-body-com;
-        min-width: 1090px;
+        min-width: 1160px;
         /*width: 100%;*/
     }
     table{

+ 2 - 2
src/css/deptScoreDetailControl.less

@@ -7,7 +7,7 @@
     background: @disColor;
 }
 .deptScoreDetailControl {
-    background-color: #fff;
+    // background-color: #fff;
     .dayFilter {
         .levelList {
             height: 80px;
@@ -40,7 +40,7 @@
     }
     .main-body{
         .main-body-com;
-        min-width: 1090px;
+        min-width: 1250px;
         // box-sizing: border-box;
         /*width: 100%;*/
     }

+ 13 - 2
src/css/index.less

@@ -1,5 +1,5 @@
 @import './reset.less';
-
+@import './roll.css';
 .container{
   height: 100%;
 }
@@ -125,7 +125,7 @@
       position: absolute;
       top: 50%;
       right: 0;
-      z-index: 1;
+      z-index: 100;
     }
     &>ul{
       overflow-x: hidden;
@@ -139,6 +139,17 @@
       }
 
     }
+    // .menuList{
+    //   overflow-x: hidden;
+    //   overflow-y: hidden;
+    //   white-space: nowrap;
+    //   // height: calc(100% - 90px);
+    //   &>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;
       &.active{

+ 1 - 0
src/css/itemDefectDetail.less

@@ -118,6 +118,7 @@ table{
     left: 1008px;
     top: 8px;
     color: #777;
+    white-space: nowrap;
     font-size: 14px;
     background: url("../images/arrow_up.png") 60px center no-repeat;
     padding-right: 15px;

+ 5 - 1
src/css/itemManager.less

@@ -14,9 +14,13 @@
     }
     h2{
         .h2;
+        position: fixed;
+        z-index: 100;
+        top: 0
     }
     .main-body{
         .main-body-com;
+        margin-top: 50px
     }
     table{
         .table;
@@ -85,7 +89,7 @@
         right: 10px;
     }
     .moduleItemInp{
-        cursor: default;
+        cursor: text;
         outline: none;
     }
     .moduleItemInp:focus{

+ 1 - 1
src/css/jiaji.less

@@ -42,7 +42,7 @@
     }
     .main-body{
         .main-body-com;
-        min-width: 1090px;
+        min-width: 1160px;
         /*width: 100%;*/
     }
     table{

+ 7 - 0
src/css/keyItemFlawControl.less

@@ -5,8 +5,11 @@
   height: 100%;
   overflow: auto;
   background-color: #fff;
+  border-bottom: 10px @disColor solid;
+  box-sizing: border-box;
   .partTitle{
     border-bottom: 10px @disColor solid;
+    height: 54px;
   }
 }
 .partDetailControl {
@@ -48,6 +51,10 @@
     border-left: 10px @disColor solid;
     min-width: 1090px;
     /*width: 100%;*/
+    min-height: calc(100% - 44px);
+  }
+  .tableBox{
+    // border-right: 10px solid  @disColor;
   }
   table{
     .table;

+ 16 - 0
src/css/moduleManager.less

@@ -46,8 +46,12 @@ table{
     }
     
 }
+.tableTitle{
+    position: relative;
+}
 .tableTitle table{
     background: #EFF0F9;
+  
 }
 .moduleScore, .totalSum{
     text-align: center;
@@ -102,3 +106,15 @@ input::-webkit-inner-spin-button {
 input[type="number"] {
     -moz-appearance: textfield;
 }
+.moduleSpan{
+    background: #EFF0F9;
+    display: inline-block;
+    width: 17px;
+    height: 31px;
+    position: absolute;
+    right: 1px;
+    border: 1px solid #E2E5EF;
+    box-sizing: border-box;
+    border-left: none;
+    display: none;
+}

+ 1 - 1
src/css/mukuai.less

@@ -159,7 +159,7 @@
         right: 10px;
     }
     .moduleItemInp{
-        cursor: default;
+        cursor: text;
         outline: none;
     }
     .moduleTypeList{

+ 1 - 1
src/css/partDetail.less

@@ -41,7 +41,7 @@
     }
     .main-body{
         .main-body-com;
-        min-width: 1090px;
+        min-width: 1160px;
         /*width: 100%;*/
     }
     table{

+ 1 - 1
src/css/partDetailControl.less

@@ -41,7 +41,7 @@
     }
     .main-body{
         .main-body-com;
-        min-width: 1090px;
+        min-width: 1160px;
         /*width: 100%;*/
     }
     table{

+ 1 - 1
src/css/payDetail.less

@@ -42,7 +42,7 @@
     }
     .main-body{
         .main-body-com;
-        min-width: 1090px;
+        min-width: 1160px;
         /*width: 100%;*/
     }
     table{

+ 13 - 2
src/css/qcList.less

@@ -4,6 +4,8 @@
     height: 100%;
     overflow: auto;
     background: #fff;
+    border-bottom: 10px @disColor solid;
+    box-sizing: border-box;
 }
 ul,li{
     list-style: none;
@@ -11,7 +13,8 @@ ul,li{
 h2{
     .h2;
     border-bottom: 10px @disColor solid;
-    position: absolute;
+    position: fixed;
+    top: 0;
 }
 .main-body{
     .main-body-com;
@@ -19,15 +22,20 @@ h2{
     border-left:10px @disColor solid;
     margin: 54px 0 0;
     min-width: 1090px;
-    min-height: calc(100% - 84px);
+    min-height: calc(100% - 54px);
     // overflow: auto;
 }
+.borderRight{
+    position: absolute;
+    height: 100%;
+}
 table{
     .table;
     min-width: 1090px;
     th,td{
         padding:5px 10px;
     }
+ 
     th{
         white-space: nowrap;
     }
@@ -62,6 +70,9 @@ table{
         width: 50px;
         cursor: pointer;
     }
+    .tabTitle   {
+        background: #EFF0F9 !important;
+      }
     
 }
 .tabFoot{

+ 363 - 0
src/css/qcListCopy.less

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

+ 7 - 1
src/css/qcListDept.less

@@ -4,6 +4,8 @@
     height: 100%;
     overflow: auto;
     background: #fff;
+    border-bottom: 10px @disColor solid;
+    box-sizing: border-box;
 }
 ul,li{
     list-style: none;
@@ -11,7 +13,8 @@ ul,li{
 h2{
     .h2;
     border-bottom: 10px @disColor solid;
-    position: absolute;
+    position: fixed;
+    top: 0
 }
 .main-body{
     .main-body-com;
@@ -61,6 +64,9 @@ table{
         width: 50px;
         cursor: pointer;
     }
+    .tabTitle   {
+        background: #EFF0F9 !important;
+      }
     
 }
 .tabFoot{

+ 7 - 2
src/css/qcListDocteam.less

@@ -4,6 +4,8 @@
     height: 100%;
     overflow: auto;
     background: #fff;
+    border-bottom: 10px @disColor solid;
+    box-sizing: border-box;
 }
 ul,li{
     list-style: none;
@@ -11,7 +13,8 @@ ul,li{
 h2{
     .h2;
     border-bottom: 10px @disColor solid;
-    position: absolute;
+    position: fixed;
+    top: 0;
 }
 .main-body{
     .main-body-com;
@@ -61,7 +64,9 @@ table{
         width: 50px;
         cursor: pointer;
     }
-    
+    .tabTitle   {
+        background: #EFF0F9 !important;
+    }
 }
 .tabFoot{
     height: 40px;

+ 8 - 4
src/css/qcListPerson.less

@@ -4,6 +4,8 @@
     height: 100%;
     overflow: auto;
     background: #fff;
+    border-bottom: 10px @disColor solid;
+    box-sizing: border-box;
 }
 ul,li{
     list-style: none;
@@ -11,7 +13,8 @@ ul,li{
 h2{
     .h2;
     border-bottom: 10px @disColor solid;
-    position: absolute;
+    position: fixed;
+    top: 0
 }
 .main-body{
     .main-body-com;
@@ -27,9 +30,7 @@ table{
     min-width: 1090px;
     border:1px solid #E2E5EF;
     border-collapse: collapse;
-    thead th{
-        background: #EFF0F9;
-    }
+  
     th,td{
         padding:5px 10px;
     }
@@ -66,6 +67,9 @@ table{
         width: 50px;
         cursor: pointer;
     }
+    .tabTitle   {
+        background: #EFF0F9 !important;
+      }
     
 }
 .tabFoot{

+ 27 - 10
src/css/qcScore.less

@@ -49,15 +49,15 @@
     position: absolute;
     top: 50%;
     right: 0;
-    z-index: 1;
+    z-index: 100;
   }
-  &>ul{
+  &>ul,.subMenu{
     overflow-x: hidden;
     overflow-y: auto;
     white-space: nowrap;
     height:calc(100% - 140px);
   }
-  &>ul>li{
+  &>ul>li,.subMenu>li{
     color: @fstColor;
     margin-bottom: 10px;
     &.menu-0{
@@ -114,6 +114,11 @@
     /*background: @activeBg;
     border-right: 3px @activeColor solid;*/
   }
+  .subMenu>.active{
+    color: @activeColor;
+    /*background: @activeBg;
+    border-right: 3px @activeColor solid;*/
+  }
   .page:hover{
       color: @activeColor;
   }
@@ -197,6 +202,16 @@
     cursor: pointer;
     margin-bottom: 10px;
     &:hover{
+      &:after{
+      //   content: "";
+      //   display: inline-block;
+      //   width: 8px;
+      //   height: 32px;
+      //   background: url("../images/ar.png") no-repeat;
+      //   position: absolute;
+      //  left: 56px;
+      //  top: 4px;
+      }
       ul{
         display: block;
       }
@@ -211,14 +226,16 @@
       box-shadow:1px 2px 20px -3px #000512;
       margin-left: 3px;
       z-index: 9;
+      height: calc(100% - 80px);
+      top: 60px;
       &:before{
-        content: "";
-        display: inline-block;
-        width: 8px;
-        height: 32px;
-        background: url("../images/ar.png") no-repeat;
-        position: absolute;
-        left: -8px;
+        // content: "";
+        // display: inline-block;
+        // width: 8px;
+        // height: 32px;
+        // background: url("../images/ar.png") no-repeat;
+        // position: absolute;
+        // left: -8px;
       }
       li{
         height: 40px;

+ 4 - 3
src/css/quexianDetail.less

@@ -92,6 +92,7 @@
     .main-body{
         // margin: 20px 40px;
         padding-bottom: 0px !important;
+        margin-top: 0;
     }
     table{
         width: 100%;
@@ -124,9 +125,9 @@
             }
         }
         th,td{
-            height: 40px;
+            // height: 40px;
             box-sizing: border-box;
-            padding: 10px;
+            // padding: 10px;
             border:1px solid #E2E5EF;
             border-collapse: collapse;
         }
@@ -205,7 +206,7 @@
         right: 10px;
     }
     .moduleItemInp{
-        cursor: default;
+        cursor: text;
         outline: none;
     }
     .moduleTypeList{

+ 4 - 3
src/css/quexianDetailControl.less

@@ -91,6 +91,7 @@
     .main-body{
         // margin: 20px 40px;
         padding-bottom: 0px !important;
+        margin-top: 0;
     }
     table{
         width: 100%;
@@ -123,9 +124,9 @@
             }
         }
         th,td{
-            height: 40px;
+            height: 30px;
             box-sizing: border-box;
-            padding: 10px;
+            // padding: 10px;
             border:1px solid #E2E5EF;
             border-collapse: collapse;
         }
@@ -204,7 +205,7 @@
         right: 10px;
     }
     .moduleItemInp{
-        cursor: default;
+        cursor: text;
         outline: none;
     }
     .moduleTypeList{

+ 4 - 3
src/css/quexianDetailControlHome.less

@@ -95,6 +95,7 @@
     }
     .main-body{
         padding-bottom: 0px !important;
+        margin-top: 0 !important;
     }
     table{
         width: 100%;
@@ -127,9 +128,9 @@
             }
         }
         th,td{
-            height: 40px;
+            height: 30px;
             box-sizing: border-box;
-            padding: 10px;
+            // padding: 10px;
             border:1px solid #E2E5EF;
             border-collapse: collapse;
         }
@@ -208,7 +209,7 @@
         right: 10px;
     }
     .moduleItemInp{
-        cursor: default;
+        cursor: text;
         outline: none;
     }
     .moduleTypeList{

+ 4 - 3
src/css/quexianDetailHome.less

@@ -92,6 +92,7 @@
     .main-body{
         // margin: 20px 40px;
         padding-bottom: 0px !important;
+        margin-top: 0;
     }
     table{
         width: 100%;
@@ -124,9 +125,9 @@
             }
         }
         th,td{
-            height: 40px;
+            height: 30px;
             box-sizing: border-box;
-            padding: 10px;
+            // padding: 10px;
             border:1px solid #E2E5EF;
             border-collapse: collapse;
         }
@@ -205,7 +206,7 @@
         right: 10px;
     }
     .moduleItemInp{
-        cursor: default;
+        cursor: text;
         outline: none;
     }
     .moduleTypeList{

+ 4 - 3
src/css/reset.less

@@ -68,12 +68,13 @@ table {
   width: 100%;
   border:1px solid #E2E5EF;
   border-collapse: collapse;
-  thead{
+  thead {
     background: #EFF0F9;
   }
   tr:nth-child(2n){
     background: #EFF1F6;
   }
+ 
   th,td{
     height: @trHeight;
     box-sizing: border-box;
@@ -357,13 +358,13 @@ input:-ms-input-placeholder{  /* Internet Explorer 10-11 */
   height: 44px;
 }
 .partTitle {
-  position: absolute;
+  position: fixed;
   top: 0;
   right: 0;
   width: 100%;
   box-sizing: border-box;
   background-color: #fff;
-  z-index: 20;
+  z-index: 100;
   height: 44px;
   line-height: 44px;
   padding-left: 20px;

+ 86 - 0
src/css/roll.css

@@ -0,0 +1,86 @@
+body { margin: 0; padding: 0; font:14px/22px 'Microsoft Yahei'; color: #444; background-color:#eee;}
+div,p {margin: 0; padding: 0;}
+
+/* 滚动内容样式 */
+.scroll_main {
+	/* width: 550px;
+	display: block;
+	margin: 40px auto;
+	background-color:#fff;
+	border:1px solid #9a9a9a; */
+}
+
+/* 滚动内容区样式 */
+.scroll_wrap {
+	/* width: 100%;
+	height: 350px; */
+	position: relative;
+	height: 100%;
+}
+/* 滚动内容样式 */
+.scroll_wrap .scroll_cont {
+	height: 100%;
+	overflow: hidden;
+	position: relative;
+}
+.scroll_wrap .scroll_cont p {
+	/* padding:15px; */
+}
+/* 滚动条 */
+.scroll_wrap .scroll_bar {
+	position: absolute;
+	/* top:0; */
+	right:0;
+	width: 8px;
+	height: 100%;
+	/* background-color: #e4e4e4; */
+	z-index: 99;
+}
+/* 滚动块 */
+.scroll_wrap .scroll_slider {
+	position: absolute;
+	top: 0;
+	left: 0px;
+	width: 8px;
+	/* height: 48px; */
+	background-color: #7F7F7F;
+	border-radius:5px;
+	/* opacity: .5 */
+}
+.scroll_wrap .scroll_slider:hover{
+	opacity: 1
+}
+
+.partWrap_scroll_wrap{
+	min-width: 1205px;
+}
+.explainPanB_scroll_wrap{
+	height: 180px;
+}
+.deptConsole .explainPanB_scroll_wrap{
+	height: 250px;
+}
+.explainPanT_scroll_wrap{
+	height: 180px;
+}
+/* .scroll_wrap .partWrap_scroll_bar{
+	top: 0px;
+}
+.scroll_wrap .explainPanB_scroll_bar{
+	top: 20px;
+} */
+.mainSysWrap_scroll_wrap{
+	height: auto;
+}
+.list_scroll_wrap{
+	height: 370px;
+}
+.deptConsole .list_scroll_wrap{
+	height: 405px;
+}
+.menuList_scroll_wrap{
+	height: calc(100% - 90px);
+}
+.subMenu_scroll_wrap{
+	height: calc(100% - 140px);
+}

+ 2 - 1
src/css/single.less

@@ -162,7 +162,7 @@
         right: 10px;
     }
     .moduleItemInp{
-        cursor: default;
+        cursor: text;
         outline: none;
     }
     .moduleTypeList{
@@ -204,6 +204,7 @@
         box-sizing: border-box;
         cursor: pointer;
         margin-left: 10px;
+        margin-bottom: 10px;
         float: left;
         top: 0px;
     }

+ 189 - 177
src/html/console.html

@@ -4,190 +4,202 @@
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Document</title>
+  <script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
 </head>
-<body class="console">
-  <div class="partTitle">
-    <p><span></span>质控科数据概览</p>
-    <div class="monthYear clearfix">
-      <span class="mon">本月</span>
-      <span class="year">本年</span>
-    </div>
-    <div class="dateDetail fr">
-      
-    </div>
-    <span class="dataSelectDark filterItem typeFilter clearfix">
-        <!-- <span class="fl">出院日期:</span> -->
-        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" readonly/><img class="iconCalen" src="../images/icon_calen_grey.png" /></span>
-        <span class="divide fl">-</span>
-        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" readonly/><img class="iconCalen" src="../images/icon_calen_grey.png" /></span>
-        <span class="sureDate">查询</span>
-    </span>
-  </div>
-  <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>
-          <span class="personNum">总人数:</span>
-        </p>
-        <div class="chuyuan">
-          <ul class="clearfix" style="cursor: default;">
-            <li>
-              <p class="numShow died"></p>
-              <p class="explainNum">死亡人数</p>
-            </li>
-            <li class="li02">
-              <p class="numShow newborn"></p>
-              <p class="explainNum">新生儿患者</p>
-            </li>
-            <li class="li03">
-              <p class="numShow patientNum"></p>
-              <p class="explainNum">手术病人数</p>
-            </li>
-          </ul>
-        </div>
-        <div class="chuyuanEmpty"></div>
-        <div class="defect">
-          <p class="partTitlePub">各模块缺陷占比排名 <img class="detailGo" src="../images/details.png" alt=""></p>
-          <div class="list">
-            <table class="qtable">
-  
-            </table>
-            <div class="qtableEmpty">
-
-            </div>
-          </div>
-        </div>
-      </div>
-      <div class="part02 fl">
-        <div class="bldjs">
-          <ul class="bingli clearfix">
-            <li class="fst">
-       -       <p class="numShow"></p>
-              <p class="explainNum">累计质控病历数</p>
-            </li>
-            <li>
-              <p class="numShow"></p>
-              <p class="explainNum">甲级病历</p>
-            </li>
-            <li>
-              <p class="numShow"></p>
-              <p class="explainNum">乙级病历</p>
-            </li>
-            <li>
-              <p class="numShow"></p>
-              <p class="explainNum">丙级病历</p>
-            </li>
-          </ul>
-          <div class="bingliLis clearfix">
-            <p>病历评分等级占比 <img class="detailGo" src="../images/details.png" alt=""></p>
-            <div class="panPartPub panPart02">
-              <div class="fen" id="fen01"></div>
-              <p>甲级占比</p>
+<body >
+        <div class="console">
+          <div class="partTitle">
+            <p><span></span>质控科数据概览</p>
+            <div class="monthYear clearfix">
+              <span class="mon">本月</span>
+              <span class="year">本年</span>
             </div>
-            <div class="panPartPub panPart01">
-              <div class="fen" id="fen02"></div>
-              <p>乙级占比</p>
-            </div>
-            <div class="panPartPub panPart03">
-              <div class="fen" id="fen03"></div>
-              <p>丙级占比</p>
+            <div class="dateDetail fr">
+              
             </div>
+            <span class="dataSelectDark filterItem typeFilter clearfix">
+                <!-- <span class="fl">出院日期:</span> -->
+                <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" readonly/><img class="iconCalen" src="../images/icon_calen_grey.png" /></span>
+                <span class="divide fl">-</span>
+                <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" readonly/><img class="iconCalen" src="../images/icon_calen_grey.png" /></span>
+                <span class="sureDate">查询</span>
+            </span>
           </div>
-        </div>
-        <div class="pingfendengji">
-          <p class="title">病历评分数据</p>
-          <div class="pingfendengjiEmpty">
-
-          </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_down1.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_down1.png" alt=""> </p>
-            <ul>
-              <li class="toggleAverge toggleSlide1" data-str="平均住院天数" data-type="1">平均住院天数</li>
-              <li class="toggleAverge toggleSlide2" data-str="平均住院花费" data-type="2">平均住院花费</li>
-            </ul>
-          </div>
-          <div id="barChart" class="barChartPay"></div>
-          <div class="barChartPayEmpty"></div>
-        </div> -->
-      </div>
-      <div class="part03 fl">
-        <p class="partTitlePub clearfix">
-          <span class="name">病案首页合格率占比</span> <img class="detailGo" src="../images/details.png" alt="">
-        </p>
-        <div class="toggleSlide">
-          <p><span>合格率</span><img src="../images/arrow_down1.png" alt=""> </p>
-          <ul>
-            <li class="toggleAverge toggleSlide1" data-str="合格率" data-level="合格率" data-type="7">合格率</li>
-            <li class="toggleAverge toggleSlide2" data-str="完整率" data-level="完整率" data-type="8">完整率</li>
-            <li class="toggleAverge toggleSlide2" data-str="完善率" data-level="完善率" data-type="9">完善率</li>
-          </ul>
-        </div>
-        <div class="barChartLineBox">
-          <div id="lineChart" class="barChartLine"></div>
-          <div class="barChartLineEmpty"></div>
-        </div>
-        <div class="circle clearfix">
-          <p class="title">单项否决占比 <img class="detailGo" src="../images/details.png" alt=""></p>
-          <div class="emptyCircleWrap">
-            <div id="emptyCircle" class="emptyCircle"></div>
-            <div class="explainPan explainPanT">
-              <table>
+          <div class="partTitleT"></div>
+          <!--<div class="grayLine"></div>-->
+              
+              <div class="partWrap clearfix ">
                 
-              </table>
-            </div>
-          </div>
-          <div id="emptyCircleWrapEmpty">
+                  <div class="part01 fl">
+                    <p class="partTitlePub clearfix" style="cursor: default;">
+                      <span class="name">出院人数统计</span>
+                      <span class="personNum">总人数:</span>
+                    </p>
+                    <div class="chuyuan">
+                      <ul class="clearfix" style="cursor: default;">
+                        <li>
+                          <p class="numShow died"></p>
+                          <p class="explainNum">死亡人数</p>
+                        </li>
+                        <li class="li02">
+                          <p class="numShow newborn"></p>
+                          <p class="explainNum">新生儿患者</p>
+                        </li>
+                        <li class="li03">
+                          <p class="numShow patientNum"></p>
+                          <p class="explainNum">手术病人数</p>
+                        </li>
+                      </ul>
+                    </div>
+                    <div class="chuyuanEmpty"></div>
+                    <div class="defect">
+                      <p class="partTitlePub">各模块缺陷占比排名 <img class="detailGo" src="../images/details.png" alt=""></p>
+                      <div class="list">
+                        <table class="qtable">
+              
+                        </table>
+                        <div class="qtableEmpty">
+            
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                  <div class="part02 fl">
+                    <div class="bldjs">
+                      <ul class="bingli clearfix">
+                        <li class="fst">
+                  -       <p class="numShow"></p>
+                          <p class="explainNum">累计质控病历数</p>
+                        </li>
+                        <li>
+                          <p class="numShow"></p>
+                          <p class="explainNum">甲级病历</p>
+                        </li>
+                        <li>
+                          <p class="numShow"></p>
+                          <p class="explainNum">乙级病历</p>
+                        </li>
+                        <li>
+                          <p class="numShow"></p>
+                          <p class="explainNum">丙级病历</p>
+                        </li>
+                      </ul>
+                      <div class="bingliLis clearfix">
+                        <p>病历评分等级占比 <img class="detailGo" src="../images/details.png" alt=""></p>
+                        <div class="panPartPub panPart02">
+                          <div class="fen" id="fen01"></div>
+                          <p>甲级占比</p>
+                        </div>
+                        <div class="panPartPub panPart01">
+                          <div class="fen" id="fen02"></div>
+                          <p>乙级占比</p>
+                        </div>
+                        <div class="panPartPub panPart03">
+                          <div class="fen" id="fen03"></div>
+                          <p>丙级占比</p>
+                        </div>
+                      </div>
+                    </div>
+                    <div class="pingfendengji">
+                      <p class="title">病历评分数据</p>
+                      <div class="pingfendengjiEmpty">
+            
+                      </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_down1.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_down1.png" alt=""> </p>
+                        <ul>
+                          <li class="toggleAverge toggleSlide1" data-str="平均住院天数" data-type="1">平均住院天数</li>
+                          <li class="toggleAverge toggleSlide2" data-str="平均住院花费" data-type="2">平均住院花费</li>
+                        </ul>
+                      </div>
+                      <div id="barChart" class="barChartPay"></div>
+                      <div class="barChartPayEmpty"></div>
+                    </div> -->
+                  </div>
+                  <div class="part03 fl">
+                    <p class="partTitlePub clearfix">
+                      <span class="name">病案首页合格率占比</span> <img class="detailGo" src="../images/details.png" alt="">
+                    </p>
+                    <div class="toggleSlide">
+                      <p><span>合格率</span><img src="../images/arrow_down1.png" alt=""> </p>
+                      <ul>
+                        <li class="toggleAverge toggleSlide1" data-str="合格率" data-level="合格率" data-type="7">合格率</li>
+                        <li class="toggleAverge toggleSlide2" data-str="完整率" data-level="完整率" data-type="8">完整率</li>
+                        <li class="toggleAverge toggleSlide2" data-str="完善率" data-level="完善率" data-type="9">完善率</li>
+                      </ul>
+                    </div>
+                    <div class="barChartLineBox">
+                      <div id="lineChart" class="barChartLine"></div>
+                      <div class="barChartLineEmpty"></div>
+                    </div>
+                    <div class="circle clearfix">
+                      <p class="title">单项否决占比 <img class="detailGo" src="../images/details.png" alt=""></p>
+                      <div class="emptyCircleWrap">
+                        <div id="emptyCircle" class="emptyCircle"></div>
+                        <div class="explainPan explainPanT">
+                          <table>
+                            
+                          </table>
+                        </div>
+                      </div>
+                      <div id="emptyCircleWrapEmpty">
+            
+                      </div>
+                    </div>
+                  </div>
+                  <p class="clearfix"></p>
+                  <div class="part04 clearfix">
+                    <div class="circleB clearfix">
+                      <p class="title">条目缺陷占比 <img src="../images/details.png" alt=""></p>
+                      <div class="emptyCircleBData">
+                        <div id="emptyCircleB" class="emptyCircle"></div>
+                            <div class="explainPan explainPanB">
+                              <table>
+                                
+                              </table>
+                            </div>
+                       
+                      </div>
+                      <div class="emptyCircleBWrap">
+            
+                      </div>
+                    </div>
+                    <div class="pubEchartB paymoney">
+                      <p class="title">各科室质控平均分柱状图 <img src="../images/details.png" alt=""></p>
+                      <div class="toggleSlide innerOuter">
+                        <p data-str="内科" data-type="3"><span>内科系统</span><img src="../images/arrow_down1.png" alt=""> </p>
+                        <ul>
+                          <li class="toggleAverge toggleSlide1" data-str="内科" data-type="3">内科系统</li>
+                          <li class="toggleAverge toggleSlide2" data-str="外科" data-type="4">外科系统</li>
+                        </ul>
+                      </div>
+                      <div id="barChartPay" class="barChartPay" style="height: 217px;"></div>
+                      <div class="barChartPayEmptys" style="height: 217px;"></div>
+                    </div>
+                  </div>
+                 
+              </div>                      
+
 
-          </div>
-        </div>
-      </div>
-      <p class="clearfix"></p>
-      <div class="part04 clearfix">
-        <div class="circleB clearfix">
-          <p class="title">条目缺陷占比 <img src="../images/details.png" alt=""></p>
-          <div class="emptyCircleBData">
-            <div id="emptyCircleB" class="emptyCircle"></div>
-            <div class="explainPan explainPanB">
-              <table>
-                
-              </table>
-            </div>
-          </div>
-          <div class="emptyCircleBWrap">
 
-          </div>
-        </div>
-        <div class="pubEchartB paymoney">
-          <p class="title">各科室质控平均分柱状图 <img src="../images/details.png" alt=""></p>
-          <div class="toggleSlide innerOuter">
-            <p data-str="内科" data-type="3"><span>内科系统</span><img src="../images/arrow_down1.png" alt=""> </p>
-            <ul>
-              <li class="toggleAverge toggleSlide1" data-str="内科" data-type="3">内科系统</li>
-              <li class="toggleAverge toggleSlide2" data-str="外科" data-type="4">外科系统</li>
-            </ul>
-          </div>
-          <div id="barChartPay" class="barChartPay" style="height: 217px;"></div>
-          <div class="barChartPayEmptys" style="height: 217px;"></div>
         </div>
-      </div>
-  </div>
+  
+  
 </body>
 </html>

+ 1 - 0
src/html/dayDetail.html

@@ -46,6 +46,7 @@
                 </span> -->
                 <span class="filter">查询</span>
                 <span class="filterclear abnormalClear">重置</span>
+                <span class="exportData">导出</span>
             </div>
             <div>
                 <table class="tableDay">

+ 144 - 137
src/html/deptConsole.html

@@ -5,152 +5,159 @@
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Document</title>
 </head>
-<body class="console">
-  <div class="partDept">
-    <ul class="clearfix">
+<body >
+  <div class="console deptConsole">
+    <div class="partDept">
+      <ul class="clearfix">
+        <div class="partTitle">
+          <p><span></span><i></i>数据概览</p>
+          <div class="monthYear clearfix">
+            <span class="mon">本月</span>
+            <span class="year">本年</span>
+          </div> 
+          <div class="toggleSlide deptConsoleLis fr">
+            <p><span>--</span><img src="../images/arrow_down1.png" alt=""> </p>
+            <ul>
+              
+            </ul>
+          </div>
+          <div class="dateDetail fr">
+            
+          </div>
+          <span class="dataSelectDark filterItem typeFilter clearfix">
+              <!-- <span class="fl">出院日期:</span> -->
+              <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" readonly/><img class="iconCalen" src="../images/icon_calen_grey.png" /></span>
+              <span class="divide fl">-</span>
+              <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" readonly/><img class="iconCalen" src="../images/icon_calen_grey.png" /></span>
+              <span class="sureDate">查询</span>
+          </span>
+        </div>
+        <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>
+                <span class="personNum">总人数:</span>
+              </p>
+              <div class="chuyuan">
+                <ul class="clearfix" style="cursor: default;">
+                  <li>
+                    <div class="lis">
+                      <p class="numShow died"></p>
+                      <p class="explainNum">死亡人数</p>
+                    </div>
+                  </li>
+                  <li class="li03">
+                    <div class="lis li02">
+                      <p class="numShow patientNum"></p>
+                      <p class="explainNum">手术病人数</p>
+                    </div>
+                  </li>
+                </ul>
+              </div>
+              <div class="chuyuanEmpty"></div>
+              <div class="defect">
+                <p class="partTitlePub">各模块缺陷占比排名 <img class="detailGo" src="../images/details.png" alt=""></p>
+                <div class="list">
+                  <table class="qtable">
+        
+                  </table>
+                  <div class="qtableEmpty">
       
-    </ul>
-  </div>
-  <div class="partTitle">
-    <p><span class="hospi"></span><i></i>数据概览</p>
-    <div class="monthYear clearfix">
-      <span class="mon">本月</span>
-      <span class="year">本年</span>
-    </div> 
-    <div class="toggleSlide deptConsoleLis fr">
-      <p><span>--</span><img src="../images/arrow_down1.png" alt=""> </p>
-      <ul>
-        <!-- <li class="toggleAverge toggleSlide1" data-str="平均住院天数" data-type="1">平均住院天数</li>
-        <li class="toggleAverge toggleSlide2" data-str="平均住院花费" data-type="2">平均住院花费</li> -->
-      </ul>
-    </div>
-    <div class="dateDetail fr">
+                  </div>
+                </div>
+              </div>
+            </div>
+            <div class="part02 fl">
+              <div class="bldjs">
+                <ul class="bingli clearfix">
+                  <li class="fst">
+                    <p class="numShow"></p>
+                    <p class="explainNum">累计质控病历数</p>
+                  </li>
+                  <li class="sec">
+                    <p class="numShow"></p>
+                    <p class="explainNum">甲级病历</p>
+                  </li>
+                  <li class="sec">
+                    <p class="numShow"></p>
+                    <p class="explainNum">乙级病历</p>
+                  </li>
+                  <li class="four sec">
+                    <p class="numShow"></p>
+                    <p class="explainNum">丙级病历</p>
+                  </li>
+                </ul>
+                <div class="bingliLis clearfix">
+                  <p>病历评分等级占比 <img class="detailGo" src="../images/details.png" alt=""></p>
+                  <div class="panPartPub panPart02">
+                    <div class="fen" id="fen01"></div>
+                    <p>甲级占比</p>
+                  </div>
+                  <div class="panPartPub panPart01">
+                    <div class="fen" id="fen02"></div>
+                    <p>乙级占比</p>
+                  </div>
+                  <div class="panPartPub panPart03">
+                    <div class="fen" id="fen03"></div>
+                    <p>丙级占比</p>
+                  </div>
+                </div>
+              </div>
+              <div class="pingfendengji">
+                <p class="title">病历评分数据</p>
+                <div class="pingfendengjiEmpty">
       
-    </div>
-    <span class="dataSelectDark filterItem typeFilter clearfix">
-        <!-- <span class="fl">出院日期:</span> -->
-        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" readonly/><img class="iconCalen" src="../images/icon_calen_grey.png" /></span>
-        <span class="divide fl">-</span>
-        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" readonly/><img class="iconCalen" src="../images/icon_calen_grey.png" /></span>
-        <span class="sureDate">查询</span>
-    </span>
-  </div>
-  <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>
-          <span class="personNum">总人数:</span>
-        </p>
-        <div class="chuyuan">
-          <ul class="clearfix" style="cursor: default;">
-            <li>
-              <div class="lis">
-                <p class="numShow died"></p>
-                <p class="explainNum">死亡人数</p>
+                </div>
               </div>
-            </li>
-            <li class="li03">
-              <div class="lis li02">
-                <p class="numShow patientNum"></p>
-                <p class="explainNum">手术病人数</p>
+              <div class="circleB circleBSingle clearfix">
+                <p class="title">条目缺陷占比 <img class="detailGo" src="../images/details.png" alt=""></p>
+                <div class="emptyCircleBData">
+                  <div id="emptyCircleB" class="emptyCircle"></div>
+                  <div class="explainPan explainPanB">
+                    <table>
+                      
+                    </table>
+                  </div>
+                </div>
+                <div class="emptyCircleBWrap">
+      
+                </div>
+              </div>
+              <div class="circleBLis">
+                <div class="circleB homePage clearfix">
+                  <p class="title">病案首页合格率占比 <img class="detailGo" src="../images/details.png" alt=""></p>
+                  <div id="lineChart" class="emptyCircle emptyLineCircle"></div>
+                  <div class="emptyLineCircleEmpty"></div>
+                </div>
+                <div class="circleB homePageNo clearfix">
+                  <p class="title">条目缺陷占比 <img class="detailGo" src="../images/details.png" alt=""></p>
+                  <div class="emptyCircleBDatas">
+                    <div id="emptyCircleBc" class="emptyCircle"></div>
+                    <div class="explainPan explainPanc explainPanBc">
+                      <table>
+                        
+                      </table>
+                    </div>
+                  </div>
+                  <div class="emptyCircleBWraps">
+      
+                  </div>
+                </div>
+      
               </div>
-            </li>
-          </ul>
-        </div>
-        <div class="chuyuanEmpty"></div>
-        <div class="defect">
-          <p class="partTitlePub">各模块缺陷占比排名 <img class="detailGo" src="../images/details.png" alt=""></p>
-          <div class="list">
-            <table class="qtable">
-  
-            </table>
-            <div class="qtableEmpty">
-
-            </div>
-          </div>
-        </div>
-      </div>
-      <div class="part02 fl">
-        <div class="bldjs">
-          <ul class="bingli clearfix">
-            <li class="fst">
-              <p class="numShow"></p>
-              <p class="explainNum">累计质控病历数</p>
-            </li>
-            <li class="sec">
-              <p class="numShow"></p>
-              <p class="explainNum">甲级病历</p>
-            </li>
-            <li class="sec">
-              <p class="numShow"></p>
-              <p class="explainNum">乙级病历</p>
-            </li>
-            <li class="four sec">
-              <p class="numShow"></p>
-              <p class="explainNum">丙级病历</p>
-            </li>
-          </ul>
-          <div class="bingliLis clearfix">
-            <p>病历评分等级占比 <img class="detailGo" src="../images/details.png" alt=""></p>
-            <div class="panPartPub panPart02">
-              <div class="fen" id="fen01"></div>
-              <p>甲级占比</p>
-            </div>
-            <div class="panPartPub panPart01">
-              <div class="fen" id="fen02"></div>
-              <p>乙级占比</p>
-            </div>
-            <div class="panPartPub panPart03">
-              <div class="fen" id="fen03"></div>
-              <p>丙级占比</p>
             </div>
-          </div>
         </div>
-        <div class="pingfendengji">
-          <p class="title">病历评分数据</p>
-          <div class="pingfendengjiEmpty">
+      </ul>
+    </div>
 
-          </div>
-        </div>
-        <div class="circleB circleBSingle clearfix">
-          <p class="title">条目缺陷占比 <img class="detailGo" src="../images/details.png" alt=""></p>
-          <div class="emptyCircleBData">
-            <div id="emptyCircleB" class="emptyCircle"></div>
-            <div class="explainPan explainPanB">
-              <table>
-                
-              </table>
-            </div>
-          </div>
-          <div class="emptyCircleBWrap">
 
-          </div>
-        </div>
-        <div class="circleBLis">
-          <div class="circleB homePage clearfix">
-            <p class="title">病案首页合格率占比 <img class="detailGo" src="../images/details.png" alt=""></p>
-            <div id="lineChart" class="emptyCircle emptyLineCircle"></div>
-            <div class="emptyLineCircleEmpty"></div>
-          </div>
-          <div class="circleB homePageNo clearfix">
-            <p class="title">条目缺陷占比 <img class="detailGo" src="../images/details.png" alt=""></p>
-            <div class="emptyCircleBDatas">
-              <div id="emptyCircleBc" class="emptyCircle"></div>
-              <div class="explainPan explainPanc explainPanBc">
-                <table>
-                  
-                </table>
-              </div>
-            </div>
-            <div class="emptyCircleBWraps">
-
-            </div>
-          </div>
 
-        </div>
-      </div>
   </div>
+  
+    
+
+  
 </body>
 </html>

+ 1 - 1
src/html/index.html

@@ -48,7 +48,7 @@
               <a href="javescript:void(0);" class="slide-hide">
                   <img src="../images/down.png" alt="">
               </a>
-              <ul></ul>
+              <ul class="menuList"></ul>
               <div class="copy-right"><p>©杭州朗通信息技术有限公司</p></div>
           </div>
           <div class="menu-mini fl">

+ 2 - 2
src/html/itemDefectDetail.html

@@ -10,7 +10,7 @@
 </head>
 
 <body>
-    <div class="container">
+    <div class="container itemDefectDetail">
         <!-- <h2>质控评分</h2> -->
         <div class="partTitle">
             <p class="titlePic"></p>
@@ -51,8 +51,8 @@
                         </ul>
                     </span>
                     <span class="filter">查询</span>
-                    <!-- <span class="export">导出</span> -->
                     <span class="filterclear abnormalClear filterclearT">重置</span>
+                    <span class="exportData">导出</span>
                 </div>
                 <a href="javascript:void(0);" class="filter-toggler down" id="filterToggler">收起筛选</a>
                 <div class="toggle-item clearfix">

+ 1 - 0
src/html/jiaji.html

@@ -35,6 +35,7 @@
                 </span>
                 <span class="filter">查询</span>
                 <span class="filterclear abnormalClear">重置</span>
+                <span class="exportData">导出</span>
             </div>
             <div>
                 <table>

+ 2 - 1
src/html/keyItemFlawControl.html

@@ -34,8 +34,9 @@
                 </span>
             <span class="filter">查询</span>
             <span class="filterclear abnormalClear">重置</span>
+            <span class="exportData">导出</span>
         </div>
-        <div style="display: table;padding-right: 20px;">
+        <div style="display: table;padding-right: 30px;" class="tableBox">
             <table class="key-list">
                 <thead>
                 <th class="moduleName" style="width: 65px;">序号</th>

+ 1 - 0
src/html/moduleManager.html

@@ -22,6 +22,7 @@
                             <td class="moduleName">模块名称</td>
                             <td class="moduleScore">分值</td>
                             <td class="moduleOpera">操作</td>
+                            <span class="moduleSpan"></span>
                         </tr>
                     </table>
                 </div>

+ 1 - 0
src/html/mukuaiControl.html

@@ -45,6 +45,7 @@
                 </span>
                 <span class="filter">查询</span>
                 <span class="filterclear abnormalClear">重置</span>
+                <span class="exportData">导出</span>
             </div>
             <table>
                 <thead>

+ 1 - 0
src/html/payDetail.html

@@ -47,6 +47,7 @@
                 
                 <span class="filter">查询</span>
                 <span class="filterclear abnormalClear">重置</span>
+                <span class="exportData">导出</span>
             </div>
             <div>
                 <table class="tableDay">

+ 1 - 1
src/html/qcList.html

@@ -10,7 +10,7 @@
 </head>
 
 <body>
-    <div class="container">
+    <div class="container qcList">
         <h2>质控评分</h2>
         <div class="main-body">
             <div class="filterBox">

+ 136 - 0
src/html/qcListCopy.html

@@ -0,0 +1,136 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>病历质控评分</title>
+    
+</head>
+
+<body>
+    <div class="container qcListCopy">
+        <!-- <h2>质控评分</h2>控制台 / 条目缺陷占比 / 缺陷详情 -->
+        <div class="partTitle">
+            <p class="titlePic"></p>
+          </div>
+        <div class="main-body">
+            <div class="filterBox">
+                <div class="clearfix">
+                    <span class="filterItem typeFilter deptListWrap">
+                        <span>科室:</span>
+                        <span class="selectDept">
+                            全部
+                        </span>
+
+                        <ul class="deptList filterDropList"></ul>
+                    </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" readonly /></span>
+                        <span  class="divide fl">-</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" readonly/></span>
+                    </span>
+                    <span class="filterItem">
+                        <span>病历等级:</span>
+                        <span class="selectLevel">全部</span>
+                        <ul class="levelList filterDropList">
+                            <Li class="levelItem" data-name="全部" data-id="全部">全部</Li>
+                            <Li class="levelItem" data-name="未评分" data-id="未评分">未评分</Li>
+                            <Li class="levelItem" data-name="甲" data-id="甲">甲</Li>
+                            <li class="levelItem" data-name="乙" data-id=乙>乙</li>
+                            <li class="levelItem" data-name="丙" data-id=丙>丙</li>
+                        </ul>
+                    </span>
+                    <span class="filter">查询</span>
+                    <span class="filterclear abnormalClear filterclearT">重置</span>
+                    <span class="export">导出</span>
+                </div>
+                <a href="javascript:void(0);" class="filter-toggler up" id="filterToggler">收起筛选</a>
+                <div class="toggle-item clearfix">
+                    <span class="filterItem typeFilter">
+                        <span>病人姓名:</span>
+                        <input class="patientNameInp" type="text" placeholder="请输入病人姓名">
+                    </span>
+                    <span class="filterItem typeFilter">
+                        <span>病人住院序号:</span>
+                        <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入病人住院序号">
+                    </span>
+                    <span class="filterItem doctorFilter">
+                        <span>医生姓名:</span>
+                        <input class="doctorInp" type="text" placeholder="请输入医生姓名">
+                    </span>
+                    <span class="filterItem doctorFilter">
+                        <span>医生工号:</span>
+                        <input class="doctorNumInp" type="text" placeholder="请输入医生工号">
+                    </span>
+                    <span class="filterItem doctorFilter">
+                        <span>缺陷名称:</span>
+                        <span class="selectDefect"> 
+                        
+                        </span>
+                        <!-- <input class="doctorInp" type="text" placeholder="请输入医生姓名"> -->
+                    </span>
+                </div>
+            </div>
+            <div class="overAuto">
+                <table>
+                    <thead>
+                    <tr class="tabOpera">
+                        <!-- <td colspan="18" style="background: #fff">
+                            <div class="tabFoot">
+                                <span class="scoreOpera" data-selectAll=false><img class="iconCheck" src="../images/icon_unchecked.png" alt="checkbox">全选</span>
+                                <span class="recordScoreBtn">评分</span>
+                            </div>
+                        </td> -->
+                    </tr>
+                    <tr class="tabTitle">
+                        <!-- <th class="textCenter" ></th>
+                        <th class="recordScoreOpera textCenter" style="width: 65px;">操作</th>
+                        <th class="beHospitalId textCenter" code="behospital_code">病人住院序号</th>
+                        <th class="patientNo textCenter" code="file_code">病案号</th>
+                        <th class="patientName textCenter" code="name" style="width: 100px;">病人姓名</th>
+                        <th class="patientSex textCenter" code="sex">性别</th>
+                        <th class="patientage textCenter" code="age">年龄</th>
+                        <th class="bedNum textCenter" code="bed_code">床号</th>
+                        <th class="inHospitalDate textCenter" code="behospital_date">入院日期</th>
+                        <th class="outHospitalDate textCenter desc" code="leave_hospital_date">出院日期</th>
+                        <th class="diagnose textCenter" code="diagnose">主诊断</th>
+                        <th class="doctorName textCenter" code="beh_doctor_name">住院医生</th>
+                        <th class="doctorName textCenter" code="doctor_name">主管医生</th>
+                        <th class="doctorName textCenter" code="director_doctor_name">主任医生</th>
+                        <th class="deptName textCenter" code="beh_dept_name">科室</th>
+                        <th class="recordLevel textCenter" code="level">病历等级</th>
+                        <th class="recordScore textCenter" code="score_res">病历得分</th>
+                        <th class="scoreTime textCenter" code="grade_time">评分时间</th> -->
+                    </tr>
+                    </thead>
+                    <tbody class="tbody">
+
+                    </tbody>
+                    <tfoot>
+                        <!-- <tr>
+                            <td colspan="17">
+                                <div class="tabFoot">
+                                    <span class="scoreOpera" data-selectAll=false><img class="iconCheck" src="../images/icon_unchecked.png" alt="checkbox">全选</span>
+                                    <span class="recordScoreBtn">评分</span>
+                                </div>
+                            </td>
+                        </tr> -->
+                    </tfoot>
+                </table>
+            </div>
+
+            <!--<div class="tabFoot">
+                <span class="scoreOpera" data-selectAll=false><img class="iconCheck" src="" alt="checkbox">全选</span>
+                <span class="recordScoreBtn">评分</span>
+            </div>-->
+
+            <div class="pagination"></div>
+        </div>
+
+    </div>
+</body>
+
+</html>

+ 1 - 1
src/html/qcListDept.html

@@ -10,7 +10,7 @@
 </head>
 
 <body>
-    <div class="container">
+    <div class="container qcListDept">
         <h2>质控评分</h2>
         <div class="main-body">
             <div class="filterBox">

+ 1 - 1
src/html/qcListDocteam.html

@@ -10,7 +10,7 @@
 </head>
 
 <body>
-    <div class="container">
+    <div class="container qcListDocteam">
         <h2>质控评分(医疗组)</h2>
         <div class="main-body">
             <div class="filterBox">

+ 1 - 1
src/html/qcListPerson.html

@@ -10,7 +10,7 @@
 </head>
 
 <body>
-    <div class="container">
+    <div class="container qcListPerson">
         <h2>质控评分</h2>
         <div class="main-body">
             <div class="filterBox">

+ 2 - 2
src/html/qcScore.html

@@ -226,7 +226,7 @@
     <script type="text/html" id="appointBookTmpl">
         <div class="page-item" code="${title}">
             <h2 class="title" code="${title}">${title}</h2>
-            {{if !data}}
+            {{if !data || data&&data.length === 0}}
             <div class="empty">
                 <img src="../images/empty.png" alt="空"/>
                 <p>暂无信息~</p>
@@ -284,7 +284,7 @@
             <a href="javescript:void(0);" class="slide-show">
                 <img src="../images/down.png" alt="">
             </a>
-            <ul id="subMenu"></ul>
+            <ul id="subMenu" class="subMenu"></ul>
             <div class="copy-right"><p>©杭州朗通信息技术有限公司</p></div>
         </div>
         <div class="menu-mini fl">

+ 1 - 0
src/html/quexianDetailControl.html

@@ -52,6 +52,7 @@
                 </span>
                 <span class="filter">查询</span>
                 <span class="filterclear abnormalClear">重置</span>
+                <span class="exportData">导出</span>
             </div>
             <table>
                 <thead>

+ 2 - 1
src/html/quexianDetailControlHome.html

@@ -48,12 +48,13 @@
                 </span>
                 <span class="filter">查询</span>
                 <span class="filterclear abnormalClear">重置</span>
+                <span class="exportData">导出</span>
             </div>
             <table>
                 <thead>
                     <th class="moduleName" style="width: 65px;">序号</th>
+                    <th class="moduleItemName desc">所属模块</th>
                     <th class="moduleItemName">缺陷名称</th>
-                    <!-- <th class="moduleItemName desc" code="casesName">所属模块</th> -->
                     <th class="moduleItemName textCenter">数量</th>
                     <th class="moduleScore" style="width: 80px;">缺陷占比</th>
                 </thead>

+ 2 - 1
src/js/abnormal.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/abnormal.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,emptyBox} = require('./utils.js')
+const {post,getCookie,emptyBox,initScroll} = 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")
@@ -145,6 +145,7 @@ function renderTab(data,hisId,activePage){
     }
     $('.tbody').html(str?str:emptyBox())
     bindScoreDetail(hisId)
+    // initScroll("abnormal","YX",1)
 }
 function getQcAnnormalMode(item,type,mol,des){
     console.log(type)

+ 10 - 1
src/js/api.js

@@ -89,9 +89,18 @@ const api = {
     entryRejectPercent:'/console/entryRejectPercent',//单项否决占比
     qcResultLevelPercent:'/console/qcResultLevelPercent',//各科室甲乙丙级占比
     qcResultDefectList:'/console/qcResultShortPage',//条目缺陷质控评分
-    qcResultDefectListDept:'/consoleByDept/qcResultShortByDeptPage',//条目缺陷质控评分(科室)
+    qcResultShortByDeptPage:'/consoleByDept/qcResultShortByDeptPage',//条目缺陷质控评分(科室)
     getQcListPageSet:'/sys/user/pageset/getPageSet',
     saveQcListPageSet:'/sys/user/pageset/savePageSet',
+
+    //导出接口
+    getAverageDayNumExport:'/console/export/getAverageDayNumExport',//科室平均住院天数
+    getAverageFeeExport:'/console/export/getAverageFeeExport',//科室平均住院花费
+    levelPercentGroupByDeptExport:'/console/export/levelPercentGroupByDeptExport',//各科室甲级占比
+    entryCountGroupByEntryExport:'/console/export/entryCountGroupByEntryExport',//各科室缺陷详情,病案首页详情
+    entryStatisticsExport:'/console/export/entryStatisticsExport',//关键条目缺陷占比
+    entryCountGroupByCaseExport:'/console/export/entryCountGroupByCaseExport',//各模块缺陷占比导出
+    qcResultShortPageExport:'/console/export/qcResultShortPageExport',//关键条目占比详情,条目缺陷占比详情导出
 }
 module.exports = {
     api

+ 2 - 1
src/js/assertType.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/assertType.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,initScroll} = 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")
@@ -207,6 +207,7 @@ function renderTab(data,hisId,activePage){
         let docName = $(this).attr("data-doc")
         $(parent.document).find("#contentIframe").attr("src","quexianDetail.html?from=1&casesId=243&deptName="+deptIdTemp+"&docName="+docName+"&shijian="+statisticsType)
     })
+    // initScroll("assertType","Y",1)
 }
 
 function scoreDetail(id,age,hid,code){

+ 28 - 7
src/js/console.js

@@ -5,13 +5,14 @@ require("../css/console.less")
 require("../images/logo.png")
 require("../images/arrow_down.png")
 require('./modal.js');
+require('./scrollBar.js')
 
 // import 'zrender/lib/svg/svg';
 const {api} = require('./api.js')
 const echarts = require('echarts');
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./../resource/jquery-ui/jquery-ui.min.css');
-const {post,setCookie,delCookie,getCookie,focusMenuItem,picEmptyData} = require('../js/utils.js');
+const {post,setCookie,delCookie,getCookie,focusMenuItem,picEmptyData, initScroll} = require('../js/utils.js');
 const { get } = require('jquery');
 let payMoney = [],behosDateStart="",ownSelectDate='',behosDateEnd="",dayLis = [],dateType = 2,slideType = 1,hospital=getCookie("hospital"),deptType="内科",deptId="",level="甲",lineType="合格率",lineType1=[],lineType2=[],lineType3=[],lineType4=[];
 
@@ -114,7 +115,7 @@ $(function(){
     $(".part02").on("mouseleave",".bingli li.sec",function(){
       $(this).find(".explainNum").css("color","#A5ADBF")
     })
-    getEveryDeptLevel()
+    // getEveryDeptLevel()
 })
 function getDetails(dateType){
     $(".pubEchartB.paymoney .title").click(function(){
@@ -270,10 +271,8 @@ function getAverageScoreLis(){
     let url = ''
     if(hospital=="台州市立"&&hasData('FUNC000091')){
         url = api.getAverageScoreByDeptClass
-    }else if(hospital=="长兴医院"&&hasData('FUNC000047')){
-        url = api.getAverageScore
     }else{
-        return
+        url = api.getAverageScore
     }
     post(url,{//各科室质控平均分
         "type": dateType||1,//1月2年
@@ -412,7 +411,6 @@ function getBarData(type){
     //         }
     //     })
     // }
-    console.log(behosDateStart,45455555555555)
     if(hasData('FUNC000049')){
         post(api.leaveHosCount,{//出院人数统计
             "type": type||1,//1月2年
@@ -1652,6 +1650,7 @@ function queList(data){
         `
     }
     $(".qtable").html(tmp+strAll)
+    // initScroll("list","Y",2)
 }
 //饼图列表注释渲染
 function panDetail(data){
@@ -1669,6 +1668,7 @@ function panDetail(data){
         `
     }
     $(".explainPanT table").html(strAll);
+    // initScroll("explainPanT","Y",2,"20px")
 }
 function panDetailB(data){
     let color = ['#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336','#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336'];
@@ -1688,6 +1688,13 @@ function panDetailB(data){
     $(".explainPan").css({
         marginTop:-($(".explainPan").height()/2-20)+'px'
     })
+    // new CusScrollBar({
+    //     contentSelector: '.explainPanB_scroll_cont' , //滚动内容区
+    //     barSelector: '.explainPanB_scroll_bar', //滚动条
+    //     sliderSelector: '.explainPanB_scroll_slider', //滚动滑块
+    //     sliderMode:2   
+    // });
+    // initScroll("explainPanB","Y",2,"20px")
 }
 //时间获取
 function getTimeDetail(){
@@ -1791,7 +1798,6 @@ function getStaticDate(flg){
     getHomeData('firstLevelPercent')
     getAverageScoreLis()
     getEveryDeptLevel()
-    console.log(behosDateStart,behosDateEnd,898989898)
     return true
 }
 $(function() {
@@ -1840,4 +1846,19 @@ $(function() {
     $('.iconCalen').on("click", function(e){
         $(this).parent().find("input").focus()
     })
+    // new CusScrollBar({
+    //     contentSelector: '.console_scroll_cont', //滚动内容区
+    //     barSelector: '.console_scroll_bar', //滚动条
+    //     sliderSelector: '.console_scroll_slider', //滚动滑块
+    //     sliderMode:2   
+    // });
+    // new CusScrollBar({
+    //     contentSelector: '.console_wrapper_scroll_cont', //滚动内容区
+    //     barSelector: '.console_wrapper_scroll_bar', //滚动条
+    //     sliderSelector: '.console_wrapper_scroll_slider', //滚动滑块
+    //     scrollDir:'X',
+    //     sliderMode:2    
+    // });
+    // initScroll("partWrap","Y",2)
+    // initScroll("console","X",2)
 });

+ 14 - 3
src/js/dayDetail.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/dayDetail.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,expJson,downloadExportedData,initScroll} = 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")
@@ -173,6 +173,7 @@ function renderTab(data,hisId,activePage){
     `
     $('.tableDay').html(sts)
     bindScoreDetail(hisId)
+    // initScroll("dayDetail","YX",1)
 }
 
 function scoreDetail(id,age,hid,code){
@@ -566,5 +567,15 @@ $(document).on("click", function(){
     
 })
 
-$((function($){
-})($));
+$(function($){
+    $('.exportData').click(function(){
+        const param = {
+            name: behospitalCode||"",
+            type: statisticsType||2, //1-本月,2-本年
+            dateType: "",//(3-上月,4-去年本月,5-去年(必填))
+        }
+        expJson(api.getAverageDayNumExport,param).then(res =>{
+            downloadExportedData(res.data, "科室平均住院天数.xls")
+        })
+    })
+});

+ 10 - 6
src/js/deptConsole.js

@@ -10,7 +10,7 @@ const {api} = require('./api.js')
 const echarts = require('echarts');
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./../resource/jquery-ui/jquery-ui.min.css');
-const {post,setCookie,delCookie,getCookie,focusMenuItem,picEmptyData } = require('../js/utils.js');
+const {post,setCookie,delCookie,getCookie,focusMenuItem,picEmptyData,initScroll } = require('../js/utils.js');
 let payMoney = [],behosDateStart="",behosDateEnd="",ownSelectDate='',dayLis = [],dateType = 2,curDept = '',curDeptId='',datafst=[],datasec=[],datatrd=[],datafour=[],hospital=getCookie("hospital");
 $(function(){
     if(!hasData('YH-KZT')&&!hasData('YH-KZTKS')){
@@ -74,7 +74,7 @@ function tiaomu(dateType){
     $("body").on("click",".homegodetail",function(){
         let name = $(this).attr("data-name")
         focusMenuItem("YH-KSZR-TMQXZB_XQ");
-        $(parent.document).find("#contentIframe").attr("src","./singleVeto.html?from=2&special=1&shijian="+dateType+"&model="+name+"&startDateParam="+behosDateStart+"&endDateParam="+behosDateEnd)
+        $(parent.document).find("#contentIframe").attr("src","./singleVeto.html?from=2&special=1&shijian="+dateType+"&model="+name+"&startDateParam="+behosDateStart+"&endDateParam="+behosDateEnd+"&deptName="+curDept)
     })
 }
 //判断有无某一权限
@@ -430,10 +430,10 @@ function personNum(data){
         $(".chuyuanEmpty").css("display","none")
         $(".chuyuan,.personNum").css("display","block")
     }
-    $(".personNum").html("总人数:"+data['总人数'])
-    $(".died").html(data['死亡人数'])
-    $(".newborn").html(data['新生儿人数'])
-    $(".patientNum").html(data['手术病人数'])
+    $(".personNum").html("总人数:"+(data['总人数']||'--'))
+    $(".died").html(data['死亡人数']||'--')
+    $(".newborn").html(data['新生儿人数']||'--')
+    $(".patientNum").html(data['手术病人数']||'--')
 }
 //part02
 function setNumDetail(data){
@@ -763,6 +763,7 @@ function queList(data){
         `
     }
     $(".qtable").html(tmp+strAll)
+    // initScroll("list","Y",2)
 }
 //饼图列表注释渲染
 function panDetailB(data){
@@ -783,6 +784,7 @@ function panDetailB(data){
     $(".explainPan").css({
         marginTop:-($(".explainPan").height()/2-20)+'px'
     })
+    // initScroll("explainPanB","Y",2)
 }
 function panDetailBc(data){
     let color = ['#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336','#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336'];
@@ -956,4 +958,6 @@ $(function() {
     $('.iconCalen').on("click", function(e){
         $(this).parent().find("input").focus()
     })
+    // initScroll("partWrap","Y",2)
+    // initScroll("console","X",2)
 });

+ 2 - 1
src/js/deptScoreDetail.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/deptScoreDetail.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,focusMenuItem,emptyBox,setDatePicker,getPickerDate} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,focusMenuItem,emptyBox,setDatePicker,getPickerDate,initScroll} = 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")
@@ -234,6 +234,7 @@ function renderTab(data,hisId,activePage){
         focusMenuItem("YH-BLZK-ZKPFKS");
         $(parent.document).find("#contentIframe").attr("src","qcListDept.html?from=2&deptName="+deptIdTemp+"&docName="+docName+"&shijian=3"+"&chengdu="+deptC+"&deptId="+curDeptId+"&startDateParam="+startDateParam+"&endDateParam="+endDateParam)
     })
+    // initScroll("deptScoreDetail","YX",1)
 }
 
 function scoreDetail(id,age,hid,code){

+ 8 - 12
src/js/deptScoreDetailControl.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/deptScoreDetailControl.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,focusMenuItem,emptyBox,setDatePicker,getPickerDate,downloadExportedData,expJson} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,focusMenuItem,emptyBox,setDatePicker,getPickerDate,downloadExportedData,expJson,initScroll} = 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")
@@ -139,10 +139,8 @@ function getTabData(activePage){
 
     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
+        url = api.levelStatistics
     }
     startDateParam = dateStatrt
     endDateParam = dateEnd
@@ -228,6 +226,7 @@ function renderTab(data,hisId,activePage){
         focusMenuItem("YH-BLZK-ZKPF");
         $(parent.document).find("#contentIframe").attr("src","qcList.html?deptName="+deptName+"&from=2"+"&shijian=3&chengdu="+deptC+"&deptId="+deptIds+"&startDateParam="+startDateParam+"&endDateParam="+endDateParam)
     })
+    // initScroll("deptScoreDetailControl","YX",1)
 }
 
 function scoreDetail(id,age,hid,code){
@@ -585,10 +584,8 @@ $(function() {
         $(this).parent().find("input").focus()
     });
   $('.export').click(function(){
-    const dateStatrt = getPickerDate($("#datepicker"),1)
-    const dateEnd = getPickerDate($("#datepicker2"),2)
-    const start = new Date(dateStatrt).getTime()
-    const end = new Date(dateEnd).getTime()
+    const start = new Date(startDateParam).getTime()
+    const end = new Date(endDateParam).getTime()
     if(start > end){
       $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
       return
@@ -599,13 +596,12 @@ $(function() {
       "name": behospitalCode||"",
       "deptClass": deptId||'',
       "type": statisticsType||2, //1-本月,2-本年
-      "startDate":dateStatrt,
-      "endDate":dateEnd
+      "startDate":startDateParam,
+      "endDate":endDateParam
     };
     const url = hospital == '台州市立'?api.exportDeptFlawsTz:api.exportDeptFlaws;
     expJson(url,param).then(res =>{
-      downloadExportedData(res.data, dateStatrt.slice(0,10).replace(/-/g,"")+"-"+dateEnd.slice(0,10).replace(/-/g,"")+"各科室缺陷占比.xls")
+      downloadExportedData(res.data, "各科室缺陷占比.xls")
     })
-
   })
 });

+ 10 - 1
src/js/index.js

@@ -4,7 +4,7 @@ require('jquery-templates');
 const md5 = require('js-md5');
 require("./modal.js")
 const {api} = require('./api.js')
-const {post,pageMap,delCookie,setCookie,getCookie,focusMenuItem} = require('./utils.js');
+const {post,pageMap,delCookie,setCookie,getCookie,focusMenuItem,initScroll} = require('./utils.js');
 let userInfo={};
 $(function(){
   getMenu();
@@ -68,9 +68,13 @@ function initMenu(data,userInfo){
   }
   //菜单收起展开
   $(".menu .list-1").on("click",function(){
+
     if($(this).is(".list-1-show")){
       $(this).removeClass("list-1-show")
       $(this).find("ul").slideToggle();
+      // setTimeout(function(){
+      //   initScroll("menuList","Y",2)
+      // },300)
       return;
     }
 
@@ -81,6 +85,9 @@ function initMenu(data,userInfo){
       $(this).addClass("list-1-show")
     }
     $(this).find("ul").slideToggle();
+    // setTimeout(function(){
+    //   initScroll("menuList","Y",2)
+    // },300)
   });
 //收起菜单
   $(".slide-hide").click(function(){
@@ -119,7 +126,9 @@ function initMenu(data,userInfo){
       url += `?doctorName=${userInfo.linkman}`
     }
     $("#contentIframe").attr("src",url);
+   
   });
+  // initScroll("menuList","Y",2)
 }
 
 //获取科室列表

+ 25 - 20
src/js/itemDefectDetail.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/itemDefectDetail.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,emptyBox,downloadExportedData,expJson,setDatePicker} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,downloadExportedData,expJson,setDatePicker,getPickerDate,initScroll } = 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")
@@ -177,7 +177,7 @@ $(".abnormalClear").on("click", function(e){
     deptId=""; 
     deptIdTemp="";  
     deptName="";
-    deptNameTmp="";
+    deptNameTemp="";
     doctorName=""; 
     doctorNum=""; 
     doctorNameTemp=""; 
@@ -186,7 +186,7 @@ $(".abnormalClear").on("click", function(e){
     data_asc=[];
     if(from == 2){
         deptId =  deptIdTemp = deptList[0].deptId
-        deptName = deptNameTmp = deptList[0].deptName
+        deptName = deptNameTemp = deptList[0].deptName
     }
     $('.patientNumInp').val('')
     $('.patientNameInp').val('')
@@ -226,6 +226,7 @@ function renderTab(data,hisId){
     let hasSelectAll = true;
     if(data.length===0){
       $('.tbody').html(emptyBox())
+    //   initScroll("itemDefectDetail","YX",1)
       return;
     }
     for(let i = 0; i < data.length; i++){
@@ -261,6 +262,7 @@ function renderTab(data,hisId){
     bindScoreOperaItem()
     bindRecordScoreOper()
     bindScoreDetail(hisId)
+    // initScroll("itemDefectDetail","YX",1)
 }
 
 function scoreDetail(id,age,hid,code,name){
@@ -646,26 +648,29 @@ $(document).on("click", function(){
     $(".selectLevel .arrow").attr("src",iconDown)
     
 })
-$((function($){
-
-    $('.export').click(function(){
-        if((new Date(behosDateEnd) - new Date(behosDateStart))/24/60/60/1000 > 7){
-            $.alerModal({"message":"最多只能导出7天",type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+$(function(){
+    $('.exportData').click(function(){
+        const start = new Date(behosDateStart).getTime()
+        const end = new Date(behosDateEnd).getTime()
+        if(start > end){
+            $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
             return
         }
         const param = {
-            "behospitalCode": behospitalCode,
-            "deptId": deptId,
-            "doctorCode":doctorNum,
-            "doctorName": doctorName,
-            "leaveHosDateEnd": '2020-04-03 00:00:00'||behosDateEnd,
-            "leaveHosDateStart": '2020-04-01 00:00:00'||behosDateStart,
-            "level": 2||level,
-            "name": name
+            behospitalCode: behospitalCode,
+            patName: name, //病人姓名
+            level:level,//病历等级
+            behDeptName: deptName,
+            ascs:data_asc,     //升序
+            descs:data_desc,       //降序
+            startDate: behosDateStart, //出院日期--开始时间
+            endDate: behosDateEnd, //出院日期--结束时间
+            casesEntryName: casesEntryName,
+            casesEntryId:casesId,
+            isReject: isSingleReject
         }
-        expJson(api.exportQcList,param).then(res =>{
-            downloadExportedData(res.data, behosDateStart.slice(0,10).replace(/-/g,"")+"-"+behosDateEnd.slice(0,10).replace(/-/g,"")+"抽查住院病历质量情况.xls")
+        expJson(api.qcResultShortPageExport,param).then(res =>{
+            downloadExportedData(res.data, $(".partTitle").text()+".xls")
         })
-      
     })
-})($));
+});

+ 2 - 1
src/js/itemManager.js

@@ -3,7 +3,7 @@ require("../css/itemManager.less");
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie} = require('./utils.js')
+const {post,getCookie, initScroll} = require('./utils.js')
 const switchIconOpen = require("./../images/btn_open.png")
 const switchIconClose = require("./../images/btn_close.png")
 const iconDown= require("./../images/arrow_down.png")
@@ -133,6 +133,7 @@ function renderTab(data,activePage){
     }
     $('.tbody').html(str)
     bindEdit(data,activePage)
+    // initScroll("managerContainer","Y",1)
 }
 
 function bindEdit(data,activePage){

+ 23 - 2
src/js/jiaji.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/jiaji.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,emptyBox,setDatePicker,getPickerDate} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,setDatePicker,getPickerDate,expJson,downloadExportedData,initScroll} = require('./utils.js')
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./../resource/jquery-ui/jquery-ui.min.css');
 const iconCheck= require("./../images/icon_check.png")
@@ -17,7 +17,7 @@ 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="",
+let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,statisticsType="",startDateParam="",endDateParam="",
   nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
   data_desc=[],data_asc=[];
 let srcUrl = $("#contentIframe",parent.document).attr("src")
@@ -128,6 +128,8 @@ function getTabData(activePage){
         "startDate":dateStatrt,
         "endDate":dateEnd
     }
+    startDateParam = dateStatrt
+    endDateParam = dateEnd
     post(api.levelPercentGroupByDeptPage,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data;
@@ -172,6 +174,7 @@ function renderTab(data,hisId,activePage){
     }
     $('.tbody').html(str?str:emptyBox())
     bindScoreDetail(hisId)
+    // initScroll("jiaji","YX",1)
 }
 
 function scoreDetail(id,age,hid,code){
@@ -577,4 +580,22 @@ $(function() {
     $('.iconCalen').on("click", function(e){
         $(this).parent().find("input").focus()
     })
+    $('.exportData').click(function(){
+        const start = new Date(startDateParam).getTime()
+        const end = new Date(endDateParam).getTime()
+        if(start > end){
+            $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            return
+        }
+        const param = {
+            name: behospitalCode||"",
+            type: 0, //1-本月,2-本年,0-自定义时间(现在 都是自定义时间,都会传具体时间进去)
+            dateType: level||"",//(3-上月,4-去年本月,5-去年(必填))
+            "startDate":startDateParam,
+            "endDate":endDateParam
+        }
+        expJson(api.levelPercentGroupByDeptExport,param).then(res =>{
+            downloadExportedData(res.data, "各科室甲级病历占比.xls")
+        })
+    })
 });

+ 23 - 4
src/js/keyItemFlawControl.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/keyItemFlawControl.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,emptyBox,setTitleTxt,setDatePicker,getPickerDate} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,setTitleTxt,setDatePicker,getPickerDate,expJson,downloadExportedData,initScroll} = 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")
@@ -86,8 +86,8 @@ function getTabData(activePage){
     "asc":data_asc,     //升序
     "desc":data_desc,       //降序
     //"type": 0, //1-本月,2-本年,0-自定义时间(现在所有都是自定义时间,都会传开始日期和结束日期)
-    "startDate":dateStatrt,
-    "endDate":dateEnd
+    "startDate":dateStatrt.replace(/\//g,'-'),
+    "endDate":dateEnd.replace(/\//g,'-')
   }
   startDateParam = dateStatrt
   endDateParam = dateEnd
@@ -147,8 +147,9 @@ function renderTab(data,hisId,activePage){
     let name=$(this).attr("dept-name");
     name=name==="全院"?"全部":name;
     let id=$(this).attr("dept-id");
-    $(parent.document).find("#contentIframe").attr("src","itemDefectDetail.html?from=3&deptName="+name+"&deptId="+id+"&casesEntryId="+casesId+"&defectName="+casesName+"&startDate="+startDateParam+"&endDate="+endDateParam)
+    $(parent.document).find("#contentIframe").attr("src","qcListCopy.html?from=3&deptName="+name+"&deptId="+id+"&casesEntryId="+casesId+"&defectName="+casesName+"&startDate="+startDateParam+"&endDate="+endDateParam)
   })
+  // initScroll("partDetailControl","YX",1)
 }
 
 $('.selectDept').on("click", function(e){
@@ -309,4 +310,22 @@ $(function() {
   $('.iconCalen').on("click", function(e){
     $(this).parent().find("input").focus()
   })
+  $('.exportData').click(function(){
+      const start = new Date(startDateParam).getTime()
+      const end = new Date(endDateParam).getTime()
+      if(start > end){
+          $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+          return
+      }
+      const param = {
+        "deptName": deptName,
+        "asc":data_asc,     //升序
+        "desc":data_desc,       //降序
+        "startDate":startDateParam,
+        "endDate":endDateParam
+      }
+      expJson(api.entryStatisticsExport,param).then(res =>{
+          downloadExportedData(res.data, "关键条目缺陷占比.xls")
+      })
+  })
 });

+ 3 - 1
src/js/moduleManager.js

@@ -6,7 +6,7 @@ require('./modal.js');
 
 // const  layui = require('layui-src');
 const {api} = require('./api.js')
-const {post,getCookie,emptyBox,isMac} = require('./utils.js')
+const {post,getCookie,emptyBox,isMac,initScroll} = require('./utils.js')
 function setTbaleInfoHei(){
  
     $(".tableInfo").css({
@@ -63,10 +63,12 @@ function renderTab(){
     const mac = isMac()
     if(!mac&&tableInfoHei > tableInfoBox){
         $(".tableTitle").css("paddingRight", 15+'px')
+        $(".moduleSpan").css("display","block")
     }
     // bindInput()
     bindModuleOpera()
     getTotalSum()
+    // initScroll("tableInfo","Y",1)
 
 }
 

+ 2 - 1
src/js/mukuai.js

@@ -3,7 +3,7 @@ require("../css/mukuai.less");
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,emptyBox,setDatePicker,getPickerDate} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,setDatePicker,getPickerDate,initScroll} = require('./utils.js')
 const switchIconOpen = require("./../images/btn_open.png")
 const switchIconClose = require("./../images/btn_close.png")
 const iconDown= require("./../images/arrow_down.png")
@@ -293,6 +293,7 @@ function renderTab(data,activePage){
         let deptName = deptId||(deptList.length>0?deptList[0].deptName:'')
         $(parent.document).find("#contentIframe").attr("src","./singleVeto.html?from=2&deptName="+deptName+"&special=1&model="+model+"&shijian=3"+"&startDateParam="+startDateParam+"&endDateParam="+endDateParam)
     })
+    // initScroll("mukuai","Y",1)
 }
 
 function bindEdit(data,activePage){

+ 22 - 2
src/js/mukuaiControl.js

@@ -3,7 +3,7 @@ require("../css/mukuai.less");
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,emptyBox,setDatePicker,getPickerDate} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,setDatePicker,getPickerDate,expJson,downloadExportedData,initScroll } = require('./utils.js')
 const switchIconOpen = require("./../images/btn_open.png")
 const switchIconClose = require("./../images/btn_close.png")
 const iconDown= require("./../images/arrow_down.png")
@@ -305,6 +305,7 @@ function renderTab(data,activePage){
         // $(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=3&startDateParam="+startDateParam+"&endDateParam="+endDateParam)
     })
+    // initScroll("mukuai","Y",1)
 }
 
 function bindEdit(data,activePage){
@@ -389,7 +390,6 @@ function editItem(item,activePage){
             return 
         }else{
             $("#mainBox .itemMsgBox .itemMsgInfoTips", parent.document).css("display","block")
-            
             return
         }
       
@@ -563,4 +563,24 @@ $(function() {
     $('.iconCalen').on("click", function(e){
         $(this).parent().find("input").focus()
     })
+    $('.exportData').click(function(){
+        const start = new Date(startDateParam).getTime()
+        const end = new Date(endDateParam).getTime()
+        if(start > end){
+            $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            return
+        }
+        const param = {
+            type: 0,
+            name: name, //条目名
+            deptName: deptId, //科室名
+            asc:data_asc,     //升序
+            desc: data_desc,       //降序
+            "startDate":startDateParam,
+            "endDate":endDateParam
+        }
+        expJson(api.entryCountGroupByCaseExport,param).then(res =>{
+            downloadExportedData(res.data, "各模块缺陷占比.xls")
+        })
+    })
 });

+ 2 - 1
src/js/partDetail.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/partDetail.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,emptyBox,setDatePicker,getPickerDate} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,setDatePicker,getPickerDate,initScroll} = 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")
@@ -239,6 +239,7 @@ function renderTab(data,hisId,activePage){
         let ruleType = $(this).attr("data-ruleType")
         $(parent.document).find("#contentIframe").attr("src","quexianDetailHome.html?from=1&casesId=243&deptName="+deptIdTemp+"&docName="+docName+"&shijian=3"+"&ruleType="+ruleType+"&startDateParam="+startDateParam+"&endDateParam="+endDateParam)
     })
+    // initScroll("partDetail","YX",1)
 }
 
 function scoreDetail(id,age,hid,code){

+ 23 - 23
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,setTitleTxt,setDatePicker,getPickerDate,downloadExportedData,expJson} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,setTitleTxt,setDatePicker,getPickerDate,downloadExportedData,expJson,initScroll} = 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")
@@ -186,6 +186,8 @@ function renderTab(data,hisId,activePage){
         let ruleType = $(this).attr("data-ruleType")
         $(parent.document).find("#contentIframe").attr("src","quexianDetailControlHome.html?deptName="+deptName+"&from=1&casesId=243"+"&shijian=3"+"&ruleType="+ruleType+"&startDateParam="+startDateParam+"&endDateParam="+endDateParam)
     })
+
+    // initScroll("partDetailControl","YX",1)
 }
 
 function scoreDetail(id,age,hid,code){
@@ -547,27 +549,25 @@ $(function() {
     $('.iconCalen').on("click", function(e){
         $(this).parent().find("input").focus()
     })
-  $('.export').click(function(){
-    const dateStatrt = getPickerDate($("#datepicker"),1)
-    const dateEnd = getPickerDate($("#datepicker2"),2)
-    const start = new Date(dateStatrt).getTime()
-    const end = new Date(dateEnd).getTime()
-    if(start > end){
-      $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
-      return
-    }
-    const param = {
-      "level": deptId||"",
-      "name": behospitalCode||"",
-      "asc":data_asc,     //升序
-      "desc":data_desc,       //降序
-      "type": statisticsType||2, //1-本月,2-本年
-      "startDate":dateStatrt,
-      "endDate":dateEnd
-    }
-    expJson(api.exportIndexQualified,param).then(res =>{
-      downloadExportedData(res.data, dateStatrt.slice(0,10).replace(/-/g,"")+"-"+dateEnd.slice(0,10).replace(/-/g,"")+"病案首页.xls")
-    })
+    $('.export').click(function(){
+        const start = new Date(startDateParam).getTime()
+        const end = new Date(endDateParam).getTime()
+        if(start > end){
+        $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        return
+        }
+        const param = {
+        "level": deptId||"",
+        "name": behospitalCode||"",
+        "asc":data_asc,     //升序
+        "desc":data_desc,       //降序
+        "type": statisticsType||2, //1-本月,2-本年
+        "startDate":startDateParam,
+        "endDate":endDateParam
+        }
+        expJson(api.exportIndexQualified,param).then(res =>{
+        downloadExportedData(res.data,"病案首页合格率占比.xls")
+        })
 
-  })
+    })
 });

+ 14 - 4
src/js/payDetail.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/payDetail.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,expJson,downloadExportedData,initScroll} = 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")
@@ -177,6 +177,7 @@ function renderTab(data,hisId,activePage){
     `
     $('.tableDay').html(sts)
     bindScoreDetail(hisId)
+    // initScroll("payDetail","YX",1)
 }
 
 function scoreDetail(id,age,hid,code){
@@ -569,6 +570,15 @@ $(document).on("click", function(){
     $(".selectLevel .arrow").attr("src",iconDown)
     
 })
-
-$((function($){
-})($));
+$(function($){
+    $('.exportData').click(function(){
+        const param = {
+            name: behospitalCode||"",
+            type: statisticsType||2, //1-本月,2-本年
+            dateType: "",//(3-上月,4-去年本月,5-去年(必填))
+        }    
+        expJson(api.getAverageFeeExport,param).then(res =>{
+            downloadExportedData(res.data, "科室平均住院花费.xls")
+        })
+    })
+});

+ 3 - 1
src/js/qcList.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/qcList.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,emptyBox,downloadExportedData,expJson} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,downloadExportedData,expJson,initScroll} = 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")
@@ -210,6 +210,7 @@ function renderTab(data,hisId){
     let hasSelectAll = true;
     if(data.length===0){
       $('.tbody').html(emptyBox(null,showNum+2))
+    //   initScroll("qcList","YX",1)
       return;
     }
     for(let i = 0; i < data.length; i++){
@@ -259,6 +260,7 @@ function renderTab(data,hisId){
     bindScoreOperaItem()
     bindRecordScoreOper()
     bindScoreDetail(hisId)
+    // initScroll("qcList","YX",1)
 }
 
 function isTextCenter(name){

+ 934 - 0
src/js/qcListCopy.js

@@ -0,0 +1,934 @@
+const $ = require('jquery');
+require("../css/qcListCopy.less");
+require('./modal.js');
+const {api} = require('./api.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,downloadExportedData,expJson,initScroll} = require('./utils.js')
+require('./../resource/jquery-ui/jquery-ui.min.js');
+require('./../resource/jquery-ui/jquery-ui.min.css');
+const iconCheck= require("./../images/icon_check.png")
+const iconUnCheck = require("./../images/icon_unchecked.png")
+const  iconCalenBlue= require("./../images/icon_calen_blue.png")
+const  iconCalenGrey= require("./../images/icon_calen_grey.png")
+const iconDown= require("./../images/arrow_down.png")
+const iconUp = require("./../images/arrow_up.png")
+const loadingImg = require("./../images/loading.gif")
+const arrowLeft= require("./../images/arrow_left.png")
+const arrowRight = require("./../images/arrow_right.png")
+const goUpG= require("./../images/arrow_up_grey.png")
+const goUpB = require("./../images/arrow_up_blue.png")
+const goDownG= require("./../images/arrow_down_grey.png")
+const goDownB = require("./../images/arrow_down_blue.png")
+
+let pageSet = [],pageSetCopy = [], showNum = 0, scrollTop=0;
+let srcUrl = $("#contentIframe",parent.document).attr("src")
+let statisticsType = getUrlArgObjectNew("dateType",srcUrl)||getUrlArgObjectNew("shijian",srcUrl) || "3"
+let chengdu = getUrlArgObjectNew("chengdu",srcUrl)||""
+let deptIdPram = getUrlArgObjectNew("deptId",srcUrl)||""
+let deptNamePram = getUrlArgObjectNew("deptName",srcUrl)||""
+let docName = getUrlArgObjectNew("docName",srcUrl)||""
+let startDateParam = getUrlArgObjectNew("startDate",srcUrl)||""
+let endDateParam = getUrlArgObjectNew("endDate",srcUrl)||""
+let from = getUrlArgObjectNew("from",srcUrl)||""
+let defectName = getUrlArgObjectNew("defectName",srcUrl)||"";
+let casesId = getUrlArgObjectNew("casesEntryId",srcUrl)||"";
+let isSingleReject = getUrlArgObjectNew("isSingleReject",srcUrl)||""
+let deptListDept = JSON.parse(getCookie("deptList"))||[]
+
+$(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,
+  nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", deptName="", deptNameTemp="",doctorNum="",doctorNameTemp="",doctorNumTemp="",
+  data_desc=["leaveHospitalDate"],data_asc=[];
+if(chengdu){
+    levelTemp = chengdu
+    level = chengdu
+    $('.selectLevel').html(chengdu)
+    $(".levelList").css("display", "none")
+    $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+}
+if(defectName){
+    casesEntryName=defectName
+    $('.selectDefect').html(casesEntryName)
+}
+if(docName){
+    doctorNameTemp = docName
+    doctorName = docName
+    $('.doctorInp').val(docName)
+}
+if(deptIdPram&&deptNamePram){
+    deptIdTemp = deptIdPram = deptIdPram
+    deptName = deptNameTemp = deptNamePram
+    if(deptNamePram.length > 10){
+        $('.selectDept').html(deptNamePram.substring(0,8)+'...')
+    }else{
+        $('.selectDept').html(deptNamePram)
+    }
+    $('.selectDept ').attr('title',deptNamePram)
+    $(".deptList").css("display", "none")
+    $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+}
+if(from==2){
+    $(".export").css('display','none')
+    $(".partTitle .titlePic ").html(`<a class="consoleD" href="deptConsole.html">控制台(科室) / </a><a class="consoleP" href="singleVeto.html?from=1">条目缺陷占比 / </a>缺陷详情`)
+    deptId=deptListDept[0]&&deptListDept[0].deptId; 
+    deptName=deptListDept[0]&&deptListDept[0].deptName;
+    deptNameTemp=deptListDept[0]&&deptListDept[0].deptName;
+    deptIdTemp=deptListDept[0]&&deptListDept[0].deptId;
+    $('.selectDept').html(deptName)
+}else if(from==3){
+  $(".partTitle .titlePic ").html(`<a href="keyItemFlawControl.html">关键条目缺陷占比 / </a>缺陷详情`)
+}else{
+    $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="singleVeto.html?from=1">条目缺陷占比 / </a>缺陷详情`)
+}
+$('.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')
+
+$("#filterToggler").click(function(){
+    const text = $(this).text();
+    $(".toggle-item").slideToggle();
+    $(this).text(text==="收起筛选"?"展开筛选":"收起筛选").toggleClass("up");
+});
+//判断有无某一权限
+  function hasData(data){
+    let trdObj = JSON.parse(getCookie("trdObj"))
+    let lis = trdObj['YH-BLZK-ZKPF']
+    if(!lis){
+      return false
+    }
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+}
+function getTabData(activePage){
+    const param = {
+        current:activePage,
+        behospitalCode: behospitalCode,
+        patName: name, //病人姓名
+        level:level,//病历等级
+        behDeptName: deptName == "全部" ? "":deptName,
+        ascs:data_asc,     //升序
+        descs:data_desc,       //降序
+        startDate: behosDateStart.replace(/\//g,'-'), //出院日期--开始时间
+        endDate: behosDateEnd.replace(/\//g,'-'), //出院日期--结束时间
+        casesEntryName: casesEntryName,
+        casesEntryId:casesId,
+        size: 15,
+        isReject: isSingleReject,
+        doctorName: doctorName,
+        doctorId: doctorNum,
+    }
+    return post(from==2?api.qcResultShortByDeptPage:api.qcResultDefectList,param).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data;
+            tabList = data.records;
+            const totalPage = data.pages;
+            const totalNum = data.total;
+            renderTab(tabList,data.hospitalId);
+            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) =>{
+        console.log(999)
+    })
+}
+
+//getTabData(1)
+
+$(".filter").on("click", function(e){
+    behosDateStart = $("#datepicker").val().trim()
+    behosDateEnd = $("#datepicker2").val().trim()
+    const start = new Date(behosDateStart).getTime()
+    const end = new Date(behosDateEnd).getTime()
+    if(start > end){
+        $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        return
+    }
+    if(behosDateStart){
+        behosDateStart = behosDateStart + ' 00:00:00'
+    }
+    if(behosDateEnd){
+        behosDateEnd = behosDateEnd + ' 23:59:59'
+    }
+
+    name = nameTemp
+    behospitalCode = behospitalCodeTemp
+    level = levelTemp==="全部"?"":levelTemp
+    deptId = deptIdTemp
+    deptName = deptNameTemp
+    doctorName = doctorNameTemp
+    doctorNum = doctorNumTemp
+    getTabData(1)
+})
+$(".abnormalClear").on("click", function(e){
+    tabList = []; 
+    name = ""; 
+    behospitalCode="";  
+    level=""; 
+    scoreSum = 0; 
+    nameTemp = "";  
+    behospitalCodeTemp=""; 
+    levelTemp="";  
+    deptId=""; 
+    deptName=""; 
+    deptNameTemp=""; 
+    deptIdTemp="";  
+    doctorName=""; 
+    doctorNum=""; 
+    doctorNameTemp=""; 
+    doctorNumTemp=""; 
+    data_desc=["leaveHospitalDate"]
+    data_asc=[];
+    if(from == 2){
+        deptId=deptListDept[0]&&deptListDept[0].deptId; 
+        deptName=deptListDept[0]&&deptListDept[0].deptName;
+        deptNameTemp=deptListDept[0]&&deptListDept[0].deptName;
+        deptIdTemp=deptListDept[0]&&deptListDept[0].deptId;
+    }
+    $('.patientNumInp').val('')
+    $('.patientNameInp').val('')
+    $('.doctorInp').val('')
+    $('.doctorNumInp').val('')
+    $('.doctorInp').val('')
+    // $('#datepicker').val('')
+    // $('#datepicker2').val('')
+    //默认日期为近一个月
+    let year = new Date().getFullYear()
+    let month = new Date().getMonth() + 1
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd",
+    }).datepicker( "setDate", new Date(`${year}-01-01`));
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    }).datepicker( "setDate",new Date());
+    if(from == 2){
+        console.log('deptListDept',deptListDept)
+        $('.selectDept ').html(deptListDept[0].deptName)
+    }else{
+        $('.selectDept ').html('全部')
+    }
+    $(".deptList").css("display", "none")
+    $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    // $('.selectDept ').addClass('unSelect')
+    $('.selectLevel').html('全部')
+    $(".levelList").css("display", "none")
+    $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    // $('.selectLevel ').addClass('unSelect')
+    $("th[code]").removeClass("asc desc")
+    $(".leaveHospitalDate").addClass(" desc")
+    behosDateStart = $("#datepicker").val().trim()
+    behosDateEnd = $("#datepicker2").val().trim()
+    if(behosDateStart){
+        behosDateStart = behosDateStart + ' 00:00:00'
+    }
+    if(behosDateEnd){
+        behosDateEnd = behosDateEnd + ' 23:59:59'
+    }
+   
+    getTabData(1)
+})
+function renderTab(data,hisId){
+    let str = ``
+    let hasSelectAll = true;
+    if(data.length===0){
+      $('.tbody').html(emptyBox(null,showNum+2))
+    //   initScroll("qcListCopy","YX",1)
+      return;
+    }
+    for(let i = 0; i < data.length; i++){
+        const item = data[i]
+        if(!item.hasSelect){
+            hasSelectAll = false
+        }
+        str += `
+            <tr  data-index=${i}>
+                <td  class="textCenter">${i+1}</td>`
+        for(let j = 0; j < pageSet.length; j++){
+            if(pageSet[j].status == 1){
+                str +=  `<td class="${isTextCenter(pageSet[j].val) ? 'textCenter':''}"><span data-index=${i} class="${pageSet[j].val=='name'?'patientNameSpan':'' } ">${item[pageSet[j].val] || "-"}<span></td>`
+            }
+        }
+                // <td >${item.behospitalCode || "-"}</td>
+                // <td>${item.fileCode || "-"}</td>
+                // <td  class="textCenter"><span data-index=${i} class="patientNameSpan">${item.name || "-"}<span></td>
+                // <td  class="textCenter">${item.sex || "-"}</td>
+                // <td  class="textCenter">${item.age || "-"}</td>
+                // <td  class="textCenter">${item.bedCode || "-"}</td>
+                // <td  class="textCenter">${item.behospitalDate&&item.behospitalDate.slice(0,10) || "-"}</td>
+                // <td  class="textCenter">${item.leaveHospitalDate&&item.leaveHospitalDate.slice(0,10)|| "-"}</td>
+                // <td  class="textCenter">${item.diagnose|| "-"}</td>
+                // <td  class="textCenter">${item.behDoctorName   || "-"}</td>
+                // <td  class="textCenter">${item.doctorName || "-"}</td>
+                // <td  class="textCenter">${item.directorDoctorName || "-"}</td>
+                // <td  class="textCenter">${item.behDeptName || "-"}</td>
+                // <td  class="textCenter">${item.level || "-"}</td>
+                // <td  class="textCenter">${item.scoreRes || "-"}</td>
+                // <td  class="textCenter">${item.gradeTime&&item.gradeTime.slice(0,10) || "-"}</td>
+            
+        str += "</tr>"
+    }
+    if(data.length === 0){
+        hasSelectAll = false
+    }
+    if(hasSelectAll){
+        $('.scoreOpera img').attr("src" ,iconCheck)
+        $('.scoreOpera').attr("data-selectall",true)
+    }else{
+        $('.scoreOpera img').attr("src" ,iconUnCheck)
+        $('.scoreOpera').attr("data-selectall",false)
+    }
+    $('.tbody').html(str)
+    bindScoreOperaItem()
+    bindRecordScoreOper()
+    bindScoreDetail(hisId)
+    // initScroll("qcListCopy","YX",1)
+}
+
+function isTextCenter(name){
+    const textCenterList = ['level', 'scoreRes', 'sex','age', 'behospitalDate', 'leaveHospitalDate', 'placefileDate', 'gradeTime']
+    return textCenterList.findIndex(item=> item==name) > -1
+}
+
+function scoreDetail(id,age,hid,code,name){
+    window.open(`./qcScore.html?id=${id}&age=${age}&name=${name}&hid=${getCookie('hospitalid')}&code=${code}`)
+}
+function bindScoreDetail(hisId){
+    $('.patientNameSpan').on('click',function(e){
+        const index = $(this).attr("data-index")
+        const id = tabList[index].behospitalCode
+        const age = tabList[index].age;
+        const noScore = tabList[index].level == '未评分'
+        if(noScore){
+            $.alerModal({"message":'请先进行评分!',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            return
+        } else{
+            scoreDetail(id,age,hisId,'YH-BLZK-ZKPF',tabList[index].name)
+        }
+       
+    })
+}
+
+//选择病历等级
+$('.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="下拉">`)
+        $('.selectLevel').removeClass('unSelect')
+    })
+}
+
+
+
+function bindScoreOperaItem(){
+    $(".scoreOperaItem").off("click").on("click",  function(e){
+        const index = $(this).parent().attr("data-index")
+        tabList[index].hasSelect = tabList[index].hasSelect ? false:true
+        renderTab(tabList)
+    })
+}
+function bindRecordScoreOper(){
+    $(".recordScoreOperaBtn").on("click",  function(e){
+        if(!hasData('FUNC000017')){
+            return
+        }
+        const index = $(this).parent().attr("data-index")
+        const behospitalCode = tabList[index].behospitalCode
+        loading()
+        recordScore(behospitalCode,1,true)
+    })
+}
+function bindOperaAll(){
+    $('.scoreOpera').on("click", function(e){
+        const hasSelectAll = $('.scoreOpera').attr("data-selectall")
+        if(hasSelectAll == 'true'){
+
+            for(let i = 0; i < tabList.length; i++){
+                tabList[i].hasSelect = false
+            }
+        }else{
+            for(let i = 0; i < tabList.length; i++){
+                tabList[i].hasSelect = true
+            }
+        }
+        renderTab(tabList)
+    })
+}
+
+$('.selectDept').on("click", function(e){
+    e.stopPropagation()
+    $(".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(){
+    if(from == 2){
+        rendeDeptList(deptListDept) 
+        return
+    }
+    post(api.getDeptList,{inputStr:""}).then(res =>{
+        if(res.data.code == '0'){
+           const  deptList = res.data.data
+           rendeDeptList(deptList)
+        }else{}
+    }).catch((e) =>{
+
+    })
+}
+
+//获取页面配置
+
+function getPageSet(){
+    return post(api.getQcListPageSet,{pageType:1}).then(res =>{
+        if(res.data.code == '0'){
+        pageSet = res.data.data
+          pageSetCopy = JSON.parse(JSON.stringify(pageSet))
+          showNum = 0
+          renderTabTitle(pageSet)
+          
+        }else{}
+    }).catch((e) =>{
+
+    })
+}
+
+function renderTabTitle(data){
+    let str = `
+    <th class="textCenter" style="width: 65px;">序号</th>`
+    for(let i = 0; i < data.length; i++){
+        const item = data[i]
+        if(item.status == 1){
+            showNum++
+            str += `<th class="textCenter ${item.val} ${item.val =='leaveHospitalDate' ? 'desc':''}" code="${item.val}">${item.name}</th>`
+        }
+    }
+    let operStr=`<td colspan="${showNum+2}" style="background: #fff">
+        <div class="tabFoot">
+            <span class="setCol"><img class="iconSetting" src=${require('./../images/setting.png')} alt="关闭" />列设置</span>
+        </div>
+    </td>`
+    $(".tabOpera").html(operStr)
+    $(".tabTitle").html(str)
+    //全选绑定
+    bindOperaAll()
+    bindRecordScoreBtn()
+    bindSetCol()
+    bindOrder()
+}
+
+function bindSetCol(){
+    $(".setCol").off("click").on("click", function(){
+        renderColSet(pageSetCopy)
+    })
+}
+
+function rendeDeptList(deptList){
+    let str = `<li class="deptItem ellipsis" data-id=" " data-name="全部">全部</li>`;
+    if(from == 2){
+        str = ''
+    }
+    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
+        deptNameTemp = deptItemName
+        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').removeClass('unSelect')
+    })
+}
+function loading(){
+    const str = `
+    <div class="loadingBox">
+            <div class="mask"></div>
+            <img class="loadingImg" src=${loadingImg}  alt="loading" />
+        </div>
+    `
+    $("#mainBox", parent.document).append(str)
+}
+function hideLoading(){
+    $("#mainBox .loadingBox", parent.document).remove()
+}
+
+function bindRecordScoreBtn(){
+    $('.recordScoreBtn').off("click").on("click",function(e){
+        if(!hasData('FUNC000017')){
+            return
+        }
+        let scoreList = []
+        for(let i = 0; i <tabList.length; i++){
+            if(tabList[i].hasSelect){
+                scoreList.push(tabList[i].behospitalCode)
+            }
+        }
+        if(scoreList.length === 0){
+            $.alerModal({"message":'请选择要评分的项!',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            return
+        } else{
+            loading()
+            for(let j = 0; j < scoreList.length; j++){
+                recordScore(scoreList[j],scoreList.length,true)
+            }
+        }
+    })
+}
+
+function bindOrder(){
+    $("th[code]").off("click").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 recordScore(behospitalCode,totalNum,hasToast){
+    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)
+                if(hasToast){
+                  $.alerModal({"message":'评分成功',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+                }
+            }
+            
+        }else{
+            hideLoading()
+            if(hasToast){
+                $.alerModal({"message":'评分失败',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            }
+        }
+    }).catch((e) =>{
+        hideLoading()
+        if(hasToast){
+            $.alerModal({"message":'评分失败',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        }
+    })
+}
+
+function renderColSet(list){
+    let pageSetList =  list || pageSetCopy
+    let allSelect = true
+    for(let i = 0; i < pageSetList.length; i++){
+        if(pageSetList[i].status != 1){
+            allSelect = false
+        }
+    }
+    let str = `<div class='colSetBox'> 
+            <div class='mask'></div>
+            <div class='cloInfobox'>
+                <div class='cloInfoTitle'><span class='cloInfoTitleTxt'>列显示设置</span> <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></div>
+                <div class='cloInfo'></div>
+                <div class='btnBox'> <span class='cancalColSet'>取消</span> <span class='saveColSet'>保存设置</span></div>
+            </div>
+        </div>`
+    let infoStr = `<div class='colTabTitle' ><span class='colOpera toggleSelectColAll' data-select=${allSelect}>${allSelect  ? `<img  src=${iconCheck} />`:`<img src=${iconUnCheck} />`}全选</span><span  class='colName'>列名</span></div><div class='colTabInfoBox' >`
+    for(let i = 0; i < pageSetList.length; i++){
+        infoStr += `<div  class='colTabInfo' data-index=${i}>
+            <span class='colOpera' data-index=${i}>${pageSetList[i].status == 1 ? `<img class="toggleSelectCol" src=${iconCheck} />`:`<img class="toggleSelectCol" src=${iconUnCheck} />`}</span>
+            <span class='colName'>            
+                <span>${pageSetList[i].name}</span>
+                <span class="pageOrder">
+                    <span class="pageSetUpBox">${ i === 0 ?'':`<img class="pageSetUp" src=${goUpG} />`}</span>
+                    <span  class="pageSetDownBox">${ i === pageSetList.length -1 ?'':`<img class="pageSetDown" src=${goDownG} />`}</span>
+                </span>
+               
+            </span>
+           
+        </div>`
+    }
+    infoStr += "</div>"
+    // $(".main-body").append(str)
+    if(!$("#mainBox .colSetBox", parent.document).length){
+        $("#mainBox", parent.document).append(str)
+    }
+    $("#mainBox .colSetBox .cloInfo", parent.document).html(infoStr)
+   
+    $(".colTabInfoBox", parent.document).scrollTop(scrollTop)
+    scrollTop = 0
+
+    bindSelectCol()
+    bindColOrder()
+    bindSaveColSet()
+    bindCloseColSet()
+    bindImgEnter()
+}
+
+function bindImgEnter(){
+    $(".pageSetUpBox img",parent.document).off("mouseenter").on("mouseenter",function(){
+        $(this).attr('src', goUpB)
+    })
+    $(".pageSetDownBox img",parent.document).off("mouseenter").on("mouseenter",function(){
+        $(this).attr('src', goDownB)
+    })
+    $(".pageSetUpBox img",parent.document).off("mouseout").on("mouseout",function(){
+        $(this).attr('src', goUpG)
+    })
+    $(".pageSetDownBox img",parent.document).off("mouseout").on("mouseout",function(){
+        $(this).attr('src', goDownG)
+    })
+}
+function bindSelectCol(){
+    $(".toggleSelectCol", parent.document ).off("click").on("click", function(){
+        const index = $(this).parent().attr("data-index")
+        pageSetCopy[index].status = pageSetCopy[index].status == 1 ? 0 : 1
+        scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
+        renderColSet(pageSetCopy)
+      
+    })
+    $(".toggleSelectColAll", parent.document ).off("click").on("click", function(){
+        const hasSelectAll = $(this).attr("data-select")
+        for(let i = 0; i < pageSetCopy.length; i++){
+            if(hasSelectAll == "true"){
+                pageSetCopy[i].status = 0
+
+            }else{
+                pageSetCopy[i].status = 1
+            }
+        }
+        scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
+        renderColSet(pageSetCopy)
+      
+    })
+}
+
+function closeColSet(){
+    pageSetCopy = JSON.parse(JSON.stringify(pageSet))
+    $("#mainBox .colSetBox", parent.document).remove()
+}
+function bindCloseColSet(){
+    $(".colSetBox .iconClose", parent.document ).off("click").on("click",function(){
+        closeColSet()
+    })
+    $(".colSetBox .cancalColSet", parent.document ).off("click").on("click",function(){
+        closeColSet()
+    })
+}
+function bindSaveColSet(){
+    $(".saveColSet", parent.document ).off("click").on("click", function(){
+        let showNumSet = 0
+        let sysUserPagesetVOList = []
+        for(let i = 0; i < pageSetCopy.length; i++){
+            const item = pageSetCopy[i]
+                sysUserPagesetVOList.push({
+                    name: item.name,
+                    orderNo: i,
+                    status: item.status,
+                    val: item.val
+                })
+                if(item.status == 1){
+                    showNumSet++
+                }
+        }
+        if(showNumSet === 0){
+            $.alerModal({"message":'最少显示一列',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});  
+            return
+        }
+        return post(api.saveQcListPageSet,{pageType:1,sysUserPagesetVOList:sysUserPagesetVOList}).then(res =>{
+            if(res.data.code == '0'){
+                closeColSet()
+                getPageSet().then(res =>{
+                    $(".filter").click();   //初始查询
+                })
+            }else{
+                $("#mainBox .colSetBox", parent.document).remove()
+                $.alerModal({"message":'保存失败',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});  
+            }
+        }).catch((e) =>{
+            $("#mainBox .colSetBox", parent.document).remove()
+            $.alerModal({"message":'保存失败',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        })
+
+    })
+    
+}
+
+function bindColOrder(){
+    $(".pageSetUp", parent.document ).off("click").on("click", function(){
+        const index =  parseInt($(this).parent().parent().parent().parent().attr("data-index"))
+        if(index != 0){
+            const upItem =  pageSetCopy[index]
+            const upItemPre =  pageSetCopy[index-1]
+            pageSetCopy.splice(index-1,2,upItem,upItemPre)
+            scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
+            renderColSet(pageSetCopy)
+           
+        }else{
+            return
+        }
+    })
+    $(".pageSetDown", parent.document ).off("click").on("click", function(){
+        const index = parseInt($(this).parent().parent().parent().parent().attr("data-index"))
+        if(index == pageSetCopy.length - 1){
+            return
+        }else{
+            const downItem =  pageSetCopy[index]
+            const downItemBack =  pageSetCopy[index + 1]
+            console.log('downItem',downItem,'downItemBack',downItemBack)
+            pageSetCopy.splice(index,2,downItemBack,downItem)
+            scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
+            renderColSet(pageSetCopy)
+        }
+    })
+}
+
+$(".patientNumInp").on("input", function(e){
+    const val = $(this).val().trim();
+    let beCode=behospitalCode;
+    const patrn = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/g;
+    beCode=val.replace(patrn,function(x){
+        return "\\"+x;
+    });
+    behospitalCodeTemp = beCode
+});
+$(".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']);
+    let startDate = "", endDate=new Date()
+    let year = new Date().getFullYear()
+    let month = new Date().getMonth() + 1
+    if(statisticsType == '1'){
+        startDate = new Date(`${year}-${month}-01`)
+    }else if(statisticsType == '2'){
+        startDate = new Date(`${year}-01-01`)
+    } else if(statisticsType == '3') {
+        startDate = new Date(startDateParam)
+        endDate =  new Date(endDateParam)
+    }else{
+        startDate = "-6d"
+    }
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd",
+    }).datepicker( "setDate", startDate);
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy/mm/dd"
+    }).datepicker( "setDate",endDate);
+    getPageSet().then(res =>{
+        $(".filter").click();   //初始查询
+    })
+   
+});
+
+//分页渲染
+function renderPagination(totalPage,activePage,totalNum){
+    let str = `<span class="totalSum">共${totalPage}页/${totalNum}条数据</span><span class="prePage"><img class="arrowPage" src=${arrowLeft} /></span>`
+    if(totalPage <= 6){
+        for(let i = 1; i <= totalPage; i++){
+          
+            str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
+        }
+    }else{
+        if(activePage <= 3){ //选中页数小于4
+            for(let i = 1; i <= 4; i++){
+                str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
+            }
+            str += `<span class="more" >...</span>`
+        str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+
+        } else if(activePage > totalPage -3){
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-3)}" data-page=${totalPage -3}>${totalPage -3}</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-2)}" data-page=${totalPage -2}>${totalPage -2}</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-1)}" data-page=${totalPage -1}>${totalPage -1}</span>`
+            str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        } else {
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+(activePage -1)}" data-page=${activePage -1}>${activePage -1}</span>`
+            str += `<span class="pageNum ${'page'+activePage}" data-page=${activePage}>${activePage}</span>`
+            str += `<span class="pageNum ${'page'+(activePage +1)}" data-page=${activePage +1}>${activePage +1}</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        }
+       
+    }
+    str += `<span class="nextPage"><img class="arrowPage" src=${arrowRight} /></span>`
+    $('.pagination').html(str)
+    $('.page' + activePage).addClass('activePage')
+    $(".pageNum").on("click", function(e){
+        const activePageNow = Number($(this).attr('data-page'))
+        getTabData(activePageNow)
+        // renderPagination(totalPage,activePageNow,totalNum)
+    })
+    $(".prePage").on("click", function(e){
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if(activePageNow > 1){
+            activePageNow--
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    $(".nextPage").on("click", function(e){
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if(activePageNow < totalPage){
+            activePageNow++
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    
+}
+
+$(document).on("click", function(){
+    $(".levelList ").css("display", "none")
+    $(".deptList").css("display", "none")
+    $(".selectDept .arrow").attr("src",iconDown)
+    $(".selectLevel .arrow").attr("src",iconDown)
+    
+})
+$(function($){
+    $('.export').click(function(){
+        const start = new Date(behosDateStart).getTime()
+        const end = new Date(behosDateEnd).getTime()
+        if(start > end){
+            $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            return
+        }
+        const param = {
+            behospitalCode: behospitalCode,
+            patName: name, //病人姓名
+            level:level,//病历等级
+            behDeptName: deptName,
+            ascs:data_asc,     //升序
+            descs:data_desc,       //降序
+            startDate: behosDateStart.replace(/\//g,'-'), //出院日期--开始时间
+            endDate: behosDateEnd.replace(/\//g,'-'), //出院日期--结束时间
+            casesEntryName: casesEntryName,
+            casesEntryId:casesId,
+            isReject: isSingleReject,
+            doctorName: doctorName,
+            doctorId: doctorNum,
+        }
+        expJson(api.qcResultShortPageExport,param).then(res =>{
+            downloadExportedData(res.data, $(".partTitle").text()+".xls")
+        })
+    })
+});

+ 3 - 1
src/js/qcListDept.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/qcListDept.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,emptyBox,downloadExportedData,expJson} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,downloadExportedData,expJson,initScroll} = 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")
@@ -229,6 +229,7 @@ function renderTab(data){
     let hasSelectAll = true;
     if(data.length===0){
         $('.tbody').html(emptyBox(null,showNum+2))
+        // initScroll("qcListDept","YX",1)
       return;
     }
     for(let i = 0; i < data.length; i++){
@@ -278,6 +279,7 @@ function renderTab(data){
     bindScoreOperaItem()
     bindRecordScoreOper()
     bindScoreDetail()
+    // initScroll("qcListDept","YX",1)
 }
 
 function isTextCenter(name){

+ 3 - 1
src/js/qcListDocteam.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/qcListDocteam.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,emptyBox,downloadExportedData,expJson} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,downloadExportedData,expJson,initScroll} = 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")
@@ -209,6 +209,7 @@ function renderTab(data){
     let hasSelectAll = true;
     if(data.length===0){
         $('.tbody').html(emptyBox(null,showNum+2))
+        // initScroll("qcListDocteam","YX",1)
       return;
     }
     for(let i = 0; i < data.length; i++){
@@ -258,6 +259,7 @@ function renderTab(data){
     bindScoreOperaItem()
     bindRecordScoreOper()
     bindScoreDetail()
+    // initScroll("qcListDocteam","YX",1)
 }
 
 function isTextCenter(name){

+ 3 - 1
src/js/qcListPerson.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/qcListPerson.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getUrlArgObject,getCookie,getUrlArgObjectNew,emptyBox} = require('./utils.js')
+const {post,getUrlArgObject,getCookie,getUrlArgObjectNew,emptyBox,initScroll} = 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")
@@ -230,6 +230,7 @@ function renderTab(data){
     let hasSelectAll = true;
     if(data.length===0){
         $('.tbody').html(emptyBox(null,showNum+2))
+        // initScroll("qcListPerson","YX",1)
         return;
     }
     for(let i = 0; i < data.length; i++){
@@ -279,6 +280,7 @@ function renderTab(data){
     bindScoreOperaItem()
     bindRecordScoreOper()
     bindScoreDetail()
+    // initScroll("qcListPerson","YX",1)
 }
 
 function isTextCenter(name){

+ 8 - 2
src/js/qcScore.js

@@ -2,7 +2,7 @@ require("../css/qcScore.less");
 const $ = require('jquery');
 require('jquery-templates');
 require('./modal.js');
-const {post,getUrlArgObject,setBoxHeight,getCookie} = require('./utils.js');
+const {post,getUrlArgObject,setBoxHeight,getCookie,initScroll} = require('./utils.js');
 const {api} = require('./api.js');
 window.document.title="质控评分-"+getUrlArgObject("name");
 
@@ -34,6 +34,9 @@ function initMenu(data){
     $(".sub-menu .list-1 .slide-up").removeClass('slide-up');
     $(this).toggleClass('slide-up');
     $(this).find("ul").slideToggle();
+    // setTimeout(function(){
+    //   initScroll("subMenu","Y",2)
+    // },300)
   });
   $(".sub-menu .list-1 li").on("click",function(e){
     e.stopPropagation();
@@ -52,6 +55,7 @@ function initMenu(data){
     $(".sub-menu,.copy-right").show().animate({"width":"220px"},function(){
     });
     $(".tab-container").animate({"margin-left":"220px"});
+    
   });
   //右侧内容切换
   $(".page").on("click",function(){
@@ -77,6 +81,7 @@ function initMenu(data){
     $(".content-item[code='"+code+"']").show();
     showFlawList();
   });
+  // initScroll("subMenu","Y",2)
 }
 //判断有无某一权限
 function hasData(data){
@@ -99,7 +104,8 @@ 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,.menu-mini>ul>li:first-child.page").addClass("active");
+      // $(".sub-menu>ul>li:first-child.page,.menu-mini>ul>li:first-child.page").addClass("active");
+      $(".subMenu >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);

+ 28 - 1
src/js/quexianDetailControl.js

@@ -3,7 +3,7 @@ require("../css/quexianDetailControl.less");
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,emptyBox,setDatePicker,getPickerDate} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,setDatePicker,getPickerDate,expJson,downloadExportedData,initScroll} = require('./utils.js')
 const switchIconOpen = require("./../images/btn_open.png")
 const switchIconClose = require("./../images/btn_close.png")
 const iconDown= require("./../images/arrow_down.png")
@@ -176,6 +176,8 @@ function getTabData(activePage){
         "startDate":dateStatrt,
         "endDate":dateEnd
     }
+    startDateParam = dateStatrt
+    endDateParam = dateEnd
     post(api.entryCountGroupByEntryPage,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data.records
@@ -306,6 +308,7 @@ function renderTab(data,activePage){
     }
     $('.tbody').html(str?str:emptyBox())
     bindEdit(data,activePage)
+    // initScroll("quexianDetailControl","Y",1)
 }
 
 function bindEdit(data,activePage){
@@ -563,4 +566,28 @@ $(function() {
     $('.iconCalen').on("click", function(e){
         $(this).parent().find("input").focus()
     })
+    $('.exportData').click(function(){
+        const start = new Date(startDateParam).getTime()
+        const end = new Date(endDateParam).getTime()
+        if(start > end){
+            $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            return
+        }
+        const param = {
+            type: 0,//1-本月,2-本年,0-自定义时间(现在 都是自定义时间,都会传具体时间进去)
+            name: name, //条目名
+            doctorName:"",
+            casesName:deptId,
+            deptName:deptName=="全院"?"":(deptName||""),
+            casesId:casesIds||"",
+            globalType:1,
+            ascs:data_asc,
+            descs:data_desc,
+            "startDate":startDateParam,
+            "endDate":endDateParam
+        }
+        expJson(api.entryCountGroupByEntryExport,param).then(res =>{
+            downloadExportedData(res.data, "各科室缺陷占比 / 缺陷详情.xls")
+        })
+    })
 });

+ 33 - 4
src/js/quexianDetailControlHome.js

@@ -3,7 +3,7 @@ require("../css/quexianDetailControlHome.less");
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,emptyBox,setDatePicker,getPickerDate} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,setDatePicker,getPickerDate,expJson,downloadExportedData,initScroll} = require('./utils.js')
 const switchIconOpen = require("./../images/btn_open.png")
 const switchIconClose = require("./../images/btn_close.png")
 const iconDown= require("./../images/arrow_down.png")
@@ -12,7 +12,7 @@ const arrowLeft= require("./../images/arrow_left.png")
 const arrowRight = require("./../images/arrow_right.png")
 
 
-let casesId="", name="", isReject ="",deptName="",data_asc=[],data_desc=["casesName"], isUsed ="",ruleType="",casesIdTemp="",casesIds="", nameTemp="", isRejectTemp ="", isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId=""
+let casesId="", name="", isReject ="",startDateParam='',endDateParam='',deptName="",data_asc=[],data_desc=["casesName"], isUsed ="",ruleType="",casesIdTemp="",casesIds="", nameTemp="", isRejectTemp ="", isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId=""
 $(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectUsed").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
@@ -27,8 +27,8 @@ $(function(){
     isReject = isRejectTemp = getUrlArgObjectNew("shijian",srcUrl)||""
     casesIds = getUrlArgObjectNew("casesId",srcUrl)||""
     ruleType = getUrlArgObjectNew("ruleType",srcUrl)||""
-    let startDateParam = getUrlArgObjectNew("startDateParam",srcUrl)||""
-    let endDateParam = getUrlArgObjectNew("endDateParam",srcUrl)||""
+    startDateParam = getUrlArgObjectNew("startDateParam",srcUrl)||""
+    endDateParam = getUrlArgObjectNew("endDateParam",srcUrl)||""
     $('.selectDept').html(deptName).attr("title",deptName)
     if(isReject == 1){
         $(".monthYear .mon").css({
@@ -178,6 +178,8 @@ function getTabData(activePage){
         "startDate":dateStatrt,
         "endDate":dateEnd
     }
+    startDateParam = dateStatrt
+    endDateParam = dateEnd
     post(api.entryCountGroupByEntryPage,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data.records
@@ -301,6 +303,7 @@ function renderTab(data,activePage){
         str += `
             <tr data-id=${item.id} data-index=${i}>
                 <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
+                <td class="textCenter">${item.casesName}</td>
                 <td>${item.name}</td>
                 <td class="textCenter">${item.num}</td>
                 <td  class="textCenter">${item.percentStr}</td>
@@ -309,6 +312,7 @@ function renderTab(data,activePage){
     }
     $('tbody.tbodys').html(str?str:emptyBox())
     bindEdit(data,activePage)
+    // initScroll("quexianDetailControlHome","Y",1)
 }
 
 function bindEdit(data,activePage){
@@ -565,4 +569,29 @@ $(function() {
     $('.iconCalen').on("click", function(e){
         $(this).parent().find("input").focus()
     })
+    $('.exportData').click(function(){
+        const start = new Date(startDateParam).getTime()
+        const end = new Date(endDateParam).getTime()
+        if(start > end){
+            $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            return
+        }
+        const param = {
+            type: 0,
+            name: name, //条目名
+            doctorName:"",
+            casesName:deptId,
+            ruleType:ruleType||null,
+            deptName:deptName=="全院"?"":(deptName||""),
+            casesId:casesIds||"",
+            globalType:1,
+            ascs:data_asc,
+            descs:data_desc,
+            "startDate":startDateParam,
+            "endDate":endDateParam
+        }
+        expJson(api.entryCountGroupByEntryExport,param).then(res =>{
+            downloadExportedData(res.data, "病案首页合格率占比 / 缺陷详情.xls")
+        })
+    })
 });

+ 2 - 1
src/js/quexianDetailHome.js

@@ -3,7 +3,7 @@ require("../css/quexianDetailHome.less");
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,emptyBox,setDatePicker,getPickerDate} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,setDatePicker,getPickerDate,initScroll} = require('./utils.js')
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./../resource/jquery-ui/jquery-ui.min.css');
 const switchIconOpen = require("./../images/btn_open.png")
@@ -323,6 +323,7 @@ function renderTab(data,activePage){
     }
     $('.tbody').html(str?str:emptyBox())
     bindEdit(data,activePage)
+    // initScroll("quexianDetailHome","Y",1)
 }
 
 function bindEdit(data,activePage){

+ 2 - 1
src/js/roleManager.js

@@ -3,7 +3,7 @@ require("../css/roleManager.less");
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./modal.js');
 const {api} = require('./api.js')
-const {post} = require('./utils.js')
+const {post, initScroll} = require('./utils.js')
 const switchIconOpen = require("./../images/btn_open.png")
 const switchIconClose = require("./../images/btn_close.png")
 const iconDown= require("./../images/arrow_down.png")
@@ -94,6 +94,7 @@ $(function(){
         }
         $(".mainSysWrap").html(str)
         saveAllSet()
+        // initScroll("mainSysWrap","Y",1)
     }
     function saveAllSet(){
         $(".selectToggle").click(function(){//点击修改curTreeData,curData

+ 286 - 0
src/js/scrollBar.js

@@ -0,0 +1,286 @@
+const jQuery = require("jquery")
+const $ = require("jquery");
+/*
+用途项目:自定义滚动条实现
+*/
+ 
+(function(win, doc, $){
+  // 定义的滚动条的构造函数
+  function CusScrollBar(options) {
+    // 函数的调用
+    this._init(options);
+  }
+  // 对象的合并
+  $.extend(CusScrollBar.prototype, {
+    _init: function(options){
+      // 闭包
+      var self = this;
+      // 初始化参数
+      self.options = {
+        scrollDir: 'Y',       //滚动的方向
+        contentSelector: '',  //滚动内容区选择器
+        barSelector: '',      //滚动条选择器
+        sliderSelector: '',   //滚动滑块选择器
+        wheelStep: 10,        //滚动步长(鼠标移动一下,内容滚动的幅度)
+        sliderMode: 1 //1浅色,2深色
+      }
+      // 覆盖参数
+      $.extend(true, self.options, options||{});
+      self._initDomEvent();
+      $(window).on("resize",function(){
+        self._initDomEvent();
+      })
+      return self;
+    },
+
+    /**
+     * 初始化DOM引用
+     * @method _initDomEvent
+     * @return {CusScrollBar}
+     */
+     _initDomEvent: function() {
+      var opts = this.options;
+      // 滚动内容区对象,必填项
+      this.$cont = $(opts.contentSelector);
+      // 滚动条滑块对象,必须项
+      this.$slider = $(opts.sliderSelector);
+      // 滚动条对象
+      this.$bar = opts.barSelector ? $(opts.barSelector) : self.$slider.parent();
+      //滚动方向
+      this.$scrollDir = opts.scrollDir || "Y"
+      this.$sliderMode = opts.sliderMode || 1
+      this.$top = opts.top || "0px"
+      // 获取文档对象
+      this.$doc = $(doc);
+      // 获取初始化滑块拖动功能
+      this._initSliderDragEvent();
+      // 获取同步滑块的位置
+      this._bindContentScroll();
+      // 获取鼠标滚轮事件
+      this._bindMousewheel();
+      // 获取内容来定义滑块的高度
+      this._initSliderHeight();
+     
+
+     },
+     // 根据内容来定义滑块的高度
+     _initSliderHeight: function() {
+      var rate;
+      var sliderHeight;
+      if(this.$scrollDir == "Y"){
+        rate = this.$cont.height() /this.$cont[0].scrollHeight;
+        this.$bar.css({
+          "top": this.$top
+        })
+        sliderHeight = rate*this.$bar.height();
+        this.$slider.css('height',sliderHeight);
+      }else{
+        rate = this.$cont.width() /this.$cont[0].scrollWidth;
+        this.$bar.css({
+          "width": "100%",
+          "height": "8px",
+          "bottom": "0px",
+          "zIndex": "100",
+        })
+        this.$slider.css({
+          "height":"8px"
+        })
+        sliderHeight = rate*this.$bar.width();
+        this.$slider.css('width',sliderHeight);
+      }
+      if(this.$sliderMode === 2){
+        this.$slider.css({
+          // "background":"red",
+          "background":"#091329"
+        })
+      }
+      if(rate === 1){
+        this.$bar.css('display','none');
+      } else{
+        this.$bar.css('display','block');
+      }
+      // this.$slider.css('height',sliderHeight);
+     },
+     
+
+     /**
+      * 初始化滑块拖动功能
+      * @return {[Object]} [this]
+      */
+    _initSliderDragEvent: function() {
+      var self = this;
+      // 滑块元素
+      var slider = this.$slider,
+          sliderEl = slider[0];
+      // 如果元素存在
+      if (sliderEl) {
+        var doc = this.$doc,
+            dragStartPagePostion,
+            dragStartScrollPostion,
+            dragContBarRate;
+        function mousemoveHandler(e) {
+          e.preventDefault();
+          if (dragStartPagePostion == null) {
+            return;
+          }
+          //内容开始卷曲的高度+rate*(鼠标释放的位置-开始的位置) == 就是内容滑动的位置
+          if(self.$scrollDir == "Y"){
+            self.scrollTo(dragStartScrollPostion + (e.pageY - dragStartPagePostion)*dragContBarRate);
+          }else{
+            self.scrollTo(dragStartScrollPostion + (e.pageX - dragStartPagePostion)*dragContBarRate);
+          }
+          
+        }
+        slider.on('mousedown', function(e){
+          e.preventDefault();
+          e.stopPropagation()
+          if(self.$scrollDir == "Y"){
+              // 获取鼠标的点击的开始位置
+            dragStartPagePostion = e.pageY;
+            // 获取内容区域的向上卷区的高度
+            dragStartScrollPostion = self.$cont[0].scrollTop;
+            dragContBarRate = self.getMaxScrollPosition()/self.getMaxSliderPosition();
+          }else{
+             // 获取鼠标的点击的开始位置
+            dragStartPagePostion = e.pageX;
+            // 获取内容区域的向上卷区的高度
+            dragStartScrollPostion = self.$cont[0].scrollLeft;
+            dragContBarRate = self.getMaxScrollPosition()/self.getMaxSliderPosition();
+          }
+         
+          // 监听的document对象
+          doc.on('mousemove.scroll', mousemoveHandler).on('mouseup.scroll',function(){
+            doc.off('.scroll');
+          });
+          self.$cont.on("mouseleave",function(e){
+            e.stopPropagation()
+            doc.off('.scroll');
+          })
+        });
+        slider.on("click",function(e){
+          e.stopPropagation()
+        })
+        this.$bar.on("click",function(e){
+          var scrollHei 
+          dragContBarRate = self.getMaxScrollPosition()/self.getMaxSliderPosition();
+          if(self.$scrollDir == "Y"){
+            if(e.offsetY > slider.height()){
+              self.scrollTo((e.offsetY - slider.height())*dragContBarRate);
+            }else{
+              self.scrollTo(e.offsetY*dragContBarRate);
+            }
+           
+          }else{
+            if(e.offsetX > slider.width()){
+              self.scrollTo((e.offsetX - slider.width())*dragContBarRate);
+            }else{
+              self.scrollTo(e.offsetX*dragContBarRate);
+            }
+          }
+          // dragStartScrollPostion = self.$cont[0].scrollTop;
+        })
+        
+        return self;
+      }
+    },
+    
+    // 计算滑块的当前位置
+    getSliderPosition: function() {
+      var self = this,
+      // 滑块可以移动的距离
+      maxSliderPosition = self.getMaxSliderPosition();
+      // 滑块移动的距离
+      var sliderPosition;
+      if(self.$scrollDir == "Y"){
+        sliderPosition =  Math.min(maxSliderPosition, maxSliderPosition*self.$cont[0].scrollTop/self.getMaxScrollPosition());
+      }else{
+        sliderPosition =  Math.min(maxSliderPosition, maxSliderPosition*self.$cont[0].scrollLeft/self.getMaxScrollPosition());
+      }
+      return sliderPosition;
+    },
+
+    // 内容可滚动的高度
+    getMaxScrollPosition: function() {
+      var self = this;
+      var maxScrollPosition;
+      if(self.$scrollDir == "Y"){
+        maxScrollPosition = Math.max(self.$cont.height(), self.$cont[0].scrollHeight) - self.$cont.height();
+      }else{
+        maxScrollPosition = Math.max(self.$cont.width(), self.$cont[0].scrollWidth) - self.$cont.width();
+      }
+      return maxScrollPosition
+    
+    },
+
+    //滑块可移动的距离
+    getMaxSliderPosition: function(){
+      var self = this;
+      const paddingTop = parseInt(self.$cont.css("paddingTop"))
+      const paddingBottom = parseInt(self.$cont.css("paddingBottom"))
+      const paddingLeft = parseInt(self.$cont.css("paddingLeft"))
+      const paddingRight = parseInt(self.$cont.css("paddingRight"))
+      if(self.$scrollDir == "Y"){
+        return self.$bar.height()+paddingTop*3+paddingBottom*3 + - self.$slider.height();
+      }else{
+        return self.$bar.width()+paddingLeft*3+paddingRight*3 + - self.$slider.width();
+      }
+     
+    },
+
+    // 监听内容的滚动,同步滑块的位置
+    _bindContentScroll: function() {
+      var self = this;
+      self.$cont.on('scroll', function(){
+        var sliderEl = self.$slider && self.$slider[0];
+        if (sliderEl) {
+          // 设置滑块的位置
+          if(self.$scrollDir == "Y"){
+            sliderEl.style.top = self.getSliderPosition() + 'px';
+          }else{
+            sliderEl.style.left = self.getSliderPosition() + 'px';
+          }
+         
+        }
+      });
+      return self;
+    },
+    // 鼠标滚轮事件
+    _bindMousewheel: function() {
+      var self = this;
+      // on监听事件,多个事件利用空格分开
+      self.$cont.on('mousewheel DOMMouseScroll',function(e){
+        e.preventDefault();
+        e.stopPropagation()
+        // 判断原生事件对象的属性
+        var oEv = e.originalEvent,
+        //原生事件对象,(其他浏览器负数向下,firefox正数向下,所以在wheelDelta前面有负数)
+        // 想要达到的效果,鼠标向下滚动,内容向下走
+            wheelRange = oEv.wheelDelta ? -oEv.wheelDelta/120 : (oEv.detail || 0)/3;
+            // 调用scrollTo方法。
+            if(self.$scrollDir =="Y"){
+              self.scrollTo(self.$cont[0].scrollTop + wheelRange*self.options.wheelStep)
+            }else{
+              // self.scrollTo(self.$cont[0].scrollLeft + wheelRange*self.options.wheelStep)
+            }
+           
+            // if(self.$cont[0].scrollTop !==0 ){
+            //   e.stopPropagation()
+            // }
+           
+      });
+    },
+
+    // 内容的滑动
+    scrollTo: function(positonVal) {
+      var self = this;
+      if(self.$scrollDir =="Y"){
+        self.$cont.scrollTop(positonVal);
+      }else{
+        self.$cont.scrollLeft(positonVal);
+      }
+     
+    }
+  });
+
+  win.CusScrollBar = CusScrollBar;
+})(window,document,jQuery)

+ 11 - 12
src/js/singleVeto.js

@@ -3,7 +3,7 @@ require("../css/single.less");
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew,emptyBox,focusMenuItem,setDatePicker,getPickerDate,downloadExportedData,expJson} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,focusMenuItem,setDatePicker,getPickerDate,downloadExportedData,expJson, initScroll} = require('./utils.js')
 const switchIconOpen = require("./../images/btn_open.png")
 const switchIconClose = require("./../images/btn_close.png")
 const iconDown= require("./../images/arrow_down.png")
@@ -16,7 +16,7 @@ if(currentPage==="YH-ZKK-TMQXZB_XQ"){
   $(".export").css("display","inline-block");
 }
 
-let casesId="", name="", isReject ="",deptName="", isUsed ="",casesIdTemp="", nameTemp="", isRejectTemp ="",model='', isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId="",isSingleReject="", isSingleRejectTemp="",casesName="",casesNameTemp="",paramObj={}
+let casesId="", name="", isReject ="",deptName="",startDateParam="",endDateParam="", isUsed ="",casesIdTemp="", nameTemp="", isRejectTemp ="",model='', isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId="",isSingleReject="", isSingleRejectTemp="",casesName="",casesNameTemp="",paramObj={}
 $(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectUsed").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
@@ -32,8 +32,8 @@ $(function(){
     special = getUrlArgObjectNew("special",srcUrl)||""
     name=nameTemp = getUrlArgObjectNew("qxName",srcUrl)||""
     casesName =casesNameTemp = getUrlArgObjectNew("model",srcUrl)||""
-    let startDateParam = getUrlArgObjectNew("startDateParam",srcUrl)||""
-    let endDateParam = getUrlArgObjectNew("endDateParam",srcUrl)||""
+    startDateParam = getUrlArgObjectNew("startDateParam",srcUrl)||""
+    endDateParam = getUrlArgObjectNew("endDateParam",srcUrl)||""
     let fromThree = getUrlArgObjectNew("fromThree",srcUrl)||""
     if(name){
         $(".moduleItemInp").attr("title",name).val(name)
@@ -316,6 +316,7 @@ function renderTab(data,activePage){
     $('.tbody').html(str?str:emptyBox())
     bindEdit(data,activePage)
     goDetail(data)
+    // initScroll("singleVeto","Y",1)
 }
 
 function goDetail(data){
@@ -324,7 +325,7 @@ function goDetail(data){
         let defectName = $(this).attr("data-name")
         const item = data[index]
         // focusMenuItem("YH-ZKK-GKSQXZB_XQ");
-        $(parent.document).find("#contentIframe").attr("src",`./itemDefectDetail.html?defectName=${defectName}&startDate=${startDateParam}&endDate=${endDateParam}&from=${from}&isSingleReject=${item.isReject}&deptName=${deptName}&deptId=${deptName}`)
+        $(parent.document).find("#contentIframe").attr("src",`./qcListCopy.html?defectName=${defectName}&startDate=${startDateParam}&endDate=${endDateParam}&from=${from}&isSingleReject=${item.isReject}&deptName=${deptName}&deptId=${deptName}`)
     })
 }
 
@@ -592,10 +593,8 @@ $(function() {
         $(this).parent().find("input").focus()
     })
   $('.export').click(function(){
-    const dateStatrt = getPickerDate($("#datepicker"),1)
-    const dateEnd = getPickerDate($("#datepicker2"),2)
-    const start = new Date(dateStatrt).getTime()
-    const end = new Date(dateEnd).getTime()
+    const start = new Date(startDateParam).getTime()
+    const end = new Date(endDateParam).getTime()
     if(start > end){
       $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
       return
@@ -607,11 +606,11 @@ $(function() {
       isReject:isSingleReject, //是否单项否决
       name: name, //条目名
       deptName: deptId, //科室名
-      "startDate":dateStatrt,
-      "endDate":dateEnd
+      "startDate":startDateParam,
+      "endDate":endDateParam
     };
     expJson(api.exportItemFlaw,param).then(res =>{
-      downloadExportedData(res.data, dateStatrt.slice(0,10).replace(/-/g,"")+"-"+dateEnd.slice(0,10).replace(/-/g,"")+"条目缺陷.xls")
+      downloadExportedData(res.data,"条目缺陷占比.xls")
     })
   })
 });

+ 2 - 1
src/js/userManager.js

@@ -3,7 +3,7 @@ require("../css/itemManager.less");
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,emptyBox} = require('./utils.js')
+const {post,emptyBox,initScroll} = require('./utils.js')
 const switchIconOpen = require("./../images/btn_open.png")
 const switchIconClose = require("./../images/btn_close.png")
 const iconDown= require("./../images/arrow_down.png")
@@ -124,6 +124,7 @@ function renderTab(data,activePage){
     }
     $('.tbody').html(str?str:emptyBox())
     bindEdit(data,activePage)
+    // initScroll("usrContain","Y",1)
 }
 
 //获取用户科室列表

+ 55 - 5
src/js/utils.js

@@ -2,7 +2,8 @@ const qs = require('qs');
 const $ = require("jquery");
 const axios = require("axios")
 var Utils = require('./rePromise');
-const baseUrl = "http://192.168.2.236:5858"
+require('./scrollBar.js');
+const baseUrl = "http://192.168.2.241:5858"
 //页面映射
 const pageMap={
   'YH-KZT':'console.html',
@@ -174,7 +175,7 @@ const post = function (url, data) {
 // }
 // 导出
 const expJson = (url,data) =>{
-  const token = getCookie('accessToken')
+  const token = getCookie('accessToken') || localStorage.getItem('accessToken')
   if(!token&&window.location.href.indexOf('login')==-1){
     setCookie('behosDateStart','')
     setCookie('behosDateEnd','')
@@ -378,15 +379,63 @@ function getPickerDate(picker,mode){
   }
   let date = picker.val()
   if(mode == 1){
-    return date.replace(/\//g,'-') + ' 00:00:00'
+    return date + ' 00:00:00'
+    // return date.replace(/\//g,'-') + ' 00:00:00'
   }else if(mode == 2){
-    return date.replace(/\//g,'-') + ' 23:59:59'
+    return date + ' 23:59:59'
+    // return date.replace(/\//g,'-') + ' 23:59:59'
   }
 }
 function isMac(){
   var isMac = /macintosh|mac os x/i.test(navigator.userAgent);
   return isMac
 }
+
+function initScroll(el,sliderDir,sliderMode,top){
+  if(!$("."+el+"_scroll_cont")[0]){
+    $("."+el).addClass("scroll_cont")
+    $("."+el).addClass(el+"_scroll_cont")
+    $("."+el).wrap(`<div class="scroll_wrap ${el+'_scroll_wrap'}"></div>`)
+    $(`${'.'+el+'_scroll_wrap'}`).append(`<div class="scroll_bar  ${el+'_scroll_bar'}">
+        <div class="scroll_slider ${el+'_scroll_slider'}"></div>
+    </div>`)
+    if(sliderDir === "YX"){
+      $(`${'.'+el+'_scroll_wrap'}`).append(`<div class="scroll_bar  ${el+'_scroll_bar2'}">
+          <div class="scroll_slider ${el+'_scroll_slider2'}"></div>
+      </div>`)
+    }
+  }
+  
+
+ 
+  if(sliderDir == "YX"){
+    console.log("yx", el)
+    new CusScrollBar({
+        contentSelector: `${'.'+el+'_scroll_cont'}`, //滚动内容区
+        barSelector: `${'.'+el+'_scroll_bar'}`, //滚动条
+        sliderSelector: `${'.'+el+'_scroll_slider'}`, //滚动滑块
+        scrollDir:'Y',
+        sliderMode:sliderMode || 1,
+        top: top||"0px"    
+    });
+    new CusScrollBar({
+      contentSelector: `${'.'+el+'_scroll_cont'}`, //滚动内容区
+      barSelector: `${'.'+el+'_scroll_bar2'}`, //滚动条
+      sliderSelector: `${'.'+el+'_scroll_slider2'}`, //滚动滑块
+      scrollDir:'X',
+      sliderMode:sliderMode || 1    
+    });
+  }else {
+    new CusScrollBar({
+      contentSelector: `${'.'+el+'_scroll_cont'}`, //滚动内容区
+      barSelector: `${'.'+el+'_scroll_bar'}`, //滚动条
+      sliderSelector: `${'.'+el+'_scroll_slider'}`, //滚动滑块
+      scrollDir:sliderDir || 'Y',
+      sliderMode:sliderMode || 1,
+      top: top||"0px" 
+  });
+  }
+}
 module.exports = {
   pageMap,
   post,
@@ -406,5 +455,6 @@ module.exports = {
   expJson,
   setDatePicker,
   getPickerDate,
-  isMac
+  isMac,
+  initScroll
 };

+ 16 - 2
webpack.config.js

@@ -47,6 +47,7 @@ module.exports = {
     singleVeto:path.resolve(__dirname, 'src/js', 'singleVeto.js'),
     itemDefectDetail:path.resolve(__dirname, 'src/js', 'itemDefectDetail.js'),
     keyItemFlawControl:path.resolve(__dirname, 'src/js', 'keyItemFlawControl.js'),
+    qcListCopy:path.resolve(__dirname, 'src/js', 'qcListCopy.js'),
     vendor: 'lodash'// 多个页面所需的公共库文件,防止重复打包带入
   },
   output: {
@@ -63,7 +64,7 @@ module.exports = {
       title: 'index',
       template: path.resolve(__dirname, 'src/html', 'index.html'),
       filename: 'index.html',
-      chunks: ['index', 'vendor', 'common'],
+      chunks: ['index', 'vendor', 'common','scrollBar'],
       hash: true, //防止缓存
       inject: true,
       minify: {
@@ -76,7 +77,7 @@ module.exports = {
       title: 'console.html',
       template: path.resolve(__dirname, 'src/html', 'console.html'),
       filename: 'console.html',
-      chunks: ['console', 'vendor', 'common'],
+      chunks: ['console', 'vendor', 'common','scrollBar'],
       hash: true, //防止缓存
       inject: true,
       minify: {
@@ -397,6 +398,19 @@ module.exports = {
         collapseWhitespace: true //删除空白符与换行符
       }
     }),
+    new HtmlWebpackPlugin({
+      title: 'qcListCopy.html',
+      template: path.resolve(__dirname, 'src/html', 'qcListCopy.html'),
+      filename: 'qcListCopy.html',
+      chunks: ['qcListCopy', 'vendor', 'common'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
     new HtmlWebpackPlugin({
       title: 'qcListDocteam.html',
       template: path.resolve(__dirname, 'src/html', 'qcListDocteam.html'),