Browse Source

Merge remote-tracking branch 'origin/test_yw' into mergeAll0625

# Conflicts:
#	src/css/index.less
#	src/js/index.js
#	src/js/login.js
#	src/js/qcList.js
#	src/js/qcScore.js
#	src/js/utils.js
zhouna 4 years ago
parent
commit
e7e900e7f7
49 changed files with 8629 additions and 907 deletions
  1. 533 0
      src/css/allotCheckTask.less
  2. 387 0
      src/css/checkTaskList.less
  3. 71 2
      src/css/common.less
  4. 0 1
      src/css/console.less
  5. 479 0
      src/css/creatCheckTask.less
  6. 1 2
      src/css/index.less
  7. 468 0
      src/css/qcListDeptYw.less
  8. 417 0
      src/css/qcListYw.less
  9. 21 12
      src/css/qcScore.less
  10. 185 0
      src/html/allotCheckTask.html
  11. 115 0
      src/html/checkTaskList.html
  12. 156 0
      src/html/creatCheckTask.html
  13. 3 3
      src/html/dept/qcListCopyDept.html
  14. 3 3
      src/html/dept/qcListCopyUnqualifiedDept.html
  15. 3 3
      src/html/dept/qcListOutHospitalDept.html
  16. 3 3
      src/html/dept/uccDeptDetail.html
  17. 1 1
      src/html/index.html
  18. 3 3
      src/html/qcList.html
  19. 3 3
      src/html/qcListCopy.html
  20. 3 3
      src/html/qcListCopyUnqualified.html
  21. 3 3
      src/html/qcListDept.html
  22. 138 0
      src/html/qcListDeptYw.html
  23. 3 3
      src/html/qcListDocteam.html
  24. 3 3
      src/html/qcListOutHospital.html
  25. 3 3
      src/html/qcListPerson.html
  26. 136 0
      src/html/qcListYw.html
  27. 23 9
      src/html/qcScore.html
  28. 3 3
      src/html/uccDetail.html
  29. BIN
      src/images/Triangle.png
  30. BIN
      src/images/icon_dis.png
  31. BIN
      src/images/more.png
  32. BIN
      src/images/pop.png
  33. BIN
      src/images/radio.png
  34. BIN
      src/images/tag.png
  35. BIN
      src/images/unradio.png
  36. 950 0
      src/js/allotCheckTask.js
  37. 18 12
      src/js/api.js
  38. 503 0
      src/js/checkTaskList.js
  39. 5 61
      src/js/console.js
  40. 649 0
      src/js/creatCheckTask.js
  41. 0 12
      src/js/deptConsole.js
  42. 143 148
      src/js/index.js
  43. 11 0
      src/js/login.js
  44. 542 556
      src/js/qcList.js
  45. 1226 0
      src/js/qcListDeptYw.js
  46. 1230 0
      src/js/qcListYw.js
  47. 138 48
      src/js/qcScore.js
  48. 1 1
      src/js/roleManager.js
  49. 46 6
      src/js/utils.js

+ 533 - 0
src/css/allotCheckTask.less

@@ -0,0 +1,533 @@
+@import "./reset.less";
+.container{
+    width: 100%;
+    height: 100%;
+    overflow-x: auto;
+    overflow-y: hidden;
+    background: #fff;
+    border-bottom: 10px @disColor solid;
+    box-sizing: border-box;
+}
+ul,li{
+    list-style: none;
+}
+h2{
+    .h2;
+    border-bottom: 10px @disColor solid;
+    position: fixed;
+    top: 0;
+}
+.main-body{
+    .main-body-com;
+    padding:0;
+    border: none;
+    border-left:10px @disColor solid;
+    margin: 54px 0 0;
+    min-width: 1320px;
+    min-height: calc(100% - 54px);
+    // overflow: auto;
+}
+.borderRight{
+    position: absolute;
+    height: 100%;
+}
+.qctable{
+    .table;
+    th,td{
+        padding:5px 10px;
+    }
+ 
+    th{
+        white-space: nowrap;
+    }
+    th[code]{
+        cursor: pointer;
+        &:after{
+            content:"";
+            display:inline-block;
+            width: 11px;
+            height: 14px;
+            margin-left: 4px;
+            vertical-align: middle;
+            background-size: 100%;
+            background-image: url("../images/grey.png");
+        }
+        &.asc:after{
+            background: url("../images/up_blue.png");
+            background-size: 100%;
+        }
+        &.desc:after{
+            background: url("../images/down_blue.png");
+            background-size: 100%;
+        }
+    }
+    td{
+        white-space: nowrap;
+    }
+    .moduleNumber{
+        text-align: center;
+    }
+    .operaItem{
+        width: 50px;
+        position: relative;
+        img{
+            width: 15px;
+            height: 15px;
+        }
+    }
+    .tabTitle   {
+        background: #EFF0F9 !important;
+        .allCheck{
+            img{
+                width: 15px;
+                height: 15px;
+                cursor: pointer;
+                vertical-align: middle;
+            }
+        }
+      }
+    
+}
+.table-cont,.patient-table-cont{
+    overflow-y: auto;
+}
+.checkerTable .dot-over{
+    display: inline-block;
+    max-width: 90px;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+}
+.taskTable {
+    .dot-hide,.dot-long-hide{
+        display: inline-block;
+        width: 65px;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+    }
+    .dot-long-hide{
+        width: 100px;
+    }
+}
+tbody{
+    .job-num,.delete{
+        color: #00A1FF;
+        cursor: pointer;
+        &.disable{
+            color: #ccc;
+            cursor: unset;
+        }
+    }
+}
+.tabFoot{
+    height: 40px;
+    background: none;
+    /*border: 1px solid #E2E5EF;
+    border-top: none;
+    box-sizing: border-box;*/
+}
+.scoreOpera{
+    height: 50px;
+    line-height: 50px;
+    margin: 0 20px 0 0;
+    cursor: pointer;
+    img{
+        margin: 0 10px 0 0;
+        vertical-align: middle;
+    }
+}
+
+.recordScoreOperaBtn{
+    cursor: pointer;
+    color: @activeColor;
+}
+.recordScoreBtn{
+    cursor: pointer;
+    display: inline-block;
+    width:68px;
+    height:30px;
+    line-height: 30px;
+    text-align: center;
+    border-radius:4px;
+    box-sizing: border-box;
+    border: 1px solid @activeColor;
+    color: #fff;
+    background: @activeColor;
+}
+.filterBox{
+    position: relative;
+}
+.overAuto{
+    padding: 20px;
+    &.fl{
+        width: 460px;
+    }
+    &.fr{
+        width: calc(100% - 550px);
+        border-left: 10px #EFF1F6 solid;
+        /*.filter{
+            margin-left: 20px;
+        }*/
+    }
+}
+.toggle-item{
+display: none;
+}
+.filter-toggler{
+position: absolute;
+left: 601px;
+top: 8px;
+color: #777;
+white-space: nowrap;
+font-size: 14px;
+background: url("../images/arrow_up.png") 60px center no-repeat;
+padding-right: 15px;
+background-size: 10px 6px;
+&.up{
+background: url("../images/arrow_down.png") 60px center no-repeat;
+background-size: 10px 6px;
+}
+}
+.filterItem{
+position: relative;
+display: inline-block;
+float: left;
+height: 40px;
+line-height: 40px;
+margin-bottom:10px;
+/*margin-left: 20px;*/
+margin-right: 20px!important;
+    &:first-child{
+        margin-left: 0;
+    }
+
+span{
+display: inline-block;
+line-height: 32px;
+position: relative;
+}
+input{
+width:120px;
+height:32px;
+border-radius:4px;
+border: 1px solid #E2E5EF;
+outline: none;
+margin-right: 10px;
+padding: 0 10px;
+box-sizing: border-box;
+}
+input:focus{
+border: 1px solid @activeColor ;
+outline: 0;
+-webkit-box-shadow:@activeColor  0px 0px 2px;
+-moz-box-shadow: @activeColor  0px 0px 2px;
+box-shadow: @activeColor  0px 0px 2px;
+}
+}
+
+.filterDropList{
+position: absolute;
+right: 0;
+top: 34px !important;
+max-height: 200px;
+overflow-y: auto;
+background: #fff;
+display: none;
+border: 1px solid #e4e7ed;
+box-shadow: 0 2px 12px 0 #e4e7ed;
+z-index: 2;
+li{
+padding: 0 10px;
+}
+}
+.deptList{
+width: 160px;
+max-height: 400px;
+}
+.checkerList,.scoreList{
+width: 120px;
+// height: 200px;
+li:hover{
+background-color: #EEF4FF;
+cursor: pointer;
+}
+}
+.selectLevel,.selectDept,.selectAllDept,.selectChecker,.selectScore{
+display: inline-block;
+position: relative;
+width:120px;
+padding: 0 10px;
+overflow: hidden;
+text-overflow: ellipsis;
+white-space: nowrap;
+height:32px;
+border-radius:4px;
+border: 1px solid #E2E5EF;
+box-sizing: border-box;
+cursor: pointer;
+}
+.selectDept{
+width: 160px;
+}
+
+.filter,.reset,.export,.save-btn,.del-confirm,.cancel{
+display: inline-block;
+width:60px;
+height:32px;
+background:@activeColor;
+border-radius:4px;
+color: #fff;
+text-align: center;
+line-height: 32px;
+position: relative;
+top: 2px;
+cursor: pointer;
+float: left;
+margin: 0 0px 10px 0;
+}
+.oper{
+    text-align: center;
+    margin:0 auto 0;
+    border-top: 10px #EFF1F6 solid;
+    border-bottom: 10px #EFF1F6 solid;
+    padding: 10px 20px;
+    .save-btn{
+        width: 139px;
+        float: none;
+        margin-bottom: 4px;
+    }
+    background: #fff;
+
+}
+.del-confirm,.cancel{
+    width: 68px;
+    height: 28px;
+    line-height: 28px;
+}
+.del-confirm{
+    background: #FF4D4F;
+}
+.cancel{
+    background: #E4E3E3;
+    margin-left: 20px;
+}
+.export{
+height:34px;
+background: #fff;
+border-radius: 4px;
+color: #777;
+border: 1px solid #777;
+box-sizing: border-box;
+cursor: pointer;
+margin-left: 10px;
+float: left;
+top: 0px;
+}
+.arrow{
+position: absolute;
+width: 10px;
+top: 12px;
+right: 10px;
+}
+.iconCheck{
+width: 14px;
+}
+.fl{
+float: left;
+}
+.clearfix:after {
+content: '';
+height: 0;
+line-height: 0;
+display: block;
+visibility: hidden;
+clear: both;
+}
+.clearfix{
+zoom:1
+}
+.divide{
+margin: 0 10px;
+}
+.datapickerBox{
+position: relative;
+display: inline-block;
+width: 120px;
+height: 32px;
+input{
+position: absolute;
+}
+}
+.setCol{
+color: #777;
+cursor: pointer;
+margin: 0 0 0  50px;
+}
+.iconSetting{
+width: 18px;
+position: relative;
+top: 3px;
+margin: 0 3px 0 0;
+}
+.iconCalen{
+position: absolute;
+width: 15px;
+top: 10px;
+right: 10px;
+}
+.textCenter{
+text-align: center;
+}
+.patientNameSpan{
+color: @activeColor;
+cursor: pointer;
+}
+
+.deptItem:hover,.deptAllItem:hover,.checkerItem:hover{
+background-color: #EEF4FF;
+cursor: pointer;
+}
+.ellipsis{
+overflow: hidden;
+text-overflow:ellipsis;
+white-space: nowrap;
+}
+.unSelect{
+color: #cfccd6
+}
+
+
+.pagination{
+margin: 15px 0 10px 0 ;
+text-align: right;
+}
+.totalSum{
+font-size:12px;
+line-height:17px;
+color: #777777;
+margin-right: 20px;
+}
+.pageNum,.prePage,.nextPage, .more{
+display: inline-block;
+width: 20px;
+cursor: pointer;
+margin: 0 20px 0 0;
+text-align: center;
+color: #777;
+}
+.prePage,.nextPage{
+img{
+position: relative;
+top: 0px   ;
+}
+}
+.more{
+cursor: not-allowed;
+}
+.arrowPage{
+width: 6px;
+}
+.activePage{
+color: @activeColor;
+}
+.tipIcon{
+color: #777;
+cursor: pointer;
+display: inline-block;
+margin-left: 6px;
+margin-right: 2px;
+}
+.toolTipIcon{
+width: 18px;
+position: relative;
+top: 3px;
+}
+
+.tooltip{
+visibility: hidden;
+position: relative;
+padding: 7px 10px;
+border-radius: 4px;
+margin: 100px auto;
+background-color: #4D4D4D;
+text-align: center;
+color: #fff;
+font-size: 14px;
+}
+.tooltip:before{
+content: '';
+display: block;
+position: absolute;
+bottom: 9px;
+left: -12px;
+border-bottom: 6px solid transparent;
+border-top: 6px solid transparent;
+border-left: 6px solid transparent;
+border-right: 6px solid #4D4D4D;
+}
+
+.tabBox {
+    .tabs{
+      display: none;
+        padding: 22px 0 4px  20px;
+        border-bottom: 10px #EFF1F6 solid;
+    }
+.tab{
+    display: inline-block;
+    button{
+        cursor: pointer;
+        width: 138px;
+        height: 34px;
+        text-align: center;
+        border-radius: 4px;
+    }
+    .active{
+        color: #00A1FF;
+        background: #E7F1FB;
+        font-weight: bold;
+    }
+}
+}
+.del-pop{
+    display: none;
+    position: absolute;
+    right: 4px;
+    top: 27px;
+    z-index: 1;
+    background: url("../images/Triangle.png") 170px 0  no-repeat;
+    padding-top: 12px;
+    .pop-body{
+      width: 182px;
+      height: 76px;
+      background: #fff;
+      box-shadow: 2px 2px 16px 0px #B7B7B7;
+      border-radius: 22px;
+      padding:10px 20px 20px;
+      .pop-title{
+        margin: 15px 0 10px;
+      }
+      .pop-btns{
+        margin-left: 16px;
+      }
+    }
+
+}
+.modal-container .modal-box{
+    width: 800px;
+    left: 50%;
+    margin-left: -400px;
+    top:50%;
+    margin-top: -216px;
+    .modal-body{
+        padding: 32px 16px;
+        .task-table-cont{
+            height: 326px;
+            overflow-y: auto;
+            padding-bottom: 2px;
+        }
+    }
+}
+
+
+

+ 387 - 0
src/css/checkTaskList.less

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

+ 71 - 2
src/css/common.less

@@ -249,8 +249,77 @@ input:-ms-input-placeholder, textarea:-ms-input-placeholder {
     }
 }
 
-
-
+.filterHide{
+    display: none!important;
+}
 input.canEditDept {
     width: 160px !important;
+}
+
+/*******弹窗*******/
+.modal-container{
+    display: none;
+    position: fixed;
+    width: 100%;
+    height: 100%;
+    top:0;
+    left: 0;
+    z-index: 99;
+    .cover{
+        position: fixed;
+        width: 100%;
+        height: 100%;
+        background: #000;
+        opacity: 0.16;
+
+    }
+    .modal-box{
+        position: fixed;
+        width: 50%;
+        left: 25%;
+        top:100px;
+        background: #fff;
+        border-radius: 4px;
+        min-width: 615px;
+    }
+    .modal-title{
+        border-bottom: 1px #E2E5EF solid;
+        height: 40px;
+        line-height: 42px;
+        padding: 0 20px;
+        .close{
+            color: #8C8C8C;
+            font-size: 20px;
+            cursor: pointer;
+        }
+    }
+    .modal-body{
+        padding:32px 38px;
+
+    }
+    .footer{
+        text-align: center;
+        button{
+            width: 80px;
+            height: 32px;
+            background: #00A1FF;
+            border-radius: 4px;
+            color: #fff;
+            text-align: center;
+            line-height: 32px;
+            position: relative;
+            margin-bottom: 32px;
+            cursor: pointer;
+        }
+        .confirm{
+
+        }
+        .cancel{
+            margin-left: 20px;
+            color: #00A1FF;
+            border:1px #00A1FF solid;
+            background: #fff;
+        }
+    }
+
 }

+ 0 - 1
src/css/console.less

@@ -15,7 +15,6 @@ div.console {
     border-left: 0 none;
     border-radius: 4px;
     overflow: hidden;
-    box-sizing: border-box;
     height: 28px !important;
     line-height: 28px !important;
     box-sizing: border-box;

+ 479 - 0
src/css/creatCheckTask.less

@@ -0,0 +1,479 @@
+@import "./reset.less";
+.container{
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+    background: #fff;
+    border-bottom: 10px @disColor solid;
+    box-sizing: border-box;
+}
+ul,li{
+    list-style: none;
+}
+h2{
+    .h2;
+    border-bottom: 10px @disColor solid;
+    position: fixed;
+    top: 0;
+}
+.main-body{
+    .main-body-com;
+    padding: 0;
+    border: none;
+    border-left:10px @disColor solid;
+    margin: 54px 0 0;
+    min-width: 1090px;
+    min-height: calc(100% - 54px);
+    // overflow: auto;
+}
+.borderRight{
+    position: absolute;
+    height: 100%;
+}
+.qctable{
+    .table;
+    min-width: 1090px;
+    th,td{
+        padding:5px 10px;
+    }
+ 
+    th{
+        white-space: nowrap;
+    }
+    th[code]{
+        cursor: pointer;
+        &:after{
+            content:"";
+            display:inline-block;
+            width: 11px;
+            height: 14px;
+            margin-left: 4px;
+            vertical-align: middle;
+            background-size: 100%;
+            background-image: url("../images/grey.png");
+        }
+        &.asc:after{
+            background: url("../images/up_blue.png");
+            background-size: 100%;
+        }
+        &.desc:after{
+            background: url("../images/down_blue.png");
+            background-size: 100%;
+        }
+    }
+    td{
+        white-space: nowrap;
+    }
+    .moduleNumber{
+        text-align: center;
+    }
+    .operaItem{
+        img{
+            width: 15px;
+            height: 15px;
+            cursor: pointer;
+        }
+    }
+    .taskCancel{
+        color: #00A1FF;
+        cursor: pointer;
+    }
+    .disable{
+        color: #ccc;
+        cursor: unset;
+    }
+    .tabTitle   {
+        background: #EFF0F9 !important;
+        .allCheck{
+            img{
+                width: 15px;
+                height: 15px;
+                cursor: pointer;
+                vertical-align: middle;
+            }
+        }
+      }
+    
+}
+.tabFoot{
+    height: 40px;
+    background: none;
+    /*border: 1px solid #E2E5EF;
+    border-top: none;
+    box-sizing: border-box;*/
+}
+.scoreOpera{
+    height: 50px;
+    line-height: 50px;
+    margin: 0 20px 0 0;
+    cursor: pointer;
+    img{
+        margin: 0 10px 0 0;
+        vertical-align: middle;
+    }
+}
+
+.recordScoreOperaBtn{
+    cursor: pointer;
+    color: @activeColor;
+}
+.recordScoreBtn{
+    cursor: pointer;
+    display: inline-block;
+    width:68px;
+    height:30px;
+    line-height: 30px;
+    text-align: center;
+    border-radius:4px;
+    box-sizing: border-box;
+    border: 1px solid @activeColor;
+    color: #fff;
+    background: @activeColor;
+}
+.filterBox{
+    position: relative;
+    padding: 20px 25px 0;
+    .mini-inp{
+        width: 40px;
+    }
+}
+.overAuto{
+    .fl{
+        width: 40px;
+    }
+    .fr{
+        width: 60%;
+    }
+    padding: 20px;
+
+}
+.toggle-item{
+    display: none;
+}
+.filter-toggler{
+    position: absolute;
+    left: 1048px;
+    top: 8px;
+    color: #777;
+    white-space: nowrap;
+    font-size: 14px;
+    background: url("../images/arrow_up.png") 60px center no-repeat;
+    padding-right: 15px;
+    background-size: 10px 6px;
+    &.up{
+        background: url("../images/arrow_down.png") 60px center no-repeat;
+        background-size: 10px 6px;
+    }
+}
+.filterItem{
+    position: relative;
+    display: inline-block;
+    float: left;
+    height: 40px;
+    line-height: 40px;
+    margin: 0 20px 20px 0;
+    span{
+        display: inline-block;
+        line-height: 32px;
+        position: relative;
+    }
+    input{
+        width:120px;
+        height:32px;
+        border-radius:4px;
+        border: 1px solid #E2E5EF;
+        outline: none;
+        margin-right: 10px;
+        padding: 0 10px;
+        box-sizing: border-box;
+    }
+    input:focus{
+        border: 1px solid @activeColor ;
+        outline: 0;
+        -webkit-box-shadow:@activeColor  0px 0px 2px;
+        -moz-box-shadow: @activeColor  0px 0px 2px;
+        box-shadow: @activeColor  0px 0px 2px;
+    }
+}
+
+.filterDropList{
+    position: absolute;
+    right: 0;
+    top: 34px !important;
+    max-height: 200px;
+    overflow-y: auto;
+    background: #fff;
+    display: none;
+    border: 1px solid #e4e7ed;
+    box-shadow: 0 2px 12px 0 #e4e7ed;
+    z-index: 2;
+    li{
+        padding: 0 10px;
+    }
+}
+.deptList{
+    width: 160px;
+    max-height: 400px;
+}
+.levelList,.checkList,.statusList,.scoreList{
+    width: 120px;
+    // height: 200px;
+    li:hover{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+}
+.selectLevel,.selectDept,.selectStatus,.selectScore{
+    display: inline-block;
+    position: relative;
+    width:120px;
+    padding: 0 10px;
+    height:32px;
+    border-radius:4px;
+    border: 1px solid #E2E5EF;
+    box-sizing: border-box;
+    cursor: pointer;
+}
+.selectDept{
+    width: 160px;
+    i{
+        display: inline-block;
+        max-width: 118px;
+        white-space: nowrap;
+        overflow: hidden;
+        text-overflow: ellipsis;
+    }
+}
+
+.filter,.reset,.export{
+    display: inline-block;
+    width:60px;
+    height:32px;
+    background:@activeColor;
+    border-radius:4px;
+    color: #fff;
+    text-align: center;
+    line-height: 32px;
+    position: relative;
+    top: 2px;
+    cursor: pointer;
+    float: left;
+    margin: 0 0px 22px 0;
+}
+.export{
+    height:34px;
+    background: #fff;
+    border-radius: 4px;
+    color: #777;
+    border: 1px solid #777;
+    box-sizing: border-box;
+    cursor: pointer;
+    margin-left: 10px;
+    float: left;
+    top: 0px;
+}
+.arrow{
+    position: absolute;
+    width: 10px;
+    top: 12px;
+    right: 10px;
+}
+.iconCheck{
+    width: 14px;
+}
+.fl{
+    float: left;
+}
+.clearfix:after {
+    content: '';
+    height: 0;
+    line-height: 0;
+    display: block;
+    visibility: hidden;
+    clear: both;
+}
+.clearfix{
+    zoom:1
+}
+.divide{
+    margin: 0 10px;
+}
+.datapickerBox{
+    position: relative;
+    display: inline-block;
+    width: 120px;
+    height: 32px;
+    input{
+        position: absolute;
+    }
+}
+.setCol{
+    color: #777;
+    cursor: pointer;
+    margin: 0 0 0  50px;
+}
+.iconSetting{
+    width: 18px;
+    position: relative;
+    top: 3px;
+    margin: 0 3px 0 0;
+}
+.iconCalen{
+    position: absolute;
+    width: 15px;
+    top: 10px;
+    right: 10px;
+}
+.textCenter{
+    text-align: center;
+}
+.patientNameSpan{
+    color: @activeColor;
+    cursor: pointer;
+}
+
+.deptItem:hover,.deptItem.active{
+    background-color: #E7F1FB;
+    cursor: pointer;
+}
+.ellipsis{
+    overflow: hidden;
+    text-overflow:ellipsis;
+    white-space: nowrap;
+}
+.unSelect{
+    color: #cfccd6
+ }
+
+
+.pagination{
+    margin: 35px 0 20px 0  ;
+    text-align: right;
+}
+.totalSum{
+    font-size:12px;
+    line-height:17px;
+    color: #777777;
+    margin-right: 20px;
+}
+.pageNum,.prePage,.nextPage, .more{
+    display: inline-block;
+    width: 20px;
+    cursor: pointer;
+    margin: 0 20px 0 0;
+    text-align: center;
+    color: #777;
+}
+.prePage,.nextPage{
+    img{
+        position: relative;
+        top: 0px   ;
+    }
+}
+ .more{
+    cursor: not-allowed;
+}
+.arrowPage{
+    width: 6px;
+}
+.activePage{
+    color: @activeColor;
+}
+.tipIcon{
+  color: #777;
+  cursor: pointer;
+  display: inline-block;
+  margin-left: 6px;
+  margin-right: 2px;
+}
+.toolTipIcon{
+    width: 18px;
+    position: relative;
+    top: 3px;
+}
+
+.tooltip{
+    visibility: hidden;
+    position: relative;
+    padding: 7px 10px;
+    border-radius: 4px;
+    margin: 100px auto;
+    background-color: #4D4D4D;
+    text-align: center;
+    color: #fff;
+    font-size: 14px;
+}
+.tooltip:before{
+    content: '';
+    display: block;
+    position: absolute;
+    bottom: 9px;
+    left: -12px;
+    border-bottom: 6px solid transparent;
+    border-top: 6px solid transparent;
+    border-left: 6px solid transparent;
+    border-right: 6px solid #4D4D4D;
+}
+
+.tabBox {
+    .tabs{
+        display: none;
+        padding: 22px 0 4px  20px;
+        border-bottom: 10px #EFF1F6 solid;
+        border-top: 10px #EFF1F6 solid;
+    }
+    .tab{
+        display: inline-block;
+        button{
+            cursor: pointer;
+            width: 138px;
+            height: 34px;
+            text-align: center;
+            border-radius: 4px;
+        }
+        .active{
+            color: #00A1FF;
+            background: #E7F1FB;
+            font-weight: bold;
+        }
+    }
+    .creatTask,.cancelTask{
+        width: 80px;
+        height: 32px;
+        background: #00A1FF;
+        border-radius: 4px;
+        color: #fff;
+        text-align: center;
+        line-height: 32px;
+        position: relative;
+        top: 15px;
+        left: 20px;
+        margin-bottom: 32px;
+        cursor: pointer;
+        float: left;
+      margin-right: 10px;
+      &.disabled{
+        background: #ccc;
+        border:none;
+        color: #fff;
+        cursor: unset;
+      }
+    }
+  .cancelTask{
+    background: none;
+    border:1px #00A1FF solid;
+    color: #00A1FF;
+  }
+}
+.modal-container .modal-box{
+   width: 400px;
+    left: 50%;
+    margin-left: -200px;
+    min-width: 400px;
+    top: 50%;
+    margin-top: -100px;
+}
+
+
+
+

+ 1 - 2
src/css/index.less

@@ -3,7 +3,6 @@
 .container{
   height: 100%;
 }
-
 .tips{
   width: 420px;
   height: 24px;
@@ -180,7 +179,7 @@
         text-indent: 42px;
         background: url("../images/module.png") 16px 12px no-repeat;
         margin-bottom: 10px;
-        // background-color: red;
+        /*background-color: red;*/
       }
 
     }

+ 468 - 0
src/css/qcListDeptYw.less

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

+ 417 - 0
src/css/qcListYw.less

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

+ 21 - 12
src/css/qcScore.less

@@ -31,7 +31,7 @@
     margin-right: 40px;
     display: inline-block;
   }
