luolei 4 лет назад
Родитель
Сommit
8a3ec5c786
48 измененных файлов с 4290 добавлено и 97 удалено
  1. 38 0
      src/css/advice.less
  2. 349 0
      src/css/assist.less
  3. 3 1
      src/css/deptScoreDetailControl.less
  4. 353 0
      src/css/pacs.less
  5. 357 0
      src/css/pacsDetail.less
  6. 2 2
      src/css/qcScore.less
  7. 361 0
      src/css/uncorrectedCopy.less
  8. 9 7
      src/html/advice.html
  9. 67 0
      src/html/assist.html
  10. 20 4
      src/html/index.html
  11. 66 0
      src/html/pacs.html
  12. 66 0
      src/html/pacsDetail.html
  13. 6 1
      src/html/qcScore.html
  14. 1 1
      src/html/singleVeto.html
  15. 1 4
      src/html/uccDetail.html
  16. 78 0
      src/html/uncorrectedCopy.html
  17. BIN
      src/images/dataing.png
  18. 2 0
      src/js/abnormal.js
  19. 32 22
      src/js/advice.js
  20. 9 0
      src/js/api.js
  21. 2 0
      src/js/assertType.js
  22. 647 0
      src/js/assist.js
  23. 2 0
      src/js/checkControl.js
  24. 0 3
      src/js/console.js
  25. 31 27
      src/js/deptScoreDetailControl.js
  26. 2 0
      src/js/itemManager.js
  27. 2 0
      src/js/keyItemFlawControl.js
  28. 2 0
      src/js/moduleManager.js
  29. 2 0
      src/js/mukuaiControl.js
  30. 600 0
      src/js/pacs.js
  31. 609 0
      src/js/pacsDetail.js
  32. 2 0
      src/js/partDetailControl.js
  33. 2 0
      src/js/qcList.js
  34. 2 0
      src/js/qcListCopy.js
  35. 2 0
      src/js/qcListDept.js
  36. 2 0
      src/js/qcListDocteam.js
  37. 8 1
      src/js/qcListOutHospital.js
  38. 2 0
      src/js/qcListPerson.js
  39. 25 11
      src/js/qcScore.js
  40. 2 0
      src/js/quexianDetailControl.js
  41. 2 0
      src/js/quexianDetailControlHome.js
  42. 2 0
      src/js/readmission.js
  43. 21 2
      src/js/singleVeto.js
  44. 6 1
      src/js/uccDetail.js
  45. 4 3
      src/js/uncorrectedCasesStatistics.js
  46. 400 0
      src/js/uncorrectedCopy.js
  47. 32 6
      src/js/utils.js
  48. 57 1
      webpack.config.js

+ 38 - 0
src/css/advice.less

@@ -308,4 +308,42 @@
 }
 .managerContainer.usrContain .selectReject {
     width: 140px;
+}
+.whichAdvice {
+    height: 30px;
+    width: 294px;
+    box-sizing: border-box;
+    overflow: hidden;
+    margin-bottom: 16px;
+    cursor: pointer;
+    span {
+        width: 33.33%;
+        font-size: 14px;
+        color: #777777;
+        float: left;
+        text-align: center;
+        height: 28px;
+        line-height: 27px;
+    }
+    .allAdvice {
+        border: 1px solid #777;
+        border-radius: 4px 0 0 4px;
+        border-right: 0;
+        box-sizing:border-box;
+    }
+    .errAdvice {
+        border: 1px solid #777;
+        box-sizing:border-box;
+    }
+    .noAdvice {
+        border: 1px solid #777;
+        box-sizing:border-box;
+        border-left: 0;
+        border-radius: 0 4px 4px 0;
+    }
+    .active {
+        background-color: #00A1FF;
+        color: #fff;
+        border-color: #00A1FF;
+    }
 }

+ 349 - 0
src/css/assist.less