-  .check{
+  .check,.ywCheck{
     display: inline-block;
     padding: 0px 13px;
     background: #00A1FF;
@@ -45,6 +45,9 @@
     margin-right: 25px;
     cursor: pointer;
   }
+  .ywCheck{
+    display: none;
+  }
 }
 .sub-menu{
   position: relative;
@@ -316,6 +319,7 @@
   background: @disColor;
   /*height: 100%;*/
   .content-box{
+    display: none;
     width:78%;
     height: 100%;
     background: #fff;
@@ -398,6 +402,7 @@
           border:1px @tableBorderColor solid;
           line-height: 20px;
           padding: 7px 8px;
+          white-space: nowrap;
         }
       }
       .table-tip{
@@ -412,6 +417,7 @@
       background: @thBgColor;
       line-height: 20px;
       padding: 7px 8px;
+      white-space: nowrap;
     }
     td{
       text-align: center;
@@ -543,20 +549,23 @@
       .opers{
         padding-right: 5px;
       }
+      .info{
+        p{
+          font-size: 12px;
+        }
+
+        .name{
+          max-width: 100px;
+        }
+      }
+      .delete{
+        text-decoration: line-through;
+      }
       .title{
         box-sizing: border-box;
         padding:5px;
-        .add-icon{
-          font-size: 12px;
-          display: inline-block;
-          text-align: center;
-          width:32px;
-          height:14px;
-          line-height: 14px;
-          color: #FFAD00;
-          border:1px #FFAD00 solid;
-          border-radius:8px;
-          margin-right: 6px;
+        img{
+          vertical-align: middle;
         }
       }
       &.active .title{

+ 185 - 0
src/html/allotCheckTask.html

@@ -0,0 +1,185 @@
+<!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 qcList">
+        <h2>分配核查任务</h2>
+        <div class="main-body">
+            <div class="tabBox">
+                <div class="tabs">
+                    <ul>
+                        <li class="tab"><button class="active" data-code="0">科室任务</button></li>
+                        <li class="tab"><button data-code="1">质控科任务</button></li>
+                        <li class="tab"><button data-code="2">院级任务</button></li>
+                    </ul>
+                </div>
+                <div class="tableBox clearfix">
+                    <div class="overAuto fl">
+                        <div class="filterBox">
+                            <div class="clearfix">
+                                <span class="filterItem">
+                                    <span>科室:</span>
+                                    <span class="selectDept">
+                                        <i>全部</i>
+                                        <img class="arrow" src="./../images/arrow_down.png" alt="下拉">
+                                    </span>
+                                    <ul class="deptList filterDropList">
+                                    </ul>
+                                </span>
+                                <span class="filterItem">
+                                    <span>核查员:</span>
+                                    <span class="selectChecker">
+                                        <i>全部</i>
+                                        <img class="arrow" src="./../images/arrow_down.png" alt="下拉">
+                                    </span>
+                                    <ul class="checkerList filterDropList">
+                                    </ul>
+                                </span>
+                            </div>
+                        </div>
+                        <div class="table-cont">
+                            <table class="qctable checkerTable">
+                                <thead>
+                                <tr class="tabTitle">
+                                    <th class="recordScoreOpera textCenter">操作</th>
+                                    <th class="textCenter" valCode="deptName">科室</th>
+                                    <th class="textCenter" valCode="doctorName">核查员</th>
+                                    <th class="textCenter" valCode="jobNum">待核查</th>
+                                    <th class="textCenter" valCode="checkNum">已核查</th>
+                                </tr>
+                                </thead>
+                                <tbody class="tbody">
+
+                                </tbody>
+                                <tfoot>
+                                </tfoot>
+                            </table>
+                        </div>
+                    </div>
+                    <div class="overAuto fr">
+                        <div class="filterBox">
+                            <div class="clearfix">
+                                <span class="filterItem">
+                                    <span>病人住院序号:</span>
+                                    <input code="behospitalCode" type="text" placeholder="病人住院序号">
+                                </span>
+                                <span class="filterItem">
+                                    <span>筛选分值:</span>
+                                    <span class="selectScore">
+                                        <i>全部</i>
+                                        <img class="arrow" src="./../images/arrow_down.png" alt="下拉">
+                                    </span>
+                                    <ul class="scoreList filterDropList">
+
+                                    </ul>
+                                </span>
+                                <span class="filter">查询</span>
+                                <span class="filterclear abnormalClear filterclearT">重置</span>
+                                <!--<span class="export">导出</span>-->
+                            </div>
+                            <a href="javascript:void(0);" class="filter-toggler up" id="filterToggler">展开筛选</a>
+                            <div class="toggle-item clearfix">
+                                <span class="filterItem">
+                                    <span>医生姓名:</span>
+                                    <input code="doctorName" type="text" placeholder="医生姓名">
+                                </span>
+                                <span class="filterItem typeFilter clearfix" >
+                                    <span class="fl">生成日期:</span>
+                                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" code="startTime" id="datepicker" autocomplete="off" readonly /></span>
+                                    <span  class="divide fl">-</span>
+                                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" code="endTime" id="datepicker2"  autocomplete="off" readonly/></span>
+                                </span>
+                                <span class="filterItem typeFilter clearfix" >
+                                    <span class="fl">出院日期:</span>
+                                    <span class="datapickerBox fl"><input type="text" code="behosDateStart" placeholder="请选择时间" id="datepicker3" autocomplete="off" readonly /></span>
+                                    <span  class="divide fl">-</span>
+                                    <span class="datapickerBox fl"><input type="text" code="behosDateEnd" placeholder="请选择时间" id="datepicker4"  autocomplete="off" readonly/></span>
+                                </span>
+                                <span class="filterItem patDeptFilter">
+                                    <span>科室:</span>
+                                    <span class="selectAllDept">
+                                        <i>全部</i>
+                                        <img class="arrow" src="./../images/arrow_down.png" alt="下拉">
+                                    </span>
+                                    <ul class="deptAllList filterDropList">
+                                    </ul>
+                                </span>
+                                <span class="filterItem">
+                                    <span>病人姓名:</span>
+                                    <input code="name" type="text" placeholder="病人姓名">
+                                </span>
+                            </div>
+                        </div>
+                        <div class="patient-table-cont">
+                            <table class="qctable patientTable">
+                                <thead>
+                                <tr class="tabTitle">
+                                    <th class="allCheck textCenter" style="width: 65px;"><img code="" src="../images/icon_dis.png" alt=""></th>
+                                    <th class="patientName textCenter" style="width: 100px;" valCode="name">病人姓名</th>
+                                    <th class="beHospitalId textCenter" valCode="behospitalCode">病人住院序号</th>
+                                    <th class="deptName textCenter" valCode="behospitalDept">科室</th>
+                                    <th class="doctorName textCenter" valCode="attendingDoctor">主管医生</th>
+                                    <th class="outHospitalDate textCenter" valCode="leaveHospitalDate" code="leaveHospitalDate">出院日期</th>
+                                    <th class="outHospitalDate textCenter desc" valCode="jobCreateTime" code="jobCreateTime">生成日期</th>
+                                    <th class="recordScore textCenter" valCode="value" code="value">筛选分值</th>
+                                </tr>
+                                </thead>
+                                <tbody class="tbody">
+
+                                </tbody>
+                                <tfoot>
+                                </tfoot>
+                            </table>
+                        </div>
+                        <div class="pagination"></div>
+                    </div>
+                </div>
+                <div class="oper">
+                    <button class="save-btn">保存分配</button>
+                </div>
+            </div>
+        </div>
+        <div class="modal-container">
+            <div class="cover"></div>
+            <div class="modal-box">
+                <div class="modal-title">
+                    <span class="title">待核查任务</span>
+                    <a class="close fr">×</a>
+                </div>
+                <div class="modal-body">
+                    <div class="task-table-cont">
+                        <table class="qctable taskTable">
+                            <thead>
+                            <tr class="tabTitle">
+                                <th class="patientName textCenter" style="width: 100px;" valCode="name">病人姓名</th>
+                                <th class="beHospitalId textCenter" valCode="behospitalCode">病人住院序号</th>
+                                <th class="deptName textCenter" valCode="behospitalDept">科室</th>
+                                <th class="doctorName textCenter" valCode="attendingDoctor">主管医生</th>
+                                <th class="outHospitalDate textCenter desc" valCode="leaveHospitalDate" code="leaveHospitalDate">出院日期</th>
+                                <th class="recordScore textCenter" valCode="value" code="value">筛选分值</th>
+                                <th class="recordScore textCenter" valCode="jobDistributorName" code="jobDistributorName">分配人</th>
+                                <th class="recordScoreOpera textCenter" style="width: 65px;">操作</th>
+                            </tr>
+                            </thead>
+                            <tbody class="tbody">
+
+                            </tbody>
+                            <tfoot>
+                            </tfoot>
+                        </table>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</body>
+
+</html>

+ 115 - 0
src/html/checkTaskList.html

@@ -0,0 +1,115 @@
+<!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 qcList">
+    <h2>核查任务列表</h2>
+    <div class="main-body"><div class="filterBox">
+        <div class="clearfix">
+        <span class="filterItem">
+            <span>病历核查状态:</span>
+            <span class="selectStatus">全部</span>
+            <ul class="statusList filterDropList">
+                <Li class="statusItem" data-name="全部" data-id="">全部</Li>
+                <li class="statusItem" data-name="已核查" data-id='1'>已核查</li>
+                <li class="statusItem" data-name="未核查" data-id='0'>未核查</li>
+            </ul>
+        </span>
+            <span class="filterItem typeFilter deptListWrap">
+            <span>科室:</span>
+            <span class="selectDept">全部</span>
+            <!--<input type="text" code="behDeptId" class="selectDept canEditDept" value="全部">-->
+            <ul class="deptList filterDropList"></ul>
+        </span>
+            <span class="filterItem">
+            <span>病人姓名:</span>
+            <input type="text" code="name" placeholder="病人姓名">
+        </span>
+            <span class="filterItem">
+            <span>病人住院序号:</span>
+            <input type="text" code="behospitalCode" placeholder="病人住院序号">
+        </span>
+        <span class="filterItem">
+            <span>医生姓名:</span>
+            <input type="text" code="doctorName" placeholder="医生姓名">
+        </span>
+            <span class="filterItem">
+            <span>核查员:</span>
+            <input type="text" code="checkName" placeholder="核查员">
+        </span>
+        <span class="filterItem typeFilter clearfix" >
+            <span class="fl">分配日期:</span>
+            <span class="datapickerBox fl"><input type="text" code="jobDistributionTimeStart" placeholder="请选择时间" id="datepicker" autocomplete="off" readonly /></span>
+            <span  class="divide fl">-</span>
+            <span class="datapickerBox fl"><input type="text" code="jobDistributionTimeEnd" placeholder="请选择时间" id="datepicker2"  autocomplete="off" readonly/></span>
+        </span>
+        <span class="filterItem">
+            <span>病历等级:</span>
+            <span class="selectLevel">全部</span>
+            <ul class="levelList filterDropList">
+                <Li class="levelItem" data-name="全部" data-id="">全部</Li>
+                <!--<Li class="levelItem" data-name="未评分" data-id="未评分">未评分</Li>-->
+                <Li class="levelItem" data-name="甲" data-id="甲">甲</Li>
+                <li class="levelItem" data-name="乙" data-id=乙>乙</li>
+                <li class="levelItem" data-name="丙" data-id=丙>丙</li>
+            </ul>
+        </span>
+        <span class="filterItem">
+            <span>任务来源:</span>
+            <span class="selectScore">
+                <i>全部</i>
+                <img class="arrow" src="./../images/arrow_down.png" alt="下拉">
+            </span>
+            <ul class="scoreList filterDropList">
+
+            </ul>
+        </span>
+            <span class="filter">查询</span>
+            <span class="filterclear abnormalClear filterclearT">重置</span>
+            <!--<span class="export">导出</span>-->
+        </div>
+
+    </div>
+         <div class="overAuto">
+             <table class="qctable">
+                 <thead>
+                 <tr class="tabTitle">
+                     <th class="textCenter" valCode="behospitalCode">病人住院序号</th>
+                     <th class="scoreTime textCenter" valCode="jobTypeName">任务来源</th>
+                     <th class="scoreTime textCenter" valCode="month">任务月份</th>
+                     <th class="doctorName textCenter" valCode="status" >病历核查状态</th>
+                     <th class="deptName textCenter" valCode="behDeptName">科室</th>
+                     <th class="patientName textCenter" valCode="name"  style="width: 100px;">病人姓名</th>
+                     <th class="patientNo textCenter" valCode="fileCode" >病案号</th>
+                     <th class="doctorName textCenter" valCode="doctorName">主管医生</th>
+                     <th class="outHospitalDate textCenter" valCode="leaveHospitalDate" >出院日期</th>
+                     <th class="inHospitalDate textCenter desc" valCode="jobDistributionTime"  code="jobDistributionTime">分配日期</th>
+                     <th class="patientSex textCenter" valCode="checkTime" code="checkTime">核查日期</th>
+                     <th class="patientage textCenter" valCode="checkName">核查员</th>
+                     <th class="bedNum textCenter" valCode="casesEntryNum" code="casesEntryNum">缺陷数</th>
+                     <th class="recordLevel textCenter" valCode="level" >病历等级</th>
+                     <th class="recordScore textCenter" valCode="scoreRes" >病历得分</th>
+                     <!-- <th class="recordScoreOpera textCenter" style="width: 65px;">操作</th> -->
+                 </tr>
+                 </thead>
+                 <tbody class="tbody">
+
+                 </tbody>
+                 <tfoot>
+                 </tfoot>
+             </table>
+         </div>
+         <div class="pagination"></div>
+     </div>
+</div>
+</body>
+
+</html>

+ 156 - 0
src/html/creatCheckTask.html

@@ -0,0 +1,156 @@
+<!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 qcList">
+        <h2>生成核查任务</h2>
+        <div class="main-body">
+            <div class="filterBox">
+                <div class="clearfix">
+                     <span class="filterItem typeFilter clearfix" >
+                        <span class="fl">出院日期:</span>
+                        <span class="datapickerBox fl"><input type="text" code="startDate" placeholder="请选择时间" id="datepicker" autocomplete="off"/></span>
+                        <span  class="divide fl">-</span>
+                        <span class="datapickerBox fl"><input type="text" code="endDate" placeholder="请选择时间" id="datepicker2"  autocomplete="off"/></span>
+                    </span>
+                    <span class="filterItem">
+                        <span>生成状态:</span>
+                        <span class="selectStatus">
+                            <i>未生成</i>
+                            <img class="arrow" src="./../images/arrow_down.png" alt="下拉">
+                        </span>
+                        <ul class="statusList filterDropList">
+                            <li class="statusItem" data-name="未生成" data-id='0'>未生成</li>
+                            <li class="statusItem" data-name="已生成" data-id='1'>已生成</li>
+                        </ul>
+                    </span>
+                    <span class="filterItem typeFilter">
+                        <span>病人姓名:</span>
+                        <input class="patientName" code="name" type="text" placeholder="病人姓名">
+                    </span>
+                    <span class="filterItem typeFilter">
+                        <span>病人住院序号:</span>
+                        <input class="patientNumInp" code="behospitalCode" type="text" placeholder="病人住院序号">
+                    </span>
+                     <span class="filterItem typeFilter deptListWrap">
+                        <span>科室:</span>
+                        <span class="selectDept">
+                            <i>全部</i>
+                            <img class="arrow" src="./../images/arrow_down.png" alt="下拉">
+                        </span>
+                        <ul class="deptList filterDropList"></ul>
+                    </span>
+                    <span class="filterItem typeFilter">
+                        <span>住院天数:</span>
+                        <input class="mini-inp dayMin" code="smallDay" type="text"> -
+                        <input class="mini-inp dayMax" code="bigDay" type="text"> 天
+                    </span>
+                    <span class="filterItem typeFilter">
+                        <span>医生姓名:</span>
+                        <input class="doctorInp" code="doctorName" type="text" placeholder="医生姓名">
+                    </span>
+                    <span class="filterItem typeFilter">
+                        <span>主诊断:</span>
+                        <input class="mainDiag" code="diagnose" type="text" placeholder="主诊断">
+                    </span>
+                     <span class="filterItem">
+                        <span>病历等级:</span>
+                        <span class="selectLevel">
+                            <i>全部</i>
+                            <img class="arrow" src="./../images/arrow_down.png" alt="下拉">
+                        </span>
+                        <ul class="levelList filterDropList">
+                            <Li class="levelItem" data-name="全部" data-id="">全部</Li>
+                            <!--<Li class="levelItem" data-name="未评分" data-id="未评分">未评分</Li>-->
+                            <Li class="levelItem" data-name="甲" data-id="甲">甲</Li>
+                            <li class="levelItem" data-name="乙" data-id=乙>乙</li>
+                            <li class="levelItem" data-name="丙" data-id=丙>丙</li>
+                        </ul>
+                    </span>
+                    <span class="filterItem">
+                        <span>筛选分值:</span>
+                        <span class="selectScore">
+                            <i>全部</i>
+                            <img class="arrow" src="./../images/arrow_down.png" alt="下拉">
+                        </span>
+                        <ul class="scoreList filterDropList">
+
+                        </ul>
+                    </span>
+                    <span class="filter">查询</span>
+                    <span class="filterclear abnormalClear filterclearT">重置</span>
+                    <!--<span class="export">导出</span>-->
+                </div>
+            </div>
+            <div class="tabBox">
+                <div class="tabs">
+                    <ul>
+                        <li class="tab"><button class="active" data-code="0">科室任务</button></li>
+                        <li class="tab"><button data-code="1">质控科任务</button></li>
+                        <li class="tab"><button data-code="2">院级任务</button></li>
+                    </ul>
+                </div>
+                <button class="creatTask">生成任务</button>
+                <button class="cancelTask disabled">取消任务</button>
+            <div class="overAuto">
+                <table class="qctable">
+                    <thead>
+                    <tr class="tabTitle">
+                        <th class="allCheck textCenter" style="width: 65px;"><img code="" src="../images/icon_dis.png" alt=""></th>
+                        <th class="beHospitalId textCenter" valCode="behospitalCode">病人住院序号</th>
+                        <th class="patientName textCenter" valCode="name" style="width: 100px;">病人姓名</th>
+                        <th class="patientNo textCenter" valCode="fileCode">病案号</th>
+                        <th class="patientSex textCenter" valCode="sex">性别</th>
+                        <th class="patientage textCenter" valCode="age">年龄</th>
+                        <th class="bedNum textCenter" valCode="behDeptName">科室</th>
+                        <th class="outHospitalDate textCenter desc" valCode="leaveHospitalDate">出院日期</th>
+                        <th class="inHospitalDate textCenter" valCode="behospitalDayNum">住院天数</th>
+                        <th class="doctorName textCenter" valCode="doctorName">主管医生</th>
+                        <th class="recordLevel textCenter" valCode="level">病历等级</th>
+                        <th class="diagnose textCenter" valCode="diagnose">主诊断</th>
+                        <th class="doctorName textCenter" valCode="score" code="score">筛选分值</th>
+                        <th class="doctorName textCenter" valCode="creatStatus">生成状态</th>
+                        <th class="doctorName textCenter" valCode="jobCreatorName">生成人</th>
+                        <th class="deptName textCenter" valCode="jobCreateTime" code="jobCreateTime">生成日期</th>
+                        <th class="recordScoreOpera textCenter" style="width: 65px;">操作</th>
+                    </tr>
+                    </thead>
+                    <tbody class="tbody">
+
+                    </tbody>
+                    <tfoot>
+                    </tfoot>
+                </table>
+            </div>
+
+            <div class="pagination"></div>
+        </div>
+        </div>
+    </div>
+    <div class="modal-container">
+        <div class="cover"></div>
+        <div class="modal-box">
+            <div class="modal-title">
+                <span class="title">提示</span>
+                <a class="close fr">×</a>
+            </div>
+            <div class="modal-body">
+                <p>确定要生成这些任务吗?</p>
+            </div>
+            <div class="footer">
+                <button class="confirm">确定</button>
+                <button class="cancel">取消</button>
+            </div>
+        </div>
+    </div>
+</body>
+
+</html>

+ 3 - 3
src/html/dept/qcListCopyDept.html

@@ -61,7 +61,7 @@
                         <span>医生工号:</span>
                         <input class="doctorNumInp" type="text" placeholder="请输入医生工号">
                     </span>
-                    <span class="filterItem fpFilterItem">
+                    <span class="filterItem filterHide fpFilterItem">
                         <span>病案首页核查状态:</span>
                         <span class="fpSelectCheck">全部</span>
                         <ul class="checkList filterDropList fpCheckList">
@@ -70,11 +70,11 @@
                             <Li class="fpCheckItem" data-name="已核查" data-id="1">已核查</Li>
                         </ul>
                     </span>
-                    <span class="filterItem doctorFilter fpFilterItem">
+                    <span class="filterItem filterHide doctorFilter fpFilterItem">
                         <span>病案首页核查人:</span>
                         <input class="fpCheckPeople" type="text" placeholder="请输入核查人">
                     </span>
-                    <span class="filterItem typeFilter clearfix" >
+                    <span class="filterItem filterHide typeFilter clearfix" >
                         <span class="fl">病案首页核查时间:</span>
                         <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerFp1" autocomplete="off" readonly /></span>
                         <span  class="divide fl">-</span>

+ 3 - 3
src/html/dept/qcListCopyUnqualifiedDept.html

@@ -62,7 +62,7 @@
                         <span>医生工号:</span>
                         <input class="doctorNumInp" type="text" placeholder="请输入医生工号">
                     </span>
-                    <span class="filterItem fpFilterItem">
+                    <span class="filterItem filterHide fpFilterItem">
                         <span>病案首页核查状态:</span>
                         <span class="fpSelectCheck">全部</span>
                         <ul class="checkList filterDropList fpCheckList">
@@ -71,11 +71,11 @@
                             <Li class="fpCheckItem" data-name="已核查" data-id="1">已核查</Li>
                         </ul>
                     </span>
-                    <span class="filterItem doctorFilter fpFilterItem">
+                    <span class="filterItem filterHide doctorFilter fpFilterItem">
                         <span>病案首页核查人:</span>
                         <input class="fpCheckPeople" type="text" placeholder="请输入核查人">
                     </span>
-                    <span class="filterItem typeFilter clearfix" >
+                    <span class="filterItem filterHide typeFilter clearfix" >
                         <span class="fl">病案首页核查时间:</span>
                         <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerFp1" autocomplete="off" readonly /></span>
                         <span  class="divide fl">-</span>

+ 3 - 3
src/html/dept/qcListOutHospitalDept.html

@@ -78,7 +78,7 @@
                         <input class="doctorNumInp" type="text" placeholder="请输入医生工号">
                     </span>
                     
-                    <span class="filterItem fpFilterItem">
+                    <span class="filterItem filterHide fpFilterItem">
                         <span>病案首页核查状态:</span>
                         <span class="fpSelectCheck">全部</span>
                         <ul class="checkList filterDropList fpCheckList">
@@ -87,11 +87,11 @@
                             <Li class="fpCheckItem" data-name="已核查" data-id="1">已核查</Li>
                         </ul>
                     </span>
-                    <span class="filterItem doctorFilter fpFilterItem">
+                    <span class="filterItem filterHide doctorFilter fpFilterItem">
                         <span>病案首页核查人:</span>
                         <input class="fpCheckPeople" type="text" placeholder=" 请输入核查人">
                     </span>
-                    <span class="filterItem typeFilter clearfix" >
+                    <span class="filterItem filterHide typeFilter clearfix" >
                         <span class="fl">病案首页核查时间:</span>
                         <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerFp1" autocomplete="off" readonly /></span>
                         <span  class="divide fl">-</span>

+ 3 - 3
src/html/dept/uccDeptDetail.html

@@ -87,7 +87,7 @@
               <input class="doctorNumInp" type="text" placeholder="请输入医生工号" />
             </span>
 
-            <span class="filterItem fpFilterItem">
+            <span class="filterItem filterHide fpFilterItem">
               <span>病案首页核查状态:</span>
               <span class="fpSelectCheck">全部</span>
               <ul class="checkList filterDropList fpCheckList">
@@ -96,11 +96,11 @@
                 <li class="fpCheckItem" data-name="已核查" data-id="1">已核查</li>
               </ul>
             </span>
-            <span class="filterItem doctorFilter fpFilterItem">
+            <span class="filterItem filterHide doctorFilter fpFilterItem">
               <span>病案首页核查人:</span>
               <input class="fpCheckPeople" type="text" placeholder=" 请输入核查人" />
             </span>
-            <span class="filterItem typeFilter clearfix">
+            <span class="filterItem filterHide typeFilter clearfix">
               <span class="fl">病案首页核查时间:</span>
               <span class="datapickerBox fl">
                 <input

+ 1 - 1
src/html/index.html

@@ -18,7 +18,7 @@
     {{/if}}
         <ul>
             {{each subMenuList}}
-                {{if isPlacefile!=1&&code!='YH-ZKK-BASYHGLZB_XQ'&&code!='YH-ZKK-CYRSTJ'&&code!='YH-ZKK-ZKHCTJ'&&code!='YH-KSZR-BASYHGLZB_XQ'&&code!='YH-KSZR-ZKHCTJ_XQ'&&code!='YH-KSZR-ZMBLJCS_XQ'&&code!='YH-ZKK-ZMBLJCB'&&code!='YH-KSZR-CYRSTJ_XQ'}}
+                {{if isPlacefile!=1&&code!='YH-KSZR-BLZK_XQ'&&code!='YH-ZKK-BLZK_XQ'&&code!='YH-ZKK-BASYHGLZB_XQ'&&code!='YH-ZKK-CYRSTJ'&&code!='YH-ZKK-ZKHCTJ'&&code!='YH-KSZR-BASYHGLZB_XQ'&&code!='YH-KSZR-ZKHCTJ_XQ'&&code!='YH-KSZR-ZMBLJCS_XQ'&&code!='YH-ZKK-ZMBLJCB'&&code!='YH-KSZR-CYRSTJ_XQ'}}
                     <!-- {{if code == 'YH-ZKK-YXBLJCB'}}
                         <li class="page" code="${code}">运行病历稽查表</li>
                     {{else}}

+ 3 - 3
src/html/qcList.html

@@ -59,7 +59,7 @@
                         <span>医生工号:</span>
                         <input class="doctorNumInp" type="text" placeholder="请输入医生工号">
                     </span>
-                    <span class="filterItem fpFilterItem">
+                    <span class="filterItem filterHide fpFilterItem">
                         <span>病案首页核查状态:</span>
                         <span class="fpSelectCheck">全部</span>
                         <ul class="checkList filterDropList fpCheckList">
@@ -68,11 +68,11 @@
                             <Li class="fpCheckItem" data-name="已核查" data-id="1">已核查</Li>
                         </ul>
                     </span>
-                    <span class="filterItem doctorFilter fpFilterItem">
+                    <span class="filterItem filterHide doctorFilter fpFilterItem">
                         <span>病案首页核查人:</span>
                         <input class="fpCheckPeople" type="text" placeholder="请输入核查人">
                     </span>
-                    <span class="filterItem typeFilter clearfix" >
+                    <span class="filterItem filterHide typeFilter clearfix" >
                         <span class="fl">病案首页核查时间:</span>
                         <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerFp1" autocomplete="off" readonly /></span>
                         <span  class="divide fl">-</span>

+ 3 - 3
src/html/qcListCopy.html

@@ -62,7 +62,7 @@
                         <span>医生工号:</span>
                         <input class="doctorNumInp" type="text" placeholder="请输入医生工号">
                     </span>
-                    <span class="filterItem fpFilterItem">
+                    <span class="filterItem filterHide fpFilterItem">
                         <span>病案首页核查状态:</span>
                         <span class="fpSelectCheck">全部</span>
                         <ul class="checkList filterDropList fpCheckList">
@@ -71,11 +71,11 @@
                             <Li class="fpCheckItem" data-name="已核查" data-id="1">已核查</Li>
                         </ul>
                     </span>
-                    <span class="filterItem doctorFilter fpFilterItem">
+                    <span class="filterItem filterHide doctorFilter fpFilterItem">
                         <span>病案首页核查人:</span>
                         <input class="fpCheckPeople" type="text" placeholder="请输入核查人">
                     </span>
-                    <span class="filterItem typeFilter clearfix" >
+                    <span class="filterItem filterHide typeFilter clearfix" >
                         <span class="fl">病案首页核查时间:</span>
                         <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerFp1" autocomplete="off" readonly /></span>
                         <span  class="divide fl">-</span>

+ 3 - 3
src/html/qcListCopyUnqualified.html

@@ -64,7 +64,7 @@
                         <span>医生工号:</span>
                         <input class="doctorNumInp" type="text" placeholder="请输入医生工号">
                     </span>
-                    <span class="filterItem fpFilterItem">
+                    <span class="filterItem filterHide fpFilterItem">
                         <span>病案首页核查状态:</span>
                         <span class="fpSelectCheck">全部</span>
                         <ul class="checkList filterDropList fpCheckList">
@@ -73,11 +73,11 @@
                             <Li class="fpCheckItem" data-name="已核查" data-id="1">已核查</Li>
                         </ul>
                     </span>
-                    <span class="filterItem doctorFilter fpFilterItem">
+                    <span class="filterItem filterHide doctorFilter fpFilterItem">
                         <span>病案首页核查人:</span>
                         <input class="fpCheckPeople" type="text" placeholder="请输入核查人">
                     </span>
-                    <span class="filterItem typeFilter clearfix" >
+                    <span class="filterItem filterHide typeFilter clearfix" >
                         <span class="fl">病案首页核查时间:</span>
                         <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerFp1" autocomplete="off" readonly /></span>
                         <span  class="divide fl">-</span>

+ 3 - 3
src/html/qcListDept.html

@@ -62,7 +62,7 @@
                         <span>医生工号:</span>
                         <input class="doctorNumInp" type="text" placeholder="请输入医生工号">
                     </span>
-                    <span class="filterItem fpFilterItem">
+                    <span class="filterItem filterHide fpFilterItem">
                         <span>病案首页核查状态:</span>
                         <span class="fpSelectCheck">全部</span>
                         <ul class="checkList filterDropList fpCheckList">
@@ -71,11 +71,11 @@
                             <Li class="fpCheckItem" data-name="已核查" data-id="1">已核查</Li>
                         </ul>
                     </span>
-                    <span class="filterItem doctorFilter fpFilterItem">
+                    <span class="filterItem filterHide doctorFilter fpFilterItem">
                         <span>病案首页核查人:</span>
                         <input class="fpCheckPeople" type="text" placeholder="请输入核查人">
                     </span>
-                    <span class="filterItem typeFilter clearfix" >
+                    <span class="filterItem filterHide typeFilter clearfix" >
                         <span class="fl">病案首页核查时间:</span>
                         <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerFp1" autocomplete="off" readonly /></span>
                         <span  class="divide fl">-</span>

+ 138 - 0
src/html/qcListDeptYw.html

@@ -0,0 +1,138 @@
+<!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 qcListDept">
+        <h2>病历质控报表</h2>
+        <div class="main-body">
+            <div class="filterBox">
+                <div class="clearfix">
+                    <span class="filterItem typeFilter">
+                        <span>科室:</span>
+                        <span class="selectDept">
+                            全部
+                        </span>
+
+                        <ul class="deptList filterDropList"></ul>
+                    </span>
+                    <span class="filterItem typeFilter clearfix">
+                        <span class="fl">出院日期:</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" readonly/></span>
+                        <span  class="divide fl">-</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" readonly/></span>
+                    </span>
+                    <span class="filterItem">
+                        <span>病历等级:</span>
+                        <span class="selectLevel">全部</span>
+                        <ul class="levelList filterDropList">
+                            <Li class="levelItem" data-name="全部" data-id="全部">全部</Li>
+                            <Li class="levelItem" data-name="未评分" data-id="未评分">未评分</Li>
+                            <Li class="levelItem" data-name="甲" data-id="甲">甲</Li>
+                            <li class="levelItem" data-name="乙" data-id=乙>乙</li>
+                            <li class="levelItem" data-name="丙" data-id=丙>丙</li>
+                        </ul>
+                    </span>
+                    <span class="filter">查询</span>
+                    <span class="filterclear abnormalClear filterclearT">重置</span>
+                    <span class="export">导出</span>
+                </div>
+                <a href="javascript:void(0);" class="filter-toggler up" id="filterToggler">展开筛选</a>
+                <div class="toggle-item clearfix">
+                    <span class="filterItem typeFilter">
+                        <span>病人姓名:</span>
+                        <input class="patientNameInp" type="text" placeholder="请输入病人姓名">
+                    </span>
+                    <span class="filterItem typeFilter">
+                        <span>病人住院序号:</span>
+                        <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入病人住院序号">
+                    </span>
+                    <span class="filterItem doctorFilter">
+                        <span>主管医生:</span>
+                        <input class="doctorInp" type="text" placeholder="请输入主管医生">
+                    </span>
+                    <!--<span class="filterItem doctorFilter fpFilterItem">
+                        <span>病案首页核查人:</span>
+                        <input class="fpCheckPeople" type="text" placeholder="请输入核查人">
+                    </span>-->
+                    <span class="filterItem doctorFilter qcFiliterItem">
+                        <span>病历核查人:</span>
+                        <input class="qcCheckPeople" type="text" placeholder="请输入核查人">
+                    </span>
+                </div>
+            </div>
+            <div class="overAuto">
+                <table class="qctable">
+                    <thead>
+                    <!--<tr class="tabOpera">
+                        <!-- colspan="18" style="background: #fff">
+                            <div class="tabFoot">
+                                <span class="scoreOpera" data-selectAll=false><img class="iconCheck" src="../images/icon_unchecked.png" alt="checkbox">全选</span>
+                                <span class="recordScoreBtn">评分</span>
+                            </div>
+                        </td>
+                        </tr>-->
+                        <tr class="tabTitle">
+                            <th class="beHospitalId textCenter">序号</th>
+                            <th class="patientName textCenter" code="name" key="name" style="width: 100px;">病人姓名</th>
+                            <th class="beHospitalId textCenter" code="behospitalCode" key="behospitalCode">病人住院序号</th>
+                            <th class="doctorName textCenter" code="doctorName" key="doctorName">主管医生</th>
+                            <th class="deptName textCenter" code="deptName" key="deptName">科室</th>
+                            <th class="outHospitalDate textCenter desc" code="leaveHospitalDate" key="leaveHospitalDate">出院日期</th>
+                            <th class="patientNo textCenter" key="medHomePage">病案首页</th>
+                            <th class="patientNo textCenter" key="medHomePageScore">扣分</th>
+                            <th class="patientNo textCenter" key="admissionNote">入院记录</th>
+                            <th class="patientNo textCenter" key="admissionNoteScore">扣分</th>
+                            <th class="patientNo textCenter" key="firstCourseNote">首次病程录</th>
+                            <th class="patientNo textCenter" key="firstCourseNoteScore">扣分</th>
+                            <th class="patientNo textCenter" key="courseRecord">病程记录</th>
+                            <th class="patientNo textCenter" key="courseRecordScore">扣分</th>
+                            <th class="patientNo textCenter" key="operationInfo">手术信息</th>
+                            <th class="patientNo textCenter" key="operationInfoScore">扣分</th>
+                            <th class="patientNo textCenter" key="dischargeNote">出院记录</th>
+                            <th class="patientNo textCenter" key="dischargeNoteScore">扣分</th>
+                            <th class="patientNo textCenter" key="docAdviceNote">医嘱单</th>
+                            <th class="patientNo textCenter" key="docAdviceNoteScore">扣分</th>
+                            <th class="patientNo textCenter" key="otherCase">其他</th>
+                            <th class="patientNo textCenter" key="otherCaseScore">扣分</th>
+                            <th class="recordScore textCenter" key="totalScore">总分</th>
+                            <th class="recordLevel textCenter" code="level" key="level">病历等级</th>
+                            <th class="patientSex textCenter" code="mrName" key="mrName">病案首页核查人</th>
+                            <th class="patientSex textCenter" code="chName" key="chName">病历核查人</th>
+                        </tr>
+                    </thead>
+                    <tbody class="tbody">
+
+                    </tbody>
+                    <!-- <tfoot>
+                    <tr>
+                        <td colspan="17">
+                            <div class="tabFoot">
+                                <span class="scoreOpera" data-selectAll=false><img class="iconCheck" src="../images/icon_unchecked.png" alt="checkbox">全选</span>
+                                <span class="recordScoreBtn">评分</span>
+                            </div>
+                        </td>
+                    </tr>
+                    </tfoot> -->
+                </table>
+            </div>
+
+            <!--<div class="tabFoot">
+                <span class="scoreOpera" data-selectAll=false><img class="iconCheck" src="" alt="checkbox">全选</span>
+                <span class="recordScoreBtn">评分</span>
+            </div>-->
+
+            <div class="pagination"></div>
+        </div>
+        
+    </div>
+</body>
+
+</html>

+ 3 - 3
src/html/qcListDocteam.html

@@ -54,7 +54,7 @@
                         <span>医生工号:</span>
                         <input class="doctorNumInp" type="text" placeholder="请输入医生工号">
                     </span>
-                    <span class="filterItem fpFilterItem">
+                    <span class="filterItem filterHide fpFilterItem">
                         <span>病案首页核查状态:</span>
                         <span class="fpSelectCheck">全部</span>
                         <ul class="checkList filterDropList fpCheckList">
@@ -63,11 +63,11 @@
                             <Li class="fpCheckItem" data-name="已核查" data-id="1">已核查</Li>
                         </ul>
                     </span>
-                    <span class="filterItem doctorFilter fpFilterItem">
+                    <span class="filterItem filterHide doctorFilter fpFilterItem">
                         <span>病案首页核查人:</span>
                         <input class="fpCheckPeople" type="text" placeholder=" 请输入核查人">
                     </span>
-                    <span class="filterItem typeFilter clearfix" >
+                    <span class="filterItem filterHide typeFilter clearfix" >
                         <span class="fl">病案首页核查时间:</span>
                         <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerFp1" autocomplete="off" readonly /></span>
                         <span  class="divide fl">-</span>

+ 3 - 3
src/html/qcListOutHospital.html

@@ -79,7 +79,7 @@
                         <input class="doctorNumInp" type="text" placeholder="请输入医生工号">
                     </span>
                     
-                    <span class="filterItem fpFilterItem">
+                    <span class="filterItem filterHide fpFilterItem">
                         <span>病案首页核查状态:</span>
                         <span class="fpSelectCheck">全部</span>
                         <ul class="checkList filterDropList fpCheckList">
@@ -88,11 +88,11 @@
                             <Li class="fpCheckItem" data-name="已核查" data-id="1">已核查</Li>
                         </ul>
                     </span>
-                    <span class="filterItem doctorFilter fpFilterItem">
+                    <span class="filterItem filterHide doctorFilter fpFilterItem">
                         <span>病案首页核查人:</span>
                         <input class="fpCheckPeople" type="text" placeholder=" 请输入核查人">
                     </span>
-                    <span class="filterItem typeFilter clearfix" >
+                    <span class="filterItem filterHide typeFilter clearfix" >
                         <span class="fl">病案首页核查时间:</span>
                         <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerFp1" autocomplete="off" readonly /></span>
                         <span  class="divide fl">-</span>

+ 3 - 3
src/html/qcListPerson.html

@@ -60,7 +60,7 @@
                     </span>
                     <!-- <input class="doctorInp" type="text" placeholder="请输入医生姓名"> -->
                 </span>
-                <span class="filterItem fpFilterItem">
+                <span class="filterItem filterHide fpFilterItem">
                     <span>病案首页核查状态:</span>
                     <span class="fpSelectCheck">全部</span>
                     <ul class="checkList filterDropList fpCheckList">
@@ -69,11 +69,11 @@
                         <Li class="fpCheckItem" data-name="已核查" data-id="1">已核查</Li>
                     </ul>
                 </span>
-                <span class="filterItem doctorFilter fpFilterItem">
+                <span class="filterItem filterHide doctorFilter fpFilterItem">
                     <span>病案首页核查人:</span>
                     <input class="fpCheckPeople" type="text" placeholder=" 请输入核查人">
                 </span>
-                <span class="filterItem typeFilter clearfix" >
+                <span class="filterItem filterHide typeFilter clearfix" >
                     <span class="fl">病案首页核查时间:</span>
                     <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerFp1" autocomplete="off" readonly /></span>
                     <span  class="divide fl">-</span>

+ 136 - 0
src/html/qcListYw.html

@@ -0,0 +1,136 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>病历质控报表</title>
+    
+</head>
+
+<body>
+    <div class="container qcList">
+        <h2>病历质控报表</h2>
+        <div class="main-body">
+            <div class="filterBox">
+                <div class="clearfix">
+                    <span class="filterItem typeFilter deptListWrap">
+                        <span>科室:</span>
+                        <input type="text" class="selectDept canEditDept" value="全部">
+                        <ul class="deptList filterDropList"></ul>
+                    </span>
+                    <span class="filterItem typeFilter clearfix" >
+                        <span class="fl">出院日期:</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" readonly /></span>
+                        <span  class="divide fl">-</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" readonly/></span>
+                    </span>
+                    <span class="filterItem">
+                        <span>病历等级:</span>
+                        <span class="selectLevel">全部</span>
+                        <ul class="levelList filterDropList">
+                            <Li class="levelItem" data-name="全部" data-id="全部">全部</Li>
+                            <Li class="levelItem" data-name="未评分" data-id="未评分">未评分</Li>
+                            <Li class="levelItem" data-name="甲" data-id="甲">甲</Li>
+                            <li class="levelItem" data-name="乙" data-id=乙>乙</li>
+                            <li class="levelItem" data-name="丙" data-id=丙>丙</li>
+                        </ul>
+                    </span>
+                    <span class="filter">查询</span>
+                    <span class="filterclear abnormalClear filterclearT">重置</span>
+                    <span class="export">导出</span>
+                </div>
+                <a href="javascript:void(0);" class="filter-toggler up" id="filterToggler">展开筛选</a>
+                <div class="toggle-item clearfix">
+                    <span class="filterItem typeFilter">
+                        <span>病人姓名:</span>
+                        <input class="patientNameInp" type="text" placeholder="请输入病人姓名">
+                    </span>
+                    <span class="filterItem typeFilter">
+                        <span>病人住院序号:</span>
+                        <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入病人住院序号">
+                    </span>
+                    <span class="filterItem doctorFilter">
+                        <span>主管医生:</span>
+                        <input class="doctorInp" type="text" placeholder="请输入主管医生">
+                    </span>
+                    <!--<span class="filterItem doctorFilter fpFilterItem">
+                        <span>病案首页核查人:</span>
+                        <input class="fpCheckPeople" type="text" placeholder="请输入核查人">
+                    </span>-->
+                    <span class="filterItem doctorFilter qcFiliterItem">
+                        <span>病历核查人:</span>
+                        <input class="qcCheckPeople" type="text" placeholder="请输入核查人">
+                    </span>
+                </div>
+            </div>
+            <div class="overAuto">
+                <table class="qctable">
+                    <thead>
+                    <!--<tr class="tabOpera">
+                         <td colspan="18" style="background: #fff">
+                            <div class="tabFoot">
+                                <span class="scoreOpera" data-selectAll=false><img class="iconCheck" src="../images/icon_unchecked.png" alt="checkbox">全选</span>
+                                <span class="recordScoreBtn">评分</span>
+                            </div>
+                        </td>
+                    </tr>-->
+                    <tr class="tabTitle">
+                        <!--code用于排序兼容之前的页面,key用于获取字段值-->
+                        <th class="beHospitalId textCenter">序号</th>
+                        <th class="patientName textCenter" code="name" key="name" style="width: 100px;">病人姓名</th>
+                        <th class="beHospitalId textCenter" code="behospitalCode" key="behospitalCode">病人住院序号</th>
+                        <th class="doctorName textCenter" code="doctorName" key="doctorName">主管医生</th>
+                        <th class="deptName textCenter" code="deptName" key="deptName">科室</th>
+                        <th class="outHospitalDate textCenter desc" code="leaveHospitalDate" key="leaveHospitalDate">出院日期</th>
+                        <th class="patientNo textCenter" key="medHomePage">病案首页</th>
+                        <th class="patientNo textCenter" key="medHomePageScore">扣分</th>
+                        <th class="patientNo textCenter" key="admissionNote">入院记录</th>
+                        <th class="patientNo textCenter" key="admissionNoteScore">扣分</th>
+                        <th class="patientNo textCenter" key="firstCourseNote">首次病程录</th>
+                        <th class="patientNo textCenter" key="firstCourseNoteScore">扣分</th>
+                        <th class="patientNo textCenter" key="courseRecord">病程记录</th>
+                        <th class="patientNo textCenter" key="courseRecordScore">扣分</th>
+                        <th class="patientNo textCenter" key="operationInfo">手术信息</th>
+                        <th class="patientNo textCenter" key="operationInfoScore">扣分</th>
+                        <th class="patientNo textCenter" key="dischargeNote">出院记录</th>
+                        <th class="patientNo textCenter" key="dischargeNoteScore">扣分</th>
+                        <th class="patientNo textCenter" key="docAdviceNote">医嘱单</th>
+                        <th class="patientNo textCenter" key="docAdviceNoteScore">扣分</th>
+                        <th class="patientNo textCenter" key="otherCase">其他</th>
+                        <th class="patientNo textCenter" key="otherCaseScore">扣分</th>
+                        <th class="recordScore textCenter" key="totalScore">总分</th>
+                        <th class="recordLevel textCenter" code="level" key="level">病历等级</th>
+                        <th class="patientSex textCenter" code="mrName" key="mrName">病案首页核查人</th>
+                        <th class="patientSex textCenter" code="chName" key="chName">病历核查人</th>
+                    </tr>
+                    </thead>
+                    <tbody class="tbody">
+
+                    </tbody>
+                    <tfoot>
+                        <!-- <tr>
+                            <td colspan="17">
+                                <div class="tabFoot">
+                                    <span class="scoreOpera" data-selectAll=false><img class="iconCheck" src="../images/icon_unchecked.png" alt="checkbox">全选</span>
+                                    <span class="recordScoreBtn">评分</span>
+                                </div>
+                            </td>
+                        </tr> -->
+                    </tfoot>
+                </table>
+            </div>
+
+            <!--<div class="tabFoot">
+                <span class="scoreOpera" data-selectAll=false><img class="iconCheck" src="" alt="checkbox">全选</span>
+                <span class="recordScoreBtn">评分</span>
+            </div>-->
+
+            <div class="pagination"></div>
+        </div>
+
+    </div>
+</body>
+
+</html>

+ 23 - 9
src/html/qcScore.html

@@ -45,8 +45,8 @@
         <span>科室:${behDeptName}</span>
         <span class="level">病历等级:${level}</span>
         <span class="score">病历得分:${scoreRes}</span>
-        {{if hasCheck}}
-        <span class="check">${checkState===1 ? "重新核查" : "病历核查"}</span>
+        {{if showCheckBtns}}
+        <span class="ywCheck">${checkState===1 ? "重新核查" : "完成核查"}</span>
         {{/if}}
     </script>
     <script type="text/html" id="tableTmpl">
@@ -140,9 +140,9 @@
     </script>
     <script type="text/html" id="flawTmpl">
         <div {{if isReject==='1'}} class="flaw-item high-light" {{else}} class="flaw-item" {{/if}} code="${modelName.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g,'')}">
-            <div class="title">
+            <div  {{if isDeleted==="Y"}} class="delete title"{{else}}  class="title" {{/if}}>
                 {{if gradeType===2}}
-                <i class="add-icon">人工</i>
+                <img {{if explainInfo}} title="${explainInfo}" {{/if}} src="../images/tag.png" alt=""/>
                 {{/if}}
                 {{if info}}
                 <a {{if pageKeyList[0]}} anchors="${pageKeyList}" code="${id}" href="#anchor${pageKeyList[0]}" {{/if}}>${msg}(${info})</a>
@@ -152,15 +152,27 @@
             </div>
             <div class="opers clearfix">
                 {{if score===0}}
-                <p class="fl">评分:<span class="red">warn</span></p>
+                <p {{if isDeleted==="Y"}} class="fl delete" {{else}} class="fl" {{/if}}>评分:<span class="red">warn</span></p>
                 {{else}}
-                <p class="fl">评分:<span class="red">-${score}</span></p>
+                <p {{if isDeleted==="Y"}} class="fl delete"{{else}} class="fl" {{/if}}>评分:<span class="red">-${score}</span></p>
                 {{/if}}
+                {{if isDeleted==="N"}}
                 <div class="oper fr">
                     <a class="edit-flaw blue" code="${id}" href="javascript:void(0);" style="margin-right: 18px;">修改</a>
                     <a class="del-flaw red" code="${id}" href="javascript:void(0);">删除</a>
                 </div>
+                {{else}}
+                <div class="oper fr">
+                    <a class="recover-flaw blue" code="${id}" href="javascript:void(0);">恢复</a>
+                </div>
+                {{/if}}
             </div>
+        {{if gradeType===2||isDeleted==="Y"}}
+            <div class="info clearfix">
+                <p class="fl name" title="${linkman}">${linkman}</p>
+                <p class="fr">${gmtModified}</p>
+            </div>
+        {{/if}}
         </div>
     </script>
     <script type="text/html" id="emptyTmpl">
@@ -175,6 +187,7 @@
             <!--<p><span>模块名称: </span><input type="text" value="${modelName}" /></p>-->
             <p><span>提示信息: </span><input id="qcMsg" class="ellipsis" type="text" title="${msg}" value="${msg}" /></p>
             <p><span style="margin-right: 8px">分值: </span> <input id="qcScore" type="text" value="${score}" /></p>
+            <p><span>备注: </span><input id="qcInfo" class="ellipsis" type="text" title="${explainInfo}" value="${explainInfo}" autocomplete="off"/></p>
             <p class="warning"><span></span><span class="red">支持≥0的数字输入,最多保留小数点后1位~</span></p>
         </div>
     </script>
@@ -193,6 +206,7 @@
             <!--<p><span>模块名称: </span><input type="text" value="${modelName}" /></p>-->
             <p><span style="margin-right: 16px;">提示信息:</span><input title="${msg}" class="ellipsis" id="addQcMsg" type="text" value="${msg}" /></p>
             <p><span>分值:</span> <input id="addQcScore" type="text" value="${score}" /></p>
+            <p><span style="margin-right: 16px;">备注:</span><input title="${explainInfo}" class="ellipsis" id="addQcInfo" type="text" value="${explainInfo}" autocomplete="off"/></p>
             <p class="warning"><span></span><span class="red">支持≥0的数字输入,最多保留小数点后1位~</span></p>
         </div>
     </script>
@@ -268,11 +282,11 @@
                 <tr><td colspan="3" class="slide-up">${i}</td></tr>
                 {{each val}}
                 <tr code="${i}" {{if isReject==="1"}} class="high-light" {{/if}}>
-                    <td style="text-indent: 14px;">${modelName}</td>
+                    <td style="text-indent: 14px; {{if isDeleted=='Y'}}  text-decoration:line-through;  {{/if}}">${modelName}</td>
                     <td>
-                        <a href="javascript:void(0);" class="page-anchor page-anchor-hover" code="${id}">${msg}</a>
+                        <a href="javascript:void(0);" class="page-anchor page-anchor-hover" {{if isDeleted=='Y'}}  style="text-decoration:line-through;"  {{/if}} code="${id}">${msg}</a>
                     </td>
-                    <td class="red">${score}</td>
+                    <td class="red" {{if isDeleted=='Y'}}  style="text-decoration:line-through;"  {{/if}}>${score}</td>
                 </tr>
                 {{/each}}
                 {{/each}}

+ 3 - 3
src/html/uccDetail.html

@@ -63,7 +63,7 @@
                         <input class="doctorNumInp" type="text" placeholder="请输入医生工号">
                     </span>
                    
-                    <span class="filterItem fpFilterItem">
+                    <span class="filterItem filterHide fpFilterItem">
                         <span>病案首页核查状态:</span>
                         <span class="fpSelectCheck">全部</span>
                         <ul class="checkList filterDropList fpCheckList">
@@ -72,11 +72,11 @@
                             <Li class="fpCheckItem" data-name="已核查" data-id="1">已核查</Li>
                         </ul>
                     </span>
-                    <span class="filterItem doctorFilter fpFilterItem">
+                    <span class="filterItem filterHide doctorFilter fpFilterItem">
                         <span>病案首页核查人:</span>
                         <input class="fpCheckPeople" type="text" placeholder=" 请输入核查人">
                     </span>
-                    <span class="filterItem typeFilter clearfix" >
+                    <span class="filterItem filterHide typeFilter clearfix" >
                         <span class="fl">病案首页核查时间:</span>
                         <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerFp1" autocomplete="off" readonly /></span>
                         <span  class="divide fl">-</span>

BIN
src/images/Triangle.png


BIN
src/images/icon_dis.png


BIN
src/images/more.png


BIN
src/images/pop.png


BIN
src/images/radio.png


BIN
src/images/tag.png


BIN
src/images/unradio.png


+ 950 - 0
src/js/allotCheckTask.js

@@ -0,0 +1,950 @@
+const $ = require('jquery');
+require("../css/allotCheckTask.less");
+require('./modal.js');
+const {api,ywCheckApi} = require('./api.js')
+const {post,getCookie,emptyBox,listenScroll,getScoreTabList} = 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 iconRadio=require("./../images/radio.png")
+const iconUnRadio=require("./../images/unradio.png")
+const  iconCalenBlue= require("./../images/icon_calen_blue.png")
+const  iconCalenGrey= require("./../images/icon_calen_grey.png")
+const iconDown= require("./../images/arrow_down.png")
+const iconUp = require("./../images/arrow_up.png")
+const loadingImg = require("./../images/loading.gif")
+const arrowLeft= require("./../images/arrow_left.png")
+const arrowRight = require("./../images/arrow_right.png")
+listenScroll()
+let tabList = [], data_desc=["jobCreateTime"],data_asc=[],task_desc=["leaveHospitalDate"],task_asc=[];
+let global_DeptCheckers = [],global_Checkers={4:[],5:[],6:[]},
+    global_CheckerId='',global_CheckerName='',      //左边质检员选中id,name
+    global_CheckerNumId='',global_CheckerNumName='',      //左边质检员数字id,name
+    global_checkerFilterName="",//左边核查员名字筛选
+    global_DeptId='',//左边质控员科室筛选id
+    global_DeptMId="",  //左边质检员选中科室id
+    global_DeptNumId='',//左边质检员数字点击科室id
+    global_DeptAllId='',    //右边任务科室筛选id(非科室任务才有)
+    global_deptData = {},global_activeTabCode='0',
+    global_TaskCodes=[],global_TaskDept=[],global_deleted=false,global_score='';
+
+let isPlacefile = getCookie('isPlacefile')||1
+/*if(isPlacefile != 1){
+    data_desc=["behospital_date"]
+}*/
+
+$(function() {
+    $(window.parent.document).find(".modaltip").hide();//切换页面过快时toast隐藏
+    const checkAuth = getCookie('checkAuth');
+    /*if(!checkAuth){
+        $(".tabs").hide();
+        toast("没有质控核查权限!");
+        return
+    }*/
+    $("#filterToggler").click(function () {
+        const text = $(this).text();
+        $(".toggle-item").slideToggle();
+        $(this).text(text === "收起筛选" ? "展开筛选" : "收起筛选").toggleClass("up");
+    });
+    const tabs = (checkAuth||'').replace(/[^456]/g,'');
+    if(tabs.length===0){
+        //$(".tabs").hide();
+        toast("没有质控核查权限!");
+        return;
+    }else if(tabs.length>1){
+        //多于一个权限,显示tab切换
+        $(".tabs").show();
+        const last = "456".replace(tabs,'');
+        $(".tabs [data-code="+(last-4)+"]").parent().hide();
+    }
+    global_activeTabCode=tabs.substr(0,1)-4;
+    $(".tabs [data-code="+global_activeTabCode+"]").addClass("active");
+    if(global_activeTabCode=='0'){
+        $(".patDeptFilter").hide();
+    }
+    //初始化日期
+    $.datepicker.regional['zh-CN'] = {
+        clearText: '清除',
+        clearStatus: '清除已选日期',
+        closeText: '关闭',
+        closeStatus: '不改变当前选择',
+        prevText: '<上月',
+        prevStatus: '显示上月',
+        prevBigText: '<<',
+        prevBigStatus: '显示上一年',
+        nextText: '下月>',
+        nextStatus: '显示下月',
+        nextBigText: '>>',
+        nextBigStatus: '显示下一年',
+        currentText: '今天',
+        currentStatus: '显示本月',
+        monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+        monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+        yearNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+        monthStatus: '选择月份',
+        yearStatus: '选择年份',
+        weekHeader: '周',
+        weekStatus: '年内周次',
+        dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
+        dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
+        dayNamesMin: ['日','一','二','三','四','五','六'],
+        dayStatus: '设置 DD 为一周起始',
+        dateStatus: '选择 m月 d日, DD',
+        dateFormat: 'yy-mm-dd',
+        firstDay: 1,
+        initStatus: '请选择日期',
+        isRTL: false};
+    $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
+    const days = new Date().getDate()-1;
+    let startDate = "-"+days+"d",endDate=new Date();
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy-mm-dd",
+    }).datepicker( "setDate", startDate);
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy-mm-dd",
+    }).datepicker( "setDate",endDate);
+    $( "#datepicker3" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy-mm-dd",
+    });
+    $( "#datepicker4" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy-mm-dd",
+    });
+
+    $('.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()
+    })
+    //保存分配
+    $(".save-btn").click(function(){
+        allotTask(0);
+    })
+    //菜单选中状态
+    $(".menu .page", parent.document).removeClass("active")
+    $(parent.document).find(".menu .page[code=YH-ZKHC-FPHCRW]").addClass("active")
+    //表格容器高度计算
+    setBoxHeight();
+    $(window).resize(function() {
+        setBoxHeight();
+    });
+
+//切换tab
+    $(".tabBox .tabs button").on("click",(e)=>{
+        const me = e.target;
+        global_checkerFilterName='';    //切换tab清空核查员筛选
+        global_activeTabCode = $(me).attr("data-code");
+        $(".tabBox .tabs button").removeClass("active");
+        $(me).addClass("active");
+        if(global_activeTabCode=='0'){
+            $(".patDeptFilter").hide();
+        }else{
+            $(".patDeptFilter").show();
+        }
+        clearCheckerFilter();
+        clearFilter();
+        //刷新质控员、任务列表
+        //getCheckerList();
+        //const data = global_Checkers[+global_activeTabCode+4];
+        getCheckerList();
+        getTabData(1);
+        /*rendeDeptList();
+        rendeCheckerList();
+        renderCheckerTable();*/
+    });
+
+//任务筛选
+    $(".filter").on("click", function(e){
+        const behosDateStart1 = $("#datepicker").val()         //生成日期
+        const behosDateEnd1 = $("#datepicker2").val()
+        const behosDateStartTime1 = new Date(behosDateStart1).getTime()
+        const behosDateEndTime1 = new Date(behosDateEnd1).getTime()
+        const behosDateStart = $("#datepicker3").val()         //出院日期
+        const behosDateEnd = $("#datepicker4").val()
+        const behosDateStartTime = new Date(behosDateStart).getTime()
+        const behosDateEndTime = new Date(behosDateEnd).getTime()
+        console.log(222,behosDateStartTime1,behosDateEndTime1)
+        if(behosDateStartTime1 > behosDateEndTime1){
+            $.alerModal({"message":'生成日期开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            return
+        }
+        if(behosDateStartTime > behosDateEndTime){
+            $.alerModal({"message":'出院日期开始时间不能大于结束时间~',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            return
+        }
+        getTabData(1)
+    })
+//重置
+    $(".abnormalClear").on("click", function(e){
+        clearFilter();
+        getTabData(1)
+    })
+
+//关闭弹窗事件
+    $(".modal-container .close").click(function(){
+        $(".modal-container").hide();
+        global_DeptNumId='';
+        global_CheckerNumId='';
+        global_CheckerNumName='';
+        if(global_deleted){
+            //移除后关闭弹窗时清空质控员选中状态:质控员id/name/科室id及右侧选中任务code
+            //并刷新左侧和右侧列表
+            global_CheckerId='';
+            global_CheckerName='';
+            global_DeptMId='';
+            global_TaskCodes=[];
+            getCheckerList();
+            getTabData(1);
+        }
+    });
+
+//科室选择
+    $('.selectDept').on("click", function(e){
+        e.stopPropagation()
+        $(".checkerList ").css("display", "none")
+        $(".deptAllList ").css("display","none")
+        $(".scoreList ").css("display","none")
+        $(".selectChecker .arrow").attr("src",iconDown)
+        $(".deptList ").css("display","block")
+
+    })
+
+    //筛选分值选择
+    $('.selectScore').on("click", function(e){
+        e.stopPropagation();
+        $(".deptList ").css("display","none")
+        $(".checkerList ").css("display", "none")
+        $(".deptAllList ").css("display","none")
+        $(".selectDept .arrow").attr("src",iconDown)
+        $(".selectScore .arrow").attr("src",iconDown)
+        $(".scoreList ").css("display","block")
+    })
+
+//病人科室选择
+    $('.selectAllDept').on("click", function(e){
+        e.stopPropagation()
+        $(".checkerList ").css("display", "none")
+        $(".scoreList").css("display", "none")
+        $(".deptList ").css("display", "none")
+        $(".deptAllList ").css("display","block")
+
+    })
+//质控员选择
+    $('.selectChecker').on("click", function(e){
+        e.stopPropagation()
+        $(".deptList ").css("display", "none")
+        $(".scoreList").css("display", "none")
+        $(".checkerList").css("display","block")
+    })
+//关闭下拉事件
+    $(document).on("click", function(){
+        $(".deptList ").css("display", "none")
+        $(".deptAllList ").css("display", "none")
+        $(".checkerList").css("display", "none")
+        $(".scoreList").css("display", "none")
+        $(".del-pop").remove();
+        /*$(".scoreDept .arrow").attr("src",iconDown)
+        $(".selectDept .arrow").attr("src",iconDown)
+        $(".selectAllDept .arrow").attr("src",iconDown)
+        $(".selectChecker .arrow").attr("src",iconDown)*/
+    })
+
+    getScoreTabList((data)=>{rendeScoreList(data)})
+//获取科室列表
+    getAllDeptList()
+
+//获取核查人员列表
+    getCheckerList()
+    getTabData(1)
+});
+
+//高度适应
+function setBoxHeight() {
+    const ht = window.innerHeight;
+    let at = 70;console.log($(".tabs:visible"))
+    if($(".tabs:visible").length){  //tab显示时高度
+        at=0;
+    }
+    $('.table-cont').height(ht - (309-at) + 'px');
+    $(".patient-table-cont").height(ht - (424-at) + 'px');
+    $('.overAuto').height(ht - (249-at) + 'px');
+}
+
+//病人列表获取筛选值
+function getFilterData(){
+    const obj = {};
+    $(".overAuto.fr .filterBox input[code]").map((i,it)=>{
+        obj[$(it).attr("code")]=$(it).val()
+    })
+    return obj;
+}
+
+//获取分配核查任务列表数据
+function getTabData(activePage){
+    const filterData = getFilterData();
+    let dept = '';
+    if(global_activeTabCode!='0'){ //除科室任务外,待分配任务列表科室参数只受筛选项影响
+        dept = global_DeptAllId;
+    }else{
+        dept = global_DeptMId||global_DeptId||global_DeptAllId;
+    }
+    const deptList=dept.trim()?[dept]:[];
+    const param = {
+        current:activePage,
+        asc:data_asc,     //升序
+        desc:data_desc,       //降序
+        size: 15,
+        jobType:global_activeTabCode,    //0-科室任务 1-院级 2-质控科
+        ...filterData,
+        deptList:deptList,
+        values:global_score.trim()?[global_score]:[],
+        endTime:filterData.endTime+" 23:59:59"
+    };
+    $('.pagination').html("");
+    $('.patientTable .tbody').html(emptyBox('努力加载中...','',8))
+    return post(ywCheckApi.getAllotCheckList,param).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data||{};
+            tabList = data.records;
+            const totalPage = data.pages;
+            const totalNum = data.total;
+            renderTab(tabList)
+            renderPagination(totalPage,Number(activePage),totalNum)
+            if(totalPage > 0){
+                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) =>{
+
+    })
+}
+
+function clearCheckerFilter(){
+    $('.selectDept i').text('全部')
+    $('.selectAllDept i').text('全部')
+    $(".deptList").css("display", "none")
+    $(".deptAllList").css("display", "none")
+    $('.selectChecker i').text('全部')
+    $(".checkerList").css("display", "none")
+    global_DeptMId="";
+    global_DeptId="";
+    global_CheckerId="";
+    global_CheckerName="";
+}
+
+function clearFilter(){
+    $(".overAuto.fr input").val("");
+    $('.selectAllDept i').text('全部')
+    $('.selectAllDept').attr('title','全部')
+    $(".deptAllList").css("display", "none")
+    $('.selectScore i').html('全部')
+    $(".scoreList").css("display", "none")
+    global_score='';
+    global_DeptAllId="";
+    /*if(isPlacefile != 1){
+        data_desc=["behospital_date"]
+    }*/
+    data_asc=[];
+
+    //默认日期为本月
+    const days = new Date().getDate()-1;
+    let startDate = "-"+days+"d",endDate=new Date();
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy-mm-dd",
+    }).datepicker( "setDate", startDate);
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy-mm-dd"
+    }).datepicker( "setDate",endDate);
+    $( "#datepicker3" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy-mm-dd",
+    });
+    $( "#datepicker4" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy-mm-dd"
+    });
+    data_desc=["jobCreateTime"]
+    $(".patientTable th[code]").removeClass("asc desc")
+    $(".patientTable th[code='jobCreateTime']").addClass('desc');
+}
+//病人列表排序事件
+function bindOrder(){
+    $(".patientTable th[code]").off("click").on("click",function(e){
+        const code=$(this).attr("code");
+        if(data_asc[0]===code){
+            data_desc=[code];
+            data_asc=[];
+            $(".patientTable th[code]").removeClass("asc desc");
+            $(this).addClass("desc");
+        }else{
+            data_desc=[];
+            data_asc=[code];
+            $(".patientTable th[code]").removeClass("asc desc");
+            $(this).addClass("asc");
+        }
+        getTabData(1);
+        // console.log(code)
+    });
+}
+//已分配列表排序事件
+function bindTaskOrder(){
+    $(".taskTable th[code]").off("click").on("click",function(e){
+        const code=$(this).attr("code");
+        if(task_asc[0]===code){
+            task_desc=[code];
+            task_asc=[];
+            $(".taskTable th[code]").removeClass("asc desc");
+            $(this).addClass("desc");
+        }else{
+            task_desc=[];
+            task_asc=[code];
+            $(".taskTable th[code]").removeClass("asc desc");
+            $(this).addClass("asc");
+        }
+        getTasksList();
+        // console.log(code)
+    });
+}
+//筛选分值下拉
+function rendeScoreList(list){
+    if(list.length == 0){
+        $('.scoreList').html("")
+        return
+    }
+    let str = `<li class="scoreItem ellipsis" data-id=" " data-name="全部">全部</li>`;
+    for(let i = 0; i < list.length; i++){
+        str += `<li class="scoreItem ellipsis" data-id=${list[i]} data-name=${list[i]}> ${list[i]}</li>`
+    }
+    $('.scoreList').html(str)
+    bindScoreSelect()
+}
+function bindScoreSelect(){
+    $('.scoreItem').on("click",function(){
+        const scoreItemName = $(this).attr("data-name")
+        const scoreItemItemId = $(this).attr("data-id")
+        global_score =scoreItemItemId;
+        $('.selectScore i').html(scoreItemName)
+        $(".scoreList").css("display", "none")
+    })
+}
+//质控员列表渲染
+function renderCheckerTable(){
+    //console.log(global_DeptId)
+    const totalArr = global_DeptId.trim()?global_DeptCheckers[global_DeptId]:global_Checkers[+global_activeTabCode+4];
+    let data = totalArr;
+    if(global_checkerFilterName){
+        data = (totalArr||[]).filter((it)=>global_checkerFilterName===it.doctorName);
+    }
+    let str = ``,code="";
+    global_CheckerId="";
+    if(!data||data.length===0){
+        $('.checkerTable .tbody').html(emptyBox(null,5))
+        //if(!noTasksUpdate){getTabData(1);}
+        //   initScroll("qcList","YX",1)
+        return;
+    }
+    //获取任务列表数据
+    //if(!noTasksUpdate){getTabData(1);}
+
+    const titles = $(".checkerTable .tabTitle th[valCode]");
+    for(let i = 0; i < data.length; i++){
+        const item = data[i]
+
+        str += `
+            <tr  data-index=${i}>
+                <td class="operaItem checkerRadio textCenter" code="${item.doctorId}" data-dept=${item.deptId} data-name="${item.doctorName}"><img src="${iconUnRadio}" alt=""></td>
+                `
+            for(let i=0;i<titles.length;i++){
+                code=$(titles[i]).attr('valCode');
+                if(code==="jobNum"){
+                    str +=  `<td class="textCenter"><a class="job-num" data-index=${i} data-dept=${item.deptId} data-id="${item.doctorId}" data-name="${item.doctorName}">${ item[code]}</a></td>`
+                }else{
+                    str +=  `<td class="textCenter"><span data-index=${i} class="dot-over"  title="${ item[code]}">${ item[code]}</span></td>`
+                }
+            }
+        str += "</tr>"
+    }
+    $('.checkerTable .tbody').html(str);
+    selectCheckerTb();
+    bindTaskNumEvent();
+}
+//选中质控员
+function selectCheckerTb(){
+    $(".checkerRadio").click(function(){
+        global_CheckerId=$(this).attr("code");
+        global_CheckerName=$(this).attr("data-name");
+        global_DeptMId=$(this).attr("data-dept");
+        if(global_activeTabCode=='0'){
+            global_DeptAllId="";
+            getTabData(1)
+        }
+        $(".checkerRadio img").attr('src',iconUnRadio).removeClass('active');
+        $(this).find("img").attr('src',iconRadio).addClass("active");
+    });
+}
+//选中任务
+function selectTaskTb(){
+    $(".taskCheck").unbind("click").click(function(){
+        const id=$(this).attr("code");
+        const did=$(this).attr("deptId");
+        const it =$(this).find("img");
+        const codes = global_TaskCodes.join(",")+",";
+        const depts=global_TaskDept.join(",")+",";
+        if(it.is(".active")){
+            $(this).find("img").attr('src',iconUnCheck);
+            $(".allCheck img").attr('src',iconUnCheck).removeClass("active");console.log(codes)
+            global_TaskCodes = codes.replace(id+",","").replace(/^,|,$/,'').split(",");
+            global_TaskDept = depts.replace(did+",","").replace(/^,|,$/,'').split(",");
+        }else{
+            $(this).find("img").attr('src',iconCheck);
+            global_TaskCodes.push(id);
+            global_TaskDept.push(did);
+        }
+        it.toggleClass('active');
+
+    });
+
+    //全选
+    $(".allCheck img").unbind("click").click(function(){
+        const checks = $(".taskCheck img");
+        if($(this).is(".active")){
+            $(this).attr("src",iconUnCheck).removeClass("active");
+            checks.attr("src",iconUnCheck).removeClass("active");
+            global_TaskCodes=[];
+            global_TaskDept=[];
+        }else{
+            $(this).attr("src",iconCheck).addClass("active");
+            checks.attr("src",iconCheck).addClass("active");
+            let codes = [],depts=[];
+            checks.map((i)=>{
+                codes.push($(checks[i]).parent().attr("code"));
+                depts.push($(checks[i]).parent().attr("deptid"))
+            });
+            global_TaskCodes=codes;
+            global_TaskDept=depts;
+        }
+        console.log(global_TaskCodes)
+
+    });
+}
+//待分配任务列表渲染
+function renderTab(data){
+    let str = ``,code="";
+    global_TaskCodes=[];
+    global_TaskDept=[];
+    if(!data||data.length===0){
+      $('.patientTable .tbody').html(emptyBox(null,8))
+    //   initScroll("qcList","YX",1)
+      return;
+    }
+    const titles = $(".patientTable .tabTitle th[valCode]");
+    for(let i = 0; i < data.length; i++){
+        const item = data[i]
+
+        str += `
+            <tr  data-index=${i}>
+                <td class="operaItem taskCheck textCenter" code="${item.behospitalCode}" deptId="${item.behospitalDeptId}"><img src="${iconUnCheck}" alt=""></td>`;
+        for(let i=0;i<titles.length;i++){
+            code=$(titles[i]).attr('valCode');
+            str +=  `<td class="textCenter"><span data-index=${i}>${ item[code] || "-"}<span></td>`
+        }
+        str += "</tr>"
+    }
+
+    $('.patientTable .tbody').html(str)
+    $(".allCheck  img").attr("src",iconUnCheck);    //全选改为可用状态
+    selectTaskTb();
+    bindOrder()
+}
+//任务数点击事件
+function bindTaskNumEvent(){
+    $(".job-num").unbind("click").click(function(){
+        global_CheckerNumId = $(this).attr("data-id");
+        global_CheckerNumName=$(this).attr("data-name");
+        global_DeptNumId=$(this).attr("data-dept");
+        $(".modal-container").show();
+        global_deleted=false;
+        getTasksList();
+    })
+}
+//获取全部科室数据
+function getAllDeptList(){
+    post(api.getDeptList,{}).then(res =>{
+        if(res.data.code == '0'){
+           const  deptList = res.data.data||[]
+            rendeAllDeptList(deptList)
+        }else{rendeAllDeptList([])}
+    }).catch((e) =>{
+
+    })
+}
+
+function getCheckerList(){
+    post(ywCheckApi.getCheckUserMap,{jobType:+global_activeTabCode+4}).then(res =>{
+        if(res.data.code == '0'){
+            const list = res.data.data||{};
+            global_deptData = list;
+            formatDeptChecker(list);
+        }else{rendeCheckerList([])}
+    }).catch((e) =>{
+
+    })
+}
+
+//获取质控员任务列表
+function getTasksList(){
+    post(ywCheckApi.getTaskByUserId,{
+        jobType:global_activeTabCode,
+        checkId:global_CheckerNumId,
+        deptList:global_DeptNumId.trim()?[global_DeptNumId]:[],
+        asc:task_asc,
+        desc:task_desc,
+        size:500,
+        current:1}
+        ).then(res =>{
+        if(res.data.code == '0'){
+            const list = res.data.data||{};
+            renderTaskTable(list.records);
+        }else{rendeCheckerList()}
+    }).catch((e) =>{
+
+    })
+}
+
+//质控员任务列表渲染
+function renderTaskTable(data) {
+    let str = ``, code = "";
+    if (!data || data.length === 0) {
+        $('.taskTable .tbody').html(emptyBox(null, 8))
+        return;
+    }
+
+    const titles = $(".taskTable .tabTitle th[valCode]");
+    const docHide = "name,behospitalDept,attendingDoctor,jobDistributorName";   //过长...的字段
+    for (let i = 0; i < data.length; i++) {
+        const item = data[i];
+        str += `<tr data-index=${i}>`;
+        for (let i = 0; i < titles.length; i++) {
+            code = $(titles[i]).attr('valCode');
+            if(docHide.indexOf(code)>-1){
+                str += `<td class="textCenter"><span class="dot-hide" data-index=${i} title="${ item[code]}">${ item[code] || "-"}</span></td>`
+
+            }else if(code === 'leaveHospitalDate'){
+                str += `<td class="textCenter"><span class="dot-long-hide" data-index=${i} title="${ item[code]}">${ item[code] || "-"}</span></td>`
+            }else{
+                str += `<td class="textCenter"><span data-index=${i} title="${ item[code]}">${ item[code] || "-"}</span></td>`
+            }
+        }
+        str+=`<td class="operaItem textCenter"><a class="delete ${item.delFlag?'':'disable'}" deptId="${item.behospitalDept}" code="${item.behospitalCode}">移除</a></td><tr>`
+    }
+    $('.taskTable .tbody').html(str);
+    bindDeleteEvent();
+    bindTaskOrder();
+}
+//移除任务事件
+function bindDeleteEvent(){
+    const dom = `<div class="del-pop">
+                        <div class="pop-body">
+                            <div class="pop-title">确定移除该任务吗?</div>
+                            <div class="pop-btns">
+                                <button class="del-confirm">确定</button>
+                                <button class="cancel">取消</button>
+                            </div>
+                        </div></div>`;
+    $(".taskTable .delete:not(.disable)").unbind("click").click(function(e){
+        e.stopPropagation();
+        global_TaskCodes=[$(this).attr("code")];
+        global_TaskDept=[$(this).attr("deptId")];
+        $(".del-pop").remove();
+        $(dom).insertAfter($(this)).show();
+        $(".del-pop .cancel").unbind("click").click(function(ev){
+            ev.stopPropagation();
+            $(".del-pop").hide();
+        });
+        $(".del-pop .del-confirm").unbind("click").click(function(ev){
+            ev.stopPropagation();
+            global_deleted=true;
+            $(".del-pop").hide();
+            allotTask(1);
+        });
+    });
+}
+
+//科室筛选质控员
+function formatDeptChecker(list){
+    const k=+global_activeTabCode +4;
+    const allCheckArrs = list[k]||[];
+    global_Checkers={4:[],5:[],6:[]}
+    allCheckArrs.map((it)=>{
+        global_DeptCheckers[it.deptId]=it.deptcheckUsers;
+        global_Checkers[k].push(...it.deptcheckUsers);
+    });
+    rendeDeptList();
+    rendeCheckerList();
+    //院级任务时科室“全部”不遍历
+    if(+global_activeTabCode===2){
+        //已有科室筛选,则按科室筛选,无则全部,院级全部为-1
+        global_DeptId=global_DeptId.trim()?global_DeptId:'-1';
+    }
+    renderCheckerTable();
+}
+//渲染科室列表
+function rendeAllDeptList(list){
+    if(list.length == 0){
+      $(".deptAllList").html("")
+      return
+    }
+    let str = `<li class="deptAllItem ellipsis" data-id="" data-name="全部">全部</li>`;
+    for(let i = 0; i < list.length; i++){
+        str += `<li class="deptAllItem ellipsis" title=${list[i]['deptName']} data-id=${list[i]['deptId']} data-name=${list[i].deptName}> ${list[i].deptName}</li>`
+    }
+    $(".deptAllList").html(str)
+    bindAllDeptSelect()
+}
+
+//渲染当前用户科室列表
+function rendeDeptList(){
+    const list = global_deptData[+global_activeTabCode+4];
+    if(!list||list.length == 0){
+        $(".deptList").html("")
+        return
+    }
+    let str = `<li class="deptItem ellipsis" data-id="" data-name="全部">全部</li>`;
+    if(+global_activeTabCode===2){
+        str=``;
+    }
+    for(let i = 0; i < list.length; i++){
+        str += `<li class="deptItem ellipsis" title=${list[i]['deptName']} data-id=${list[i]['deptId']} data-name=${list[i].deptName}> ${list[i].deptName}</li>`
+    }
+    $(".deptList").html(str)
+    bindDeptSelect()
+}
+
+
+//质控员列表渲染
+function rendeCheckerList(lis){
+    const data = lis?lis:global_Checkers[+global_activeTabCode+4];
+    const list = delRepeatNames(data);
+    if(list.length == 0){
+        $(".checkerList").html("")
+        return
+    }
+    let str = `<li class="checkerItem ellipsis" data-id=" " data-name="全部">全部</li>`;
+    for(let i = 0; i < list.length; i++){
+        str += `<li class="checkerItem ellipsis" data-id=${list[i]['doctorId']} data-dept=${list[i]['deptId']} data-name=${list[i].doctorName}> ${list[i].doctorName}</li>`
+    }
+    $(".checkerList").html(str)
+    bindCheckerSelect()
+}
+function delRepeatNames(arr){
+    let obj = {},name="",newArr=[];
+    arr.map((it)=>{
+        name = it.doctorName;
+        if(!obj[name]){
+            newArr.push(it);
+        }
+        obj[name]=true;
+    });
+    //console.log(newArr)
+    return newArr;
+}
+//质控员列表科室选择
+function bindDeptSelect(){
+    $('.deptItem').on("mousedown",function(){
+        const deptItemName = $(this).attr("data-name")
+        global_DeptId = $(this).attr("data-id")
+        if(global_activeTabCode=='0'){
+            global_DeptAllId="";
+        }
+        global_DeptMId="";
+        global_checkerFilterName='';
+        $('.selectDept i').text(deptItemName)
+        $('.selectDept').attr('title',deptItemName)
+        $(".deptList").css("display", "none")
+        //质控员选择清空
+        $('.selectChecker i').text('全部')
+        $('.selectChecker').attr('title','全部')
+        const data = +global_DeptId?global_DeptCheckers[global_DeptId]:global_Checkers[+global_activeTabCode+4];
+        console.log(data,global_DeptId)
+        rendeCheckerList(data||[]);
+        renderCheckerTable();
+        global_activeTabCode=='0'&&getTabData(1);
+    })
+}
+//病人列表科室选择
+function bindAllDeptSelect(){
+    $('.deptAllItem').on("mousedown",function(){
+        const deptItemName = $(this).attr("data-name")
+        //global_DeptId="";     //7950bug
+        //global_DeptMId="";
+        global_DeptAllId = $(this).attr("data-id");
+        $('.selectAllDept i').text(deptItemName)
+        $('.selectAllDept').attr('title',deptItemName)
+        $(".deptAllList").css("display", "none")
+        //getTabData(1)
+    })
+}
+//质控员选择
+function bindCheckerSelect(){
+    $('.checkerItem').on("mousedown",function(){
+        const itemName = $(this).attr("data-name")
+        const itemId = $(this).attr("data-id")
+        $('.selectChecker i').text(itemName)
+        $('.selectChecker').attr('title',itemName)
+        $(".checkerList").css("display", "none")
+        if(global_activeTabCode=='0'){
+            global_DeptAllId="";
+        }
+        const totalArr = global_DeptId.trim()?global_DeptCheckers[global_DeptId]:global_Checkers[+global_activeTabCode+4];
+        if(!itemId.trim()){
+            global_checkerFilterName='';
+            renderCheckerTable();
+            return
+        }
+        //const arr = (totalArr||[]).filter((it)=>itemName===it.doctorName);
+        global_checkerFilterName=itemName.trim();
+        renderCheckerTable();
+    })
+}
+function loading(){
+    const str = `
+    <div class="loadingBox">
+            <div class="mask"></div>
+            <img class="loadingImg" src=${loadingImg}  alt="loading" />
+        </div>
+    `
+    $("#mainBox", parent.document).append(str)
+}
+function hideLoading(){
+    $("#mainBox .loadingBox", parent.document).remove()
+}
+
+function allotTask(flag){
+    if(flag!==1&&!global_CheckerId){
+        toast("请先选择质控员");
+        return;
+    }
+    if((flag!==1&&(!global_TaskCodes.join("").trim())||global_TaskCodes.length===0)){
+        toast("请选择至少一个任务");
+        return;
+    }
+    const param = {
+        checkId:flag===1?global_CheckerNumId:global_CheckerId,
+        checkName:flag===1?global_CheckerNumName:global_CheckerName,
+        distributionType:flag,
+        behospitalCodes:global_TaskCodes,
+        jobType:global_activeTabCode,
+        checkDept:global_DeptNumId||global_DeptMId||global_DeptId,
+        behospitalDepts:global_TaskDept,
+
+    }
+    post(ywCheckApi.allotTask,param).then(res =>{
+        if(res.data.code == '0'){
+            //分配成功后清空两侧列表选中状态
+            global_TaskCodes=[];
+            if(flag){
+                //移除时更新已分配任务列表弹窗数据,
+                // 不刷新核查人和待核查列表,关闭移除弹窗后再更新,避免第1个移除后id被清除
+                getTasksList();
+            }else{
+                global_CheckerId='';
+                global_CheckerName='';
+                global_DeptMId='';
+                getCheckerList();
+                getTabData(1);
+            }
+            toast("操作成功");
+        }else{
+            toast(res.data.msg||'保存分配失败,请重试~');
+        }
+    }).catch((e) =>{
+
+    })
+}
+//气泡提示
+function toast(msg) {
+    $.alerModal({"message":msg,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+}
+//分页渲染
+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)
+        }
+    })
+
+}

+ 18 - 12
src/js/api.js

@@ -2,7 +2,7 @@ const api = {
   getMenu: '/sys/user/getUserOrgMenu', //获取菜单
   midifyPassword: '/sys/user/midifyPassword', //修改密码
   getSubMenu: '/qc/mode/getMenu', //获取质控评分菜单
-  delScore: '/qc/behospitalInfo/delCase', //删除评分项
+  delScore: '/qc/behospitalInfo/logicDelCase',//'/qc/behospitalInfo/delCase', //删除评分项
   editScore: '/qc/behospitalInfo/updCase', //修改评分
   addScore: '/qc/behospitalInfo/addCase', //添加评分项
   findQcCasesEntry: '/qc/casesEntryHospital/findQcCasesEntry', //条目下拉列表
@@ -16,6 +16,8 @@ const api = {
   qcListByDept: '/qc/behospitalInfo/page_dept',
   qcListByPerson: '/qc/behospitalInfo/page_person',
   qcListByDoc: '/qc/behospitalInfo/page_group', //质控评分(医疗组)
+  qcListYw:'/console/qualityControl',  //病历质控报表-义乌全院
+  qcListByDeptYw:'/consoleByDept/qualityControlByDept',//病历质控报表-义乌科室
   saveQcCases: '/qc/cases/saveQcCases',
   recordScore: '/qc/behospitalInfo/analyze',
   getInfoModule: '/qc/module/getById',
@@ -123,26 +125,17 @@ const api = {
   qcCheckMRPageExport: '/console/export/qcCheckMRPageExport', //质控核查质控评分页导出
   hmImproveMRPageExport: '/console/export/hmImproveMRPageExport', //病案首页改善率质控评分页导出
   badLevelPagePageExport: '/console/export/badLevelPagePageExport', //病案首页不合格数病历详情页导出
+  qualityControlExport:'/console/export/qualityControlExport',//病历质控报表导出
+  qualityControlExportByDept:'/print/export/qualityControlExportByDept',//病历质控报表(科室)导出
 
   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', //稽查表导出
   getMedNursePage: '/qc/medNurse/getMedNursePage', //护理信息
 
-  exportQcresultByPerson: '/qc/behospitalInfo/exportQcresultByPerson', //个人质控导出
-
-  beHosCountByDept: '/consoleByDept/beHosCountByDept', //入院记录(科室首页,运行)
-  casesEntryStatisticsByDept: '/consoleByDept/casesEntryStatisticsByDept', //24h(科室首页,运行)
-  homePageOrGoodLevelByDept: '/consoleByDept/homePageOrGoodLevelByDept', //(科室病案首页,终末)
-  entryGroupExportByDeptPage: '/print/export/entryGroupExportByDeptPage', //(科室病案首页导出,终末)
-  getListDoctor: '/bas/doctor/getList', //(科室医生列表)
   qcCheckStatisticsByDept: '/consoleByDept/qcCheckStatisticsByDept', //(质控核查统计-科室)
   qcCheckStaExportByDept: '/print/export/qcCheckStaExportByDept', //(质控核查统计-科室)
   reHos31DaysPageByDept: '/consoleByDept/reHos31DaysPageByDept', // 31日再入院-科室)
@@ -174,6 +167,19 @@ const api = {
     medicalRecordIndicator:'/console/medicalRecordIndicator',//病案指标
 
 }
+const ywCheckApi = {
+    addMedCheckInfo:'/qc/medCheckInfo/addMedCheckInfo',   //核查
+    getAllotCheckList:'/qc/medCheckInfo/getCheckList', //分配核查任务列表
+    getCheckUserMap:'/qc/medCheckInfo/getCheckUserMap',  //核查人员列表
+    addCheck:'/qc/medCheckWork/addCheckWork', //生成核查任务
+    getTaskList:'/qc/medCheckWork/getUserList', //核查任务列表
+    getTaskByUserId:'/qc/medCheckInfo/getCheckListByUserId',//质控员名下的任务列表
+    allotTask:'/qc/medCheckInfo/updateDistributionCheck',//分配或取消任务
+    getUserList: '/qc/recCheck/checkedRecordList', //获取患者病历列表
+    recordCheck:'/qc/recCheck/recordCheck',//义乌病历核查
+    getCheckType:'/qc/recCheck/getCheckType',//义乌病历核查
+};
 module.exports = {
   api,
+  ywCheckApi
 };

+ 503 - 0
src/js/checkTaskList.js

@@ -0,0 +1,503 @@
+const $ = require('jquery');
+require("../css/checkTaskList.less");
+require('./modal.js');
+const { api, ywCheckApi } = require('./api.js')
+const { post, getCookie, getUrlArgObjectNew, emptyBox,  listenScroll,getScoreTabList } = require('./utils.js')
+require('./../resource/jquery-ui/jquery-ui.min.js');
+require('./../resource/jquery-ui/jquery-ui.min.css');
+const iconCalenBlue = require("./../images/icon_calen_blue.png")
+const iconCalenGrey = require("./../images/icon_calen_grey.png")
+const iconDown = require("./../images/arrow_down.png")
+const iconUp = require("./../images/arrow_up.png")
+const loadingImg = require("./../images/loading.gif")
+const arrowLeft = require("./../images/arrow_left.png")
+const arrowRight = require("./../images/arrow_right.png")
+listenScroll()
+$(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectStatus").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+let tabList = [],global_deptId = "",global_checkStatus = "",global_score='',global_level="",data_desc = ["jobDistributionTime"], data_asc = [];
+let isPlacefile = getCookie('isPlacefile') || 1
+if (isPlacefile != 1) {
+    data_desc = ["jobDistributionTime"]
+}
+
+$(function(){
+    $(window.parent.document).find(".modaltip").hide();//切换页面过快时toast隐藏
+    $('.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()
+    })
+    //菜单选中
+    $(".menu .page", parent.document).removeClass("active")
+    $(parent.document).find(".menu .page[code=YH-ZKHC-HCRWLB]").addClass("active")
+
+    //日期初始化
+    $.datepicker.regional['zh-CN'] = {
+        clearText: '清除',
+        clearStatus: '清除已选日期',
+        closeText: '关闭',
+        closeStatus: '不改变当前选择',
+        prevText: '<上月',
+        prevStatus: '显示上月',
+        prevBigText: '<<',
+        prevBigStatus: '显示上一年',
+        nextText: '下月>',
+        nextStatus: '显示下月',
+        nextBigText: '>>',
+        nextBigStatus: '显示下一年',
+        currentText: '今天',
+        currentStatus: '显示本月',
+        monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
+        monthNamesShort: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
+        yearNamesShort: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
+        monthStatus: '选择月份',
+        yearStatus: '选择年份',
+        weekHeader: '周',
+        weekStatus: '年内周次',
+        dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
+        dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
+        dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'],
+        dayStatus: '设置 DD 为一周起始',
+        dateStatus: '选择 m月 d日, DD',
+        dateFormat: 'yy-mm-dd',
+        firstDay: 1,
+        initStatus: '请选择日期',
+        isRTL: false
+    };
+    $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
+
+    const days = new Date().getDate()-1;
+    let startDate = "-"+days+"d",endDate=new Date();
+    //let endDate = new Date(),startDate = "-6d";
+    $("#datepicker").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy-mm-dd",
+    }).datepicker("setDate", startDate);
+    $("#datepicker2").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy-mm-dd"
+    }).datepicker("setDate", endDate);
+    //getPageSet().then(res =>{
+    $(".filter").click();   //初始查询
+    //})
+//选择病历等级
+    $('.selectLevel').on("click", function (e) {
+        e.stopPropagation()
+        $(".deptList ").css("display", "none")
+        $(".selectDept .arrow").attr("src", iconDown)
+        $(".checkList ").css("display", "none")
+        $(".selectCheck .arrow").attr("src", iconDown)
+        const showList = $(".levelList ").css("display")
+        if (showList == "none" || !showList) {
+            $(".levelList ").css("display", "block")
+            $(".selectLevel .arrow").attr("src", iconUp)
+        } else {
+            $(".levelList ").css("display", "none")
+            $(".selectLevel .arrow").attr("src", iconDown)
+        }
+    })
+
+//选择核查状态
+    $('.selectStatus').on("click", function (e) {
+        e.stopPropagation()
+        $(".scoreList").css("display", "none")
+        $(".levelList").css("display","none")
+        $(".deptList ").css("display", "none")
+        $(".selectDept .arrow").attr("src", iconDown)
+        $(".selectCheck .arrow").attr("src", iconDown)
+        const showList = $(".statusList").css("display")
+        if (showList == "none" || !showList) {
+            $(".statusList").css("display", "block")
+            $(".selectStatus .arrow").attr("src", iconUp)
+        } else {
+            $(".statusList").css("display", "none")
+            $(".selectStatus .arrow").attr("src", iconDown)
+        }
+    })
+
+    //筛选分值选择
+    $('.selectScore').on("click", function(e){
+        e.stopPropagation();
+        $(".deptList").css("display","none")
+        $(".levelList").css("display","none")
+        $(".selectDept .arrow").attr("src",iconDown)
+        $(".selectScore .arrow").attr("src",iconDown)
+        $(".scoreList ").css("display","block")
+    })
+
+    //筛选
+    $(".filter").on("click", function () {
+        const filterData = getFilterData();
+        const behosDateStartTime = new Date(filterData.jobDistributionTimeStart).getTime()
+        const behosDateEndTime = new Date(filterData.jobDistributionTimeEnd).getTime()
+        if (behosDateStartTime > behosDateEndTime) {
+            $.alerModal({ "message": '生成日期开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+            return
+        }
+        getTabData(1)
+    })
+
+    $(".abnormalClear").on("click", function (e) {
+        clearFilter();
+        getTabData(1)
+    })
+    getScoreTabList((data)=>{rendeScoreList(data)},true)
+    getTabData(1)
+    bindLeveldSelect()
+    bindStatusdSelect()
+
+    $('.selectDept').on("click", function (e) {
+        e.stopPropagation()
+        $(".levelList ").css("display", "none")
+        $(".scoreList").css("display", "none")
+        $(".selectLevel .arrow").attr("src", iconDown)
+        $(".statusList").css("display", "none")
+        $(".selectStatus .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)
+        }
+    })
+
+    $(document).on("click", function () {
+        $(".statusList").css("display", "none")
+        $(".scoreList").css("display", "none")
+        $(".levelList ").css("display", "none")
+        $(".deptList").css("display", "none")
+        $(".selectDept .arrow").attr("src", iconDown)
+        $(".selectLevel .arrow").attr("src", iconDown)
+        $(".selectStatus .arrow").attr("src", iconDown)
+    })
+
+
+//获取科室列表
+    getDeptList()
+})
+
+//判断有无某一权限
+function hasData(data) {
+    let trdObj = JSON.parse(getCookie("trdObj"))
+    let lis = trdObj['YH-ZKHC-HCRWLB']
+    if (!lis) {
+        return false
+    }
+    if (lis.indexOf(data) > -1) {//有权限
+        return true
+    }
+    return false;
+}
+//列表获取筛选值
+function getFilterData(){
+    const obj = {};
+    $(".filterBox input[code]").map((i,it)=>{
+        obj[$(it).attr("code")]=$(it).val()
+    })
+    return obj;
+}
+//重置筛选项
+function clearFilter(){
+    $(".filterBox input").val("");
+    data_desc=["jobDistributionTime"];
+    /*if(isPlacefile != 1){
+        data_desc=["behospital_date"]
+    }*/
+    data_asc=[];
+    //默认日期为本月
+    const days = new Date().getDate()-1;
+    let startDate = "-"+days+"d",endDate=new Date();
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy-mm-dd",
+    }).datepicker( "setDate", startDate);
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy-mm-dd"
+    }).datepicker( "setDate",endDate);
+    $("th[code]").removeClass("asc desc")
+    $("th[code='jobDistributionTime']").addClass('desc');
+
+    $('.selectDept ').html('全部')
+    $(".deptList").css("display", "none")
+    $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    global_deptId="";
+
+    $('.selectLevel').html('全部')
+    $(".levelList").css("display", "none")
+    $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    global_level="";
+
+    $('.selectStatus').html('全部')
+    $(".statusList").css("display", "none")
+    $(".selectStatus").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    global_checkStatus="";
+
+    $('.selectScore i').html('全部')
+    $(".scoreList").css("display", "none")
+    global_score='';
+}
+function getTabData(activePage) {
+    const filterData = getFilterData();
+    const param = {
+        level: global_level,//病历等级
+        asc: data_asc,     //升序
+        desc: data_desc,       //降序
+        size: 15,
+        current:activePage,
+        ...filterData,
+        checkJobTypes:global_score.trim()?[global_score]:[],
+        behDeptId:global_deptId.trim(),
+        status:global_checkStatus,
+        jobDistributionTimeStart:filterData.jobDistributionTimeStart+" 00:00:00",
+        jobDistributionTimeEnd:filterData.jobDistributionTimeEnd+" 23:59:59"
+    }
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...', '', 15))
+    return post(ywCheckApi.getUserList, param).then(res => {
+        if (res.data.code == '0') {
+            tabList = res.data.data.records
+            const totalPage = res.data.data.pages
+            const totalNum = res.data.data.total
+            renderTab(tabList, activePage)
+            renderPagination(totalPage, Number(activePage), totalNum)
+            if (totalPage > 0) {
+                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) => {
+
+    })
+}
+//排序事件
+function bindOrder() {
+    $("th[code]").off("click").on("click", function (e) {
+        const code = $(this).attr("code");
+        if (data_asc[0] === code) {
+            data_desc = [code];
+            data_asc = [];
+            $("th[code]").removeClass("asc desc");
+            $(this).addClass("desc");
+        } else {
+            data_desc = [];
+            data_asc = [code];
+            $("th[code]").removeClass("asc desc");
+            $(this).addClass("asc");
+        }
+        getTabData(1);
+    });
+}
+
+//来源筛选下拉
+function rendeScoreList(list){console.log(list)
+    const arr = Object.keys(list);
+    if(arr.length == 0){
+        $('.scoreList').html("")
+        return
+    }
+    let str = `<li class="scoreItem ellipsis" data-id=" " data-name="全部">全部</li>`;
+    for(let i = 0; i < arr.length; i++){
+        str += `<li class="scoreItem ellipsis" data-id=${arr[i]} data-name=${list[arr[i]]}> ${list[arr[i]]}</li>`
+    }
+    $('.scoreList').html(str)
+    bindScoreSelect()
+}
+function bindScoreSelect(){
+    $('.scoreItem').on("click",function(){
+        const scoreItemName = $(this).attr("data-name")
+        const scoreItemItemId = $(this).attr("data-id")
+        global_score =scoreItemItemId;
+        $('.selectScore i').html(scoreItemName)
+        $(".scoreList").css("display", "none")
+    })
+}
+function renderTab(data) {
+    let str = ``,code="";
+    if (data.length === 0) {
+        $('.tbody').html(emptyBox(null, 15))
+        return;
+    }
+    const titles = $(".tabTitle th[valCode]");
+    for(let i = 0; i < data.length; i++){
+        const item = data[i]
+
+        str += `
+            <tr  data-index=${i}>`;
+        for(let i=0;i<titles.length;i++){
+            code=$(titles[i]).attr('valCode');
+            str +=  `<td class="${code=='name'?'beHospitalId':''} textCenter"><span data-index=${i}>${ item[code] || "-"}<span></td>`
+        }
+        str += "</tr>"
+    }
+    $('.tbody').html(str)
+    bindScoreDetail()
+    bindOrder()
+}
+
+function bindScoreDetail() {
+    $('.tbody').unbind("click").on('click', 'tr .beHospitalId', function (e) {
+        console.log(tabList)
+        console.log($(this).parent().index())
+        const index = $(this).parent().index()
+        const id = tabList[index].behospitalCode
+        const name = tabList[index].name
+        const age = tabList[index].age;
+        const checkStatus = tabList[index].checkStatus
+        scoreDetail({id, age,name, hid:getCookie("hospitalid"),code:'YH-ZKHC-HCRWLB'})
+    });
+}
+function scoreDetail(obj) {
+
+    window.open(`./qcScore.html?id=${obj.id}&age=${obj.age}&name=${obj.name}&hid=${obj.hid}&code=${obj.code}`)
+}
+//病历等级选择
+function bindLeveldSelect() {
+    $('.levelItem').on("click", function () {
+        const levelItemName = $(this).attr("data-name")
+        global_level = $(this).attr("data-id")
+        $('.selectLevel').html(levelItemName)
+        $(".levelList").css("display", "none")
+        $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    })
+}
+
+//病历核查状态选中
+function bindStatusdSelect() {
+    $('.statusItem').on("click", function () {
+        const levelItemName = $(this).attr("data-name")
+        global_checkStatus = $(this).attr("data-id")
+        $('.selectStatus').html(levelItemName)
+        $(".statusList").css("display", "none")
+        $(".selectStatus").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    })
+}
+
+function getDeptList() {
+    post(api.getDeptList, {}).then(res => {
+        if (res.data.code == '0') {
+            const deptList = res.data.data
+            rendeDeptList(deptList)
+        } else { }
+    }).catch((e) => {
+
+    })
+}
+
+function rendeDeptList(deptList) {
+    //console.log(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")
+        global_deptId = $(this).attr("data-id")
+        if (deptItemName.length > 10) {
+            $('.selectDept').text(deptItemName.substring(0, 8) + '...')
+        } else {
+            $('.selectDept').text(deptItemName)
+        }
+        $('.selectDept ').text(deptItemName).attr('title', deptItemName)
+        $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        $(".deptList").css("display", "none")
+    })
+}
+function loading() {
+    const str = `
+    <div class="loadingBox">
+            <div class="mask"></div>
+            <img class="loadingImg" src=${loadingImg}  alt="loading" />
+        </div>
+    `
+    $("#mainBox", parent.document).append(str)
+}
+function hideLoading() {
+    $("#mainBox .loadingBox", parent.document).remove()
+}
+$(function () {
+
+});
+
+//分页渲染
+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)
+        }
+    })
+
+}