@@ -0,0 +1,349 @@
+@import './reset.less';
+
+.singleVeto{
+    width: 100%;
+    height: 100%;
+    overflow-y: auto;
+    background: @disColor;
+    .filterDropList{
+        position: absolute;
+        right: 0;
+        max-height: 200px;
+        overflow-y: auto;
+        background: #fff;
+        display: none;
+        border: 1px solid #e4e7ed;
+        box-shadow: 0 2px 12px 0 #e4e7ed;
+        z-index: 2;
+        li{
+            padding: 0 10px;
+        }
+    }
+    .deptList{
+        width: 160px;
+        max-height: 400px;
+    }    
+    .deptItem:hover{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+    .selectLevel,.selectDept{
+        display: inline-block;
+        position: relative;
+        width:160px;
+        padding: 0 10px;
+        height:40px;
+        border-radius:4px;
+        border: 1px solid #E2E5EF;
+        box-sizing: border-box;
+        cursor: pointer;
+    }
+    .filterItem.deptListWrap {
+        .selectDept,.deptList {
+            width: 180px;
+        }
+    }
+    .filterItem{
+        position: relative;
+        display: inline-block;
+        float: left;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 15px 0;
+        span{
+            display: inline-block;
+            line-height: 40px;
+            position: relative;
+        }
+        input{
+            width:120px;
+            height:34px;
+            border-radius:4px;
+            border: 1px solid #E2E5EF;
+            outline: none;
+            margin-right: 10px;
+            padding: 0 10px;
+            box-sizing: border-box;
+        }
+    }
+    .rejectList {
+        height: 80px !important;
+    }
+    .selectUsed,.selectReject {
+        float: right;
+    }
+    ul,li{
+        padding:0;
+        margin:0;
+        list-style:none;
+    }
+    h2{
+        width: 100%;
+        box-sizing: border-box;
+        background-color: #fff;
+        z-index: 20;
+        height: 44px;
+        line-height: 44px;
+        padding: 0 0 0 15px;
+        border-bottom: 1px solid #E2E5EF;
+        font-size: 16px;
+        font-weight: bold;
+        letter-spacing: 1px;
+    }
+    .main-body{
+        .main-body-com;
+        border: 0;
+        border-top: 1px solid #E2E5EF;
+    }
+    table{
+        .table;
+        .moduleNumber{
+            text-align: center;
+        }
+        
+    }
+    // .filterBox{
+    //     margin: 0 0 20px 0;
+    // }
+    .filterItem{
+        position: relative;
+        display: inline-block;
+        margin-right: 20px;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 20px 0;
+    }
+    .filterDropList{
+        position: absolute;
+        right: 0;
+        max-height: 200px;
+        overflow-y: auto;
+        background: #fff;
+        display: none;
+        border: 1px solid #e4e7ed;
+        box-shadow: 0 2px 12px 0 #e4e7ed;
+        z-index: 2;
+        li{
+            padding: 0 10px;
+        }
+    }
+    .rejectList, .usedList{
+        height: 120px;
+        li{
+            padding: 0 10px;
+        }
+        li:hover{
+            background-color: #EEF4FF;
+            cursor: pointer;
+        }
+    }
+    .switchImg{
+        width: 30px;
+    }
+    .roleSelect {
+        position: relative;
+        top: 3px;
+        cursor: pointer;
+    }
+    .selectModuleType,.moduleItemInp,.selectUsed, .selectReject{
+        display: inline-block;
+        position: relative;
+        width:140px;
+        padding: 0 10px;
+        height:34px;
+        border-radius:4px;
+        border: 1px solid #E2E5EF;
+        box-sizing: border-box;
+        cursor: pointer;
+        padding-right: 26px;
+    }
+    .arrow{
+        position: absolute;
+        width: 10px;
+        top: 16px;
+        right: 10px;
+    }
+    .moduleItemInp{
+        cursor: text;
+        outline: none;
+    }
+    .moduleItemInps{
+        width: 150px !important;
+    }
+    .moduleTypeList{
+         width: 160px;
+    }
+    .selectUsed, .selectReject{
+        width: 140px;
+    }
+    .modeTypeItem:hover{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+    .rejectList, .usedList {
+        width: 140px;
+    }
+    .filter{
+        display: inline-block;
+        width:60px;
+        height:36px;
+        background:@activeColor;
+        border-radius:4px;
+        color: #fff;
+        text-align: center;
+        line-height: 36px;
+        position: relative;
+        top: -1px;
+        cursor: pointer;
+    }
+    .export{
+        display: none;
+        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;
+    }
+    .editItem{
+       color: @activeColor;
+       cursor: pointer;
+    }
+    .editItemDis{
+        color: #aaa;
+        cursor: not-allowed;
+    }
+    
+    .ellipsis{
+        overflow: hidden;
+        text-overflow:ellipsis;
+        white-space: nowrap;
+    }
+    .textCenter{
+        text-align: center;
+    }
+    
+    
+    .pagination{
+        margin: 35px 0 20px 0  ;
+        text-align: right;
+    }
+    .totalSum{
+        font-size:12px;
+        line-height:17px;
+        color: #777777;
+        margin-right: 20px;
+    }
+    .pageNum,.prePage,.nextPage, .more{
+        display: inline-block;
+        width: 20px;
+        cursor: pointer;
+        margin: 0 20px 0 0;
+        text-align: center;
+        color: #777;
+    }
+    .prePage,.nextPage{
+        img{
+            position: relative;
+            top: 0px   ;
+        }
+    }
+     .more{
+        cursor: not-allowed;
+    }
+    .arrowPage{
+        width: 6px;
+    }
+    .activePage{
+        color: @activeColor;
+    }
+    
+    input::-webkit-outer-spin-button,
+    input::-webkit-inner-spin-button {
+        -webkit-appearance: none;
+    }
+     
+    input[type="number"] {
+        -moz-appearance: textfield;
+    }
+}
+.singleVeto{
+    .rejectList{
+        height: 101px !important;
+    }
+    .partTitle {
+        text-align: center;
+        font-weight: bold;
+        font-size: 16px;
+    }
+}
+.goDetail{
+    cursor: pointer;
+    color: @activeColor;
+}
+
+.usrContain .selectReject,.usrContain .selectModuleType ,.managerContainer .selectModuleType  {
+    float: right;
+}
+.usrContain .rejectList,.usrContain .usedList{
+    height: 200px;
+}
+.usrContain .selectModuleType, .usrContain .moduleItemInp, .usrContain .selectUsed, .usrContain .selectReject {
+    width: 170px;
+}
+.managerContainer .moduleTypeList {
+    width: 140px;
+}
+.managerContainer.usrContain .moduleTypeList {
+    width: 170px;
+    height: 400px;
+}
+.managerContainer.usrContain .selectReject {
+    width: 140px;
+}
+.whichAdvice {
+    height: 30px;
+    width: 294px;
+    box-sizing: border-box;
+    overflow: hidden;
+    margin-bottom: 16px;
+    cursor: pointer;
+    span {
+        width: 33.33%;
+        font-size: 14px;
+        color: #777777;
+        float: left;
+        text-align: center;
+        height: 28px;
+        line-height: 27px;
+    }
+    .allAdvice {
+        border: 1px solid #777;
+        border-radius: 4px 0 0 4px;
+        border-right: 0;
+        box-sizing:border-box;
+    }
+    .errAdvice {
+        border: 1px solid #777;
+        box-sizing:border-box;
+    }
+    .noAdvice {
+        border: 1px solid #777;
+        box-sizing:border-box;
+        border-left: 0;
+        border-radius: 0 4px 4px 0;
+    }
+    .active {
+        background-color: #00A1FF;
+        color: #fff;
+        border-color: #00A1FF;
+    }
+}

+ 3 - 1
src/css/deptScoreDetailControl.less

@@ -66,9 +66,11 @@
             }
             &.asc:after{
                 background: url("../images/up_blue.png");
+                background-size: 11px 14px;
             }
-            &.desc:after{
+            &.desc:after{                
                 background: url("../images/down_blue.png");
+                background-size: 11px 14px;
             }
         }
         td{

+ 353 - 0
src/css/pacs.less

@@ -0,0 +1,353 @@
+@import './reset.less';
+
+.singleVeto{
+    width: 100%;
+    height: 100%;
+    overflow-y: auto;
+    background: @disColor;
+    .filterDropList{
+        position: absolute;
+        right: 0;
+        max-height: 200px;
+        overflow-y: auto;
+        background: #fff;
+        display: none;
+        border: 1px solid #e4e7ed;
+        box-shadow: 0 2px 12px 0 #e4e7ed;
+        z-index: 2;
+        li{
+            padding: 0 10px;
+        }
+    }
+    .deptList{
+        width: 160px;
+        max-height: 400px;
+    }    
+    .deptItem:hover{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+    .selectLevel,.selectDept{
+        display: inline-block;
+        position: relative;
+        width:160px;
+        padding: 0 10px;
+        height:40px;
+        border-radius:4px;
+        border: 1px solid #E2E5EF;
+        box-sizing: border-box;
+        cursor: pointer;
+    }
+    .filterItem.deptListWrap {
+        .selectDept,.deptList {
+            width: 180px;
+        }
+    }
+    .filterItem{
+        position: relative;
+        display: inline-block;
+        float: left;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 15px 0;
+        span{
+            display: inline-block;
+            line-height: 40px;
+            position: relative;
+        }
+        input{
+            width:120px;
+            height:34px;
+            border-radius:4px;
+            border: 1px solid #E2E5EF;
+            outline: none;
+            margin-right: 10px;
+            padding: 0 10px;
+            box-sizing: border-box;
+        }
+    }
+    .rejectList {
+        height: 80px !important;
+    }
+    .selectUsed,.selectReject {
+        float: right;
+    }
+    ul,li{
+        padding:0;
+        margin:0;
+        list-style:none;
+    }
+    h2{
+        width: 100%;
+        box-sizing: border-box;
+        background-color: #fff;
+        z-index: 20;
+        height: 44px;
+        line-height: 44px;
+        padding: 0 0 0 15px;
+        border-bottom: 1px solid #E2E5EF;
+        font-size: 16px;
+        font-weight: bold;
+        letter-spacing: 1px;
+    }
+    .main-body{
+        .main-body-com;
+        border: 0;
+        border-top: 1px solid #E2E5EF;
+    }
+    table{
+        .table;
+        .moduleNumber{
+            text-align: center;
+        }
+        
+    }
+    // .filterBox{
+    //     margin: 0 0 20px 0;
+    // }
+    .filterItem{
+        position: relative;
+        display: inline-block;
+        margin-right: 20px;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 20px 0;
+    }
+    .filterDropList{
+        position: absolute;
+        right: 0;
+        max-height: 200px;
+        overflow-y: auto;
+        background: #fff;
+        display: none;
+        border: 1px solid #e4e7ed;
+        box-shadow: 0 2px 12px 0 #e4e7ed;
+        z-index: 2;
+        li{
+            padding: 0 10px;
+        }
+    }
+    .rejectList, .usedList{
+        height: 120px;
+        li{
+            padding: 0 10px;
+        }
+        li:hover{
+            background-color: #EEF4FF;
+            cursor: pointer;
+        }
+    }
+    .switchImg{
+        width: 30px;
+    }
+    .roleSelect {
+        position: relative;
+        top: 3px;
+        cursor: pointer;
+    }
+    .selectModuleType,.moduleItemInp,.selectUsed, .selectReject{
+        display: inline-block;
+        position: relative;
+        width:140px;
+        padding: 0 10px;
+        height:34px;
+        border-radius:4px;
+        border: 1px solid #E2E5EF;
+        box-sizing: border-box;
+        cursor: pointer;
+        padding-right: 26px;
+    }
+    .arrow{
+        position: absolute;
+        width: 10px;
+        top: 16px;
+        right: 10px;
+    }
+    .moduleItemInp{
+        cursor: text;
+        outline: none;
+    }
+    .moduleItemInps{
+        width: 150px !important;
+    }
+    .moduleTypeList{
+         width: 160px;
+    }
+    .selectUsed, .selectReject{
+        width: 140px;
+    }
+    .modeTypeItem:hover{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+    .rejectList, .usedList {
+        width: 140px;
+    }
+    .filter{
+        display: inline-block;
+        width:60px;
+        height:36px;
+        background:@activeColor;
+        border-radius:4px;
+        color: #fff;
+        text-align: center;
+        line-height: 36px;
+        position: relative;
+        top: -1px;
+        cursor: pointer;
+    }
+    .export{
+        display: none;
+        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;
+    }
+    .editItem{
+       color: @activeColor;
+       cursor: pointer;
+    }
+    .editItemDis{
+        color: #aaa;
+        cursor: not-allowed;
+    }
+    
+    .ellipsis{
+        overflow: hidden;
+        text-overflow:ellipsis;
+        white-space: nowrap;
+    }
+    .textCenter{
+        text-align: center;
+    }
+    
+    
+    .pagination{
+        margin: 35px 0 20px 0  ;
+        text-align: right;
+    }
+    .totalSum{
+        font-size:12px;
+        line-height:17px;
+        color: #777777;
+        margin-right: 20px;
+    }
+    .pageNum,.prePage,.nextPage, .more{
+        display: inline-block;
+        width: 20px;
+        cursor: pointer;
+        margin: 0 20px 0 0;
+        text-align: center;
+        color: #777;
+    }
+    .prePage,.nextPage{
+        img{
+            position: relative;
+            top: 0px   ;
+        }
+    }
+     .more{
+        cursor: not-allowed;
+    }
+    .arrowPage{
+        width: 6px;
+    }
+    .activePage{
+        color: @activeColor;
+    }
+    
+    input::-webkit-outer-spin-button,
+    input::-webkit-inner-spin-button {
+        -webkit-appearance: none;
+    }
+     
+    input[type="number"] {
+        -moz-appearance: textfield;
+    }
+}
+.singleVeto{
+    .rejectList{
+        height: 101px !important;
+    }
+    .partTitle {
+        text-align: center;
+        font-weight: bold;
+        font-size: 16px;
+    }
+}
+.goDetail{
+    cursor: pointer;
+    color: @activeColor;
+}
+
+.usrContain .selectReject,.usrContain .selectModuleType ,.managerContainer .selectModuleType  {
+    float: right;
+}
+.usrContain .rejectList,.usrContain .usedList{
+    height: 200px;
+}
+.usrContain .selectModuleType, .usrContain .moduleItemInp, .usrContain .selectUsed, .usrContain .selectReject {
+    width: 170px;
+}
+.managerContainer .moduleTypeList {
+    width: 140px;
+}
+.managerContainer.usrContain .moduleTypeList {
+    width: 170px;
+    height: 400px;
+}
+.managerContainer.usrContain .selectReject {
+    width: 140px;
+}
+.whichAdvice {
+    height: 30px;
+    width: 294px;
+    box-sizing: border-box;
+    overflow: hidden;
+    margin-bottom: 16px;
+    cursor: pointer;
+    span {
+        width: 33.33%;
+        font-size: 14px;
+        color: #777777;
+        float: left;
+        text-align: center;
+        height: 28px;
+        line-height: 27px;
+    }
+    .allAdvice {
+        border: 1px solid #777;
+        border-radius: 4px 0 0 4px;
+        border-right: 0;
+        box-sizing:border-box;
+    }
+    .errAdvice {
+        border: 1px solid #777;
+        box-sizing:border-box;
+    }
+    .noAdvice {
+        border: 1px solid #777;
+        box-sizing:border-box;
+        border-left: 0;
+        border-radius: 0 4px 4px 0;
+    }
+    .active {
+        background-color: #00A1FF;
+        color: #fff;
+        border-color: #00A1FF;
+    }
+}
+.pacsNameClick {
+    color: #00A1F0;
+    cursor: pointer;
+}

+ 357 - 0
src/css/pacsDetail.less

@@ -0,0 +1,357 @@
+@import './reset.less';
+
+.singleVeto{
+    width: 100%;
+    height: 100%;
+    overflow-y: auto;
+    background: @disColor;
+    .filterDropList{
+        position: absolute;
+        right: 0;
+        max-height: 200px;
+        overflow-y: auto;
+        background: #fff;
+        display: none;
+        border: 1px solid #e4e7ed;
+        box-shadow: 0 2px 12px 0 #e4e7ed;
+        z-index: 2;
+        li{
+            padding: 0 10px;
+        }
+    }
+    .deptList{
+        width: 160px;
+        max-height: 400px;
+    }    
+    .deptItem:hover{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+    .selectLevel,.selectDept{
+        display: inline-block;
+        position: relative;
+        width:160px;
+        padding: 0 10px;
+        height:40px;
+        border-radius:4px;
+        border: 1px solid #E2E5EF;
+        box-sizing: border-box;
+        cursor: pointer;
+    }
+    .filterItem.deptListWrap {
+        .selectDept,.deptList {
+            width: 180px;
+        }
+    }
+    .filterItem{
+        position: relative;
+        display: inline-block;
+        float: left;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 15px 0;
+        span{
+            display: inline-block;
+            line-height: 40px;
+            position: relative;
+        }
+        input{
+            width:120px;
+            height:34px;
+            border-radius:4px;
+            border: 1px solid #E2E5EF;
+            outline: none;
+            margin-right: 10px;
+            padding: 0 10px;
+            box-sizing: border-box;
+        }
+    }
+    .rejectList {
+        height: 80px !important;
+    }
+    .selectUsed,.selectReject {
+        float: right;
+    }
+    ul,li{
+        padding:0;
+        margin:0;
+        list-style:none;
+    }
+    h2{
+        width: 100%;
+        box-sizing: border-box;
+        background-color: #fff;
+        z-index: 20;
+        height: 44px;
+        line-height: 44px;
+        padding: 0 0 0 15px;
+        border-bottom: 1px solid #E2E5EF;
+        font-size: 16px;
+        font-weight: bold;
+        letter-spacing: 1px;
+    }
+    .main-body{
+        .main-body-com;
+        border: 0;
+        border-top: 1px solid #E2E5EF;
+    }
+    table{
+        .table;
+        .moduleNumber{
+            text-align: center;
+        }
+        
+    }
+    // .filterBox{
+    //     margin: 0 0 20px 0;
+    // }
+    .filterItem{
+        position: relative;
+        display: inline-block;
+        margin-right: 20px;
+        height: 40px;
+        line-height: 40px;
+        margin: 0 20px 20px 0;
+    }
+    .filterDropList{
+        position: absolute;
+        right: 0;
+        max-height: 200px;
+        overflow-y: auto;
+        background: #fff;
+        display: none;
+        border: 1px solid #e4e7ed;
+        box-shadow: 0 2px 12px 0 #e4e7ed;
+        z-index: 2;
+        li{
+            padding: 0 10px;
+        }
+    }
+    .rejectList, .usedList{
+        height: 120px;
+        li{
+            padding: 0 10px;
+        }
+        li:hover{
+            background-color: #EEF4FF;
+            cursor: pointer;
+        }
+    }
+    .switchImg{
+        width: 30px;
+    }
+    .roleSelect {
+        position: relative;
+        top: 3px;
+        cursor: pointer;
+    }
+    .selectModuleType,.moduleItemInp,.selectUsed, .selectReject{
+        display: inline-block;
+        position: relative;
+        width:140px;
+        padding: 0 10px;
+        height:34px;
+        border-radius:4px;
+        border: 1px solid #E2E5EF;
+        box-sizing: border-box;
+        cursor: pointer;
+        padding-right: 26px;
+    }
+    .arrow{
+        position: absolute;
+        width: 10px;
+        top: 16px;
+        right: 10px;
+    }
+    .moduleItemInp{
+        cursor: text;
+        outline: none;
+    }
+    .moduleItemInps{
+        width: 150px !important;
+    }
+    .moduleTypeList{
+         width: 160px;
+    }
+    .selectUsed, .selectReject{
+        width: 140px;
+    }
+    .modeTypeItem:hover{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+    .rejectList, .usedList {
+        width: 140px;
+    }
+    .filter{
+        display: inline-block;
+        width:60px;
+        height:36px;
+        background:@activeColor;
+        border-radius:4px;
+        color: #fff;
+        text-align: center;
+        line-height: 36px;
+        position: relative;
+        top: -1px;
+        cursor: pointer;
+    }
+    .export{
+        display: none;
+        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;
+    }
+    .editItem{
+       color: @activeColor;
+       cursor: pointer;
+    }
+    .editItemDis{
+        color: #aaa;
+        cursor: not-allowed;
+    }
+    
+    .ellipsis{
+        overflow: hidden;
+        text-overflow:ellipsis;
+        white-space: nowrap;
+    }
+    .textCenter{
+        text-align: center;
+    }
+    
+    
+    .pagination{
+        margin: 35px 0 20px 0  ;
+        text-align: right;
+    }
+    .totalSum{
+        font-size:12px;
+        line-height:17px;
+        color: #777777;
+        margin-right: 20px;
+    }
+    .pageNum,.prePage,.nextPage, .more{
+        display: inline-block;
+        width: 20px;
+        cursor: pointer;
+        margin: 0 20px 0 0;
+        text-align: center;
+        color: #777;
+    }
+    .prePage,.nextPage{
+        img{
+            position: relative;
+            top: 0px   ;
+        }
+    }
+     .more{
+        cursor: not-allowed;
+    }
+    .arrowPage{
+        width: 6px;
+    }
+    .activePage{
+        color: @activeColor;
+    }
+    
+    input::-webkit-outer-spin-button,
+    input::-webkit-inner-spin-button {
+        -webkit-appearance: none;
+    }
+     
+    input[type="number"] {
+        -moz-appearance: textfield;
+    }
+}
+.singleVeto{
+    .rejectList{
+        height: 101px !important;
+    }
+    .partTitle {
+        text-align: center;
+        font-weight: bold;
+        font-size: 16px;
+        span {
+            float: left;
+            color: #51649C;
+        }
+        a {
+            color: #8592B9;
+            opacity: 1;
+        }
+    }
+}
+.goDetail{
+    cursor: pointer;
+    color: @activeColor;
+}
+
+.usrContain .selectReject,.usrContain .selectModuleType ,.managerContainer .selectModuleType  {
+    float: right;
+}
+.usrContain .rejectList,.usrContain .usedList{
+    height: 200px;
+}
+.usrContain .selectModuleType, .usrContain .moduleItemInp, .usrContain .selectUsed, .usrContain .selectReject {
+    width: 170px;
+}
+.managerContainer .moduleTypeList {
+    width: 140px;
+}
+.managerContainer.usrContain .moduleTypeList {
+    width: 170px;
+    height: 400px;
+}
+.managerContainer.usrContain .selectReject {
+    width: 140px;
+}
+.whichAdvice {
+    height: 30px;
+    width: 294px;
+    box-sizing: border-box;
+    overflow: hidden;
+    margin-bottom: 16px;
+    cursor: pointer;
+    span {
+        width: 33.33%;
+        font-size: 14px;
+        color: #777777;
+        float: left;
+        text-align: center;
+        height: 28px;
+        line-height: 27px;
+    }
+    .allAdvice {
+        border: 1px solid #777;
+        border-radius: 4px 0 0 4px;
+        border-right: 0;
+        box-sizing:border-box;
+    }
+    .errAdvice {
+        border: 1px solid #777;
+        box-sizing:border-box;
+    }
+    .noAdvice {
+        border: 1px solid #777;
+        box-sizing:border-box;
+        border-left: 0;
+        border-radius: 0 4px 4px 0;
+    }
+    .active {
+        background-color: #00A1FF;
+        color: #fff;
+        border-color: #00A1FF;
+    }
+}

+ 2 - 2
src/css/qcScore.less

@@ -936,7 +936,7 @@
   }
 }
 
-#contentIframeIn { //医嘱信息
+#contentIframeIn,#pacsIframeIn,#assistIframeIn,#pacsDetailIframeIn { //医嘱信息
   width: 100%;
   height: 100%;
-}
+} 

+ 361 - 0
src/css/uncorrectedCopy.less

@@ -0,0 +1,361 @@
+@import './reset.less';
+
+.container{
+  width: 100%;
+  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 {
+  .dayFilter {
+    .levelList {
+      height: 80px;
+    }
+    .selectLevel,.levelList  {
+      width: 180px;
+    }
+    .deptListWrap {
+      display: none;
+    }
+  }
+  .filterItem.deptListWrap {
+    .selectDept,.deptList {
+      width: 180px;
+    }
+  }
+  ul,li{
+    list-style: none;
+  }
+  h2{
+    width: 100%;
+    box-sizing: border-box;
+    background-color: #fff;
+    z-index: 20;
+    height: 44px;
+    line-height: 44px;
+    padding: 0 0 0 15px;
+    border-bottom: 1px solid #E2E5EF;
+    font-size: 16px;
+    font-weight: bold   ;
+    letter-spacing: 1px;
+  }
+  .main-body{
+    .main-body-com;
+    border: none;
+    padding-top: 30px;
+    border-left: 10px @disColor solid;
+    min-width: 1090px;
+    /*width: 100%;*/
+    min-height: calc(100% - 44px);
+  }
+  .tableBox{
+    // border-right: 10px solid  @disColor;
+  }
+  table{
+    .table;
+    min-width: 1090px;
+    th,td{
+      text-align: center;
+    }
+    th{
+      white-space: nowrap;
+      &.textBreak{
+        padding: 5px 10px;
+        /*white-space: normal;
+        width: 120px;*/
+        &:after{
+          display: block;
+          margin: auto;
+        }
+      }
+    }
+
+    td{
+      white-space: nowrap;
+    }
+    .moduleNumber{
+      text-align: center;
+    }
+    .scoreOperaItem{
+      width: 50px;
+      cursor: pointer;
+    }
+
+  }
+  .tabFoot{
+    height: 40px;
+    /*border: 1px solid #E2E5EF;
+    border-top: none;
+    box-sizing: border-box;*/
+  }
+  .scoreOpera{
+    height: 50px;
+    line-height: 50px;
+    margin: 0 20px 0 0;
+    cursor: pointer;
+    img{
+      margin: 0 10px 0 0;
+    }
+  }
+
+  .recordScoreOperaBtn{
+    cursor: pointer;
+    color: @activeColor;
+  }
+  .recordScoreBtn{
+    cursor: pointer;
+    display: inline-block;
+    width:68px;
+    height:30px;
+    line-height: 30px;
+    text-align: center;
+    border-radius:4px;
+    box-sizing: border-box;
+    border: 1px solid @activeColor;
+    color: @activeColor;
+  }
+  /*.filterBox{
+      margin-bottom: 10px;
+  }*/
+  .filterItem{
+    position: relative;
+    display: inline-block;
+    float: left;
+    height: 32px;
+    line-height: 32px;
+    margin: 0 20px 20px 0;
+    span{
+      display: inline-block;
+      line-height: 40px;
+      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: 120px;
+    li:hover{
+      background-color: #EEF4FF;
+      cursor: pointer;
+    }
+  }
+  .selectLevel,.selectDept{
+    display: inline-block;
+    position: relative;
+    width:120px;
+    padding: 0 10px;
+    height:40px;
+    border-radius:4px;
+    border: 1px solid #E2E5EF;
+    box-sizing: border-box;
+    cursor: pointer;
+  }
+  .selectDept{
+    width: 160px;
+  }
+
+  .filter{
+    display: inline-block;
+    width:60px;
+    height:36px;
+    background:@activeColor;
+    border-radius:4px;
+    color: #fff;
+    text-align: center;
+    line-height: 36px;
+    position: relative;
+    top: 2px;
+    cursor: pointer;
+    float: left;
+  }
+  .arrow{
+    position: absolute;
+    width: 10px;
+    top: 16px;
+    right: 10px;
+  }
+  .iconCheck{
+    width: 14px;
+  }
+  .fl{
+    float: left;
+  }
+  .clearfix:after {
+    content: '';
+    height: 0;
+    line-height: 0;
+    display: block;
+    visibility: hidden;
+    clear: both;
+  }
+  .clearfix{
+    zoom:1
+  }
+  .divide{
+    margin: 0 10px;
+  }
+
+  .textCenter{
+    text-align: center;
+  }
+  .patientNameSpan{
+    color: #00A1F0;
+    cursor: pointer;
+  }
+  .patientNameSpans{
+    color: #FF4D4F;
+    cursor: pointer;
+    margin-left: 30px;
+  }
+
+  .deptItem:hover{
+    background-color: #EEF4FF;
+    cursor: pointer;
+  }
+  .ellipsis{
+    overflow: hidden;
+    text-overflow:ellipsis;
+    white-space: nowrap;
+  }
+
+
+  .pagination{
+    margin: 35px 0 20px 0  ;
+    text-align: right;
+  }
+  .totalSum{
+    font-size:12px;
+    line-height:17px;
+    color: #777777;
+    margin-right: 20px;
+  }
+  .pageNum,.prePage,.nextPage, .more{
+    display: inline-block;
+    width: 20px;
+    cursor: pointer;
+    margin: 0 20px 0 0;
+    text-align: center;
+    color: #777;
+  }
+  .prePage,.nextPage{
+    img{
+      position: relative;
+      top: 0px   ;
+    }
+  }
+  .more{
+    cursor: not-allowed;
+  }
+  .arrowPage{
+    width: 6px;
+  }
+  .activePage{
+    color: @activeColor;
+  }
+
+
+
+  .ui-datepicker-calendar {
+    border: 0 none;
+    min-width: 0;
+  }
+  .ui-datepicker thead {
+    background-color: #fff;
+    color: #c3cbd6;
+  }
+  .ui-datepicker td {
+    padding: 0;
+    height: auto;
+    color: #657180;
+  }
+  .ui-datepicker td span, .ui-datepicker td a {
+    text-align: center;
+    height: 30px;
+    line-height: 30px;
+  }
+
+  .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
+    border: 0;
+    background-color: #fff;
+    &:hover {
+      background-color: #c4d8fe;
+    }
+  }
+  .ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year {
+    color: #333;
+    font-weight: normal;
+    height: 30px;
+    line-height: 30px;
+    margin: 0 5px;
+    width: 40%;
+    border-radius: 3px;
+  }
+  .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next {
+    top: 5px;
+  }
+  .ui-state-active, .ui-widget-content .ui-state-active {
+    background-color: @activeColor !important;
+    color: #fff;
+  }
+  .ui-state-highlight, .ui-widget-content .ui-state-highlight {
+    background-color: #fff5bf !important;
+    color: #657180;
+  }
+  .ui-widget-header {
+    background-color: #fff;
+    border: 0 none;
+  }
+
+  input::-webkit-outer-spin-button,
+  input::-webkit-inner-spin-button {
+    -webkit-appearance: none;
+  }
+
+  input[type="number"] {
+    -moz-appearance: textfield;
+  }
+}
+.abnormalClear {
+  top: 2px !important;
+}

+ 9 - 7
src/html/advice.html

@@ -17,6 +17,11 @@
         <div class="partTitleT"></div>
         <div class="main-body">
             <div class="filterBox">
+                <div class="whichAdvice">
+                    <span class="allAdvice" data-type="0">全部医嘱</span>
+                    <span class="errAdvice active" data-type="1">缺陷医嘱</span>
+                    <span class="noAdvice" data-type="2">非缺陷医嘱</span>
+                </div>
                 <span class="filterItem">
                     <span>医嘱类型:</span>
                     <span class="">
@@ -45,18 +50,15 @@
                     <th class="moduleName" style="width: 65px;">序号</th>
                     <th class="moduleItemName">医嘱类型</th>
                     <th class="moduleItemName">医嘱项目名称</th>
+                    <th class="moduleItemName">医嘱单次剂量</th>
+                    <th class="moduleItemName">单次剂量单位</th>
+                    <th class="moduleItemName">给药方式</th>
+                    <th class="moduleItemName">医嘱频率</th>
                     <th class="moduleItemName">医嘱开始时间</th>
                     <th class="moduleItemName">医嘱结束时间</th>
                     <th class="moduleItemName">医嘱处方类型</th>
                     <th class="moduleItemName">药品类型</th>
                     <th class="moduleItemName">开单医生姓名</th>
-                    <!-- <th class="moduleItemName" code="doctor_advice_type">医嘱类型</th>
-                    <th class="moduleItemName" code="da_item_name">医嘱项目名称</th>
-                    <th class="moduleItemName" code="da_start_date">医嘱开始时间</th>
-                    <th class="moduleItemName" code="da_stop_date">医嘱结束时间</th>
-                    <th class="moduleItemName" code="da_prescription_type">医嘱处方类型</th>
-                    <th class="moduleItemName" code="medicine_type">药品类型</th>
-                    <th class="moduleItemName" code="doctor_name">开单医生姓名</th> -->
                 </thead>
                 <tbody class="tbody">
 

+ 67 - 0
src/html/assist.html

@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title></title>
+    
+</head>
+
+<body>
+    <div class="managerContainer singleVeto assistWrp">
+        <div class="partTitle">
+            检查信息
+        </div>
+        <div class="partTitleT"></div>
+        <div class="main-body">
+            <div class="filterBox">
+                <div class="whichAdvice">
+                    <span class="allAdvice" data-type="0">全部检查项</span>
+                    <span class="errAdvice active" data-type="1">缺陷检查项</span>
+                    <span class="noAdvice" data-type="2">非缺陷检查项</span>
+                </div>
+                <span class="filterItem">
+                    <span>检查类型:</span>
+                    <span class="">
+                        <input class="moduleItemInp" type="text" placeholder="请输入检查类型">
+                    </span>
+                </span>
+                <span class="filterItem">
+                    <span>检查项目名称:</span>
+                    <span class="">
+                        <input class="moduleItemInps" type="text" placeholder="请输入检查项目名称">
+                    </span>
+                </span>
+                
+                <span class="filterItem typeFilter clearfix dataSelectLight">
+                    <span class="fl">检查时间:</span>
+                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" readonly/></span>
+                    <span  class="divide fl">-</span>
+                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" readonly/></span>
+                </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">重置</span>
+                <span class="export">导出</span>
+            </div>
+            <table>
+                <thead>
+                    <th class="moduleName" style="width: 65px;">序号</th>
+                    <th class="moduleItemName" style="min-width: 78px;">检查类型</th>
+                    <th class="moduleItemName" style="min-width: 106px;">检查项目名称</th>
+                    <th class="moduleItemName">检查结果</th>
+                    <th class="moduleItemName" style="min-width: 100px;">检查时间</th>
+                    <th class="moduleItemName" style="min-width: 100px;">报告时间</th>
+                    <th class="moduleItemName" style="min-width: 78px;">开单医生姓名</th>
+                </thead>
+                <tbody class="tbody">
+
+                </tbody>
+            </table>
+            <div class="pagination"></div>
+        </div>
+    </div>
+</body>
+
+</html>

+ 20 - 4
src/html/index.html

@@ -18,10 +18,18 @@
         <ul>
             {{each subMenuList}}
                 {{if isPlacefile!=1&&code!='YH-ZKK-BASYHGLZB_XQ'&&code!='YH-ZKK-CYRSTJ'&&code!='YH-ZKK-ZKHCTJ'}}
-                    <li class="page" code="${code}">${name}</li>
+                    {{if code == 'YH-ZKK-YXBLJCB'}}
+                        <li class="page" code="${code}">运行病历稽查表</li>
+                    {{else}}
+                        <li class="page" code="${code}">${name}</li>
+                    {{/if}}
                 {{else}}
                     {{if isPlacefile==1&&code!='YH-ZKK-RYRSTJ'}}
-                        <li class="page" code="${code}">${name}</li>
+                        {{if code == 'YH-ZKK-YXBLJCB'}}
+                            <li class="page" code="${code}">终末病历稽查表</li>
+                        {{else}}
+                            <li class="page" code="${code}">${name}</li>
+                        {{/if}}
                     {{/if}}
                 {{/if}}
             {{/each}}
@@ -39,10 +47,18 @@
         <ul>
             {{each subMenuList}}
                 {{if isPlacefile!=1&&code!='YH-ZKK-BASYHGLZB_XQ'&&code!='YH-ZKK-CYRSTJ'&&code!='YH-ZKK-ZKHCTJ'}}
-                    <li class="page" code="${code}">${name}</li>
+                    {{if code == 'YH-ZKK-YXBLJCB'}}
+                        <li class="page" code="${code}">运行病历稽查表</li>
+                    {{else}}
+                        <li class="page" code="${code}">${name}</li>
+                    {{/if}}
                 {{else}}
                     {{if isPlacefile==1&&code!='YH-ZKK-RYRSTJ'}}
-                        <li class="page" code="${code}">${name}</li>
+                        {{if code == 'YH-ZKK-YXBLJCB'}}
+                            <li class="page" code="${code}">终末质控稽查表</li>
+                        {{else}}
+                            <li class="page" code="${code}">${name}</li>
+                        {{/if}}
                     {{/if}}
                 {{/if}}
             {{/each}}

+ 66 - 0
src/html/pacs.html

@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title></title>
+    
+</head>
+
+<body>
+    <div class="managerContainer singleVeto pacsWrp">
+        <div class="partTitle">
+            检验信息
+        </div>
+        <div class="partTitleT"></div>
+        <div class="main-body">
+            <div class="filterBox">
+                <div class="whichAdvice">
+                    <span class="allAdvice" data-type="0">全部检验项</span>
+                    <span class="errAdvice active" data-type="1">缺陷检验项</span>
+                    <span class="noAdvice" data-type="2">非缺陷检验项</span>
+                </div>
+                <span class="filterItem">
+                    <span>检验类型:</span>
+                    <span class="">
+                        <input class="moduleItemInp" type="text" placeholder="请输入检验类型">
+                    </span>
+                </span>
+                <span class="filterItem">
+                    <span>检验项目名称:</span>
+                    <span class="">
+                        <input class="moduleItemInps" type="text" placeholder="请输入检验项目名称">
+                    </span>
+                </span>
+                
+                <span class="filterItem typeFilter clearfix dataSelectLight">
+                    <span class="fl">检验时间:</span>
+                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" readonly/></span>
+                    <span  class="divide fl">-</span>
+                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" readonly/></span>
+                </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">重置</span>
+                <span class="export">导出</span>
+            </div>
+            <table>
+                <thead>
+                    <th class="moduleName" style="width: 65px;">序号</th>
+                    <th class="moduleItemName">检验类型</th>
+                    <th class="moduleItemName">检验项目名称</th>
+                    <th class="moduleItemName">检验时间</th>
+                    <th class="moduleItemName">报告时间</th>
+                    <th class="moduleItemName">开单医生姓名</th>
+                </thead>
+                <tbody class="tbody">
+
+                </tbody>
+            </table>
+            <div class="pagination"></div>
+        </div>
+    </div>
+</body>
+
+</html>

+ 66 - 0
src/html/pacsDetail.html

@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title></title>
+    
+</head>
+
+<body>
+    <div class="managerContainer singleVeto pacsDetailWrp">
+        <div class="partTitle">
+            <span><a href="pacs.html">检验信息 / </a>检验项目明细</span> 检验项目明细
+        </div>
+        <div class="partTitleT"></div>
+        <div class="main-body">
+            <div class="filterBox">
+                <!-- <div class="whichAdvice">
+                    <span class="allAdvice" data-type="0">全部检验项</span>
+                    <span class="errAdvice active" data-type="1">缺陷检验项</span>
+                    <span class="noAdvice" data-type="2">非缺陷检验项</span>
+                </div> -->
+                <!-- <span class="filterItem">
+                    <span>检验类型:</span>
+                    <span class="">
+                        <input class="moduleItemInp" type="text" placeholder="请输入医嘱类型">
+                    </span>
+                </span>
+                <span class="filterItem">
+                    <span>检验项目名称:</span>
+                    <span class="">
+                        <input class="moduleItemInps" type="text" placeholder="请输入医嘱项目名称">
+                    </span>
+                </span>
+                
+                <span class="filterItem typeFilter clearfix dataSelectLight">
+                    <span class="fl">检验时间:</span>
+                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" readonly/></span>
+                    <span  class="divide fl">-</span>
+                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" readonly/></span>
+                </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">重置</span>
+                <span class="export">导出</span> -->
+            </div>
+            <table>
+                <thead>
+                    <th class="moduleName" style="width: 65px;">序号</th>
+                    <th class="moduleItemName">检验项目名称</th>
+                    <th class="moduleItemName">检验结果</th>
+                    <th class="moduleItemName">检验时间</th>
+                    <th class="moduleItemName">报告时间</th>
+                    <th class="moduleItemName">开单医生姓名</th>
+                </thead>
+                <tbody class="tbody">
+
+                </tbody>
+            </table>
+            <div class="pagination"></div>
+        </div>
+    </div>
+</body>
+
+</html>

+ 6 - 1
src/html/qcScore.html

@@ -268,7 +268,9 @@
                 {{each val}}
                 <tr code="${i}" {{if isReject==="1"}} class="high-light" {{/if}}>
                     <td style="text-indent: 14px;">${modelName}</td>
-                    <td><a href="javascript:void(0);" class="page-anchor page-anchor-hover" code="${id}">${msg}</a></td>
+                    <td>
+                        <a href="javascript:void(0);" class="page-anchor page-anchor-hover" code="${id}">${msg}</a>
+                    </td>
                     <td class="red">${score}</td>
                 </tr>
                 {{/each}}
@@ -323,6 +325,9 @@
             <p id="loading">加载中,请稍候 ...</p>
             <div class="flaw-table">
                 <iframe src="./advice.html" frameborder="0" id="contentIframeIn" name="contentIframeIn" style="display: none;"></iframe>
+                <iframe src="./pacs.html" frameborder="0" id="pacsIframeIn" name="pacsIframeIn" style="display: none;"></iframe>
+                <iframe src="./assist.html" frameborder="0" id="assistIframeIn" name="assistIframeIn" style="display: none;"></iframe>
+                <iframe src="./pacsDetail.html" frameborder="0" id="pacsDetailIframeIn" name="pacsDetailIframeIn" style="display: none;"></iframe>
             </div>
             <div class="content-box fl" id="contentInfo"></div>
             <div class="operation fr" id="flaws">

+ 1 - 1
src/html/singleVeto.html

@@ -62,7 +62,7 @@
                     <th class="moduleItemName">缺陷名称</th>
                     <th class="moduleItemName">分值</th>
                     <th class="moduleItemName">单项否决</th>
-                    <th class="moduleItemName">数量</th>
+                    <th class="moduleItemName desc" code="num">数量</th>
                     <th class="moduleScore" style="width: 80px;">缺陷占比</th>
                 </thead>
                 <tbody class="tbody">

+ 1 - 4
src/html/uccDetail.html

@@ -20,10 +20,7 @@
                 <div class="clearfix">
                     <span class="filterItem typeFilter deptListWrap">
                         <span>科室:</span>
-                        <span class="selectDept">
-                            全部
-                        </span>
-
+                        <span class="selectDept">全部</span>
                         <ul class="deptList filterDropList"></ul>
                     </span>
                     <span class="filterItem typeFilter clearfix" >

+ 78 - 0
src/html/uncorrectedCopy.html

@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>时效性相关统计</title>
+</head>
+
+<body>
+<div class="container partDetailControl">
+    <div class="partTitle">
+        <p><span>终末病历稽查表</span></p>
+        <div class="dateDetail fr">
+
+        </div>
+    </div>
+    <div class="partTitleT"></div>
+    <div class="main-body">
+        <div class="filterBox clearfix">
+            <!-- <span class="filterItem typeFilter deptListWrap">
+                <span>科室名称:</span>
+                <span class="selectDept">
+                    全部
+                </span>
+                <ul class="deptList filterDropList"></ul>
+            </span> -->
+            <span class="filterItem typeFilter">
+                <span>科室名称:</span>
+                <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入科室名称">
+            </span>
+            <span class="filterItem typeFilter clearfix dataSelectLight">
+                    <span class="fl dateTime">出院日期:</span>
+                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" readonly/></span>
+                    <span  class="divide fl">-</span>
+                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" readonly/></span>
+                </span>
+            <span class="filter">查询</span>
+            <span class="filterclear abnormalClear">重置</span>
+            <span class="exportData">导出</span>
+        </div>
+        <div style="display: table;padding-right: 30px;" class="tableBox">
+            <table class="key-list">
+                <thead>
+                <tr class="tabTitle"></tr>
+                <!-- <th class="moduleName" style="width: 65px;">序号</th>
+                <th class="beHospitalId textCenter" code="deptName">科室名称</th>
+                <th class="beHospitalId textCenter" code="consultationNum">入院记录24h内<br/>未完成</th>
+                <th class="beHospitalId textCenter" code="consultationPercentStr">首程8h内未完成</th>
+                <th class="beHospitalId textCenter" code="operationNameNum">入院后未连记3天</th>
+                <th class="beHospitalId textCenter" code="operationNamePercentStr">主治48h未查房</th>
+                <th class="beHospitalId textCenter" code="operation15MinuteNum">主任72h未查房</th>
+                <th class="beHospitalId textCenter" code="operation15MinutePercentStr">术后24h无手术记录</th>
+                <th class="beHospitalId textCenter" code="operationTimeNum">术后首程未即刻完成</th>
+                <th class="beHospitalId textCenter" code="operationTimePercentStr">术后24h内无主刀查房</th>
+                <th class="beHospitalId textCenter" code="crisisNum">术后未连记3天</th>
+                <th class="beHospitalId textCenter" code="crisisPercentStr">病危无1天1记</th>
+                <th class="beHospitalId textCenter" code="stageSummaryNum">病重无2天1记</th>
+                <th class="beHospitalId textCenter" code="stageSummaryPercentStr">主任每周无2次查房</th>
+                <th class="beHospitalId textCenter" code="stageSummaryPercentStr">主治每周无3次查房</th>
+                <th class="beHospitalId textCenter" code="stageSummaryPercentStr">转入记录24h内未完成</th>
+                <th class="beHospitalId textCenter" code="stageSummaryPercentStr">转入后未连记3天</th>
+                <th class="beHospitalId textCenter textBreak" code="stageSummaryPercentStr">无阶段小结</th> -->
+                </thead>
+                <tbody>
+
+                </tbody>
+            </table>
+        </div>
+
+        <div class="pagination"></div>
+    </div>
+
+</div>
+</body>
+
+</html>

BIN
src/images/dataing.png


+ 2 - 0
src/js/abnormal.js

@@ -99,6 +99,8 @@ function getTabData(activePage){
         status: level||"",//(0:未处理,1:已处理)
         statisticsType: statisticsType||2, //1-本月,2-本年
     }
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
     post(api.getQcAnnormal,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data;

+ 32 - 22
src/js/advice.js

@@ -3,7 +3,7 @@ require("../css/advice.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, initScroll} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,focusMenuItem,setDatePicker,getPickerDate,downloadExportedData,expJson, initScroll,listenScroll} = require('./utils.js')
 const switchIconOpen = require("./../images/btn_open.png")
 const switchIconClose = require("./../images/btn_close.png")
 const iconDown= require("./../images/arrow_down.png")
@@ -11,13 +11,12 @@ const iconUp = require("./../images/arrow_up.png")
 const arrowLeft= require("./../images/arrow_left.png")
 const arrowRight = require("./../images/arrow_right.png")
 let isPlacefile = getCookie('isPlacefile')||1
-
 const currentPage=$(window.parent.document).find(".menu .page.active").attr("code");
 if(currentPage==="YH-ZKK-TMQXZB_XQ"){
   $(".export").css("display","inline-block");
 }
-
-let casesId="", name="", names="", isReject ="",deptName="",startDateParam="",data_asc=[],data_desc=[],endDateParam="", isUsed ="",casesIdTemp="", nameTemp="", nameTemps="", isRejectTemp ="",model='', isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId="",isSingleReject="", isSingleRejectTemp="",casesName="",casesNameTemp="",paramObj={}
+listenScroll('.adviceWrp')
+let casesId="",adviceShow='1', name="", names="", isReject ="",deptName="",startDateParam="",data_asc=[],data_desc=[],endDateParam="", isUsed ="",casesIdTemp="", nameTemp="", nameTemps="", 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="下拉">`)
@@ -26,6 +25,7 @@ let deptList = JSON.parse(getCookie("deptList"))||[]
 $(function(){
     dateChange()
     let srcUrl = window.parent.location.href
+    let srcUrlSon = window.location.href
     perId = getUrlArgObjectNew("id",srcUrl)||""
     isRejectTemp = isReject = getUrlArgObjectNew("shijian",srcUrl)||""
     selectReject = getUrlArgObjectNew("selectReject",srcUrl)||""
@@ -35,11 +35,15 @@ $(function(){
     casesName =casesNameTemp = getUrlArgObjectNew("model",srcUrl)||""
     startDateParam = getUrlArgObjectNew("startDateParam",srcUrl)||""
     endDateParam = getUrlArgObjectNew("endDateParam",srcUrl)||""
+    adviceShow = getUrlArgObjectNew("adviceShow",srcUrlSon)||"1"
     let fromThree = getUrlArgObjectNew("fromThree",srcUrl)||""
     if(name){
         $(".moduleItemInp").attr("title",name).val(name)
         selectReject=1
     }
+    if(adviceShow){
+        $(".whichAdvice span[data-type="+adviceShow+"]").addClass('active').siblings('span').removeClass('active')
+    }
     if(casesName){
         $(".selectModuleType").html(casesName).attr("title",casesName).append(`<img class="arrow" src=${iconDown} alt="下拉">`)
     }
@@ -122,8 +126,21 @@ function bindDeptSelect(){
         $(".deptList").css("display", "none")
     })
 }
-//全选绑定
+//缺陷类别展示切换
+$(".whichAdvice span").click(function(){
+    let type = $(this).attr("data-type")
+    if(type != adviceShow){
+        name = nameTemp = names = nameTemps = ''
+        setDatePicker($("#datepicker"),$("#datepicker2"),"default")
+        $(".moduleItemInp,.moduleItemInps").val('')
+    }
+    adviceShow = $(this).attr("data-type")
+    $(this).addClass("active").siblings("span").removeClass("active")
+    window.abortAjax.abort()
+    getTabData(1)
+})
 
+//全选绑定
 $('.selectDept').on("click", function(e){
     e.stopPropagation()
     $(".levelList ").css("display","none")
@@ -138,24 +155,11 @@ $('.selectDept').on("click", function(e){
     }
 })
 
-//科室处理
-// getDeptList()
-function getDeptList(){
-    let str = ``
-    if(deptList.length<=0)return
-    // $(".tiaomu .selectDept ").attr("data-id",deptList[0].deptName).find("i").html(deptList[0].deptName)
-    for(let i = 0;i < deptList.length;i++){
-        let tmp = deptList[i]
-        str += `<li class="deptItem ellipsis" title="${tmp.deptName}" data-id="${tmp.deptName}" data-name="${tmp.deptName}">${tmp.deptName}</li>`
-    }
-    $(".singleVeto .filterDropList").html(str)
-}
 function getTabData(activePage){
     const dateStatrt = getPickerDate($("#datepicker"),1)
     const dateEnd = getPickerDate($("#datepicker2"),2)
     const start = new Date(dateStatrt).getTime()
     const end = new Date(dateEnd).getTime()
-    console.log(dateStatrt,start)
     if(start > end){
         $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
         return
@@ -167,11 +171,14 @@ function getTabData(activePage){
         doctorAdviceType: name,//医嘱类型(模糊搜索)
         daItemName:names, //医嘱项目名称(模糊搜索)
         behospitalCode:perId,
+        adviceType:adviceShow,
         size: 15,
         "daStartDateStart":dateStatrt.replace(/\//g,'-'),
         "daStartDateEnd":dateEnd.replace(/\//g,'-'),
         "descs":['da_start_date'],     
     }
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
     post(api.getPage,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data.records
@@ -248,7 +255,7 @@ $('.selectModuleType').on("click", function(e){
     $(".usedList ").css("display", "none")
     $(".selectReject .arrow").attr("src",iconDown)
     $(".selectUsed .arrow").attr("src",iconDown)
-    const showList =  $(".moduleTypeList ").css("display")
+    const showList =  $(".moduleTypeList").css("display")
     if(showList == "none" ||!showList){
         $(".moduleTypeList ").css("display","block")
         $(".selectModuleType .arrow").attr("src",iconUp)
@@ -301,10 +308,15 @@ function renderTab(data,activePage){
                 <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
                 <td class="textCenter">${item.doctorAdviceType||'-'}</td>
                 <td class="textCenter">${item.daItemName||'-'}</td>
+                <td class="textCenter">${item.dose||'-'}</td>
+                <td class="textCenter">${item.doseUnit||'-'}</td>
+                <td class="textCenter">${item.medModeType||'-'}</td>
+                <td class="textCenter">${item.daFrequency||'-'}</td>
+
                 <td class="textCenter">${item.daStartDate||'-'}</td>
                 <td class="textCenter">${item.daStopDate||'-'}</td>
                 <td class="textCenter">${item.daPrescriptionType||'-'}</td>
-                <td class="textCenter">${item.medicineType == 0?'普药':(item.medicineType == 1?'抗生素':item.medicineType == 2?'激素':'-')||'-'}</td>
+                <td class="textCenter">${item.medicineType||'-'}</td>
                 <td class="textCenter">${item.doctorName||'-'}</td>
             </tr>
         `
@@ -414,7 +426,6 @@ function editItem(item,activePage){
                 $.alerModal({"message":"提示信息不能为空~",type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
                 return 
             }
-            
             saveEdit(itemCpoy,activePage)
             $("#mainBox .itemMsgBox .itemMsgInfoTips", parent.document).css("display","none")
             $('#mainBox .itemMsgBox', parent.document).remove()
@@ -501,7 +512,6 @@ function bindRejectSelect(){
         $('.selectReject').html(rejectItemName)
         $(".rejectList ").css("display", "none")
         $(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
-
     })
 }
 //是否启用选择

+ 9 - 0
src/js/api.js

@@ -116,6 +116,7 @@ const api = {
     qcCheckStatistics:'/console/qcCheckStatistics',//质控核查统计
     qcCheckStatisticsExport:'/console/export/qcCheckStatisticsExport',//质控核查统计导出
     getPage:'/qc/doctoradvice/getPage',//医嘱信息
+    getCheckPage:'qc/medLisInfo/getCheckPage',//检查信息
     unModifyMRPageExport:'/console/export/unModifyMRPageExport',//未整改病历详情页导出
     unModifyMRStatisticsExport:'/console/export/unModifyMRStatisticsExport', //未整改病历统计导出
     reHos31DaysPageExport:'/console/export/reHos31DaysPageExport', //31天再入院统计导出
@@ -125,6 +126,14 @@ const api = {
 
     casesEntryStatisticsById:'/console/casesEntryStatisticsById', //入院记录24小时未完成
     beHosCount:'/console/beHosCount', //入院人数
+
+    getmedCheckPage:'/qc/medPacsInfo/getCheckPage',//检查信息
+    getExaminePage:'/qc/medLisInfo/getExaminePage',//检验信息
+    getExamineSonPage:'/qc/medLisInfo/getExamineSonPage',//检验信息detail
+
+    medicalCheckTitle:'/console/medicalCheckTitle',//稽查表头
+    medicalCheckForm:'/console/medicalCheckForm',//稽查表格
+    medicalCheckExport:'/console/export/medicalCheckExport',//稽查表导出
 }
 module.exports = {
     api

+ 2 - 0
src/js/assertType.js

@@ -158,6 +158,8 @@ function getTabData(activePage){
         name: behospitalCode, //条目名
         size: 15
     }
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
     post(api.qcType,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data;

+ 647 - 0
src/js/assist.js

@@ -0,0 +1,647 @@
+const $ = require('jquery');
+require("../css/assist.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,listenScroll, 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")
+const iconUp = require("./../images/arrow_up.png")
+const arrowLeft= require("./../images/arrow_left.png")
+const arrowRight = require("./../images/arrow_right.png")
+let isPlacefile = getCookie('isPlacefile')||1
+
+const currentPage=$(window.parent.document).find(".menu .page.active").attr("code");
+if(currentPage==="YH-ZKK-TMQXZB_XQ"){
+  $(".export").css("display","inline-block");
+}
+listenScroll('.assistWrp')
+let casesId="",adviceShow='1', name="", names="", isReject ="",deptName="",startDateParam="",data_asc=[],data_desc=[],endDateParam="", isUsed ="",casesIdTemp="", nameTemp="", nameTemps="", 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="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let deptList = JSON.parse(getCookie("deptList"))||[]
+$(function(){
+    dateChange()
+    let srcUrl = window.parent.location.href
+    let srcUrlSon = window.location.href
+    perId = getUrlArgObjectNew("id",srcUrl)||""
+    isRejectTemp = isReject = getUrlArgObjectNew("shijian",srcUrl)||""
+    selectReject = getUrlArgObjectNew("selectReject",srcUrl)||""
+    from = getUrlArgObjectNew("from",srcUrl)||""
+    special = getUrlArgObjectNew("special",srcUrl)||""
+    name=nameTemp = getUrlArgObjectNew("qxName",srcUrl)||""
+    casesName =casesNameTemp = getUrlArgObjectNew("model",srcUrl)||""
+    startDateParam = getUrlArgObjectNew("startDateParam",srcUrl)||""
+    endDateParam = getUrlArgObjectNew("endDateParam",srcUrl)||""
+    adviceShow = getUrlArgObjectNew("adviceShow",srcUrlSon)||"1"
+    let fromThree = getUrlArgObjectNew("fromThree",srcUrl)||""
+    if(name){
+        $(".moduleItemInp").attr("title",name).val(name)
+        selectReject=1
+    }
+    if(adviceShow){
+        $(".whichAdvice span[data-type="+adviceShow+"]").addClass('active').siblings('span').removeClass('active')
+    }
+    if(casesName){
+        $(".selectModuleType").html(casesName).attr("title",casesName).append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    }
+    if(selectReject){
+        isSingleReject = isSingleRejectTemp = '1'
+        $(".selectReject").html("是").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    }
+    if(special){
+        $(".singleVeto .partTitle .pices span").html("条目缺陷占比")
+    }
+    $(".partTitle a").click(function(){
+        //初始菜单选中
+        $(".managerContainer").remove()
+        if(from == 2){
+            focusMenuItem('YH-KZTKS')
+        }else{
+            focusMenuItem('YH-KZT')
+        }
+        $(".container",parent.document).addClass("console-cont");
+    })
+    $(".abnormalClear").click(function(){
+        // window.location.reload()
+        setDatePicker($("#datepicker"),$("#datepicker2"),"default")
+        $(".selectModuleType").html("全部")
+        $(".selectReject").html("全部")
+        $(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        $(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        name = ""
+        names = ""
+        casesName=casesNameTemp=""
+        casesId=casesIdTemp=""
+        isSingleReject=isSingleRejectTemp=""
+        $(".moduleItemInp").val("")
+        $(".moduleItemInps").val("")
+        getTabData(1)
+    })
+    
+    if(isReject == 1){
+        $(".monthYear .mon").css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        setDatePicker($("#datepicker"),$("#datepicker2"),1)
+    }else if(isReject == 2){
+        $(".monthYear .year").css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        setDatePicker($("#datepicker"),$("#datepicker2"),2)
+    }else if(isReject == 3){
+        setDatePicker($("#datepicker"),$("#datepicker2"),3,new Date(startDateParam),new Date(endDateParam))
+    }else{
+        setDatePicker($("#datepicker"),$("#datepicker2"),"default")
+    }
+    if(!isReject){
+        setDatePicker($("#datepicker"),$("#datepicker2"),"default")
+      }
+    getTabData(1)//条目缺陷
+})
+bindDeptSelect()
+//科室选择
+function bindDeptSelect(){
+    $(document).on("click",'.deptItem',function(){
+        const deptItemName = $(this).attr("data-name")
+        const deptItemId = $(this).attr("data-id")
+        deptIdTemp =deptItemId
+        if(deptItemName.length > 10){
+            $('.selectDept').html(deptItemName.substring(0,8)+'...')
+        }else{
+            $('.selectDept').html(deptItemName)
+        }
+        $('.selectDept ').attr('title',deptItemName)
+        $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        $(".deptList").css("display", "none")
+    })
+}
+//缺陷类别展示切换
+$(".whichAdvice span").click(function(){
+    let type = $(this).attr("data-type")
+    if(type != adviceShow){
+        name = nameTemp = names = nameTemps = ''
+        setDatePicker($("#datepicker"),$("#datepicker2"),"default")
+        $(".moduleItemInp,.moduleItemInps").val('')
+    }
+    adviceShow = $(this).attr("data-type")
+    $(this).addClass("active").siblings("span").removeClass("active")
+    window.abortAjax.abort()
+    getTabData(1)
+})
+
+//全选绑定
+$('.selectDept').on("click", function(e){
+    e.stopPropagation()
+    $(".levelList ").css("display","none")
+    $(".selectLevel .arrow").attr("src",iconDown)
+    const showList =  $(".deptList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".deptList ").css("display","block")
+        $(".selectDept .arrow").attr("src",iconUp)
+    }else{
+        $(".deptList ").css("display", "none")
+        $(".selectDept .arrow").attr("src",iconDown)
+    }
+})
+
+//科室处理
+// getDeptList()
+function getDeptList(){
+    let str = ``
+    if(deptList.length<=0)return
+    // $(".tiaomu .selectDept ").attr("data-id",deptList[0].deptName).find("i").html(deptList[0].deptName)
+    for(let i = 0;i < deptList.length;i++){
+        let tmp = deptList[i]
+        str += `<li class="deptItem ellipsis" title="${tmp.deptName}" data-id="${tmp.deptName}" data-name="${tmp.deptName}">${tmp.deptName}</li>`
+    }
+    $(".singleVeto .filterDropList").html(str)
+}
+function getTabData(activePage){
+    const dateStatrt = getPickerDate($("#datepicker"),1)
+    const dateEnd = getPickerDate($("#datepicker2"),2)
+    const start = new Date(dateStatrt).getTime()
+    const end = new Date(dateEnd).getTime()
+    if(start > end){
+        $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        return
+    }
+    startDateParam=dateStatrt
+    endDateParam=dateEnd                                                                                                                                                                                                                                                                                                                                  
+    const param = {
+        current:activePage,
+        checkItemType: name,//医嘱类型(模糊搜索)
+        checkItemName:names, //医嘱项目名称(模糊搜索)
+        behospitalCode:perId,
+        checkType:adviceShow,
+        size: 15,
+        "jxDateStart":dateStatrt.replace(/\//g,'-'),
+        "jxDateEnd":dateEnd.replace(/\//g,'-'),
+        "descs":[],     
+    }
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
+    post(api.getmedCheckPage,param).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data.records
+            const totalPage = res.data.data.pages
+            const totalNum = res.data.data.total
+            renderTab(data,activePage)
+            if(totalPage > 1){
+                renderPagination(totalPage,Number(activePage),totalNum)
+            } else{
+                $('.pagination').html("")
+            }
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+//所有数据切换日期筛选
+function dateChange(){
+    $(".monthYear .mon").click(function(){
+        $(this).css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        isRejectTemp = isReject = 1
+        setDatePicker($("#datepicker"),$("#datepicker2"),1)
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        isRejectTemp =  isReject = 2
+        setDatePicker($("#datepicker"),$("#datepicker2"),2)
+        getTabData(1)
+    })
+}
+//判断有无某一权限
+function hasData(data){
+    let lis = JSON.parse(getCookie("codeLis"))||[]
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+}
+
+$(".moduleItemInp").on("input", function(e){
+    const val = $(this).val().trim()
+    nameTemp = val
+})
+$(".moduleItemInps").on("input", function(e){
+    const val = $(this).val().trim()
+    nameTemps = val
+})
+$(".filter").on("click", function(e){
+    casesId = casesIdTemp, name = nameTemp, names = nameTemps, isReject = isRejectTemp, isUsed = isUsedTemp,deptId = deptIdTemp,isSingleReject = isSingleRejectTemp,casesName = casesNameTemp 
+    getTabData(1)
+})
+$(".filterclear").on("click", function(e){
+    nameTemp = ""
+    nameTemps = ""
+    $(".moduleItemInp").val("")
+    $(".moduleItemInps").val("")
+})
+$('.selectModuleType').on("click", function(e){
+    e.stopPropagation()
+    $(".rejectList ").css("display","none")
+    $(".usedList ").css("display", "none")
+    $(".selectReject .arrow").attr("src",iconDown)
+    $(".selectUsed .arrow").attr("src",iconDown)
+    const showList =  $(".moduleTypeList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".moduleTypeList ").css("display","block")
+        $(".selectModuleType .arrow").attr("src",iconUp)
+    }else{
+        $(".moduleTypeList ").css("display", "none")
+        $(".selectModuleType .arrow").attr("src",iconDown)
+    }
+})
+$('.selectReject').on("click", function(e){
+    e.stopPropagation()
+    $(".moduleTypeList ").css("display", "none")
+    $(".usedList ").css("display", "none")
+    $(".selectModuleType .arrow").attr("src",iconDown)
+    $(".selectUsed .arrow").attr("src",iconDown)
+    const showList =  $(".rejectList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".rejectList ").css("display","block")
+        $(".selectUsed .arrow").attr("src",iconUp)
+    }else{
+        $(".rejectList ").css("display", "none")
+        $(".selectUsed .arrow").attr("src",iconDown)
+    }
+})
+$('.selectUsed').on("click", function(e){
+    e.stopPropagation()
+    $(".moduleTypeList ").css("display", "none")
+    $(".rejectList ").css("display","none")
+    $(".selectModuleType .arrow").attr("src",iconDown)
+    $(".selectReject .arrow").attr("src",iconDown)
+    const showList =  $(".usedList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".usedList ").css("display","block")
+        $(".selectUsed .arrow").attr("src",iconUp)
+    }else{
+        $(".usedList ").css("display", "none")
+        $(".selectUsed .arrow").attr("src",iconDown)
+    }
+})
+// bindRejectSelect()
+// bindUsedSelect()
+// getTabData(1)
+// getmoduleTypeList()
+function renderTab(data,activePage){
+    let str = ``;
+    const cls = hasData("FUNC000007")?"editItem":"editItemDis";
+    for(let i = 0; i < data.length; i++){
+        const item = data[i]
+        str += `
+            <tr data-id=${item.id} data-index=${i}>
+                <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
+                <td class="textCenter">${item.checkItemType||'-'}</td>
+                <td class="textCenter">${item.checkItemName||'-'}</td>
+                <td class="textCenter">${item.checkResult||'-'}</td>
+
+                <td class="textCenter">${item.checkTime||'-'}</td>
+                <td class="textCenter">${item.reptTime||'-'}</td>
+                <td class="textCenter">${item.doctorName||'-'}</td>
+            </tr>
+        `
+    }
+    $('.tbody').html(str?str:emptyBox())
+    bindEdit(data,activePage)
+    goDetail(data)
+    // initScroll("singleVeto","Y",1)
+}
+$("th[code]").on("click",function(e){
+    const code=$(this).attr("code");
+    if(data_asc==code){
+        data_desc=[code];
+        data_asc=[];
+        $("th[code]").removeClass("asc desc");
+        $(this).addClass("desc");
+    }else{
+        data_desc=[];
+        data_asc=[code];
+        $("th[code]").removeClass("asc desc");
+        $(this).addClass("asc");
+    }
+    getTabData(1);
+});
+function goDetail(data){
+    $(".goDetail").click(function(){
+        const index = $(this).parent().attr("data-index")
+        let defectName = $(this).attr("data-name")
+        const item = data[index]
+        // focusMenuItem("YH-ZKK-GKSQXZB_XQ");
+        $(parent.document).find("#contentIframe").attr("src",`./qcListCopy.html?defectName=${defectName}&startDate=${startDateParam}&endDate=${endDateParam}&from=${from}&isSingleReject=${item.isReject}&deptName=${deptName}&deptId=${deptName}`)
+    })
+}
+
+function bindEdit(data,activePage){
+    if(!hasData('FUNC000007')){
+        return
+    }
+    $('.editItem').click(function(e){
+        const index = $(this).parent().attr('data-index') 
+        editItem(data[index],activePage)
+    })
+}
+
+//修改
+function editItem(item,activePage){
+    const itemCpoy = JSON.parse(JSON.stringify(item))
+    $('.pop-box').remove()
+    $('.container').append('<div class="pop-box"></div>')
+    const str = `
+        <div class="itemMsgBox">
+            <div class="mask"></div>
+            <div class="itemMsgContent">
+                <p class="itemMsgTitle">修改 <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></p>
+                <div class="itemMsgContentBox">
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">模块名称:</span> <span class="itemInfoRight">${itemCpoy.casesName}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">条目名称:</span> <span class="itemInfoRight"> ${itemCpoy.name}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">提示信息:</span> <span class="itemInfoRight"> <input class="itemTipMsg" value="${itemCpoy.msg}" /></span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">
+                        分值:
+                        </span> <span class="itemInfoRight"> 
+                            <input class="itemScore" type="number" min="0" value=${itemCpoy.score} />
+                        </span>
+                        <p class="itemMsgInfoTips">支持≥0的数字输入,最多保留小数点后1位~</p>
+                    </div>
+                 
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">单项否决:</span><span class="itemInfoRight itemReject">${item.isReject == '1' ? `<img class="switchImg" src=${switchIconOpen} /><span class="imgInfo">  是</span>`:`<img class="switchImg" src=${switchIconClose} /> <span class="imgInfo"> 否</span>`}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">启用:</span><span class=" temInfoRight itemUsed">${item.isUsed == '1' ? `<img class="switchImg" src=${switchIconOpen} /><span class="imgInfo"> 是</span>`:`<img class="switchImg" src=${switchIconClose} /> <span class="imgInfo"> 否</span>`}</span></div>
+                </div>
+                
+                <div class="confirmEditBox"><span class="confirmEdit">保存</span></div>
+            </div>
+        </div>
+       
+    `
+    $("#mainBox", parent.document).append(str)
+    $("#mainBox .itemMsgBox .iconClose", parent.document).on("click", function(e){
+        $("#mainBox .itemMsgBox", parent.document).remove()
+    })
+    $("#mainBox .itemMsgBox .itemTipMsg", parent.document).on("input", function(e){
+        const val = $(this).val().trim()
+        itemCpoy.msg = val
+    })
+    $("#mainBox .itemMsgBox .itemScore", parent.document).on("keypress", function(e){
+        return (/[0-9\.]/.test(String.fromCharCode(e.keyCode)))
+    })
+    $("#mainBox .itemMsgBox .itemScore", parent.document).on("input", function(e){
+        const val = $(this).val()
+        itemCpoy.score = val
+    })
+    $("#mainBox .itemMsgBox .itemReject", parent.document).on("click", function(e){
+        itemCpoy.isReject = itemCpoy.isReject == 1 ? 0 : 1
+        $('#mainBox .itemMsgBox', parent.document).remove()
+        editItem(itemCpoy,activePage)
+    })
+    $("#mainBox .itemMsgBox .itemUsed", parent.document).on("click", function(e){
+        itemCpoy.isUsed = itemCpoy.isUsed == 1 ? 0 : 1
+        $('#mainBox .itemMsgBox', parent.document).remove()
+        editItem(itemCpoy,activePage)
+    })
+    
+    $("#mainBox .itemMsgBox .confirmEdit", parent.document).on("click", function(){
+        var reg = new RegExp(/^\d+(\.\d)?$/);
+        if(reg.test(itemCpoy.score)){
+            // console.log('itemCopy', itemCpoy)
+            if(!itemCpoy.msg.trim()){
+                $.alerModal({"message":"提示信息不能为空~",type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+                return 
+            }
+            
+            saveEdit(itemCpoy,activePage)
+            $("#mainBox .itemMsgBox .itemMsgInfoTips", parent.document).css("display","none")
+            $('#mainBox .itemMsgBox', parent.document).remove()
+            return 
+        }else{
+            $("#mainBox .itemMsgBox .itemMsgInfoTips", parent.document).css("display","block")
+            
+            return
+        }
+      
+    })
+   
+    
+}
+
+//保存修改
+function saveEdit(item,activePage){
+    const param = {
+        id: item.id,
+        isReject: item.isReject,
+        isUsed: item.isUsed,
+        msg: item.msg,
+        score: item.score
+    }
+
+    post(api.updataQcCasesEntry,param).then(res =>{
+        if(res.data.code == '0'){
+            // const data = res.data.data
+            $.alerModal({"message":"修改成功",type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            getTabData(activePage)
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+getmoduleTypeList()
+
+//获取模块类型
+function getmoduleTypeList(){
+    post(api.getQcCasesAll).then(res =>{
+        if(res.data.code == '0'){
+           const  moduleTypeList = res.data.data
+           renderModuleTypeList(moduleTypeList)
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+
+
+function renderModuleTypeList(moduleTypeList){
+    let str = `<li class="modeTypeItem " data-id=" " data-name="全部">全部</li>`
+    for(let i = 0; i < moduleTypeList.length; i++){
+        str += `<li class="modeTypeItem ellipsis" title=${moduleTypeList[i].name} data-id=${moduleTypeList[i].id} data-name=${moduleTypeList[i].name}> ${moduleTypeList[i].name}</li>`
+    }
+    $('.moduleTypeList').html(str)
+    bindModuleTypeSelect()
+}
+
+//模块类型选择
+function bindModuleTypeSelect(){
+    $('.modeTypeItem').on("click",function(){
+        const modeTypeItemName = $(this).attr("data-name")
+        const modeTypeItemId = $(this).attr("data-id")
+        casesIdTemp =modeTypeItemId
+        if(modeTypeItemId){
+            casesName=casesNameTemp = modeTypeItemName
+        }else{
+            casesName=casesNameTemp = ""
+        }
+        $('.selectModuleType').html(modeTypeItemName).attr("title",modeTypeItemName)
+        $(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".moduleTypeList ").css("display", "none")
+    })
+}
+bindRejectSelect()
+//单项否决选择
+function bindRejectSelect(){
+    $('.rejectItem').on("click",function(){
+        const rejectItemName = $(this).attr("data-name")
+        const rejectItemId = $(this).attr("data-id")
+        isSingleReject=isSingleRejectTemp=rejectItemId
+        $('.selectReject').html(rejectItemName)
+        $(".rejectList ").css("display", "none")
+        $(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+    })
+}
+//是否启用选择
+function bindUsedSelect(){
+    $('.usedItem').on("click",function(){
+        const usedItemName = $(this).attr("data-name")
+        const usedItemItemId = $(this).attr("data-id")
+        isUsedTemp =usedItemItemId
+        $('.selectUsed').html(usedItemName)
+        $(".usedList").css("display", "none")
+        $(".selectUsed").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    })
+}
+
+
+
+
+//分页渲染
+function renderPagination(totalPage,activePage,totalNum){
+    let str = `<span class="totalSum">共${totalPage}页/${totalNum}条数据</span><span class="prePage"><img class="arrowPage" src=${arrowLeft} /></span>`
+    if(totalPage <= 6){
+        for(let i = 1; i <= totalPage; i++){
+            str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
+        }
+    }else{
+        if(activePage <= 3){ //选中页数小于4
+            for(let i = 1; i <= 4; i++){
+                str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
+            }
+            str += `<span class="more" >...</span>`
+        str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+
+        } else if(activePage > totalPage -3){
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-3)}" data-page=${totalPage -3}>${totalPage -3}</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-2)}" data-page=${totalPage -2}>${totalPage -2}</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-1)}" data-page=${totalPage -1}>${totalPage -1}</span>`
+            str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        } else {
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+(activePage -1)}" data-page=${activePage -1}>${activePage -1}</span>`
+            str += `<span class="pageNum ${'page'+activePage}" data-page=${activePage}>${activePage}</span>`
+            str += `<span class="pageNum ${'page'+(activePage +1)}" data-page=${activePage +1}>${activePage +1}</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        }
+       
+    }
+    str += `<span class="nextPage"><img class="arrowPage" src=${arrowRight} /></span>`
+    $('.pagination').html(str)
+    $('.page' + activePage).addClass('activePage')
+    $(".pageNum").on("click", function(e){
+        const activePageNow = Number($(this).attr('data-page'))
+        getTabData(activePageNow)
+        // renderPagination(totalPage,activePageNow,totalNum)
+    })
+    $(".prePage").on("click", function(e){
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if(activePageNow > 1){
+            activePageNow--
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    $(".nextPage").on("click", function(e){
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if(activePageNow < totalPage){
+            activePageNow++
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    
+}
+
+$(document).on("click", function(){
+    $(".moduleTypeList ").css("display", "none")
+    $(".rejectList ").css("display","none")
+    $(".usedList ").css("display", "none")
+    $(".selectModuleType .arrow").attr("src",iconDown)
+    $(".selectReject .arrow").attr("src",iconDown)
+    $(".selectUsed .arrow").attr("src",iconDown)
+})
+
+
+$(function() {
+    const  iconCalenBlue= require("./../images/darkDate.png")
+    const  iconCalenGrey= require("./../images/icon_calen_grey.png")
+    $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
+    $('.iconCalen').on("mouseenter", function(e){
+        $(this).attr("src", iconCalenBlue)
+    })
+    $('.iconCalen').on("mouseleave", function(e){
+        $(this).attr("src", iconCalenGrey)
+    })
+    $('.iconCalen').on("click", function(e){
+        $(this).parent().find("input").focus()
+    })
+  $('.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 = {
+      type: 0,
+      casesId:casesId, //模块Id
+      casesName:casesName=='全部'?'':casesName, //模块Id
+      isReject:isSingleReject, //是否单项否决
+      name: name, //条目名
+      deptName: deptId, //科室名
+      "isPlacefile":isPlacefile,
+      "startDate":startDateParam,
+      "endDate":endDateParam
+    };
+    expJson(api.exportItemFlaw,param).then(res =>{
+      downloadExportedData(res.data,"条目缺陷占比.xls")
+    })
+  })
+});

+ 2 - 0
src/js/checkControl.js

@@ -144,6 +144,8 @@ function getTabData(activePage){
     }
     startDateParam = dateStatrt
     endDateParam = dateEnd
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
     post(api.qcCheckStatistics,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data||[];

+ 0 - 3
src/js/console.js

@@ -1207,11 +1207,8 @@ function barChartPay(dataX,dataY){
         return
     }else{
         if(getCookie("hospital") == "台州市立"){
-            console.log($(".innerOuter")[0],88989898)
-
             $(".innerOuter").css("display","block")
         }else{
-            console.log($(".innerOuter")[0])
             $(".innerOuter").css("display","none")
         }
         $("#barChartPay").css("display","block")

+ 31 - 27
src/js/deptScoreDetailControl.js

@@ -19,7 +19,7 @@ $(".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="",deptType = "",
   nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
-  data_desc=[],data_asc=[],hospital=getCookie("hospital");
+  data_desc="entryNum",data_asc="",hospital=getCookie("hospital");
   let srcUrl = $("#contentIframe",parent.document).attr("src")
   statisticsType = getUrlArgObjectNew("dateType",srcUrl)||""
   deptType = getUrlArgObjectNew("deptType",srcUrl)||""
@@ -133,8 +133,8 @@ function getTabData(activePage){
         return
     }
     const param = {
-        "asc": "",
-        "desc": "",
+        "asc": data_asc,
+        "desc": data_desc,
         "name": behospitalCode||"",
         "deptClass": deptId||'',
         "type": 0, //1-本月,2-本年,0-自定义时间(现在 都是自定义时间,都会传具体时间进去)
@@ -150,6 +150,9 @@ function getTabData(activePage){
     }
     startDateParam = dateStatrt
     endDateParam = dateEnd
+    $('.pagination').html("")
+    $('.deptScoreDetailControlTable table').html(`<tbody>${emptyBox('努力加载中...','',1)}</tbody>`)
+
     post(url,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data;
@@ -173,6 +176,22 @@ function getTabData(activePage){
 
 getTabData(1)
 
+
+$("body").on("click","th[code]",function(e){
+    const code=$(this).attr("code");
+    if(data_asc===code){
+      data_desc=code;
+      data_asc="";
+      $("th[code]").removeClass("asc desc");
+      $(this).addClass("desc");
+    }else{
+      data_desc="";
+      data_asc=code;
+      $("th[code]").removeClass("asc desc");
+      $(this).addClass("asc");
+    }
+    getTabData(1);
+});
 $(".filter").on("click", function(e){
     name = nameTemp
     behospitalCode = behospitalCodeTemp
@@ -187,15 +206,15 @@ function renderTab(data,hisId,activePage){
         <th class="moduleName" style="width: 65px;">序号</th>
         ${hospital=='台州市立'?'<th class="beHospitalId textCenter">科室系统</th>':null}
         <th class="beHospitalId textCenter">科室名称</th>
-        <th class="beHospitalId textCenter">缺陷总数</th>
-        <th class="beHospitalId textCenter">质控平均分</th>
-        <th class="beHospitalId textCenter">质控病历数</th>
-        <th class="beHospitalId textCenter">甲级病历数</th>
-        <th class="beHospitalId textCenter">乙级病历数</th>
-        <th class="beHospitalId textCenter">丙级病历数</th>
-        <th class="beHospitalId textCenter">甲级率</th>
-        <th class="beHospitalId textCenter">乙级率</th>
-        <th class="beHospitalId textCenter">丙级率</th>
+        <th class="beHospitalId textCenter ${data_asc == 'entryNum'?'asc':data_desc == 'entryNum'?'desc':''}" code="entryNum">缺陷总数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'averageValue'?'asc':data_desc == 'averageValue'?'desc':''}" code="averageValue">质控平均分</th>
+        <th class="beHospitalId textCenter ${data_asc == 'mrNum'?'asc':data_desc == 'mrNum'?'desc':''}" code="mrNum">质控病历数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'firstLevelNum'?'asc':data_desc == 'firstLevelNum'?'desc':''}" code="firstLevelNum">甲级病历数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'secondLevelNum'?'asc':data_desc == 'secondLevelNum'?'desc':''}" code="secondLevelNum">乙级病历数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'thirdLevelNum'?'asc':data_desc == 'thirdLevelNum'?'desc':''}" code="thirdLevelNum">丙级病历数</th>
+        <th class="beHospitalId textCenter ${data_asc == 'firstLevelPercentStr'?'asc':data_desc == 'firstLevelPercentStr'?'desc':''}" code="firstLevelPercentStr">甲级率</th>
+        <th class="beHospitalId textCenter ${data_asc == 'secondLevelPercentStr'?'asc':data_desc == 'secondLevelPercentStr'?'desc':''}" code="secondLevelPercentStr">乙级率</th>
+        <th class="beHospitalId textCenter ${data_asc == 'thirdLevelPercentStr'?'asc':data_desc == 'thirdLevelPercentStr'?'desc':''}" code="thirdLevelPercentStr">丙级率</th>
         </thead>`
     for(let i = 0; i <data.length; i++){
         const item = data[i]
@@ -455,21 +474,6 @@ $('.recordScoreBtn').on("click",function(e){
         }
     }
 })
-$("th[code]").on("click",function(e){
-    const code=$(this).attr("code");
-    if(data_asc[0]===code){
-      data_desc=[code];
-      data_asc=[];
-      $("th[code]").removeClass("asc desc");
-      $(this).addClass("desc");
-    }else{
-      data_desc=[];
-      data_asc=[code];
-      $("th[code]").removeClass("asc desc");
-      $(this).addClass("asc");
-    }
-    getTabData(1);
-});
 function recordScore(behospitalCode,totalNum){
     const param = {
         behospitalCode: behospitalCode

+ 2 - 0
src/js/itemManager.js

@@ -42,6 +42,8 @@ function getTabData(activePage){
         isUsed: isUsed, //0-未启用 1-启用
         size: size
     }
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
     post(api.getQcCasesEntryAll,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data.records

+ 2 - 0
src/js/keyItemFlawControl.js

@@ -98,6 +98,8 @@ function getTabData(activePage){
   }
   startDateParam = dateStatrt
   endDateParam = dateEnd
+  $('.pagination').html("")
+  $('.key-list tbody').html(emptyBox('努力加载中...','',1))
   post(api.keyItemFlawControl,param).then(res =>{
     if(res.data.code == '0'){
       const data = res.data.data||[];

+ 2 - 0
src/js/moduleManager.js

@@ -28,6 +28,8 @@ function hasData(data){
   }
 let data = {}
 function getTabData(){
+    $('.pagination').html("")
+    $('.tableInfo table').html(emptyBox('努力加载中...','',1))
     post(api.getQcCases).then(res =>{
         if(res.data.code == '0'){
             data = res.data.data

+ 2 - 0
src/js/mukuaiControl.js

@@ -212,6 +212,8 @@ function getTabData(activePage){
     }
     startDateParam=dateStatrt
     endDateParam=dateEnd
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
     post(from == 1?api.entryCountGroupByCasePage:api.entryCountGroupByCaseAndDeptPage,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data.records

+ 600 - 0
src/js/pacs.js

@@ -0,0 +1,600 @@
+const $ = require('jquery');
+require("../css/pacs.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,listenScroll, 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")
+const iconUp = require("./../images/arrow_up.png")
+const arrowLeft= require("./../images/arrow_left.png")
+const arrowRight = require("./../images/arrow_right.png")
+let isPlacefile = getCookie('isPlacefile')||1
+
+const currentPage=$(window.parent.document).find(".menu .page.active").attr("code");
+if(currentPage==="YH-ZKK-TMQXZB_XQ"){
+  $(".export").css("display","inline-block");
+}
+listenScroll('.pacsWrp')
+let casesId="",adviceShow='1', name="", names="", isReject ="",deptName="",startDateParam="",data_asc=[],data_desc=[],endDateParam="", isUsed ="",casesIdTemp="", nameTemp="", nameTemps="", 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="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let deptList = JSON.parse(getCookie("deptList"))||[]
+$(function(){
+    dateChange()
+    let srcUrl = window.parent.location.href
+    let srcUrlSon = window.location.href
+    perId = getUrlArgObjectNew("id",srcUrl)||""
+    isRejectTemp = isReject = getUrlArgObjectNew("shijian",srcUrl)||""
+    selectReject = getUrlArgObjectNew("selectReject",srcUrl)||""
+    from = getUrlArgObjectNew("from",srcUrl)||""
+    special = getUrlArgObjectNew("special",srcUrl)||""
+    name=nameTemp = getUrlArgObjectNew("qxName",srcUrl)||""
+    casesName =casesNameTemp = getUrlArgObjectNew("model",srcUrl)||""
+    startDateParam = getUrlArgObjectNew("startDateParam",srcUrl)||""
+    endDateParam = getUrlArgObjectNew("endDateParam",srcUrl)||""
+    adviceShow = getUrlArgObjectNew("adviceShow",srcUrlSon)||"1"
+    let fromThree = getUrlArgObjectNew("fromThree",srcUrl)||""
+    if(name){
+        $(".moduleItemInp").attr("title",name).val(name)
+        selectReject=1
+    }
+    if(adviceShow){
+        $(".whichAdvice span[data-type="+adviceShow+"]").addClass('active').siblings('span').removeClass('active')
+    }
+    if(casesName){
+        $(".selectModuleType").html(casesName).attr("title",casesName).append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    }
+    if(selectReject){
+        isSingleReject = isSingleRejectTemp = '1'
+        $(".selectReject").html("是").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    }
+    if(special){
+        $(".singleVeto .partTitle .pices span").html("条目缺陷占比")
+    }
+    $(".partTitle a").click(function(){
+        //初始菜单选中
+        $(".managerContainer").remove()
+        if(from == 2){
+            focusMenuItem('YH-KZTKS')
+        }else{
+            focusMenuItem('YH-KZT')
+        }
+        $(".container",parent.document).addClass("console-cont");
+    })
+    $(".abnormalClear").click(function(){
+        // window.location.reload()
+        setDatePicker($("#datepicker"),$("#datepicker2"),"default")
+        $(".selectModuleType").html("全部")
+        $(".selectReject").html("全部")
+        $(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        $(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        name = ""
+        names = ""
+        casesName=casesNameTemp=""
+        casesId=casesIdTemp=""
+        isSingleReject=isSingleRejectTemp=""
+        $(".moduleItemInp").val("")
+        $(".moduleItemInps").val("")
+        getTabData(1)
+    })
+    
+    if(isReject == 1){
+        $(".monthYear .mon").css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        setDatePicker($("#datepicker"),$("#datepicker2"),1)
+    }else if(isReject == 2){
+        $(".monthYear .year").css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        setDatePicker($("#datepicker"),$("#datepicker2"),2)
+    }else if(isReject == 3){
+        setDatePicker($("#datepicker"),$("#datepicker2"),3,new Date(startDateParam),new Date(endDateParam))
+    }else{
+        setDatePicker($("#datepicker"),$("#datepicker2"),"default")
+    }
+    if(!isReject){
+        setDatePicker($("#datepicker"),$("#datepicker2"),"default")
+      }
+    getTabData(1)//条目缺陷
+})
+//缺陷类别展示切换
+$(".whichAdvice span").click(function(){
+    let type = $(this).attr("data-type")
+    if(type != adviceShow){
+        name = nameTemp = names = nameTemps = ''
+        setDatePicker($("#datepicker"),$("#datepicker2"),"default")
+        $(".moduleItemInp,.moduleItemInps").val('')
+    }
+    adviceShow = $(this).attr("data-type")
+    $(this).addClass("active").siblings("span").removeClass("active")
+    window.abortAjax.abort()
+    getTabData(1)
+})
+
+//全选绑定
+$('.selectDept').on("click", function(e){
+    e.stopPropagation()
+    $(".levelList ").css("display","none")
+    $(".selectLevel .arrow").attr("src",iconDown)
+    const showList =  $(".deptList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".deptList ").css("display","block")
+        $(".selectDept .arrow").attr("src",iconUp)
+    }else{
+        $(".deptList ").css("display", "none")
+        $(".selectDept .arrow").attr("src",iconDown)
+    }
+})
+
+function getTabData(activePage){
+    const dateStatrt = getPickerDate($("#datepicker"),1)
+    const dateEnd = getPickerDate($("#datepicker2"),2)
+    const start = new Date(dateStatrt).getTime()
+    const end = new Date(dateEnd).getTime()
+    if(start > end){
+        $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        return
+    }
+    startDateParam=dateStatrt
+    endDateParam=dateEnd                                                                                                                                                                                                                                                                                                                                  
+    const param = {
+        current:activePage,
+        examineItemName:names, 
+        behospitalCode:perId,
+        examineType:adviceShow,
+        examineItemType:name,
+        size: 15,
+        "jyDateStart":dateStatrt.replace(/\//g,'-'),
+        "jyDateEnd":dateEnd.replace(/\//g,'-'),
+        "descs":[],     
+    }
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
+    post(api.getExaminePage,param).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data.records
+            const totalPage = res.data.data.pages
+            const totalNum = res.data.data.total
+            renderTab(data,activePage)
+            if(totalPage > 1){
+                renderPagination(totalPage,Number(activePage),totalNum)
+            } else{
+                $('.pagination').html("")
+            }
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+//所有数据切换日期筛选
+function dateChange(){
+    $(".monthYear .mon").click(function(){
+        $(this).css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        isRejectTemp = isReject = 1
+        setDatePicker($("#datepicker"),$("#datepicker2"),1)
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        isRejectTemp =  isReject = 2
+        setDatePicker($("#datepicker"),$("#datepicker2"),2)
+        getTabData(1)
+    })
+}
+//判断有无某一权限
+function hasData(data){
+    let lis = JSON.parse(getCookie("codeLis"))||[]
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+}
+
+$(".moduleItemInp").on("input", function(e){
+    const val = $(this).val().trim()
+    nameTemp = val
+})
+$(".moduleItemInps").on("input", function(e){
+    const val = $(this).val().trim()
+    nameTemps = val
+})
+$(".filter").on("click", function(e){
+    casesId = casesIdTemp, name = nameTemp, names = nameTemps, isReject = isRejectTemp, isUsed = isUsedTemp,deptId = deptIdTemp,isSingleReject = isSingleRejectTemp,casesName = casesNameTemp 
+    getTabData(1)
+})
+$(".filterclear").on("click", function(e){
+    nameTemp = ""
+    nameTemps = ""
+    $(".moduleItemInp").val("")
+    $(".moduleItemInps").val("")
+})
+$('.selectModuleType').on("click", function(e){
+    e.stopPropagation()
+    $(".rejectList ").css("display","none")
+    $(".usedList ").css("display", "none")
+    $(".selectReject .arrow").attr("src",iconDown)
+    $(".selectUsed .arrow").attr("src",iconDown)
+    const showList =  $(".moduleTypeList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".moduleTypeList ").css("display","block")
+        $(".selectModuleType .arrow").attr("src",iconUp)
+    }else{
+        $(".moduleTypeList ").css("display", "none")
+        $(".selectModuleType .arrow").attr("src",iconDown)
+    }
+})
+$('.selectReject').on("click", function(e){
+    e.stopPropagation()
+    $(".moduleTypeList ").css("display", "none")
+    $(".usedList ").css("display", "none")
+    $(".selectModuleType .arrow").attr("src",iconDown)
+    $(".selectUsed .arrow").attr("src",iconDown)
+    const showList =  $(".rejectList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".rejectList ").css("display","block")
+        $(".selectUsed .arrow").attr("src",iconUp)
+    }else{
+        $(".rejectList ").css("display", "none")
+        $(".selectUsed .arrow").attr("src",iconDown)
+    }
+})
+$('.selectUsed').on("click", function(e){
+    e.stopPropagation()
+    $(".moduleTypeList ").css("display", "none")
+    $(".rejectList ").css("display","none")
+    $(".selectModuleType .arrow").attr("src",iconDown)
+    $(".selectReject .arrow").attr("src",iconDown)
+    const showList =  $(".usedList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".usedList ").css("display","block")
+        $(".selectUsed .arrow").attr("src",iconUp)
+    }else{
+        $(".usedList ").css("display", "none")
+        $(".selectUsed .arrow").attr("src",iconDown)
+    }
+})
+// getTabData(1)
+// getmoduleTypeList()
+function renderTab(data,activePage){
+    let str = ``;
+    const cls = hasData("FUNC000007")?"editItem":"editItemDis";
+    for(let i = 0; i < data.length; i++){
+        const item = data[i]
+        str += `
+            <tr data-id=${item.id} data-index=${i}>
+                <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
+                <td class="textCenter">${item.examineItemType||'-'}</td>
+                <td class="textCenter pacsNameClick" data-id="${item.behospitalCode}" data-name="${item.repNo||''}">${item.examineItemName||'-'}</td>
+                <td class="textCenter">${item.checkTime||'-'}</td>
+                <td class="textCenter">${item.reptTime||'-'}</td>
+                <td class="textCenter">${item.doctorName||'-'}</td>
+            </tr>
+        `
+    }
+    $('.tbody').html(str?str:emptyBox())
+    bindEdit(data,activePage)
+    goDetail(data)
+    // initScroll("singleVeto","Y",1)
+}
+$(document).on('click','.pacsNameClick',function(){
+    let name = $(this).attr("data-name")
+    let beId = $(this).attr("data-id")
+    $(parent.document).find("#pacsIframeIn,#contentIframeIn,#assistIframeIn").css("display","none")
+
+    // $(parent.document).find("#pacsDetailIframeIn").attr("src",'pacsDetail.html?name='+name)
+    $("#pacsDetailIframeIn",parent.document).css({display:'block'}).attr("src",'pacsDetail.html?qxName='+name+'&beId='+beId+'&examineType='+adviceShow).contents().find(".assistWrp").height(window.innerHeight-$("#patientInfo").height()-20+'px')
+    $(window).resize(function(){
+      $("#pacsDetailIframeIn",parent.document).contents().find(".assistWrp").height(window.innerHeight-$("#patientInfo").height()-20+'px')
+    });
+})
+$("th[code]").on("click",function(e){
+    const code=$(this).attr("code");
+    if(data_asc==code){
+        data_desc=[code];
+        data_asc=[];
+        $("th[code]").removeClass("asc desc");
+        $(this).addClass("desc");
+    }else{
+        data_desc=[];
+        data_asc=[code];
+        $("th[code]").removeClass("asc desc");
+        $(this).addClass("asc");
+    }
+    getTabData(1);
+});
+function goDetail(data){
+    $(".goDetail").click(function(){
+        const index = $(this).parent().attr("data-index")
+        let defectName = $(this).attr("data-name")
+        const item = data[index]
+        // focusMenuItem("YH-ZKK-GKSQXZB_XQ");
+        $(parent.document).find("#contentIframe").attr("src",`./qcListCopy.html?defectName=${defectName}&startDate=${startDateParam}&endDate=${endDateParam}&from=${from}&isSingleReject=${item.isReject}&deptName=${deptName}&deptId=${deptName}`)
+    })
+}
+
+function bindEdit(data,activePage){
+    if(!hasData('FUNC000007')){
+        return
+    }
+    $('.editItem').click(function(e){
+        const index = $(this).parent().attr('data-index') 
+        editItem(data[index],activePage)
+    })
+}
+
+//修改
+function editItem(item,activePage){
+    const itemCpoy = JSON.parse(JSON.stringify(item))
+    $('.pop-box').remove()
+    $('.container').append('<div class="pop-box"></div>')
+    const str = `
+        <div class="itemMsgBox">
+            <div class="mask"></div>
+            <div class="itemMsgContent">
+                <p class="itemMsgTitle">修改 <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></p>
+                <div class="itemMsgContentBox">
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">模块名称:</span> <span class="itemInfoRight">${itemCpoy.casesName}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">条目名称:</span> <span class="itemInfoRight"> ${itemCpoy.name}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">提示信息:</span> <span class="itemInfoRight"> <input class="itemTipMsg" value="${itemCpoy.msg}" /></span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">
+                        分值:
+                        </span> <span class="itemInfoRight"> 
+                            <input class="itemScore" type="number" min="0" value=${itemCpoy.score} />
+                        </span>
+                        <p class="itemMsgInfoTips">支持≥0的数字输入,最多保留小数点后1位~</p>
+                    </div>
+                 
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">单项否决:</span><span class="itemInfoRight itemReject">${item.isReject == '1' ? `<img class="switchImg" src=${switchIconOpen} /><span class="imgInfo">  是</span>`:`<img class="switchImg" src=${switchIconClose} /> <span class="imgInfo"> 否</span>`}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">启用:</span><span class=" temInfoRight itemUsed">${item.isUsed == '1' ? `<img class="switchImg" src=${switchIconOpen} /><span class="imgInfo"> 是</span>`:`<img class="switchImg" src=${switchIconClose} /> <span class="imgInfo"> 否</span>`}</span></div>
+                </div>
+                
+                <div class="confirmEditBox"><span class="confirmEdit">保存</span></div>
+            </div>
+        </div>
+       
+    `
+    $("#mainBox", parent.document).append(str)
+    $("#mainBox .itemMsgBox .iconClose", parent.document).on("click", function(e){
+        $("#mainBox .itemMsgBox", parent.document).remove()
+    })
+    $("#mainBox .itemMsgBox .itemTipMsg", parent.document).on("input", function(e){
+        const val = $(this).val().trim()
+        itemCpoy.msg = val
+    })
+    $("#mainBox .itemMsgBox .itemScore", parent.document).on("keypress", function(e){
+        return (/[0-9\.]/.test(String.fromCharCode(e.keyCode)))
+    })
+    $("#mainBox .itemMsgBox .itemScore", parent.document).on("input", function(e){
+        const val = $(this).val()
+        itemCpoy.score = val
+    })
+    $("#mainBox .itemMsgBox .itemReject", parent.document).on("click", function(e){
+        itemCpoy.isReject = itemCpoy.isReject == 1 ? 0 : 1
+        $('#mainBox .itemMsgBox', parent.document).remove()
+        editItem(itemCpoy,activePage)
+    })
+    $("#mainBox .itemMsgBox .itemUsed", parent.document).on("click", function(e){
+        itemCpoy.isUsed = itemCpoy.isUsed == 1 ? 0 : 1
+        $('#mainBox .itemMsgBox', parent.document).remove()
+        editItem(itemCpoy,activePage)
+    })
+    
+    $("#mainBox .itemMsgBox .confirmEdit", parent.document).on("click", function(){
+        var reg = new RegExp(/^\d+(\.\d)?$/);
+        if(reg.test(itemCpoy.score)){
+            // console.log('itemCopy', itemCpoy)
+            if(!itemCpoy.msg.trim()){
+                $.alerModal({"message":"提示信息不能为空~",type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+                return 
+            }
+            
+            saveEdit(itemCpoy,activePage)
+            $("#mainBox .itemMsgBox .itemMsgInfoTips", parent.document).css("display","none")
+            $('#mainBox .itemMsgBox', parent.document).remove()
+            return 
+        }else{
+            $("#mainBox .itemMsgBox .itemMsgInfoTips", parent.document).css("display","block")
+            
+            return
+        }
+      
+    })
+   
+    
+}
+
+//保存修改
+function saveEdit(item,activePage){
+    const param = {
+        id: item.id,
+        isReject: item.isReject,
+        isUsed: item.isUsed,
+        msg: item.msg,
+        score: item.score
+    }
+
+    post(api.updataQcCasesEntry,param).then(res =>{
+        if(res.data.code == '0'){
+            // const data = res.data.data
+            $.alerModal({"message":"修改成功",type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            getTabData(activePage)
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+getmoduleTypeList()
+
+//获取模块类型
+function getmoduleTypeList(){
+    post(api.getQcCasesAll).then(res =>{
+        if(res.data.code == '0'){
+           const  moduleTypeList = res.data.data
+           renderModuleTypeList(moduleTypeList)
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+
+
+function renderModuleTypeList(moduleTypeList){
+    let str = `<li class="modeTypeItem " data-id=" " data-name="全部">全部</li>`
+    for(let i = 0; i < moduleTypeList.length; i++){
+        str += `<li class="modeTypeItem ellipsis" title=${moduleTypeList[i].name} data-id=${moduleTypeList[i].id} data-name=${moduleTypeList[i].name}> ${moduleTypeList[i].name}</li>`
+    }
+    $('.moduleTypeList').html(str)
+    bindModuleTypeSelect()
+}
+
+//模块类型选择
+function bindModuleTypeSelect(){
+    $('.modeTypeItem').on("click",function(){
+        const modeTypeItemName = $(this).attr("data-name")
+        const modeTypeItemId = $(this).attr("data-id")
+        casesIdTemp =modeTypeItemId
+        if(modeTypeItemId){
+            casesName=casesNameTemp = modeTypeItemName
+        }else{
+            casesName=casesNameTemp = ""
+        }
+        $('.selectModuleType').html(modeTypeItemName).attr("title",modeTypeItemName)
+        $(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".moduleTypeList ").css("display", "none")
+    })
+}
+
+
+
+//分页渲染
+function renderPagination(totalPage,activePage,totalNum){
+    let str = `<span class="totalSum">共${totalPage}页/${totalNum}条数据</span><span class="prePage"><img class="arrowPage" src=${arrowLeft} /></span>`
+    if(totalPage <= 6){
+        for(let i = 1; i <= totalPage; i++){
+            str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
+        }
+    }else{
+        if(activePage <= 3){ //选中页数小于4
+            for(let i = 1; i <= 4; i++){
+                str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
+            }
+            str += `<span class="more" >...</span>`
+        str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+
+        } else if(activePage > totalPage -3){
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-3)}" data-page=${totalPage -3}>${totalPage -3}</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-2)}" data-page=${totalPage -2}>${totalPage -2}</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-1)}" data-page=${totalPage -1}>${totalPage -1}</span>`
+            str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        } else {
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+(activePage -1)}" data-page=${activePage -1}>${activePage -1}</span>`
+            str += `<span class="pageNum ${'page'+activePage}" data-page=${activePage}>${activePage}</span>`
+            str += `<span class="pageNum ${'page'+(activePage +1)}" data-page=${activePage +1}>${activePage +1}</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        }
+       
+    }
+    str += `<span class="nextPage"><img class="arrowPage" src=${arrowRight} /></span>`
+    $('.pagination').html(str)
+    $('.page' + activePage).addClass('activePage')
+    $(".pageNum").on("click", function(e){
+        const activePageNow = Number($(this).attr('data-page'))
+        getTabData(activePageNow)
+        // renderPagination(totalPage,activePageNow,totalNum)
+    })
+    $(".prePage").on("click", function(e){
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if(activePageNow > 1){
+            activePageNow--
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    $(".nextPage").on("click", function(e){
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if(activePageNow < totalPage){
+            activePageNow++
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    
+}
+
+$(document).on("click", function(){
+    $(".moduleTypeList ").css("display", "none")
+    $(".rejectList ").css("display","none")
+    $(".usedList ").css("display", "none")
+    $(".selectModuleType .arrow").attr("src",iconDown)
+    $(".selectReject .arrow").attr("src",iconDown)
+    $(".selectUsed .arrow").attr("src",iconDown)
+})
+
+
+$(function() {
+    const  iconCalenBlue= require("./../images/darkDate.png")
+    const  iconCalenGrey= require("./../images/icon_calen_grey.png")
+    $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
+    $('.iconCalen').on("mouseenter", function(e){
+        $(this).attr("src", iconCalenBlue)
+    })
+    $('.iconCalen').on("mouseleave", function(e){
+        $(this).attr("src", iconCalenGrey)
+    })
+    $('.iconCalen').on("click", function(e){
+        $(this).parent().find("input").focus()
+    })
+  $('.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 = {
+      type: 0,
+      casesId:casesId, //模块Id
+      casesName:casesName=='全部'?'':casesName, //模块Id
+      isReject:isSingleReject, //是否单项否决
+      name: name, //条目名
+      deptName: deptId, //科室名
+      "isPlacefile":isPlacefile,
+      "startDate":startDateParam,
+      "endDate":endDateParam
+    };
+    expJson(api.exportItemFlaw,param).then(res =>{
+      downloadExportedData(res.data,"条目缺陷占比.xls")
+    })
+  })
+});

+ 609 - 0
src/js/pacsDetail.js

@@ -0,0 +1,609 @@
+const $ = require('jquery');
+require("../css/pacsDetail.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,listenScroll, 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")
+const iconUp = require("./../images/arrow_up.png")
+const arrowLeft= require("./../images/arrow_left.png")
+const arrowRight = require("./../images/arrow_right.png")
+let isPlacefile = getCookie('isPlacefile')||1
+
+const currentPage=$(window.parent.document).find(".menu .page.active").attr("code");
+if(currentPage==="YH-ZKK-TMQXZB_XQ"){
+  $(".export").css("display","inline-block");
+}
+listenScroll('.pacsDetailWrp')
+let casesId="",adviceShow='1', name="", names="",beId="",repNo="",examineType="", isReject ="",deptName="",startDateParam="",data_asc=[],data_desc=[],endDateParam="", isUsed ="",casesIdTemp="", nameTemp="", nameTemps="", 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="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let deptList = JSON.parse(getCookie("deptList"))||[]
+$(function(){
+    dateChange()
+    let srcUrl = window.parent.location.href
+    let srcUrlSon = window.location.href
+    perId = getUrlArgObjectNew("id",srcUrl)||""
+    isRejectTemp = isReject = getUrlArgObjectNew("shijian",srcUrl)||""
+    selectReject = getUrlArgObjectNew("selectReject",srcUrl)||""
+    from = getUrlArgObjectNew("from",srcUrl)||""
+    special = getUrlArgObjectNew("special",srcUrl)||""
+    repNo = getUrlArgObjectNew("qxName",srcUrlSon)||""
+    casesName =casesNameTemp = getUrlArgObjectNew("model",srcUrl)||""
+    startDateParam = getUrlArgObjectNew("startDateParam",srcUrl)||""
+    endDateParam = getUrlArgObjectNew("endDateParam",srcUrl)||""
+    adviceShow = getUrlArgObjectNew("adviceShow",srcUrlSon)||"1"
+    beId = getUrlArgObjectNew("beId",srcUrlSon)||"1"
+    examineType = getUrlArgObjectNew("examineType",srcUrlSon)
+    let fromThree = getUrlArgObjectNew("fromThree",srcUrl)||""
+    if(name){
+        $(".moduleItemInp").attr("title",name).val(name)
+        selectReject=1
+    }
+    if(adviceShow){
+        $(".whichAdvice span[data-type="+adviceShow+"]").addClass('active').siblings('span').removeClass('active')
+    }
+    if(casesName){
+        $(".selectModuleType").html(casesName).attr("title",casesName).append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    }
+    if(selectReject){
+        isSingleReject = isSingleRejectTemp = '1'
+        $(".selectReject").html("是").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    }
+    if(special){
+        $(".singleVeto .partTitle .pices span").html("条目缺陷占比")
+    }
+    $(".partTitle a").click(function(){
+        //初始菜单选中
+        $(".managerContainer").remove()
+        if(from == 2){
+            focusMenuItem('YH-KZTKS')
+        }else{
+            focusMenuItem('YH-KZT')
+        }
+        $(".container",parent.document).addClass("console-cont");
+    })
+    $(".abnormalClear").click(function(){
+        // window.location.reload()
+        setDatePicker($("#datepicker"),$("#datepicker2"),"default")
+        $(".selectModuleType").html("全部")
+        $(".selectReject").html("全部")
+        $(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        $(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        name = ""
+        names = ""
+        casesName=casesNameTemp=""
+        casesId=casesIdTemp=""
+        isSingleReject=isSingleRejectTemp=""
+        $(".moduleItemInp").val("")
+        $(".moduleItemInps").val("")
+        getTabData(1)
+    })
+    
+    if(isReject == 1){
+        $(".monthYear .mon").css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        setDatePicker($("#datepicker"),$("#datepicker2"),1)
+    }else if(isReject == 2){
+        $(".monthYear .year").css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        setDatePicker($("#datepicker"),$("#datepicker2"),2)
+    }else if(isReject == 3){
+        setDatePicker($("#datepicker"),$("#datepicker2"),3,new Date(startDateParam),new Date(endDateParam))
+    }else{
+        setDatePicker($("#datepicker"),$("#datepicker2"),"default")
+    }
+    if(!isReject){
+        setDatePicker($("#datepicker"),$("#datepicker2"),"default")
+      }
+    getTabData(1)//条目缺陷
+})
+//缺陷类别展示切换
+$(".whichAdvice span").click(function(){
+    adviceShow = $(this).attr("data-type")
+    $(this).addClass("active").siblings("span").removeClass("active")
+    getTabData(1)
+})
+
+//全选绑定
+$('.selectDept').on("click", function(e){
+    e.stopPropagation()
+    $(".levelList ").css("display","none")
+    $(".selectLevel .arrow").attr("src",iconDown)
+    const showList =  $(".deptList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".deptList ").css("display","block")
+        $(".selectDept .arrow").attr("src",iconUp)
+    }else{
+        $(".deptList ").css("display", "none")
+        $(".selectDept .arrow").attr("src",iconDown)
+    }
+})
+
+
+function getTabData(activePage){
+    const dateStatrt = getPickerDate($("#datepicker"),1)
+    const dateEnd = getPickerDate($("#datepicker2"),2)
+    const start = new Date(dateStatrt).getTime()
+    const end = new Date(dateEnd).getTime()
+    if(start > end){
+        $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        return
+    }
+    startDateParam=dateStatrt
+    endDateParam=dateEnd                                                                                                                                                                                                                                                                                                                                  
+    const param = {
+        current:activePage,
+        repNo: repNo,
+        behospitalCode:perId,
+        hospitalId:getCookie('hospitalid'),
+        examineType:examineType,
+        size: 15,    
+    }
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
+    post(api.getExamineSonPage,param).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data.records
+            const totalPage = res.data.data.pages
+            const totalNum = res.data.data.total
+            renderTab(data,activePage)
+            if(totalPage > 1){
+                renderPagination(totalPage,Number(activePage),totalNum)
+            } else{
+                $('.pagination').html("")
+            }
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+//所有数据切换日期筛选
+function dateChange(){
+    $(".monthYear .mon").click(function(){
+        $(this).css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        isRejectTemp = isReject = 1
+        setDatePicker($("#datepicker"),$("#datepicker2"),1)
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        isRejectTemp =  isReject = 2
+        setDatePicker($("#datepicker"),$("#datepicker2"),2)
+        getTabData(1)
+    })
+}
+//判断有无某一权限
+function hasData(data){
+    let lis = JSON.parse(getCookie("codeLis"))||[]
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+}
+
+$(".moduleItemInp").on("input", function(e){
+    const val = $(this).val().trim()
+    nameTemp = val
+})
+$(".moduleItemInps").on("input", function(e){
+    const val = $(this).val().trim()
+    nameTemps = val
+})
+$(".filter").on("click", function(e){
+    casesId = casesIdTemp, name = nameTemp, names = nameTemps, isReject = isRejectTemp, isUsed = isUsedTemp,deptId = deptIdTemp,isSingleReject = isSingleRejectTemp,casesName = casesNameTemp 
+    getTabData(1)
+})
+$(".filterclear").on("click", function(e){
+    nameTemp = ""
+    nameTemps = ""
+    $(".moduleItemInp").val("")
+    $(".moduleItemInps").val("")
+})
+$('.selectModuleType').on("click", function(e){
+    e.stopPropagation()
+    $(".rejectList ").css("display","none")
+    $(".usedList ").css("display", "none")
+    $(".selectReject .arrow").attr("src",iconDown)
+    $(".selectUsed .arrow").attr("src",iconDown)
+    const showList =  $(".moduleTypeList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".moduleTypeList ").css("display","block")
+        $(".selectModuleType .arrow").attr("src",iconUp)
+    }else{
+        $(".moduleTypeList ").css("display", "none")
+        $(".selectModuleType .arrow").attr("src",iconDown)
+    }
+})
+$('.selectReject').on("click", function(e){
+    e.stopPropagation()
+    $(".moduleTypeList ").css("display", "none")
+    $(".usedList ").css("display", "none")
+    $(".selectModuleType .arrow").attr("src",iconDown)
+    $(".selectUsed .arrow").attr("src",iconDown)
+    const showList =  $(".rejectList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".rejectList ").css("display","block")
+        $(".selectUsed .arrow").attr("src",iconUp)
+    }else{
+        $(".rejectList ").css("display", "none")
+        $(".selectUsed .arrow").attr("src",iconDown)
+    }
+})
+$('.selectUsed').on("click", function(e){
+    e.stopPropagation()
+    $(".moduleTypeList ").css("display", "none")
+    $(".rejectList ").css("display","none")
+    $(".selectModuleType .arrow").attr("src",iconDown)
+    $(".selectReject .arrow").attr("src",iconDown)
+    const showList =  $(".usedList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".usedList ").css("display","block")
+        $(".selectUsed .arrow").attr("src",iconUp)
+    }else{
+        $(".usedList ").css("display", "none")
+        $(".selectUsed .arrow").attr("src",iconDown)
+    }
+})
+// bindRejectSelect()
+// bindUsedSelect()
+// getTabData(1)
+// getmoduleTypeList()
+function renderTab(data,activePage){
+    let str = ``;
+    const cls = hasData("FUNC000007")?"editItem":"editItemDis";
+    for(let i = 0; i < data.length; i++){
+        const item = data[i]
+        str += `
+            <tr data-id=${item.id} data-index=${i}>
+                <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
+                <td class="textCenter">${item.examineItemName||'-'}</td>
+                <td class="textCenter">${item.examineItemResult||'-'}</td>
+                <td class="textCenter">${item.checkTime||'-'}</td>
+                <td class="textCenter">${item.reptTime||'-'}</td>
+                <td class="textCenter">${item.doctorName||'-'}</td>
+            </tr>
+        `
+    }
+    $('.tbody').html(str?str:emptyBox())
+    bindEdit(data,activePage)
+    goDetail(data)
+    // initScroll("singleVeto","Y",1)
+}
+$("th[code]").on("click",function(e){
+    const code=$(this).attr("code");
+    if(data_asc==code){
+        data_desc=[code];
+        data_asc=[];
+        $("th[code]").removeClass("asc desc");
+        $(this).addClass("desc");
+    }else{
+        data_desc=[];
+        data_asc=[code];
+        $("th[code]").removeClass("asc desc");
+        $(this).addClass("asc");
+    }
+    getTabData(1);
+});
+function goDetail(data){
+    $(".goDetail").click(function(){
+        const index = $(this).parent().attr("data-index")
+        let defectName = $(this).attr("data-name")
+        const item = data[index]
+        // focusMenuItem("YH-ZKK-GKSQXZB_XQ");
+        $(parent.document).find("#contentIframe").attr("src",`./qcListCopy.html?defectName=${defectName}&startDate=${startDateParam}&endDate=${endDateParam}&from=${from}&isSingleReject=${item.isReject}&deptName=${deptName}&deptId=${deptName}`)
+    })
+}
+
+function bindEdit(data,activePage){
+    if(!hasData('FUNC000007')){
+        return
+    }
+    $('.editItem').click(function(e){
+        const index = $(this).parent().attr('data-index') 
+        editItem(data[index],activePage)
+    })
+}
+
+//修改
+function editItem(item,activePage){
+    const itemCpoy = JSON.parse(JSON.stringify(item))
+    $('.pop-box').remove()
+    $('.container').append('<div class="pop-box"></div>')
+    const str = `
+        <div class="itemMsgBox">
+            <div class="mask"></div>
+            <div class="itemMsgContent">
+                <p class="itemMsgTitle">修改 <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></p>
+                <div class="itemMsgContentBox">
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">模块名称:</span> <span class="itemInfoRight">${itemCpoy.casesName}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">条目名称:</span> <span class="itemInfoRight"> ${itemCpoy.name}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">提示信息:</span> <span class="itemInfoRight"> <input class="itemTipMsg" value="${itemCpoy.msg}" /></span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">
+                        分值:
+                        </span> <span class="itemInfoRight"> 
+                            <input class="itemScore" type="number" min="0" value=${itemCpoy.score} />
+                        </span>
+                        <p class="itemMsgInfoTips">支持≥0的数字输入,最多保留小数点后1位~</p>
+                    </div>
+                 
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">单项否决:</span><span class="itemInfoRight itemReject">${item.isReject == '1' ? `<img class="switchImg" src=${switchIconOpen} /><span class="imgInfo">  是</span>`:`<img class="switchImg" src=${switchIconClose} /> <span class="imgInfo"> 否</span>`}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">启用:</span><span class=" temInfoRight itemUsed">${item.isUsed == '1' ? `<img class="switchImg" src=${switchIconOpen} /><span class="imgInfo"> 是</span>`:`<img class="switchImg" src=${switchIconClose} /> <span class="imgInfo"> 否</span>`}</span></div>
+                </div>
+                
+                <div class="confirmEditBox"><span class="confirmEdit">保存</span></div>
+            </div>
+        </div>
+       
+    `
+    $("#mainBox", parent.document).append(str)
+    $("#mainBox .itemMsgBox .iconClose", parent.document).on("click", function(e){
+        $("#mainBox .itemMsgBox", parent.document).remove()
+    })
+    $("#mainBox .itemMsgBox .itemTipMsg", parent.document).on("input", function(e){
+        const val = $(this).val().trim()
+        itemCpoy.msg = val
+    })
+    $("#mainBox .itemMsgBox .itemScore", parent.document).on("keypress", function(e){
+        return (/[0-9\.]/.test(String.fromCharCode(e.keyCode)))
+    })
+    $("#mainBox .itemMsgBox .itemScore", parent.document).on("input", function(e){
+        const val = $(this).val()
+        itemCpoy.score = val
+    })
+    $("#mainBox .itemMsgBox .itemReject", parent.document).on("click", function(e){
+        itemCpoy.isReject = itemCpoy.isReject == 1 ? 0 : 1
+        $('#mainBox .itemMsgBox', parent.document).remove()
+        editItem(itemCpoy,activePage)
+    })
+    $("#mainBox .itemMsgBox .itemUsed", parent.document).on("click", function(e){
+        itemCpoy.isUsed = itemCpoy.isUsed == 1 ? 0 : 1
+        $('#mainBox .itemMsgBox', parent.document).remove()
+        editItem(itemCpoy,activePage)
+    })
+    
+    $("#mainBox .itemMsgBox .confirmEdit", parent.document).on("click", function(){
+        var reg = new RegExp(/^\d+(\.\d)?$/);
+        if(reg.test(itemCpoy.score)){
+            // console.log('itemCopy', itemCpoy)
+            if(!itemCpoy.msg.trim()){
+                $.alerModal({"message":"提示信息不能为空~",type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+                return 
+            }
+            
+            saveEdit(itemCpoy,activePage)
+            $("#mainBox .itemMsgBox .itemMsgInfoTips", parent.document).css("display","none")
+            $('#mainBox .itemMsgBox', parent.document).remove()
+            return 
+        }else{
+            $("#mainBox .itemMsgBox .itemMsgInfoTips", parent.document).css("display","block")
+            
+            return
+        }
+      
+    })
+   
+    
+}
+
+//保存修改
+function saveEdit(item,activePage){
+    const param = {
+        id: item.id,
+        isReject: item.isReject,
+        isUsed: item.isUsed,
+        msg: item.msg,
+        score: item.score
+    }
+
+    post(api.updataQcCasesEntry,param).then(res =>{
+        if(res.data.code == '0'){
+            // const data = res.data.data
+            $.alerModal({"message":"修改成功",type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            getTabData(activePage)
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+getmoduleTypeList()
+
+//获取模块类型
+function getmoduleTypeList(){
+    post(api.getQcCasesAll).then(res =>{
+        if(res.data.code == '0'){
+           const  moduleTypeList = res.data.data
+           renderModuleTypeList(moduleTypeList)
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+
+
+function renderModuleTypeList(moduleTypeList){
+    let str = `<li class="modeTypeItem " data-id=" " data-name="全部">全部</li>`
+    for(let i = 0; i < moduleTypeList.length; i++){
+        str += `<li class="modeTypeItem ellipsis" title=${moduleTypeList[i].name} data-id=${moduleTypeList[i].id} data-name=${moduleTypeList[i].name}> ${moduleTypeList[i].name}</li>`
+    }
+    $('.moduleTypeList').html(str)
+    bindModuleTypeSelect()
+}
+
+//模块类型选择
+function bindModuleTypeSelect(){
+    $('.modeTypeItem').on("click",function(){
+        const modeTypeItemName = $(this).attr("data-name")
+        const modeTypeItemId = $(this).attr("data-id")
+        casesIdTemp =modeTypeItemId
+        if(modeTypeItemId){
+            casesName=casesNameTemp = modeTypeItemName
+        }else{
+            casesName=casesNameTemp = ""
+        }
+        $('.selectModuleType').html(modeTypeItemName).attr("title",modeTypeItemName)
+        $(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".moduleTypeList ").css("display", "none")
+    })
+}
+bindRejectSelect()
+//单项否决选择
+function bindRejectSelect(){
+    $('.rejectItem').on("click",function(){
+        const rejectItemName = $(this).attr("data-name")
+        const rejectItemId = $(this).attr("data-id")
+        isSingleReject=isSingleRejectTemp=rejectItemId
+        $('.selectReject').html(rejectItemName)
+        $(".rejectList ").css("display", "none")
+        $(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+    })
+}
+//是否启用选择
+function bindUsedSelect(){
+    $('.usedItem').on("click",function(){
+        const usedItemName = $(this).attr("data-name")
+        const usedItemItemId = $(this).attr("data-id")
+        isUsedTemp =usedItemItemId
+        $('.selectUsed').html(usedItemName)
+        $(".usedList").css("display", "none")
+        $(".selectUsed").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    })
+}
+
+
+
+
+//分页渲染
+function renderPagination(totalPage,activePage,totalNum){
+    let str = `<span class="totalSum">共${totalPage}页/${totalNum}条数据</span><span class="prePage"><img class="arrowPage" src=${arrowLeft} /></span>`
+    if(totalPage <= 6){
+        for(let i = 1; i <= totalPage; i++){
+            str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
+        }
+    }else{
+        if(activePage <= 3){ //选中页数小于4
+            for(let i = 1; i <= 4; i++){
+                str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
+            }
+            str += `<span class="more" >...</span>`
+        str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+
+        } else if(activePage > totalPage -3){
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-3)}" data-page=${totalPage -3}>${totalPage -3}</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-2)}" data-page=${totalPage -2}>${totalPage -2}</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-1)}" data-page=${totalPage -1}>${totalPage -1}</span>`
+            str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        } else {
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+(activePage -1)}" data-page=${activePage -1}>${activePage -1}</span>`
+            str += `<span class="pageNum ${'page'+activePage}" data-page=${activePage}>${activePage}</span>`
+            str += `<span class="pageNum ${'page'+(activePage +1)}" data-page=${activePage +1}>${activePage +1}</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        }
+       
+    }
+    str += `<span class="nextPage"><img class="arrowPage" src=${arrowRight} /></span>`
+    $('.pagination').html(str)
+    $('.page' + activePage).addClass('activePage')
+    $(".pageNum").on("click", function(e){
+        const activePageNow = Number($(this).attr('data-page'))
+        getTabData(activePageNow)
+        // renderPagination(totalPage,activePageNow,totalNum)
+    })
+    $(".prePage").on("click", function(e){
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if(activePageNow > 1){
+            activePageNow--
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    $(".nextPage").on("click", function(e){
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if(activePageNow < totalPage){
+            activePageNow++
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    
+}
+
+$(document).on("click", function(){
+    $(".moduleTypeList ").css("display", "none")
+    $(".rejectList ").css("display","none")
+    $(".usedList ").css("display", "none")
+    $(".selectModuleType .arrow").attr("src",iconDown)
+    $(".selectReject .arrow").attr("src",iconDown)
+    $(".selectUsed .arrow").attr("src",iconDown)
+})
+
+
+$(function() {
+    const  iconCalenBlue= require("./../images/darkDate.png")
+    const  iconCalenGrey= require("./../images/icon_calen_grey.png")
+    $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
+    $('.iconCalen').on("mouseenter", function(e){
+        $(this).attr("src", iconCalenBlue)
+    })
+    $('.iconCalen').on("mouseleave", function(e){
+        $(this).attr("src", iconCalenGrey)
+    })
+    $('.iconCalen').on("click", function(e){
+        $(this).parent().find("input").focus()
+    })
+  $('.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 = {
+      type: 0,
+      casesId:casesId, //模块Id
+      casesName:casesName=='全部'?'':casesName, //模块Id
+      isReject:isSingleReject, //是否单项否决
+      name: name, //条目名
+      deptName: deptId, //科室名
+      "isPlacefile":isPlacefile,
+      "startDate":startDateParam,
+      "endDate":endDateParam
+    };
+    expJson(api.exportItemFlaw,param).then(res =>{
+      downloadExportedData(res.data,"条目缺陷占比.xls")
+    })
+  })
+});

+ 2 - 0
src/js/partDetailControl.js

@@ -141,6 +141,8 @@ function getTabData(activePage){
     }
     startDateParam = dateStatrt
     endDateParam = dateEnd
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
     post(api.homePageLevelStatistics,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data||[];

+ 2 - 0
src/js/qcList.js

@@ -123,6 +123,8 @@ function getTabData(activePage){
         mrTimeStart: fpCheckDateStart.replace(/\//g,'-'), //首页核查起始时间
         mrTimeEnd: fpCheckDateEnd.replace(/\//g,'-'), //首页核查截止时间
     }
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
     return post(api.qcList,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data;

+ 2 - 0
src/js/qcListCopy.js

@@ -234,6 +234,8 @@ function getTabData(activePage){
     }
 
     let url = formatPostUrl(from)
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
     return post(url,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data;

+ 2 - 0
src/js/qcListDept.js

@@ -125,6 +125,8 @@ function getTabData(activePage){
         mrTimeStart: fpCheckDateStart.replace(/\//g,'-'), //首页核查起始时间
         mrTimeEnd: fpCheckDateEnd.replace(/\//g,'-'), //首页核查截止时间
     }
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
     return post(api.qcListByDept,param).then(res =>{
         if(res.data.code == '0'){
             tabList = res.data.data.records

+ 2 - 0
src/js/qcListDocteam.js

@@ -109,6 +109,8 @@ function getTabData(activePage){
         mrTimeStart: fpCheckDateStart.replace(/\//g,'-'), //首页核查起始时间
         mrTimeEnd: fpCheckDateEnd.replace(/\//g,'-'), //首页核查截止时间
     }
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
     return post(api.qcListByDoc,param).then(res =>{
         if(res.data.code == '0'){
             tabList = res.data.data.records

+ 8 - 1
src/js/qcListOutHospital.js

@@ -123,7 +123,12 @@ $("#filterToggler").click(function(){
 
 // YH-ZKK-CYRSTJ
 $(".menu .page", parent.document).removeClass("active")
-$(parent.document).find(".menu .page[code=YH-ZKK-CYRSTJ]").addClass("active")
+if(isPlacefile == '1'){
+    $(parent.document).find(".menu .page[code=YH-ZKK-CYRSTJ]").addClass("active")
+}else{
+    $(parent.document).find(".menu .page[code=YH-ZKK-RYRSTJ]").addClass("active")
+}
+
 //判断有无某一权限
   function hasData(data){
     let trdObj = JSON.parse(getCookie("trdObj"))
@@ -160,6 +165,8 @@ function getTabData(activePage){
         mrTimeStart: fpCheckDateStart.replace(/\//g,'-'), //首页核查起始时间
         mrTimeEnd: fpCheckDateEnd.replace(/\//g,'-'), //首页核查截止时间
     }
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
     return post(api.leaveHosMRPage,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data;

+ 2 - 0
src/js/qcListPerson.js

@@ -129,6 +129,8 @@ function getTabData(activePage){
         mrTimeStart: fpCheckDateStart.replace(/\//g,'-'), //首页核查起始时间
         mrTimeEnd: fpCheckDateEnd.replace(/\//g,'-'), //首页核查截止时间
     }
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
     return post(api.qcListByPerson,param).then(res =>{
         if(res.data.code == '0'){
             tabList = res.data.data.records

+ 25 - 11
src/js/qcScore.js

@@ -60,7 +60,6 @@ function initMenu(data){
     $(".sub-menu,.copy-right").show().animate({"width":"220px"},function(){
     });
     $(".tab-container").animate({"margin-left":"220px"});
-    
   });
   //右侧内容切换
   $(".page").on("click",function(){
@@ -73,7 +72,7 @@ function initMenu(data){
     }else{
       $(".check").css('display','block').text(global_check==1?'重新核查':'病历核查')
     }
-    if(title==="缺陷总览"||title==="谈话告知书"||title==="知情同意书"||title === '医嘱信息'){
+    if(title==="缺陷总览"||title==="谈话告知书"||title==="知情同意书"||title === '医嘱信息'||title === '检验信息'||title === '检查信息'){
       if(title==="缺陷总览"){
         getRecordDetailUpdate()
       }
@@ -82,14 +81,7 @@ function initMenu(data){
     }else{
       $(".flaw-table").hide();
     }
-    if(title === '医嘱信息'){
-      $("#contentIframeIn").css({display:'block'}).contents().find(".adviceWrp").height(window.innerHeight-$("#patientInfo").height()-20+'px')
-      $(window).resize(function(){
-        $("#contentIframeIn").contents().find(".adviceWrp").height(window.innerHeight-$("#patientInfo").height()-20+'px')
-      });
-    }else{
-      $("#contentIframeIn").css({display:'none'})
-    }
+    iframeShow(title)
     //选中样式
     $(".sub-menu .active,.menu-mini .active").removeClass('active');
     const mItems = $(".sub-menu .page[code="+title+"],.menu-mini .page[code="+title+"]");
@@ -106,6 +98,29 @@ function initMenu(data){
   });
   // initScroll("subMenu","Y",2)
 }
+function iframeShow(title){
+  if(title === '医嘱信息'){
+    $("#pacsIframeIn,#assistIframeIn,#pacsDetailIframeIn").css("display","none")
+    $("#contentIframeIn").css({display:'block'}).attr("src",'advice.html').contents().find(".adviceWrp").height(window.innerHeight-$("#patientInfo").height()-20+'px')
+    $(window).resize(function(){
+      $("#contentIframeIn").contents().find(".adviceWrp").height(window.innerHeight-$("#patientInfo").height()-20+'px')
+    });
+  }else if(title === '检验信息'){
+    $("#contentIframeIn,#assistIframeIn,#pacsDetailIframeIn").css("display","none")
+    $("#pacsIframeIn").css({display:'block'}).attr("src",'pacs.html').contents().find(".pacsWrp").height(window.innerHeight-$("#patientInfo").height()-20+'px')
+    $(window).resize(function(){
+      $("#pacsIframeIn").contents().find(".pacsWrp").height(window.innerHeight-$("#patientInfo").height()-20+'px')
+    });
+  }else if(title === '检查信息'){
+    $("#contentIframeIn,#pacsIframeIn,#pacsDetailIframeIn").css("display","none")
+    $("#assistIframeIn").css({display:'block'}).attr("src",'assist.html').contents().find(".assistWrp").height(window.innerHeight-$("#patientInfo").height()-20+'px')
+    $(window).resize(function(){
+      $("#assistIframeIn").contents().find(".assistWrp").height(window.innerHeight-$("#patientInfo").height()-20+'px')
+    });
+  }else{
+    $("#contentIframeIn,#pacsIframeIn,#pacsDetailIframeIn,#assistIframeIn").css({display:'none'})
+  }
+}
 //判断有无某一权限
 function hasData(data){
   let trdObj = JSON.parse(getCookie("trdObj"))
@@ -726,7 +741,6 @@ function formatFlawKeys(data){
     });
   }
   function checkQc(){
-    console.log('global_activeTab',global_activeTab)
     const param={
       behospitalCode:getUrlArgObject("id"),
       hospitalId:getUrlArgObject("hid"),

+ 2 - 0
src/js/quexianDetailControl.js

@@ -182,6 +182,8 @@ function getTabData(activePage){
     }
     startDateParam = dateStatrt
     endDateParam = dateEnd
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
     post(api.entryCountGroupByEntryPage,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data.records

+ 2 - 0
src/js/quexianDetailControlHome.js

@@ -188,6 +188,8 @@ function getTabData(activePage){
     }
     startDateParam = dateStatrt
     endDateParam = dateEnd
+    $('.pagination').html("")
+    $('tbody.tbodys').html(emptyBox('努力加载中...','',1))
     post(api.entryCountGroupByEntryPage,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data.records

+ 2 - 0
src/js/readmission.js

@@ -131,6 +131,8 @@ function getTabData(activePage){
   }
   startDateParam = dateStatrt
   endDateParam = dateEnd
+  $('.pagination').html("")
+  $('.tbody').html(emptyBox('努力加载中...','',1))
   post(api.reHos31DaysPage,param).then(res =>{
     if(res.data.code == '0'){
       const data = res.data.data||[];

+ 21 - 2
src/js/singleVeto.js

@@ -17,7 +17,7 @@ if(currentPage==="YH-ZKK-TMQXZB_XQ"){
   $(".export").css("display","inline-block");
 }
 
-let casesId="", name="", isReject ="",deptName="",startDateParam="",endDateParam="", isUsed ="",casesIdTemp="", nameTemp="", isRejectTemp ="",model='', isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId="",isSingleReject="", isSingleRejectTemp="",casesName="",casesNameTemp="",paramObj={}
+let casesId="",data_desc=['num'],data_asc=[], 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="下拉">`)
@@ -132,6 +132,22 @@ function bindDeptSelect(){
         $(".deptList").css("display", "none")
     })
 }
+
+$("th[code]").on("click",function(e){
+    const code=$(this).attr("code");
+    if(data_asc[0]==code){
+      data_desc=[code];
+      data_asc=[];
+      $("th[code]").removeClass("asc desc");
+      $(this).addClass("desc");
+    }else{
+      data_desc=[];
+      data_asc=[code];
+      $("th[code]").removeClass("asc desc");
+      $(this).addClass("asc");
+    }
+    getTabData(1);
+});
 //全选绑定
 
 $('.selectDept').on("click", function(e){
@@ -180,10 +196,14 @@ function getTabData(activePage){
         name: name, //条目名
         deptName: deptName, //科室名
         size: 15,
+        desc:data_desc,
+        asc:data_asc,
         "startDate":dateStatrt,
         "endDate":dateEnd
     }
     paramObj = param
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
     post(from == 1?api.entryGroupByEntryInnerPage:api.entryGroupByEntryAndDeptInnerPage,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data.records
@@ -245,7 +265,6 @@ $(".moduleItemInp").on("input", function(e){
     nameTemp = val
 })
 $(".filter").on("click", function(e){
-    console.log(deptName,848654165456456)
     casesId = casesIdTemp, name = nameTemp, isReject = isRejectTemp, isUsed = isUsedTemp,deptId = deptIdTemp,isSingleReject = isSingleRejectTemp,casesName = casesNameTemp 
     getTabData(1)
 })

+ 6 - 1
src/js/uccDetail.js

@@ -85,6 +85,8 @@ if(from==2){
     $('.selectDept').html(deptName)
 }else if(from==3){
     $(".partTitle .titlePic ").html(`<a href="uncorrectedCasesStatistics.html">时效性相关统计 / </a>病历列表`)
+}else if(from == 4){
+    $(".partTitle .titlePic ").html(`<a href="uncorrectedCopy.html">${isPlacefile==1?'终末病历稽查表':'运行病历稽查表'} / </a>病历列表`)
 }else{
     $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="singleVeto.html?from=1">条目缺陷占比 / </a>病历列表`)
 }
@@ -126,10 +128,11 @@ function getTabData(activePage){
     const param = {
         behospitalCode: behospitalCode,
         patName: name, //病人姓名
-        casesEntryName: casesEntryName,
+        // casesEntryName: casesEntryName,
         casesEntryId:casesId,
         behDeptName: deptName == "全部" ? "":deptName,
         doctorId: doctorNum,
+        hospitalId:getCookie("hospitalid"),
         doctorName: doctorName,
         level:level,//病历等级
         startDate: behosDateStart.replace(/\//g,'-'), //出院日期--开始时间
@@ -149,6 +152,8 @@ function getTabData(activePage){
         mrTimeStart: fpCheckDateStart.replace(/\//g,'-'), //首页核查起始时间
         mrTimeEnd: fpCheckDateEnd.replace(/\//g,'-'), //首页核查截止时间
     }
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',1))
     // return post(from==2?api.qcResultShortByDeptPage:api.qcResultDefectList,param).then(res =>{
     return post(api.unModifyMRPage,param).then(res =>{
         if(res.data.code == '0'){

+ 4 - 3
src/js/uncorrectedCasesStatistics.js

@@ -98,6 +98,8 @@ function getTabData(activePage){
   }
   startDateParam = dateStatrt
   endDateParam = dateEnd
+  $('.pagination').html("")
+  $('.key-list tbody').html(emptyBox('努力加载中...','',1))
   post(api.unModifyMRStatistics,param).then(res =>{
     if(res.data.code == '0'){
       const data = res.data.data||[];
@@ -156,10 +158,9 @@ function renderTab(data,hisId,activePage){
             str += `<td>${item.deptName+'' || "-"}</td>`
           }else{
             str += `<td class="goHomeDetail" dept-id="${item.deptId || ""}" dept-name="${item.deptName || ""}" data-id="${entryId || ""}" data-name="${entryName || ""}">${entryNum+'' || "-"}</td>`
-          }         
-      }      
+          }
+      }
     str += `</tr>`
-  
  }
   // for(let i = 0; i < data.length; i++){
   //   const item = data[i];

+ 400 - 0
src/js/uncorrectedCopy.js

@@ -0,0 +1,400 @@
+const $ = require('jquery');
+require("../css/uncorrectedCopy.less");
+require('./modal.js');
+const {api} = require('./api.js')
+const {post,getCookie,getUrlArgObjectNew,emptyBox,setTitleTxt,explainTitle,setDatePicker,getPickerDate,expJson,downloadExportedData,initScroll,listenScroll} = require('./utils.js')
+require('./../resource/jquery-ui/jquery-ui.min.js');
+require('./../resource/jquery-ui/jquery-ui.min.css');
+const iconCheck= require("./../images/icon_check.png")
+const iconUnCheck = require("./../images/icon_unchecked.png")
+const iconDown= require("./../images/arrow_down.png")
+const iconUp = require("./../images/arrow_up.png")
+const loadingImg = require("./../images/loading.gif")
+const arrowLeft= require("./../images/arrow_left.png")
+const arrowRight = require("./../images/arrow_right.png")
+let deptName = "", behospitalCode = "", deptNameTemp = "",orderTitle=[],orderKey=[],orderList=[], deptId = '', deptIdTemp = '', behospitalCodeTemp = "", data_desc = "", data_asc = "", columns = [], isfirstRenderTitle=false; 
+let srcUrl = $("#contentIframe",parent.document).attr("src")
+statisticsType = getUrlArgObjectNew("dateType",srcUrl)||"";
+from = getUrlArgObjectNew("from",srcUrl)||""
+lineType = getUrlArgObjectNew("lineType",srcUrl)||""
+let startDateParam = getUrlArgObjectNew("startDateParam",srcUrl)||""
+let endDateParam = getUrlArgObjectNew("endDateParam",srcUrl)||""
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+/*if(lineType){
+  $("th[code="+data_desc+"]").addClass("desc");
+}*/
+//setTitleTxt('',from)         //导航栏面包屑
+let isPlacefile = getCookie('isPlacefile')||1
+setTitleList()
+listenScroll()
+if(statisticsType == 1){
+  setDatePicker($("#datepicker"),$("#datepicker2"),1)
+}else if(statisticsType == 2){
+  setDatePicker($("#datepicker"),$("#datepicker2"),2)
+}else if(statisticsType == 3){
+  setDatePicker($("#datepicker"),$("#datepicker2"),3,new Date(startDateParam),new Date(endDateParam))
+}else{
+  setDatePicker($("#datepicker"),$("#datepicker2"),'default')
+}
+if(isPlacefile==1){
+  $(".dateTime").html('出院时间:')
+  $(".partTitle p span").html('终末病历稽查表')
+}else{
+  $(".dateTime").html('入院时间:')
+  $(".partTitle p span").html('运行病历稽查表')
+}
+if(!statisticsType){
+  setDatePicker($("#datepicker"),$("#datepicker2"),'default')
+}
+$(".abnormalClear").click(function(){
+  data_desc="";
+  data_asc="";
+  deptId="";
+  deptIdTemp="";
+  deptName="";
+  deptNameTemp="";
+  setDatePicker($("#datepicker"),$("#datepicker2"),"default")
+  $('.selectDept ').html('全部')
+  $('.patientNumInp').val('')
+  $(".deptList").css("display", "none")
+  $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`);
+  $("th[code]").removeClass("asc desc")
+  //behospitalCode =behospitalCodeTemp= ""
+  getTabData(1)
+})
+$(".partTitle a").click(function(){
+  //初始菜单选中
+  $(".menu .page",parent.document).removeClass("active").eq(0).addClass("active");
+  $(".container",parent.document).addClass("console-cont");
+})
+$(".menu .page", parent.document).removeClass("active")
+$(parent.document).find(".menu .page[code=YH-ZKK-YXBLJCB]").addClass("active")
+
+
+function setTitleList(){
+  $('.pagination').html("")
+  $('.key-list tbody').html(emptyBox('努力加载中...',26,1))
+  post(api.medicalCheckTitle,{}).then(res =>{
+    if(res.data.code == '0'){
+      const data = res.data.data||[];
+      getTabData(1)
+      if (isfirstRenderTitle === false) { renderTabTitle(data) }  //首次渲染渲染Table表头
+    }
+  })
+}
+function getTabData(activePage){
+  const dateStatrt = getPickerDate($("#datepicker"),1)
+  const dateEnd = getPickerDate($("#datepicker2"),2)
+  const start = new Date(dateStatrt).getTime()
+  const end = new Date(dateEnd).getTime()
+  if(start > end){
+    $.alerModal({"message":'开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+    return
+  }
+  const param = {
+    current: activePage,
+    size: 15,
+    "name": deptName,
+    // "asc":data_asc,     //升序
+    // "desc":data_desc,       //降序
+    "startDate":dateStatrt.replace(/\//g,'-'),
+    "endDate":dateEnd.replace(/\//g,'-'),
+    "isPlacefile":isPlacefile
+  }
+  startDateParam = dateStatrt
+  endDateParam = dateEnd
+  $('.pagination').html("")
+  $('.key-list tbody').html(emptyBox('努力加载中...',26,1))
+  post(api.medicalCheckForm,param).then(res =>{
+    if(res.data.code == '0'){
+      const data = res.data.data||[];
+      const totalPage = res.data.data.pages
+      const totalNum = res.data.data.total
+      renderTab(data,data.hospitalId,activePage);
+      renderPagination(totalPage,Number(activePage),totalNum)
+      if(totalPage > 1){
+        renderPagination(totalPage,Number(activePage),totalNum)
+      } else{
+        $('.pagination').html("")
+      }
+    }else{
+      $.alerModal({"message":res.data.msg,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+    }
+  }).catch((e) =>{
+
+  })
+}
+
+
+$(".filter").on("click", function(e){
+  // deptName = deptNameTemp;
+  behospitalCode = behospitalCodeTemp;
+  getTabData(1)
+})
+// // 处理th tr数据
+function formatTableData(data){
+  let newColumns = data.filter(function(item,index){
+    if(item.isShow === 1) {
+      return item
+    }
+  })
+  return newColumns
+}
+
+
+function renderTab(data,hisId,activePage){
+  data = data.records;
+  let str = ''
+  for(let i = 0; i < data.length; i++){
+    const item = data[i]
+    str += `
+        <tr  data-index=${i}>
+            <td  class="textCenter">${(activePage-1)*15 + i+1}</td>`
+      for(var j = 0; j < orderTitle.length; j++) {
+        let tmpKey = orderTitle[j]
+
+        if(tmpKey=='deptName'||tmpKey=='doctorName'){
+          str += `<td dept-id="${item.deptId || ""}" data-tid="${orderList[j].id}" data-doc="${item.doctorName}" dept-name="${item.deptName || ""}" data-id="${item.numId || ""}" data-name="${orderKey[j] || ""}">${item[tmpKey]+'' || "-"}</td>`
+        }else{
+          str += `<td class="goHomeDetail" data-tid="${orderList[j].id}" data-doc="${item.doctorName}" dept-id="${item.deptId || ""}" dept-name="${item.deptName || ""}" data-id="${item.numId || ""}" data-name="${orderKey[j] || ""}">${item[tmpKey]+'' || "-"}</td>`
+        }
+      }      
+    str += `</tr>`
+ }
+  
+  $('.key-list tbody').html(str?str:emptyBox())
+  /*bindScoreDetail(hisId)*/
+  // 跳转至详情页
+  $(".goHomeDetail").click(function(){
+    let casesName = $(this).attr("data-name") || '';
+    let casesId = $(this).attr("data-tid");
+    let name=$(this).attr("dept-name");
+    let docName=$(this).attr("data-doc");
+    name=name==="全院"?"全部":name;
+    let id=$(this).attr("dept-id");
+    $(parent.document).find("#contentIframe").attr("src","uccDetail.html?from=4&deptName="+name+"&deptId="+id+"&casesEntryId="+casesId+"&defectName="+casesName+"&startDate="+startDateParam+"&endDate="+endDateParam+"&docName="+docName)
+  })
+  // initScroll("partDetailControl","YX",1)
+}
+
+$('.selectDept').on("click", function(e){
+  e.stopPropagation()
+  $(".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(){
+  post(api.getDeptList,{inputStr:""}).then(res =>{
+    if(res.data.code == '0'){
+      const  deptList = res.data.data
+      rendeDeptList(deptList)
+    }else{}
+  }).catch((e) =>{
+
+  })
+}
+
+// 渲染table表头
+function renderTabTitle(data){
+  isfirstRenderTitle = true
+  let str = `
+  <th class="moduleName" style="width: 65px;">序号</th>`
+  for(let i = 0; i < data.length; i++){
+      const item = data[i]
+      if(item.isShow == 1){
+          // str += `<th class="textCenter beHospitalId" code="${item.fieldName}">${item.columnName}</th>`
+          str += `<th class="textCenter beHospitalId">${item.columnName}</th>`
+          orderList.push(item)
+      }
+  }
+  orderList.sort(des)
+  function des(a,b){
+    return a['orderNo']-b['orderNo']
+  }
+  orderTitleLis(orderList)
+  $(".tabTitle").html(str)
+  // bindOrder()
+}
+function orderTitleLis(data){
+  for(let i = 0;i < data.length;i++){
+    let key = data[i].columnName
+    orderTitle.push(explainTitle[key])
+    orderKey.push(key)
+  }
+}
+
+function rendeDeptList(deptList){
+  let str = `<li class="deptItem ellipsis" data-id=" " data-name="全部">全部</li>`;
+  for(let i = 0; i < deptList.length; i++){
+    str += `<li class="deptItem ellipsis" title=${deptList[i].deptName} data-id=${deptList[i].deptId} data-name=${deptList[i].deptName}> ${deptList[i].deptName}</li>`
+  }
+  $('.deptList').html(str)
+  bindDeptSelect()
+}
+//科室选择
+function bindDeptSelect(){
+  $('.deptItem').on("click",function(){
+    const deptItemName = $(this).attr("data-name")
+    const deptItemId = $(this).attr("data-id")
+    deptIdTemp =deptItemId;
+    deptNameTemp=deptItemName==="全部"?"":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()
+}
+$(document).on("click", function(){
+  $(".deptList").css("display", "none");
+  $(".selectDept .arrow").attr("src",iconDown)
+})
+// 上升下降筛选
+function bindOrder(){
+  $("th[code]").off("click").on("click",function(e){
+    const code=$(this).attr("code");
+    if(data_asc==code){
+      data_desc=code;
+      data_asc="";
+      $("th[code]").removeClass("asc desc");
+      $(this).addClass("desc");
+    }else{
+      data_desc="";
+      data_asc=code;
+      $("th[code]").removeClass("asc desc");
+      $(this).addClass("asc");
+    }
+    getTabData(1);
+  });
+}
+
+
+//分页渲染
+function 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)
+    }
+  })
+
+}
+
+$(".patientNumInp").on("input", function(e){
+  const val = $(this).val().trim()
+  deptName = val
+})
+
+$(function() {
+  const  iconCalenBlue= require("./../images/icon_calen_blue.png")
+  const  iconCalenGrey= require("./../images/icon_calen_grey.png")
+  $('.datapickerBox').append(`<img class="iconCalen" src=${iconCalenGrey} />`)
+  $('.iconCalen').on("mouseenter", function(e){
+    $(this).attr("src", iconCalenBlue)
+  })
+  $('.iconCalen').on("mouseleave", function(e){
+    $(this).attr("src", iconCalenGrey)
+  })
+  $('.iconCalen').on("click", function(e){
+    $(this).parent().find("input").focus()
+  })
+  $('.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: deptName,
+        // asc:data_asc,     //升序
+        // desc:data_desc,       //降序
+        startDate:startDateParam.replace(/\//g,'-'),
+        endDate:endDateParam.replace(/\//g,'-'),
+        isPlacefile:isPlacefile
+      }
+      expJson(api.medicalCheckExport,param).then(res =>{
+          downloadExportedData(res.data, isPlacefile==1?"终末病历稽查表.xls":"运行病历稽查表.xls")
+      })
+      
+      //  初始渲染TableTitle
+      // getPageSet().then(res =>{
+      //   $(".filter").click();   //初始查询
+      // })
+  })
+});

+ 32 - 6
src/js/utils.js

@@ -42,7 +42,8 @@ const pageMap={
   'YH-ZKK-CYRSTJ':'qcListOutHospital.html',
   'YH-ZKK-RYRSTJ':'qcListOutHospital.html?inner=2',
   'YH-ZKK-WZGBLTJ': 'uncorrectedCasesStatistics.html',
-  'YH-ZKK-31TZRYRS': 'readmission.html'
+  'YH-ZKK-31TZRYRS': 'readmission.html',
+  'YH-ZKK-YXBLJCB': 'uncorrectedCopy.html',
 };
 
 //导出时间天数
@@ -104,7 +105,7 @@ const getUrlArgObjectNew = function(name,srcUrl) {
   }
   return obj[name]
 }
-
+window.abortAjax = ''
 const post = function (url, data) {
   let isPlacefile = getCookie('isPlacefile')||1
   const token = getCookie('accessToken') || localStorage.getItem('accessToken')
@@ -120,7 +121,7 @@ const post = function (url, data) {
   }
   let need = window.location.href.indexOf('localhost')!=-1
   return new Utils((resolve, reject) => {
-    $.ajax({
+    abortAjax = $.ajax({
       method: 'post',
       url: (need?baseUrl:'')+url,
       async:true,
@@ -300,10 +301,10 @@ function focusMenuItem(code){
   //console.log($(parent.document).find(".menu .page[code='YH-ZKK-GMKQXZB_XQ']"))
   ele.click();
 }
-function emptyBox(name,showNum){
+function emptyBox(name,showNum,type){
   let showNumer = showNum || 18
   let str = `<tr><td colspan="${showNumer}" style="text-align: center;color: #aaa">
-  <img style="margin-top:50px;width:140px;" src="${require('../images/empty1.png')}" />
+  <img style="margin-top:50px;width:${type?'110':'140'}px;" src="${type?require('../images/dataing.png'):require('../images/empty1.png')}" />
   <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">${name||'暂无数据~'}</p>
   </td></tr>`
   return str
@@ -469,6 +470,31 @@ function listenScroll(dom){
   })
 }
 
+const explainTitle = {
+  '科室编码':'deptId',
+  '科室':'deptName',
+  '医疗组':'doctorName',
+  '入院记录24小时内':'ryjlw_24',
+  '首次病程记录8小时内':'scbcjlw_8h',
+  '副主任/主任医师首次查房72小时内完成':'zrsccfw_72h',
+  '入院后连记3天病程(不包括术后首程)':'ryhljbcw_3d',
+  '每周至少2次副主任/主任医师查房':'zrcfw_2w',
+  '每周至少3次主治医师查房记录':'zzcfw_3w',
+  '抢救记录6小时内完成':'qjjlw_6h',
+  '会诊记录在会诊申请后24小时完成':'hzjlw_24h',
+  '术前讨论、术前小结完成':'sqtlxjw',
+  '手术记录术后24小时内完成':'sxjlsw_24h',
+  '术后首程在术后30分钟内完成':'xhscw_30m',
+  '术后主刀查房24小时内完成':'shzdcfw_24h',
+  '术后连记3天病程(包括术后首程)':'shjbcw_3d',
+  '转科后连记3天病程(包括专科记录)':'zkjbcw_3d',
+  '转接科记录专科后24小时内完成':'zkjlw_24',
+  '病危/重患者每日记录病程':'bwzhjlbcw_md',
+  '输血后完成输血记录':'sxhwjl',
+  '24小时完成输血后评价':'sxpjw_24',
+  '危急值记录':'wjzwjl',
+  '住院30天阶段小结':'wywwcxj',
+}
 module.exports = {
   pageMap,
   exportTimeLimit,
@@ -492,5 +518,5 @@ module.exports = {
   isMac,
   initScroll,
   listenScroll,
-
+  explainTitle,
 };

+ 57 - 1
webpack.config.js

@@ -52,9 +52,13 @@ module.exports = {
     checkControl:path.resolve(__dirname, 'src/js', 'checkControl.js'),
     advice:path.resolve(__dirname, 'src/js', 'advice.js'),
     uncorrectedCasesStatistics:path.resolve(__dirname, 'src/js', 'uncorrectedCasesStatistics.js'),
+    uncorrectedCopy:path.resolve(__dirname, 'src/js', 'uncorrectedCopy.js'),
     uccDetail:path.resolve(__dirname, 'src/js', 'uccDetail.js'),
     readmission:path.resolve(__dirname, 'src/js', 'readmission.js'),
-    vendor: 'lodash'// 多个页面所需的公共库文件,防止重复打包带入
+    pacs:path.resolve(__dirname, 'src/js', 'pacs.js'),
+    pacsDetail:path.resolve(__dirname, 'src/js', 'pacsDetail.js'),
+    assist:path.resolve(__dirname, 'src/js', 'assist.js'),
+    vendor: 'lodash',  //多个页面所需的公共库文件,防止重复打包带入
   },
   output: {
     publicPath: '/', //这里要放的是静态资源CDN的地址
@@ -92,6 +96,58 @@ module.exports = {
         collapseWhitespace: true //删除空白符与换行符
       }
     }),
+    new HtmlWebpackPlugin({
+      title: 'uncorrectedCopy.html',
+      template: path.resolve(__dirname, 'src/html', 'uncorrectedCopy.html'),
+      filename: 'uncorrectedCopy.html',
+      chunks: ['uncorrectedCopy', 'vendor', 'common','scrollBar'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
+    new HtmlWebpackPlugin({
+      title: 'pacs.html',
+      template: path.resolve(__dirname, 'src/html', 'pacs.html'),
+      filename: 'pacs.html',
+      chunks: ['pacs', 'vendor', 'common','scrollBar'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
+    new HtmlWebpackPlugin({
+      title: 'pacsDetail.html',
+      template: path.resolve(__dirname, 'src/html', 'pacsDetail.html'),
+      filename: 'pacsDetail.html',
+      chunks: ['pacsDetail', 'vendor', 'common','scrollBar'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
+    new HtmlWebpackPlugin({
+      title: 'assist.html',
+      template: path.resolve(__dirname, 'src/html', 'assist.html'),
+      filename: 'assist.html',
+      chunks: ['assist', 'vendor', 'common','scrollBar'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
     new HtmlWebpackPlugin({
       title: 'advice.html',
       template: path.resolve(__dirname, 'src/html', 'advice.html'),