+ 5 - 61
src/js/console.js

@@ -31,7 +31,7 @@ $(function(){
         $("body").html('')
     }
 
-    const firstM = $(".menu .page",parent.document).eq(0);
+    /*const firstM = $(".menu .page",parent.document).eq(0);
     $('.page',parent.document).removeClass("active")
     firstM.addClass("active");
     if(firstM.is(".YH-KZT")||firstM.is(".YH-KZTKS")){
@@ -39,15 +39,8 @@ $(function(){
         $('.qiehuan',parent.document).css("display","inline-block")
     }else{
         $('.qiehuan',parent.document).css("display","none")
-    }
+    }*/
 
-    // if(hospital == "台州市立"){
-    //     $(".part03 .partTitlePub .name").html('各科室甲级病例占比')
-    //     $(".innerOuter").css("display","block")
-    // }else{
-    //     $(".part03 .partTitlePub .name").html('病案首页合格率')
-    //     $(".innerOuter").css("display","none")
-    // }
     $(".partTitle p span").html(hospital)
     resizeBox()
     initConsole()//质控列表
@@ -221,7 +214,7 @@ $(parent.document).find(".menu .page[code=YH-KZT]").addClass("active")
 
 //判断有无某一权限
 function hasData(data){
-    let lis = JSON.parse(getCookie("codeLis"))
+    let lis = JSON.parse(getCookie("codeLis"))||''
     // console.log(lis)
     if(lis&&lis.indexOf(data)>-1){//有权限
         return true
@@ -439,55 +432,6 @@ function getHomeData(name){
 }
 //获取图表数据
 function getBarData(type){
-    // if(hasData('FUNC000045')){
-    //     post(api.getAverageDayNum,{//平均住院天数
-    //         "type": type||1//1月2年
-    //     }).then((res)=>{
-    //         let data = res.data;
-    //         if(data.code == 0){
-    //             let result2 = data.data['平均住院日']||[]
-    //             dayLis = result2
-    //             if(slideType == 1){
-    //                 barChart(result2,type||1)
-    //             }
-    //         }
-    //     })
-    // }else{
-    //     $(".toggleSlide1").css("opacity",0.5)
-    // }
-    // if(hasData('FUNC000046')){
-    //     post(api.getAverageFee,{//平均住院费用
-    //         "type": type||1//1月2年
-    //     }).then((res)=>{
-    //         let data = res.data;
-    //         if(data.code == 0){
-    //             let result3 = data.data['平均住院费用']||[]
-    //             payMoney = result3;
-    //             if(slideType == 2){
-    //                 barChart(result3,type||1)
-    //             }
-    //         }
-    //     })
-    // }else{
-    //     $(".toggleSlide2").css("opacity",0.5)
-    // }
-    // if(hasData('FUNC000048')&&hospital=="台州市立"){
-    //     post(api.getLevelResultDept,{//各科室甲级占比
-    //         "type": type||1//1月2年
-    //     }).then((res)=>{
-    //         let data = res.data;
-    //         if(data.code == 0){
-    //             let result2 = data.data['各科室甲级病历占比']||[]
-    //             let dataX2=[],dataY2=[];
-    //             for(let i = 0;i < result2.length;i++){
-    //                 dataX2.push(result2[i].deptName)
-    //                 dataY2.push(result2[i].firstPercent.replace('%',''))
-    //             }
-    //             lineChart(dataX2,dataY2)
-    //         }
-    //     })
-    // }
-    
     if(isPlacefile==0){
         $(".part01 .partTitlePub .name").html('入院人数统计')
         post(api.beHosCount,{
@@ -2133,7 +2077,7 @@ function getStaticDate(flg){
     getEveryDeptLevel()
     return true
 }
-$(function() {
+window.onload = function(){console.log(444)
     const  iconCalenBlue= require("./../images/darkDate.png")
     const  iconCalenGrey= require("./../images/icon_calen_grey.png")
     $.datepicker.regional['zh-CN'] = {
@@ -2194,4 +2138,4 @@ $(function() {
     // });
     // initScroll("partWrap","Y",2)
     // initScroll("console","X",2)
-});
+};

+ 649 - 0
src/js/creatCheckTask.js

@@ -0,0 +1,649 @@
+const $ = require('jquery');
+require("../css/creatCheckTask.less");
+require('./modal.js');
+const {api,ywCheckApi} = require('./api.js')
+const {post,getCookie,emptyBox,listenScroll,getScoreTabList} = 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 iconDisCheck = require("./../images/icon_dis.png")
+const  iconCalenBlue= require("./../images/icon_calen_blue.png")
+const  iconCalenGrey= require("./../images/icon_calen_grey.png")
+const iconDown= require("./../images/arrow_down.png")
+const iconUp = require("./../images/arrow_up.png")
+const loadingImg = require("./../images/loading.gif")
+const arrowLeft= require("./../images/arrow_left.png")
+const arrowRight = require("./../images/arrow_right.png")
+
+listenScroll()
+let tabList = [],  global_level="",global_status="0",
+    global_deptId=[],global_deptName="",global_score='',
+  data_desc=["leaveHospitalDate"],data_asc=[],global_taskList=[],global_delOrAdd=1;//1生成0取消
+let global_activeTabCode = '0';    //激活的tab  code
+let isPlacefile = getCookie('isPlacefile')||1
+
+$(function() {
+    $(window.parent.document).find(".modaltip").hide();//切换页面过快时toast隐藏
+    const checkAuth = getCookie('checkAuth');
+    /*if(!checkAuth){
+        $(".tabs").hide();
+        toast("没有质控核查权限!");
+        return
+    }*/
+    const tabs = checkAuth.replace(/[^456]/g,'');
+    if(tabs.length===0){
+        //$(".tabs").hide();
+        toast("没有质控核查权限!");
+        return;
+    }else if(tabs.length>1){
+        //多于一个权限,显示tab切换
+        $(".tabs").show();
+        const last = "456".replace(tabs,'');
+        $(".tabs [data-code="+(last-4)+"]").parent().hide();
+    }
+    global_activeTabCode=tabs.substr(0,1)-4;
+    //获取科室列表
+    if(global_activeTabCode=="0"){
+        getSubDeptList();
+    }else{
+        getDeptList();
+    }
+    $(".tabs [data-code="+global_activeTabCode+"]").addClass("active");
+    $('.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()
+    })
+
+    $(".menu .page", parent.document).removeClass("active")
+    $(parent.document).find(".menu .page[code=YH-ZKHC-SCHCRW]").addClass("active")
+
+    $(".filter").on("click", function(e){
+        global_taskList=[];
+        const isCreated = (global_status=="1");
+        const text = isCreated?'取消':'生成';
+        $(".modal-body p").text("确定要"+text+"这些任务吗?");
+        if(isCreated){
+            $(".creatTask").addClass("disabled");
+            $(".cancelTask").removeClass("disabled");
+        }else{
+            $(".creatTask").removeClass("disabled");
+            $(".cancelTask").addClass("disabled");
+        }
+        //已生成筛选时按生成日期倒序筛选
+        if(isCreated){
+            global_delOrAdd=0;
+            data_desc=["jobCreateTime"];
+            $("th[code=jobCreateTime]").addClass("desc");
+        }else{
+            global_delOrAdd=1;
+            data_desc=["leaveHospitalDate"];
+            $("th[code=jobCreateTime]").removeClass("desc");
+        }
+        getTabData(1)
+    })
+    $(".abnormalClear").on("click", function(e){
+        clearFilter();
+        getTabData(1)
+    })
+    //切换tab
+    $(".tabBox .tabs button").on("click",(e)=>{
+        const me = e.target;
+        $('.selectDept i').text('全部')
+        $(".deptItem.active").removeClass("active");
+        $(".deptList").css("display", "none")
+        global_deptId=[];
+        global_deptName="";
+        global_activeTabCode = $(me).attr("data-code");
+        if(global_activeTabCode=="0"){
+            getSubDeptList();
+        }else{
+            getDeptList();
+        }
+        $(".tabBox .tabs button").removeClass("active");
+        $(me).addClass("active");
+        //更新列表并重置筛选条件
+        $(".filter").click();
+    });
+//选择生成状态
+    $('.selectStatus').on("click", function(e){
+        e.stopPropagation()
+        const showList =  $(".statusList ").css("display")
+        if(showList == "none" ||!showList){
+            $(".levelList ").css("display", "none")
+            $(".deptList ").css("display", "none")
+            $(".scoreList ").css("display", "none")
+            $(".statusList ").css("display","block")
+        }else{
+            $(".statusList ").css("display", "none")
+        }
+    })
+//选择病历等级
+    $('.selectLevel').on("click", function(e){
+        e.stopPropagation()
+        $(".deptList ").css("display", "none")
+        const showList =  $(".levelList ").css("display")
+        if(showList == "none" ||!showList){
+            $(".deptList ").css("display", "none")
+            $(".statusList ").css("display", "none")
+            $(".scoreList ").css("display", "none")
+            $(".levelList ").css("display","block")
+        }else{
+            $(".levelList ").css("display", "none")
+        }
+    })
+    //科室选择
+    $('.selectDept').on("click", function(e){
+        e.stopPropagation();
+        $(".levelList ").css("display", "none")
+        $(".statusList ").css("display", "none")
+        $(".scoreList ").css("display", "none")
+        $(".deptList ").css("display","block")
+    })
+
+    //筛选分值选择
+    $('.selectScore').on("click", function(e){
+        e.stopPropagation();
+        $(".levelList ").css("display", "none")
+        $(".deptList ").css("display", "none")
+        $(".statusList ").css("display", "none")
+        $(".scoreList ").css("display","block")
+    })
+
+    $(".creatTask,.cancelTask").click(function(){
+        if($(this).is(".disabled")){
+            return;
+        }
+        if(!global_taskList.join("").length){
+            toast("至少勾选一个任务");
+            return;
+        }
+        $(".modal-container").show();
+    });
+    $(".modal-container .confirm").click(function(){
+        creatTask(global_delOrAdd)
+    });
+    $(".modal-container .cancel,.modal-container .close").click(function(){
+        /*if(global_delOrAdd==0){
+            global_taskList=[];
+        }*/
+        $(".modal-container").hide();
+    })
+
+    //出院日期初始化
+    $.datepicker.regional['zh-CN'] = {
+        clearText: '清除',
+        clearStatus: '清除已选日期',
+        closeText: '关闭',
+        closeStatus: '不改变当前选择',
+        prevText: '<上月',
+        prevStatus: '显示上月',
+        prevBigText: '<<',
+        prevBigStatus: '显示上一年',
+        nextText: '下月>',
+        nextStatus: '显示下月',
+        nextBigText: '>>',
+        nextBigStatus: '显示下一年',
+        currentText: '今天',
+        currentStatus: '显示本月',
+        monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+        monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+        yearNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
+        monthStatus: '选择月份',
+        yearStatus: '选择年份',
+        weekHeader: '周',
+        weekStatus: '年内周次',
+        dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
+        dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
+        dayNamesMin: ['日','一','二','三','四','五','六'],
+        dayStatus: '设置 DD 为一周起始',
+        dateStatus: '选择 m月 d日, DD',
+        dateFormat: 'yy-mm-dd',
+        firstDay: 1,
+        initStatus: '请选择日期',
+        isRTL: false};
+    const days = new Date().getDate()-1;
+    let startDate = "-"+days+"d",endDate=new Date();
+    $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy-mm-dd",
+    }).datepicker( "setDate", startDate);
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy-mm-dd"
+    }).datepicker( "setDate",endDate);
+    getScoreTabList((data)=>{rendeScoreList(data)})
+//获取列表数据
+    getTabData(1)
+    //状态选择
+    bindStatusSelect()
+    //等级选择
+    bindLeveldSelect()
+    //关闭下拉
+    $(document).on("click", function(){
+        $(".levelList ").css("display", "none")
+        $(".deptList ").css("display", "none")
+        $(".statusList ").css("display", "none")
+        $(".scoreList ").css("display", "none")
+    })
+});
+//判断有无某一权限
+  function hasData(data){
+    let trdObj = JSON.parse(getCookie("trdObj"))
+    let lis = trdObj['YH-ZKHC-SCRW']
+    if(!lis){
+      return false
+    }
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+}
+
+function rendeScoreList(list){
+    if(list.length == 0){
+        $('.scoreList').html("")
+        return
+    }
+    let str = `<li class="scoreItem ellipsis" data-id=" " data-name="全部">全部</li>`;
+    for(let i = 0; i < list.length; i++){
+        str += `<li class="scoreItem ellipsis" data-id=${list[i]} data-name=${list[i]}> ${list[i]}</li>`
+    }
+    $('.scoreList').html(str)
+    bindScoreSelect()
+}
+function bindScoreSelect(){
+    $('.scoreItem').on("click",function(){
+        const scoreItemName = $(this).attr("data-name")
+        const scoreItemItemId = $(this).attr("data-id")
+        global_score =scoreItemItemId;
+        $('.selectScore i').html(scoreItemName)
+        $(".scoreList").css("display", "none")
+    })
+}
+//排序事件
+function bindOrder(){
+    $("th[code]").off("click").on("click", function (e) {
+        const code = $(this).attr("code");
+        if (data_asc[0] === code) {
+            data_desc = [code];
+            data_asc = [];
+            $("th[code]").removeClass("asc desc");
+            $(this).addClass("desc");
+        } else {
+            data_desc = [];
+            data_asc = [code];
+            $("th[code]").removeClass("asc desc");
+            $(this).addClass("asc");
+        }
+        getTabData(1);
+    });
+}
+function bindCancelTaskEvent(){
+    $(".taskCancel").unbind("click").click(function(){
+        global_delOrAdd=0;
+        global_taskList = [$(this).attr("code")];
+        $(".modal-container .modal-body p").text("确定要取消该任务吗?");
+        $(".modal-container").show();
+    });
+}
+
+//生成任务
+function creatTask(){
+      const param={
+          behospitalCodeList:global_taskList,
+          jobType:global_activeTabCode,
+          checkStatus:global_delOrAdd,
+      };
+    post(ywCheckApi.addCheck,param).then(res =>{
+        if(res.data.code == '0'){
+            global_taskList=[];
+            $(".modal-container").hide();
+            toast("操作成功!");
+            getTabData(1)
+        }else{
+            toast(res.data.msg);
+        }
+    }).catch((e) =>{
+
+    })
+}
+
+function getTabData(activePage){
+    const filterData = getFilterData();
+    const {smallDay,bigDay,startDate,endDate} = filterData;
+    if(+smallDay>+bigDay){
+        toast("住院天数区间有误~");
+        return;
+    }
+    if(new Date(startDate).getTime()>new Date(endDate).getTime()){
+        toast("出院日期开始时间不能大于结束时间~");
+        return;
+    }
+    const param = {
+        jobType:global_activeTabCode,     //科室/质控科/院级
+        creatStatus:global_status,
+        current:activePage,
+        hospitalId:'',
+        level:global_level,//病历等级
+        values:global_score.trim()?[global_score]:[],
+        department: global_deptId,
+        asc:data_asc,     //升序
+        desc:data_desc,       //降序
+        size: 15,
+        ...filterData,
+        startDate:filterData.startDate+" 00:00:00",
+        endDate:filterData.endDate+" 23:59:59",
+    }
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...','',17))
+    return post(ywCheckApi.getTaskList,param).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data;
+            tabList = data.records;
+            const totalPage = data.pages;
+            const totalNum = data.total;
+            renderTab(tabList,data.hospitalId);
+            renderPagination(totalPage,Number(activePage),totalNum)
+            if(totalPage > 0){
+                renderPagination(totalPage,Number(activePage),totalNum)
+            } else{
+                $('.pagination').html("")
+            }
+        }else{
+            toast(res.data.msg);
+        }
+    }).catch((e) =>{
+    
+    })
+}
+
+function toast(msg){
+    $.alerModal({"message":msg,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+}
+
+function renderTab(data){
+    let str = ``,code="";
+    let hasSelectAll = true;
+    if(data.length===0){
+      $('.tbody').html(emptyBox(null,17))
+    //   initScroll("qcList","YX",1)
+      return;
+    }
+    const titles = $(".tabTitle th[valCode]");
+    for(let i = 0; i < data.length; i++){
+        const item = data[i]
+
+        str += `
+            <tr  data-index=${i}>
+                <td class="operaItem taskCheck textCenter"><img code="${item.behospitalCode}" src="${iconUnCheck}" alt=""></td>`;
+        for(let i=0;i<titles.length;i++){
+            code=$(titles[i]).attr('valCode');
+            str +=  `<td class="textCenter"><span data-index=${i}>${ item[code] || "-"}<span></td>`
+        }
+        str += `<td class="operaItem textCenter ${(item.creatStatus=='已生成'&&item.delFlag)?'taskCancel':'disable'}" code="${item.behospitalCode}">取消</td></tr>`
+    }
+
+    if(data.length === 0){
+        hasSelectAll = false
+    }
+    if(hasSelectAll){
+        $('.scoreOpera img').attr("src" ,iconCheck)
+        $('.scoreOpera').attr("data-selectall",true)
+    }else{
+        $('.scoreOpera img').attr("src" ,iconUnCheck)
+        $('.scoreOpera').attr("data-selectall",false)
+    }
+    $('.tbody').html(str)
+    $(".allCheck  img").attr("src",iconUnCheck);    //全选改为可用状态
+    bindOrder();
+    bindTaskCheckEvent();
+    bindCancelTaskEvent();
+}
+
+function bindTaskCheckEvent(){
+      $(".taskCheck img").unbind("click").click(function(){
+          const code = $(this).attr("code");
+            if($(this).is(".active")){
+                let str = global_taskList.join(",")+",";
+                str = str.replace(code+",","").replace(/^,|,$/,'');
+                global_taskList = str.split(",");
+                $(".allCheck img").attr('src',iconUnCheck).removeClass("active");
+                $(this).attr('src',iconUnCheck).removeClass("active");
+            }else{
+                global_taskList.push(code);
+                $(this).attr('src',iconCheck).addClass("active");
+            }
+
+      });
+    //全选
+    $(".allCheck img").unbind("click").click(function(){
+        const checks = $(".taskCheck img");
+        if($(this).is(".active")){
+            $(this).attr("src",iconUnCheck).removeClass("active");
+            checks.attr("src",iconUnCheck).removeClass("active");
+            global_taskList=[];
+        }else{
+            $(this).attr("src",iconCheck).addClass("active");
+            checks.attr("src",iconCheck).addClass("active");
+            let codes = [];
+            checks.map((i)=>{
+                codes.push($(checks[i]).attr("code"));
+            });
+            global_taskList=codes;
+        }
+        console.log(global_taskList)
+
+    });
+}
+
+//列表获取筛选值
+function getFilterData(){
+    const obj = {};
+    $(".filterBox input[code]").map((i,it)=>{
+        obj[$(it).attr("code")]=$(it).val()
+    })
+    return obj;
+}
+
+//生成状态选择
+function bindStatusSelect(){
+    $('.statusItem').on("click",function(){
+        const statusItemName = $(this).attr("data-name")
+        global_status = $(this).attr("data-id")
+        $('.selectStatus i').html(statusItemName)
+        $(".statusList").css("display", "none")
+        $('.selectStatus').removeClass('unSelect')
+    })
+}
+
+//病历等级选择
+function bindLeveldSelect(){
+    $('.levelItem').on("click",function(){
+        const levelItemName = $(this).attr("data-name")
+        const levelItemItemId = $(this).attr("data-id")
+        global_level =levelItemItemId
+        $('.selectLevel i').html(levelItemName)
+        $(".levelList").css("display", "none")
+        //$(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    })
+}
+//获取科室任务对应的列表
+function getSubDeptList(){
+    post(api.getDept,{}).then(res =>{
+        if(res.data.code == '0'){
+            const  deptList = res.data.data||[]
+            rendeDeptList(deptList)
+        }else{rendeDeptList([])}
+    }).catch((e) =>{
+
+    })
+}
+//科室列表
+function getDeptList(){
+    post(api.getDeptList,{}).then(res =>{
+        if(res.data.code == '0'){
+           const  deptList = res.data.data||[]
+           rendeDeptList(deptList)
+        }else{rendeDeptList([])}
+    }).catch((e) =>{
+
+    })
+}
+function rendeDeptList(deptList){
+    if(deptList.length == 0){
+      $('.deptList').html("")
+      return
+    }
+    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(e){
+        e.stopPropagation();
+        const deptItemName = $(this).attr("data-name");
+        let str = global_deptId.join(",")+",";
+        const code=$(this).attr("data-id")
+        if(!code.trim()){
+            $(".deptItem").removeClass("active");
+            global_deptId = [];
+            global_deptName="";
+            $('.selectDept i').text('全部')
+            $('.selectDept').attr('title','全部')
+            return;
+        }
+        if($(this).is(".active")){
+            global_deptName = global_deptName.replace(deptItemName+",",'');
+            str = str.replace(code+",","").replace(/^,|,$/,'');
+            global_deptId = str.split(",");
+        }else{
+            global_deptName = global_deptName+deptItemName+",";
+            global_deptId.push(code);
+        }
+        $(this).toggleClass("active");
+        const name = global_deptName.replace(/,$/,'');
+        $('.selectDept i').text(name)
+        $('.selectDept').attr('title',name)
+    })
+}
+function loading(){
+    const str = `
+    <div class="loadingBox">
+            <div class="mask"></div>
+            <img class="loadingImg" src=${loadingImg}  alt="loading" />
+        </div>
+    `
+    $("#mainBox", parent.document).append(str)
+}
+function hideLoading(){
+    $("#mainBox .loadingBox", parent.document).remove()
+}
+function clearFilter(){
+    const days = new Date().getDate()-1;
+    let startDate = "-"+days+"d",endDate=new Date();
+    $(".creatTask").removeClass("disabled");
+    $(".cancelTask").addClass("disabled");
+    $(".filterBox input").val("");
+    data_desc=["leaveHospitalDate"];
+    //默认日期为本月
+    $( "#datepicker" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy-mm-dd",
+    }).datepicker( "setDate", startDate);
+    $( "#datepicker2" ).datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat:"yy-mm-dd"
+    }).datepicker( "setDate",endDate);
+    $('.selectDept i').text('全部')
+    $(".deptItem.active").removeClass("active");
+    $(".deptList").css("display", "none")
+    global_deptId=[];
+    global_deptName="";
+    $('.selectLevel i').html('全部')
+    $(".levelList").css("display", "none")
+    global_level="";
+    $('.selectStatus i').html('未生成')
+    $(".statusList").css("display", "none")
+    $('.selectScore i').html('全部')
+    $(".scoreList").css("display", "none")
+    global_score='';
+    global_status='0'
+    $("th[code]").removeClass("asc desc")
+}
+
+//分页渲染
+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)
+        }
+    })
+    
+}

+ 0 - 12
src/js/deptConsole.js

@@ -19,18 +19,6 @@ $(function () {
     if (!hasData('YH-KZT') && !hasData('YH-KZTKS')) {
         $("body").html('')
     }
-    // if(hospital == "台州市立"){
-    //     $(".circleBSingle").css("display","block")
-    //     $(".circleBLis").css("display","none")
-    // }else{
-    //     $(".circleBSingle").css("display","none")
-    //     $(".circleBLis").css("display","block")
-    // }
-    // $(".partTitle p span.hosdept").html(hospital)
-    // setInterval(() => {
-    //     getTimeDetail()
-    // }, 1000);
-    // resizeBox()
     initConsole()//质控列表
     getOwnDept()
     dateChange()

+ 143 - 148
src/js/index.js

@@ -8,15 +8,16 @@ const WarningIcon =  require("./../images/icon-Warning.png")
 const warnIcon = require("./../images/warn.png")
 const openEye = require("./../images/open-eye.png")
 const closeEye = require("./../images/close-eye.png")
-const { api } = require('./api.js')
-const { post, pageMap, delCookie, setCookie, getCookie, focusMenuItem, initScroll } = require('./utils.js');
-let userInfo = {};
-let isPlacefile = getCookie('isPlacefile') || 1
+
+const {api} = require('./api.js')
+const {post,pageMap,delCookie,setCookie,getCookie,focusMenuItem,initScroll} = require('./utils.js');
+let userInfo={};
+let isPlacefile = getCookie('isPlacefile')||1
 let passwordComplexity = getCookie('passwordComplexity')
 const modalDom = `
       <p class="tips"><img src=${WarningIcon} /><span>为确保账号安全,请及时修改初始密码</span></p>
       <div class="modalAction">
-        <p><span class="label"><i>*</i>原密码:</span><input type="password" placeholder="请输入原密码" class="oldword" id="oldWord" autocomplete="off"><img class="eye" src=${closeEye} /><p class="oldWaring warning"><img src=${warnIcon} /><b>原密码错误</b></p></p>
+        <p><span class="label"><i>*</i>原密码:</span><input type="text" placeholder="请输入原密码" class="oldword" id="oldWord" autocomplete="off"><img class="eye" src=${closeEye} /><p class="oldWaring warning"><img src=${warnIcon} /><b>原密码错误</b></p></p>
         <p><span class="label"><i>*</i>新密码:</span><input type="password" disabled placeholder="请输入新密码" class="newword" id="newWord" autocomplete="off"><img class="eye" src=${closeEye} /><p class="newword warning"><img src=${warnIcon} /><b>密码最多12位</b></p></p>
         <p><span class="label"><i>*</i>确认新密码:</span><input type="password" disabled placeholder="请输入确认新密码" class="sureword" id="sureWord" autocomplete="off"><img class="eye" src=${closeEye} /><p class="sureword warning"><img src=${warnIcon} /><b>两次密码输入不一致</b></p></p>
       </div>
@@ -32,63 +33,63 @@ const psdChecker = `<div class="psd-checkbox">
 $(function () {
   getOwnDept();
   setInterval(() => {
-    getTimeDetail()
+      getTimeDetail()
   }, 1000);
-  //菜单展开收起
   sureChangeWord()
   if (passwordComplexity!=='null') {
-    $.alerModal({
-      quiteBtn: true,
-      title: "修改密码",
-      type: "modal",
-      width: '470',
-      time: '1000',
-      sureText: '保存',
-      message: modalDom});
-    bindModalEvent();
+      $.alerModal({
+          quiteBtn: true,
+          title: "修改密码",
+          type: "modal",
+          width: '470',
+          time: '1000',
+          sureText: '保存',
+          message: modalDom});
+      bindModalEvent();
   }
+    //菜单展开收起
   $(".main").css({
-    height: $(window).height() - 52 + 'px'
+    height:$(window).height()-52+'px'
   })
-  $(window).resize(function () {
+  $(window).resize(function(){
     $(".main").css({
-      height: $(window).height() - 52 + 'px'
+      height:$(window).height()-52+'px'
     })
   })
-  $(window).click(function (e) {
-    $(".userAction").css("display", "none")
+  $(window).click(function(e){
+    $(".userAction").css("display","none")
   })
-  $("#changeWord").css("opacity", hasData('FUNC000002') ? '1' : '0.5').hover(function () {
-    $(this).css("color", "#777777")
+  $("#changeWord").css("opacity",hasData('FUNC000002')?'1':'0.5').hover(function(){
+    $(this).css("color","#777777")
   })
-  if (isPlacefile == 0) {
-    $('.qiehuan i').html('切换病案质控')
+  if(isPlacefile==0){
+    $(this).find('.qiehuan i').html('切换病案质控')
     $('.subtitle').html('AI运行质控平台')
     getMenu()
-  } else if (isPlacefile == 1) {
-      $('.qiehuan i').html('切换运行质控')
+  }else if(isPlacefile==1){
+    $(this).find('.qiehuan i').html('切换运行质控')
     $('.subtitle').html('AI病案质控平台')
     getMenu()
   }
-  $(".header .title .qiehuan").click(function () {
+  $(".header .title .qiehuan").click(function(){
     let txt = $(this).find('i').html()
-    if (txt == '切换运行质控') {
+    if(txt == '切换运行质控'){
       $(this).find('i').html('切换病案质控')
       $('.subtitle').html('AI运行质控平台')
-      setCookie("isPlacefile", 0)
-    } else {
+      setCookie("isPlacefile",0)
+    }else{
       $(this).find('i').html('切换运行质控')
       $('.subtitle').html('AI病案质控平台')
-      setCookie("isPlacefile", 1)
+      setCookie("isPlacefile",1)
     }
     $('#contentIframe').attr('src', $('#contentIframe').attr('src'));
     getMenu();
   })
-  $(".header .title .qiehuan").mouseenter(function () {
-    $(this).parent().find('img').attr('src', require('../images/qiehuan1.png'))
+  $(".header .title .qiehuan").mouseenter(function(){
+    $(this).parent().find('img').attr('src',require('../images/qiehuan1.png'))
   })
-  $(".header .title .qiehuan").mouseleave(function () {
-    $(this).parent().find('img').attr('src', require('../images/qiehuan2.png'))
+  $(".header .title .qiehuan").mouseleave(function(){
+    $(this).parent().find('img').attr('src',require('../images/qiehuan2.png'))
   })
 });
 //切换密码明文
@@ -109,12 +110,18 @@ function toast(msg){
 
 //绑定输入框事件
 function bindModalEvent(){
+    /*$(".modalAction input[ autocomplete='off']").off("focus").on("focus",function(){
+        $(this).attr("type","password")
+    })
+    $(".modalAction input[ autocomplete='off']").off("blur").on("blur",function(){
+        $(this).attr("type","text")
+    })*/
   $(".modalAction .eye").off("click").on("click",function(){
       switchPwd($(this))
   })
   $("#oldWord").off("input").on("input",function(){
     const text = $(this).val();
-    if($(".oldWaring.warning:visible").length){//有修改则隐藏原密码错误报错
+    if($(".oldWaring.warning:visible").length){//有修改则隐藏报错
         $(".oldWaring.warning").hide();
         if(!$(".waring:visible").length){   //无报错则激活保存按钮
             $(".alertModal .sureChange").addClass("active");
@@ -215,10 +222,8 @@ function verifyPsdPart(){   //验证各密码关系规则
   const confirmP = $("#sureWord").val()
   if(oldP.trim()===newP.trim()){
     $(".newword b").text("原密码和新密码不能相同");
-    $(".newword").show();
+      $(".newword").show();
     return false
-  }else{
-      $(".newword.warning").hide();
   }
   if(confirmP.trim()&&newP.trim()!==confirmP.trim()){
       $(".sureword b").text("两次密码输入不一致");
@@ -230,25 +235,25 @@ function verifyPsdPart(){   //验证各密码关系规则
 }
 
 //判断有无某一权限
-function hasData(data, list) {
-  if (list && list.length > 0) {
-    if (list.indexOf(data) > -1) {//有权限
+function hasData(data,list){
+  if(list&&list.length>0){
+    if(list.indexOf(data)>-1){//有权限
       return true
     }
     return false;
   }
-  let lis = JSON.parse(getCookie("codeLis")) || []
-  if (lis.indexOf(data) > -1) {//有权限
-    return true
+  let lis = JSON.parse(getCookie("codeLis"))||[]
+  if(lis.indexOf(data)>-1){//有权限
+      return true
   }
   return false;
 }
-function userActionHide(e) {
-  $(".userAction").css("display", "none")
+function userActionHide(e){
+  $(".userAction").css("display","none")
 }
 window.userActionHide = userActionHide
 
-function initMenu(data, userInfo) {
+function initMenu(data,userInfo){
   //菜单数据填充
   $(".menu ul").html("");
   $(".menu-mini ul").html("");
@@ -256,31 +261,18 @@ function initMenu(data, userInfo) {
   $("#miniMenuTmpl").tmpl(data).appendTo(".menu-mini ul");
   //用户数据填充
   $("#userName").text(userInfo.linkman);
-  //初始菜单选中
-  const firstM = $(".menu .page").eq(0);
-  firstM.addClass("active");
-  if (firstM.is(".YH-KZT") || firstM.is(".YH-KZTKS")) {
-    // if($(".menu .page").eq(0).is(".YH-KZT")){
-    $(".container").addClass("console-cont");
-    $('.qiehuan').css("display", "inline-block")
-  } else {
-    $('.qiehuan').css("display", "none")
-  }
   //菜单收起展开
-  $(".menu .list-1").on("click", function () {
-    if ($(this).is(".list-1-show")) {
+  $(".menu .list-1").on("click",function(){
+    if($(this).is(".list-1-show")){
       $(this).removeClass("list-1-show")
       $(this).find("ul").slideToggle();
-      // setTimeout(function(){
-      //   initScroll("menuList","Y",2)
-      // },300)
       return;
     }
 
     $(".menu .list-1-show ul").slideUp();
     $(".menu .list-1").removeClass("list-1-show");
-    const ulShow = $(this).find("ul").css("display")
-    if (ulShow == "none") {
+    const ulShow =  $(this).find("ul").css("display")
+    if(ulShow == "none"){
       $(this).addClass("list-1-show")
     }
     $(this).find("ul").slideToggle();
@@ -288,45 +280,45 @@ function initMenu(data, userInfo) {
     //   initScroll("menuList","Y",2)
     // },300)
   });
-  //收起菜单
-  $(".slide-hide").off("click").click(function () {
-    $(".menu,.copy-right").animate({ "width": "60px" }, function () {
+//收起菜单
+$(".slide-hide").off("click").click(function(){
+    $(".menu,.copy-right").animate({"width":"60px"},function(){
       $(this).hide();
       $(".menu-mini").show();
     });
-    $(".main").animate({ "margin-left": "60px" });
+    $(".main").animate({"margin-left":"60px"});
   });
   //展开菜单
-  $(".slide-show").off("click").click(function () {
+  $(".slide-show").off("click").click(function(){
     $(".menu-mini").hide();
-    $(".menu,.copy-right").show().animate({ "width": "205px" }, function () {
+    $(".menu,.copy-right").show().animate({"width":"205px"},function(){
     });
-    $(".main").animate({ "margin-left": "205px" });
+    $(".main").animate({"margin-left":"205px"});
   });
 
-  $(".menu .list-1 li").on("click", function (e) {
+  $(".menu .list-1 li").on("click",function(e){
     e.stopPropagation();
   });
   //右侧页面切换
-  $(".page").on("click", function () {
+  $(".page").on("click",function(){
     $(".menu .active,.menu-mini .active").removeClass('active');
-    const code = $(this).attr("code");
-    if (code === 'YH-KZT' || code === 'YH-KZTKS') {
+    const code=$(this).attr("code");
+    if(code === 'YH-KZT'||code === 'YH-KZTKS'){
       // if(code === 'YH-KZT'){
       $(".container").addClass("console-cont");
-      $('.qiehuan').css("display", "inline-block")
-    } else {
-      $('.qiehuan').css("display", "none")
+      $('.qiehuan').css("display","inline-block")
+    }else{
+      $('.qiehuan').css("display","none")
       $(".container").removeClass("console-cont");
     }
-    const mItems = $(".menu .page[code=" + code + "],.menu-mini .page[code=" + code + "]");
+    const mItems = $(".menu .page[code="+code+"],.menu-mini .page[code="+code+"]");
     mItems.addClass("active");
     mItems.parents(".list-1").addClass("active");
-    let url = './' + pageMap[code];
-    if (code === 'YH-BLZK-ZKPFGR') {
+    let url = './'+pageMap[code];
+    if(code === 'YH-BLZK-ZKPFGR'){
       url += `?doctorName=${userInfo.linkman}`
     }
-    $("#contentIframe").attr("src", url);
+    $("#contentIframe").attr("src",url);
     setTimeout(() => {
       bindMenu()
     }, 500);
@@ -336,142 +328,145 @@ function initMenu(data, userInfo) {
 }
 
 //获取科室列表
-function getOwnDept() {
+function getOwnDept(){
   // if(hasData('FUNC000058')){
-  setCookie("deptList", JSON.stringify([]))
-  post(api.getDept, {}).then((res) => {
-    let data = res.data;
-    if (data.code == 0) {
-      let result = data.data
-      setCookie("deptList", JSON.stringify(result))
-    }
-  })
+      setCookie("deptList",JSON.stringify([]))
+      post(api.getDept,{}).then((res)=>{
+          let data = res.data;
+          if(data.code == 0){
+              let result = data.data
+              setCookie("deptList",JSON.stringify(result))
+          }
+        })
   // }
 }
-function getMenu() {
+function getMenu(){
   // console.log(api.getMenu)
-  isPlacefile = getCookie('isPlacefile') || 1
-  post(api.getMenu).then(function (res) {
-    if (res.data.code === '0') {
+  isPlacefile = getCookie('isPlacefile')||1
+  post(api.getMenu).then(function(res){
+    if(res.data.code==='0'){
       const data = res.data.data;
-      for (let i = 0; i < data.menuWrappers.length; i++) {
+      for(let i = 0;i<data.menuWrappers.length;i++){
+        if(isPlacefile==='0'&&data.menuWrappers[i].code==='YH-ZKHC'){
+          data.menuWrappers.splice(i,1);
+          continue;
+        }
         data.menuWrappers[i].isPlacefile = isPlacefile
       }
-      initMenu(data.menuWrappers, data.userLoginDTO);
+      initMenu(data.menuWrappers,data.userLoginDTO);
       userInfo = data.userLoginDTO
-      setCookie("hospital", data.basHospitalInfoDTO.name)
-      setCookie("hospitalid", data.basHospitalInfoDTO.id)
+      setCookie("hospital",data.basHospitalInfoDTO.name)
+      setCookie("hospitalid",data.basHospitalInfoDTO.id)
       getAllCode(data.menuWrappers);
     }
   })
 };
-function getAllCode(data) {
-  let lis = [], personCodeLis = [], deptCodeLis = [], trdObj = {}
-  for (let i = 0; i < data.length; i++) {
+function getAllCode(data){
+  let lis = [],personCodeLis=[],deptCodeLis=[],trdObj={}
+  for(let i = 0;i < data.length;i++){
     let tmpSon = data[i]
     lis.push(tmpSon.code)
-    if (tmpSon.subMenuList.length > 0) {//三层
-      for (let j = 0; j < tmpSon.subMenuList.length; j++) {//第二层循环
+    if(tmpSon.subMenuList.length > 0){//三层
+      for(let j = 0;j<tmpSon.subMenuList.length;j++){//第二层循环
         let tmpGrandSon = tmpSon.subMenuList[j]
-        let sonLis = []
+        let sonLis=[]
         lis.push(tmpGrandSon.code)
-        for (let m = 0; m < tmpGrandSon.sysUserPermissionDTOList.length; m++) {
+        for(let m = 0;m < tmpGrandSon.sysUserPermissionDTOList.length;m++){
           let tmpData = tmpGrandSon.sysUserPermissionDTOList[m]
           lis.push(tmpData.code)
           sonLis.push(tmpData.code)
         }
         trdObj[tmpGrandSon.code] = sonLis
       }
-    } else {//两层
-      for (let n = 0; n < tmpSon.sysUserPermissionDTOList.length; n++) {
+    }else{//两层
+      for(let n = 0;n < tmpSon.sysUserPermissionDTOList.length;n++){
         let tmpData = tmpSon.sysUserPermissionDTOList[n]
         lis.push(tmpData.code)
       }
     }
   }
-  // $("#contentIframe").attr("src",hasData('YH-KZT')?'console.html':hasData('YH-KZTKS')?'deptConsole.html':'console.html');
-  if (hasData('YH-KZT', lis)) {
+  //初始菜单选中
+  if(hasData('YH-KZT',lis)){
     focusMenuItem("YH-KZT");
-  } else if (hasData('YH-KZTKS', lis)) {
+  }else if(hasData('YH-KZTKS',lis)){
     focusMenuItem("YH-KZTKS");
   }
-  setCookie("codeLis", JSON.stringify(lis))
-  setCookie("trdObj", JSON.stringify(trdObj))
+  setCookie("codeLis",JSON.stringify(lis))
+  setCookie("trdObj",JSON.stringify(trdObj))
 }
-function sureChangeWord() {
-  $(document).on('click', '.sureChange.active', function () {
+function sureChangeWord(){
+  $(document).on('click','.sureChange.active',function(){
     let oldword = $(".oldword").val().trim()
     let newword = $(".newword").val().trim()
     $(".modalAction .waring i").html('')
-    changeWord(oldword, newword)
+    changeWord(oldword,newword)
   })
 }
-function changeWord(oldword, newword) {
-  post(api.midifyPassword, {
+function changeWord(oldword,newword){
+  post(api.midifyPassword,{
     "modifyPassword": newword,
     "password": oldword
-  }).then(function (res) {
+  }).then(function(res){
     const data = res.data;
-    if (data.code === '0') {
-      setCookie('behosDateStart', '')
-      setCookie('behosDateEnd', '')
+    if(data.code==='0'){
+      setCookie('behosDateStart','')
+      setCookie('behosDateEnd','')
       toast("密码修改成功,请重新登录");
       setTimeout(()=>{
           window.location.href = './login.html'
       },1000);
-    } else {
-      $(".oldWaring b").text(data.msg);
-      $(".oldWaring").show();
-      $(".alertModal .sureChange").removeClass("active");
+    }else{
+        $(".oldWaring b").text(data.msg);
+        $(".oldWaring").show();
       return
     }
   });
 }
 //用户信息下拉事件
-$(".login").click(function (e) {
+$(".login").click(function(e){
   e.stopPropagation()
   $(".userAction").slideToggle();
 })
 //点击修改密码
-$("#changeWord").click(function (e) {
-  if (!hasData('FUNC000002')) {
-    return
+$("#changeWord").click(function(e){
+  if(!hasData('FUNC000002')){
+      return
   }
   e.stopPropagation()
   const status = $(".modalAction").css("display")
   $.alerModal({
     quiteBtn: true,
-    title: "修改密码",
-    type: "modal",
-    width: '470',
-    time: '1000',
-    sureText: '保存',
-    message: modalDom});
+    title:"修改密码",
+    type:"modal",
+    width:'450',
+    time:'1000',
+    sureText:'保存',
+    message:modalDom});
     $(".alertModal .tips").hide();
     bindModalEvent();
   $(".userAction").hide();
 })
 //推出登录
-$(".login-out").click(function () {
+$(".login-out").click(function(){
   delCookie('accessToken')
-  setCookie('behosDateStart', '')
-  setCookie('behosDateEnd', '')
+  setCookie('behosDateStart','')
+  setCookie('behosDateEnd','')
 })
 
 //时间获取
-function getTimeDetail() {
+function getTimeDetail(){
   const d = new Date();
-  const days = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
+  const days = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
   let sec = d.getSeconds()
   let min = d.getMinutes()
   let hour = d.getHours()
-  let str = `${d.getFullYear()}年${d.getMonth() + 1}月${d.getDate()}日 / ${days[d.getDay()]} / ${hour > 9 ? hour : '0' + hour}:${min > 9 ? min : '0' + min}:${sec > 9 ? sec : '0' + sec}`
+  let str = `${d.getFullYear()}年${d.getMonth()+1}月${d.getDate()}日 / ${days[d.getDay()]} / ${hour>9?hour:'0'+hour}:${min>9?min:'0'+min}:${sec>9?sec:'0'+sec}`
   $(".dateDetail").html(str)
 }
 
 // 左侧菜单滚动到页面顶部
-function bindMenu() {
-  $("#contentIframe").contents().find('.partTitle a').eq(0).click(function () {
-    $(".menuList").scrollTop(0)
-  })
+function bindMenu(){
+  $("#contentIframe").contents().find('.partTitle a').eq(0).click(function(){
+    $(".menuList").scrollTop(0)
+  })
 }

+ 11 - 0
src/js/login.js

@@ -54,10 +54,12 @@ function sureLogin(){
       setCookie('accessToken',data.data.accessToken)
       setCookie('isPlacefile',1)
       setCookie('passwordComplexity', data.data.passwordComplexity)
+      //setCookie('mmps',password);
       localStorage.setItem('accessToken',data.data.accessToken)
       $(".divModal").remove()
       $.alerModal({"message":"登录成功",type:"tip",time:'1000',win:true});
       setTimeout(() => {
+          cacheCheckDatas(data.data.selRoles);
         window.location.href = '/index.html'
       }, 600);
     }else{
@@ -67,4 +69,13 @@ function sureLogin(){
   }).catch(()=>{
     $(".divModal").remove()
   })
+}
+
+//核查权限数据保存
+function cacheCheckDatas(data){
+  delCookie("checkAuth");
+  const arr = data&&data.map((it)=>{
+    return it.id;
+  })||[];
+  setCookie("checkAuth",arr.join(","));
 }

File diff suppressed because it is too large
+ 542 - 556
src/js/qcList.js


File diff suppressed because it is too large
+ 1226 - 0
src/js/qcListDeptYw.js


File diff suppressed because it is too large
+ 1230 - 0
src/js/qcListYw.js


+ 138 - 48
src/js/qcScore.js

@@ -3,11 +3,9 @@ const $ = require('jquery');
 require('jquery-templates');
 require('./modal.js');
 const {post,getUrlArgObject,setBoxHeight,getCookie,initScroll} = require('./utils.js');
-const {api} = require('./api.js');
+const {api,ywCheckApi} = require('./api.js');
 let checkOk = require('./../images/checkOk.png')
 
-window.document.title="质控评分-"+getUrlArgObject("name");
-
 $(function(){
 //本页全局变量
   let global_flawData = {};    //缺陷数据
@@ -15,14 +13,17 @@ $(function(){
   const global_id=getUrlArgObject("id");
   const global_age = getUrlArgObject("age");
   let global_check;
-  let global_check_home;
+  let global_check_home,global_check_show;
   const global_code = getUrlArgObject("code");
   let global_activeTab=$(".sub-menu .page.active").attr("code");  //当前激活菜单项
   let global_modules ={};   //模板数据缓存
   let global_flaws=[];  //缺陷条目列表缓存
   let global_selectedFlaw = {};    //新增时选中的条目信息
   getAllModules();
-  let hasAu3 = hasData('FUNC000011');   //新增缺陷权限
+  let showCheckBtns=global_code==="YH-ZKHC-HCRWLB";
+  window.document.title=(showCheckBtns?"质控核查-":"质控评分-")+getUrlArgObject("name");
+
+  let hasAu3 = showCheckBtns&&hasData('FUNC000011');   //新增缺陷权限
   if(hasAu3){
     $(".add-flaw").click(function(){
       getQcCasesEntry();
@@ -65,12 +66,20 @@ function initMenu(data){
   $(".page").on("click",function(){
     $(".info-item .cont,.flaw-item,td").removeClass("active");   //清空缺陷定位背景
     const title = $(this).attr("code");
-    if(title == '缺陷总览'){
-      $(".check").css('display','none')
-    }else if(title == '病案首页'){
-      $(".check").css('display','block').text(global_check_home==1?'重新核查':'病案首页核查')
-    }else{
-      $(".check").css('display','block').text(global_check==1?'重新核查':'病历核查')
+    if(title == '缺陷总览'||!global_check_show){ //质控核查页进来隐藏原核查按钮
+      $(".check,.ywCheck").css('display','none')
+    }/*else if(title == '病案首页'){
+      if(showCheckBtns){
+        $(".ywCheck").show();
+      }else{
+          $(".check").css('display','block').text(global_check_home==1?'重新核查':'病案首页核查')
+      }
+    }*/else{
+        if(showCheckBtns){
+            $(".ywCheck").show();
+        }else {
+            $(".check").css('display', 'block').text(global_check == 1 ? '重新核查' : '病历核查')
+        }
     }
     if(title==="缺陷总览"||title==="谈话告知书"||title==="知情同意书"||title === '医嘱信息'||title === '检验信息'||title === '检查信息'||title === '护理信息'){
       if(title==="缺陷总览"){
@@ -146,14 +155,16 @@ function getRecordDetail(){
   post(api.getRecordDetail,{'behospitalCode':global_id}).then(function(res){
     if(res.data.code==='0'){
       const data = res.data.data;
-      const {beHospital,result,msg,checkStatus,drgs,mrStatus} = data;
+      const {beHospital,result,msg,checkStatus,drgs,mrStatus,checkShow} = data;
       global_check = checkStatus
       global_check_home = mrStatus
+      global_check_show=checkShow;
       const info=Object.assign(beHospital,result);
       initMenu(JSON.parse(result.menuData));
       // $(".sub-menu>ul>li:first-child.page,.menu-mini>ul>li:first-child.page").addClass("active");
       $(".subMenu >li:first-child.page,.menu-mini>ul>li:first-child.page").addClass("active");
       global_activeTab=$(".sub-menu .page.active").attr("code");
+      $(".operation").show()
       initPatientInfo(info);
       initContent(result.pageData);
       initList(msg);
@@ -198,15 +209,14 @@ function changePay(){
 }
 //填充患者信息
 function initPatientInfo(data){
-  let hasCheck = false
-  if(hasData("FUNC000014")){
-    hasCheck = true
-  }
-  const obj=Object.assign({},data,{hasCheck,checkState:global_check,checkStateHome:global_check_home});
+  const obj=Object.assign({},data,{showCheckBtns,checkState:global_check,checkStateHome:global_check_home});
   
   $("#infoTmpl").tmpl(obj).appendTo("#patientInfo");
-  $(".check").on("click", function(){
+  /*$(".check").on("click", function(){
     checkQc()
+  })*/
+  $(".ywCheck").on("click", function(){
+      checkYwQc()
   })
 }
 //显示病例模块明细
@@ -217,7 +227,7 @@ function initContent(data){
   formatSpecPage(obj["谈话告知书"],"谈话告知书");
   formatSpecPage(obj["知情同意书"],"知情同意书");
   // formatSpecPage(obj["医嘱信息"],"医嘱信息");
-  
+  $(".content-box").show();
   for(let k in obj){
     if(k==="谈话告知书"||k==="知情同意书"){
       continue;
@@ -336,27 +346,32 @@ function initList(data,type){
 //评分项数据填充
 function initScoreItem(data){
   $("#flaws .flaw-box").html("");
-  let hasAu = hasData('FUNC000013');    //修改缺陷权限
-  let hasAu2 = hasData('FUNC000012');   //删除缺陷权限
+  let hasAu = showCheckBtns&&global_check_show&&hasData('FUNC000013');    //修改缺陷权限
+  let hasAu2 = showCheckBtns&&global_check_show&&hasData('FUNC000012');   //删除缺陷权限
   for(let k in data){
     $("#flawTmpl").tmpl(data[k]).appendTo("#flaws .flaw-box");
   }
   showFlawList();
-  $(".flaw-item .oper a").click(function () {
+  $(".flaw-item .oper a").unbind("click").click(function () {
     const i = $(".flaw-item[code="+global_activeTab+"]").index($(this).parents(".flaw-item"));
     const code=$(this).attr("code");
     const isEdit = $(this).is(".edit-flaw");
     //if(!hasAu)return
     if(isEdit&&hasAu){
-      showModal('0',code,i);
+      showModal('0',code,i);  //编辑
     }else if(!isEdit&&hasAu2){
-      showModal('1',code,i);
+      if($(this).is(".recover-flaw")){
+          showModal('3',code,i);  //恢复
+      }else{
+          showModal('1',code,i);  //删除
+      }
     }
   })
-  $(".edit-flaw").css({"opacity":hasAu?"1":"0.5",cursor:hasAu?"pointer":"unset"});
-  $(".del-flaw").css({"opacity":hasAu2?"1":"0.5",cursor:hasAu2?"pointer":"unset"});
-  $(".add-flaw").css({"opacity":hasAu3?"1":"0.5",cursor:hasAu3?"pointer":"unset"});
-  $(".flaw-item .title a[href]").click(function(){
+  $(".edit-flaw").css({"display":hasAu?"inline":"none"});
+  $(".del-flaw").css({"display":hasAu2?"inline":"none"});
+  $(".add-flaw").css({"display":hasAu3&&global_check_show?"inline":"none"});
+  $(".recover-flaw").css({"display":hasAu2?"inline":"none"});
+  $(".flaw-item .title a[href]").unbind("click").click(function(){
     const id = $(this).attr("href");
     const anchors=$(this).attr("anchors").split(",");
     let ans = anchors.map((it)=>{
@@ -380,25 +395,27 @@ function showFlawList(){
 }
 
 //删除评分项
-function delScore(id,info){
+function delScore(id,info,isRecover){
+    const text = isRecover?"恢复":"删除";
   const param={
     'behospitalCode':global_id,
     'optResultAlgVO':{
       'id':id
-    }
+    },
+    'delStatus':isRecover?1:0
   };
   post(api.delScore,param).then(function(res){
     if(res.data.code==='0'){
       $("#delModal").hide();
       updateFlaws(res.data.data);
       $("#anchor"+info.pageKeyList[0]).removeClass("active");
-      $.alerModal({"message":"删除成功",type:"tip",time:'1000',win:true});
+      $.alerModal({"message":text+"成功",type:"tip",time:'1000',win:true});
     }else{
-      $.alerModal({"message":'删除失败,请重试~',type:"tip",time:'1000',win:'default'});
+      $.alerModal({"message":res.data.msg||(text+'失败,请重试~'),type:"tip",time:'1000',win:'default'});
 
     }
   }).catch(()=>{
-    $.alerModal({"message":'删除失败,请重试~',type:"tip",time:'1000',win:'default'});
+    $.alerModal({"message":text+'失败,请重试~',type:"tip",time:'1000',win:'default'});
 
   });
 }
@@ -433,7 +450,8 @@ function addScore(info){
     "info":info.info || "",
     "isReject": info.isReject,
     "msg": info.msg || "",
-    "score": info.score
+    "score": info.score,
+    "explainInfo": info.explainInfo
   }
   const param={
     "behospitalCode": global_id,
@@ -463,13 +481,13 @@ function showModal(flag,code,i){
   $(".info-item .cont,.flaw-item .title,td").removeClass("active");
   //事件解绑
   $("#delModal .confirm").off("click");
-  $("#qcScore,#qcMsg").off("input");
   const flawsList = formatFlawKeys(global_flawData);
   const info = flawsList[global_activeTab]&&flawsList[global_activeTab][i];
   if(flag==='0'){   //修改
     $("#delModal .title").text("修改");
     $("#delModal .confirm").text("保存");
     $("#editTmpl").tmpl(info).appendTo("#delModal .modal-body");
+    $("#qcScore,#qcMsg,#qcInfo").off("input");
     //分数输入验证
     $("#qcScore").on("input",function(){
       const val=$(this).val();
@@ -491,11 +509,29 @@ function showModal(flag,code,i){
         $(".edit-box .warning").show();
       }
     });
-    $("#delModal .confirm").click(function(){
+      //提示信息输入验证
+    $("#qcInfo").on("input",function(){
+        const val=$(this).val();
+        $(this).attr("title",val)
+        if(val.length>125){
+            $(".edit-box .warning .red").text("备注不能超过125个字~");
+            $(".edit-box .warning").show();
+        }else{
+            $(".edit-box .warning").hide();
+            return;
+        }
+    });
+    if($("#qcInfo").val().length>125){
+        $(".edit-box .warning .red").text("备注不能超过125个字~");
+        $(".edit-box .warning").show();
+        return;
+    }
+    $("#delModal .confirm").unbind("click").click(function(){
       if($(".edit-box .warning").is(":visible")){
         return;
       }
-      const obj = Object.assign({},info,{msg:$("#delModal #qcMsg").val(),score:$("#delModal #qcScore").val()});
+      const obj = Object.assign({},info,{explainInfo:$("#delModal #qcInfo").val(),msg:$("#delModal #qcMsg").val(),score:$("#delModal #qcScore").val()});
+      console.log(212,$("#delModal #qcInfo").val())
       editScore(obj);
     });
   }else if(flag==='2'){   //新增
@@ -503,6 +539,7 @@ function showModal(flag,code,i){
     $("#delModal .confirm").text("保存");
     $("#addFlawTmpl").tmpl().appendTo("#delModal .modal-body");
     $("#flawDropTmpl").tmpl({info:code}).appendTo("#delModal .modal-body ul");
+    $("#addQcScore,#addQcMsg,#addQcInfo").off("input");
     //分数输入验证
     $("#addQcScore").on("input",function(){
       const val=$(this).val();
@@ -511,6 +548,7 @@ function showModal(flag,code,i){
       }else{
         $(".add-box .warning .red").text("支持≥0且≤100的数字输入,最多保留小数点后1位~");
         $(".add-box .warning").show();
+          return;
       }
     });
     //提示信息输入验证
@@ -522,9 +560,22 @@ function showModal(flag,code,i){
       }else{
         $(".add-box .warning .red").text("提示信息不能为空~");
         $(".add-box .warning").show();
+        return;
       }
     });
-    $("#delModal .confirm").click(function(){
+    //提示信息输入验证
+    $("#addQcInfo").on("input",function(){
+        const val=$(this).val();
+        $(this).attr("title",val)
+        if(val.length>125){
+            $(".add-box .warning .red").text("备注不能超过125个字~");
+            $(".add-box .warning").show();
+        }else{
+            $(".add-box .warning").hide();
+            return;
+        }
+    });
+    $("#delModal .confirm").unbind("click").click(function(){
       if(!$(".flaw-drop-input").attr("code")){
         $(".add-box .warning .red").text("请选择质控条目~");
         $(".add-box .warning").show();
@@ -532,19 +583,44 @@ function showModal(flag,code,i){
       }
       const msg=$("#delModal #addQcMsg").val();
       const score=Number($("#delModal #addQcScore").val());
-      // if($(".add-box .warning").is(":visible")||!msg.trim()||!score){
-      //   return;
-      // }
-      const obj = Object.assign({},global_selectedFlaw,{msg,score});
+      const explainInfo=$("#delModal #addQcInfo").val();
+      if($(".add-box .warning").is(":visible")){
+        return;
+      }
+      if(!msg.trim()){
+          $(".add-box .warning .red").text("提示信息不能为空~");
+          $(".add-box .warning").show();
+          return;
+      }
+      if((!score)&&$("#delModal #addQcScore").val()!='0'){
+          $(".add-box .warning .red").text("分值不能为空~");
+          $(".add-box .warning").show();
+          return;
+      }
+      if($("#addQcInfo").val().length>125){
+          $(".add-box .warning .red").text("备注不能超过125个字~");
+          $(".add-box .warning").show();
+          return;
+      }
+      const obj = Object.assign({},global_selectedFlaw,{msg,score,explainInfo});
       addScore(obj);
     });
+  }else if(flag==='3'){
+      $("#delModal .title").text("恢复提示");
+      $("#delModal .modal-body").html('<p>确定要恢复该评分记录吗?</p>');
+      $("#delModal .confirm").text("取消").unbind("click").click(function(){
+          $("#delModal").hide();
+      });
+      $("#delModal .cancel").show().text("恢复").unbind("click").click(function(){
+          delScore(code,info,true);
+      });
   }else{
     $("#delModal .title").text("删除提示");
     $("#delModal .modal-body").html('<p>确定要删除该评分记录吗?</p>');
-    $("#delModal .confirm").text("取消").click(function(){
+    $("#delModal .confirm").text("取消").unbind("click").click(function(){
       $("#delModal").hide();
     });
-    $("#delModal .cancel").show().text("删除").click(function(){
+    $("#delModal .cancel").show().text("删除").unbind("click").click(function(){
       delScore(code,info);
     });
   }
@@ -762,13 +838,13 @@ function formatFlawKeys(data){
         global_modules=data;
         getRecordDetail();
         $("#loading").hide();
-        setTimeout(function(){
+        /*setTimeout(function(){
           $(".operation").show()
-        },50)
+        },50)*/
       }
     });
   }
-  function checkQc(){
+  /*function checkQc(){
     const param={
       behospitalCode:getUrlArgObject("id"),
       hospitalId:getUrlArgObject("hid"),
@@ -787,8 +863,22 @@ function formatFlawKeys(data){
         $.alerModal({"message":res.data.msg ||"核查失败",type:"tip",time:'1000',isFather: false});
       }
     });
+  }*/
+  function checkYwQc(){
+      const param={
+          behospitalCode:getUrlArgObject("id"),
+          hospitalId:getUrlArgObject("hid"),
+      };
+      post(ywCheckApi.recordCheck,param).then((res)=>{
+          if(res.data.code==='0') {
+              global_check = 1
+              $(".ywCheck").text("重新核查")
+              $.alerModal({"message":"核查成功",type:"tip",time:'1000',win:true});
+          }else{
+              $.alerModal({"message":res.data.msg ||"核查失败",type:"tip",time:'1000',isFather: false});
+          }
+      });
   }
-  
 
 });
 

+ 1 - 1
src/js/roleManager.js

@@ -110,7 +110,7 @@ $(function(){
             let grandParentId = $(this).parents(".mainSys").attr("data-menuId")
             let grandIndex = $(this).parents(".mainSys").attr("data-index")
             let tmpSelectData = null,tmpSelectDataOr=[];
-            if(grandParentId == 3||grandParentId == 2||grandParentId==17||grandParentId==18){//循环
+            if(grandParentId == 3||grandParentId == 2||grandParentId==17||grandParentId==18||grandParentId==61){//循环
                 // console.log(curData[grandIndex])
                 let tmpData = curData[grandIndex];
                 let tmpDataLis = curData[grandIndex].sonMenuDTOList;

+ 46 - 6
src/js/utils.js

@@ -2,8 +2,9 @@ const qs = require('qs');
 const $ = require('jquery');
 const axios = require('axios');
 var Utils = require('./rePromise');
+const {ywCheckApi} = require('./api.js')
 require('./scrollBar.js');
-const baseUrl = 'http://192.168.2.236:1488';
+const baseUrl = 'http://192.168.2.241:5858';
 //页面映射
 const pageMap = {
   'YH-KZT': 'console.html',
@@ -36,8 +37,6 @@ const pageMap = {
   'YH-KSZR-BASYHGLZB_XQ': 'partDetailControlDept.html',
   'YH-ZKK-ZKHCTJ': 'checkControl.html',
 
-  // 'YH-KSZR-KSQXZB_XQ': 'deptScoreDetail.html?from=2',
-
   'YH-KSZR-ZKHCTJ_XQ': 'checkControlDept.html',
   'YH-KSZR-SXXXGTJ_XQ': 'uncorrectedCasesStatisticsDept.html',
   'YH-KSZR-31TZRYRS_XQ': 'readmissionDept.html',
@@ -57,7 +56,11 @@ const pageMap = {
   'YH-KSZR-GJTMQXZB_XQ': 'keyItemFlawControlDept.html',
   'YH-KSZR-CYRSTJ_XQ': 'qcListOutHospitalDept.html?from=2',
   'YH-KSZR-RYRSTJ_XQ': 'qcListOutHospitalDept.html?inner=2&from=2',
-
+  'YH-ZKK-BLZK_XQ':'qcListYw.html',
+  'YH-KSZR-BLZK_XQ':'qcListDeptYw.html',
+  'YH-ZKHC-SCHCRW':'creatCheckTask.html',    //义乌-生成核查任务
+  'YH-ZKHC-FPHCRW':'allotCheckTask.html',  //义乌-分配核查任务
+  'YH-ZKHC-HCRWLB':'checkTaskList.html',  //义乌-核查任务列表
   'YH-ZKK-YLZLKZZB_XQ': 'qualityControl.html',
 };
 
@@ -65,6 +68,7 @@ const pageMap = {
 const exportTimeLimit = {
   defectTime: 90,
   normalTime: 7,
+  yiwuTime:30,
 };
 
 //重写assign方法
@@ -170,9 +174,13 @@ const post = function(url, data) {
         if (error.status === 403 || error.status === 401) {
           setCookie('behosDateStart', '');
           setCookie('behosDateEnd', '');
+          $.alerModal({"message":"没有该权限",type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+
           // wd.location.href = "../login.html";
         } else if (error.status === 500 || error.status === 501 || error.status === 404) {
-          // wd.location.href = '../error.html?code=' + error.status;
+           $.alerModal({"message":'接口错误',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+
+            // wd.location.href = '../error.html?code=' + error.status;
         }
         reject(error);
       },
@@ -299,7 +307,13 @@ $('.modal .close').click(function() {
 //计算容器高度
 function setBoxHeight() {
   const ht = window.innerHeight;
-  $('.content-box').height(ht - 55 + 'px');
+  const hw = window.innerWidth;
+  if(hw<1169){
+      $('.content-box').height(ht - 110 + 'px');
+  }else{
+      $('.content-box').height(ht - 60 + 'px');
+  }
+  //$('.content-box').height(ht - 60 + 'px');
   $('.flaw-table').height(ht - 70 + 'px');
   $('.content-ht').height(ht - 120 + 'px');
   $('.scroll-table tbody').css('max-height', ht - 210 + 'px');
@@ -528,7 +542,32 @@ function initScroll(el, sliderDir, sliderMode, top) {
     });
   }
 }
+//获取筛选分值、任务来源列表
+function getScoreTabList(fn,isSource){
+    /*let val='';
+    if(isSource){
+        val = localStorage.getItem('sourceList');
+    }else{
+        val = localStorage.getItem('valueList');
+    }
 
+    if((val||'').trim()){
+        fn(isSource?JSON.parse(val):val.split(","));
+        return;
+    }*/
+    post(ywCheckApi.getCheckType).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data;
+            //localStorage.setItem('sourceList',JSON.stringify(data.source));
+            //localStorage.setItem('valueList',data.value.join(","));
+            fn(isSource?data.source:data.value)
+        }else{
+            $.alerModal({"message":res.data.msg,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+        }
+    }).catch((e) =>{
+        $.alerModal({"message":'获取任务来源及筛选分值数据失败',type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+    })
+}
 function listenScroll(dom) {
   $(dom ? dom : '.container').scroll(() => {
     $.datepicker._hideDatepicker($('#datepicker')[0]);
@@ -595,4 +634,5 @@ module.exports = {
   initScroll,
   listenScroll,
   explainTitle,
+    getScoreTabList
 };