Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/appeal0121' into test

zhouna 3 gadi atpakaļ
vecāks
revīzija
66d01f5ac3

+ 2 - 0
package.json

@@ -4,6 +4,8 @@
   "description": "",
   "main": "index.js",
   "dependencies": {
+    "@babel/plugin-transform-runtime": "^7.16.10",
+    "@babel/runtime-corejs3": "^7.16.8",
     "axios": "^0.19.2",
     "bluebird": "^3.5.5",
     "echarts": "^4.7.0",

+ 473 - 0
src/css/appealCheck.less

@@ -0,0 +1,473 @@
+@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%;*/
+}
+.appealBtn{
+    color: #00A1FF;
+    padding: 0 5px;
+    cursor: pointer;
+}
+.review {
+    cursor: pointer;
+    & i {
+      width: 6px;
+      height: 6px;
+      background: #f48138;
+      display: inline-block;
+      border-radius: 50%;
+      margin-right: 5px;
+    }
+  }
+  .rejected {
+    cursor: pointer;
+    & i {
+      width: 6px;
+      height: 6px;
+      background: #E3505B;
+      display: inline-block;
+      border-radius: 50%;
+      margin-right: 5px;
+    }
+  }
+  .approved {
+    cursor: pointer;
+    & i {
+      width: 6px;
+      height: 6px;
+      background: #22AC76;
+      display: inline-block;
+      border-radius: 50%;
+      margin-right: 5px;
+    }
+  }
+.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;
+}
+.modularList,.typeList,.qcCheckList{
+    width: 120px;
+    // height: 200px;
+    li:hover{
+        background-color: #EEF4FF;
+        cursor: pointer;
+    }
+}
+
+.selectModular,.selectDept,.selectType,.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;
+}
+.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;
+}
+.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;
+}

+ 152 - 0
src/css/appealExamine.less

@@ -0,0 +1,152 @@
+@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%;*/
+}
+.appeal-info,
+.appeal-content,
+.appeal-history {
+  margin-top: 20px;
+  .title {
+    font-size: 16px;
+    font-weight: bold;
+    position: relative;
+    padding-top: 15px;
+  }
+  .title::after {
+    content: "";
+    width: 4px;
+    height: 13px;
+    background: #267fd7;
+    position: absolute;
+    left: 0;
+    top: 3px;
+    border-radius: 2px;
+  }
+
+  .info {
+    margin: 10px 0;
+    display: flex;
+    justify-content: space-between;
+    flex-flow: wrap;
+    padding: 0 12px;
+    .info-title {
+      margin-right: 10px;
+    }
+  }
+  .content {
+    margin: 10px 0;
+    padding: 0 12px;
+    .con-title {
+      margin-top: 10px;
+    }
+    .goDetail {
+      padding: 5px 15px;
+      background: #00a1ff;
+      color: #fff;
+      text-align: center;
+      border-radius: 4px;
+    }
+  }
+  .history {
+    overflow: hidden;
+    .box {
+      width: 31%;
+      float: left;
+      margin: 0 12px;
+      margin-top: 15px;
+      & span {
+        padding-right: 15px;
+      }
+    }
+  }
+}
+.bot {
+  text-align: center;
+  display: flex;
+  justify-content: center;
+  margin-top: 20px;
+  .btn-sure {
+    display: inline-block;
+    width: 90px;
+    height: 32px;
+    background: #00a1ff;
+    border-radius: 4px;
+    color: #fff;
+    text-align: center;
+    line-height: 32px;
+    cursor: pointer;
+    margin-right: 15px;
+    & span {
+      color: #fff;
+      pointer-events: none;
+    }
+  }
+  & ul {
+    position: absolute;
+    background: #fff;
+    display: none;
+  }
+  .btn-cancel {
+    width: 90px;
+    height: 30px;
+    background: #fff;
+    border-radius: 4px;
+    color: #777;
+    border: 1px solid #777;
+    text-align: center;
+    line-height: 30px;
+  }
+}
+
+.appeal-box {
+  .item {
+    padding: 5px 0;
+    .radio {
+      margin: 0 5px;
+    }
+    .title {
+      width: 80px;
+      text-align: right;
+      display: inline-block;
+    }
+    .inp {
+      border: 1px solid #e2e5ef;
+      height: 24px;
+      padding: 0 5px;
+    }
+    .textarea,
+    .textarea2 {
+      border: 1px solid #e2e5ef;
+    }
+  }
+}
+.required {
+  color: #e3505b;
+}
+.warning {
+  display: none;
+}

+ 575 - 0
src/css/appealHistory.less

@@ -0,0 +1,575 @@
+@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%;*/
+}
+.appealBtn {
+  color: #00a1ff;
+  padding: 0 5px;
+  cursor: pointer;
+}
+.review {
+  cursor: pointer;
+  & i {
+    width: 6px;
+    height: 6px;
+    background: #f48138;
+    display: inline-block;
+    border-radius: 50%;
+    margin-right: 5px;
+  }
+}
+.rejected {
+  cursor: pointer;
+  & i {
+    width: 6px;
+    height: 6px;
+    background: #E3505B;
+    display: inline-block;
+    border-radius: 50%;
+    margin-right: 5px;
+  }
+}
+.approved {
+  cursor: pointer;
+  & i {
+    width: 6px;
+    height: 6px;
+    background: #22AC76;
+    display: inline-block;
+    border-radius: 50%;
+    margin-right: 5px;
+  }
+}
+.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;
+}
+.modularList,
+.typeList,
+.qcCheckList {
+  width: 120px;
+  // height: 200px;
+  li:hover {
+    background-color: #eef4ff;
+    cursor: pointer;
+  }
+}
+
+.selectModular,
+.selectDept,
+.selectType,
+.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;
+}
+.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;
+}
+.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;
+}
+
+.appeal-box {
+  .item {
+    padding: 5px 0;
+    .radio {
+      margin: 0 5px;
+    }
+    .title {
+      display: inline-block;
+      margin-right: 50px;
+    }
+    .inp {
+      border: 1px solid #e2e5ef;
+      height: 24px;
+      padding: 0 5px;
+    }
+    .textarea,
+    .textarea2 {
+      width: 70%;
+      height: 80px;
+      border: 1px solid #e2e5ef;
+      overflow-y: auto;
+    }
+  }
+}
+.drop-box {
+  position: relative;
+  margin-bottom: 10px;
+  &:after {
+    content: "";
+    display: inline-block;
+    width: 13px;
+    height: 7px;
+    background: url("../images/arrow_down.png") no-repeat;
+    background-size: 13px 7px;
+    position: absolute;
+    left: 85%;
+    top: 10px;
+  }
+}
+ul {
+  display: none;
+  position: absolute;
+  right: 15px;
+  width: 70%;
+  background: #fff;
+  border: 1px @tableBorderColor solid;
+  max-height: 205px;
+  overflow: auto;
+  box-sizing: border-box;
+  z-index: 1;
+  li {
+    line-height: 25px;
+    padding: 0 5px;
+    cursor: pointer;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    &:hover {
+      background: @tableBorderColor;
+    }
+  }
+}
+.checker-drop-input {
+  height: 24px;
+  border: 1px #e2e5ef solid;
+  width: 70%;
+  vertical-align: middle;
+  text-align: left;
+  line-height: 24px;
+  text-indent: 5px;
+  display: inline-block;
+}
+.required {
+  color: #e3505b;
+}
+p {
+  .red {
+    display: inline-block;
+    width: auto;
+    text-indent: 5px;
+  }
+}
+.warning {
+  display: none;
+}

+ 435 - 0
src/css/appealInit.less

@@ -0,0 +1,435 @@
+@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;
+}
+.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;
+}
+.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;
+}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1040 - 0
src/css/appealUserPage.less


+ 287 - 265
src/css/common.less

@@ -1,325 +1,347 @@
-@import './reset.less';
-.ellipsis{
-    overflow: hidden;
-    text-overflow:ellipsis;
-    white-space: nowrap;
+@import "./reset.less";
+.ellipsis {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
 }
 .partTitle p a {
-    color: #8592B9;
-    opacity: 1;
+  color: #8592b9;
+  opacity: 1;
 }
 input:disabled {
-    background-color: @disColor;
+  background-color: @disColor;
 }
 
-.main-body-com{
-    background: #fff;
-    margin: 0;
-    padding: 20px 25px;
-    border:10px @disColor solid;
-    box-sizing: border-box;
+.main-body-com {
+  background: #fff;
+  margin: 0;
+  padding: 20px 25px;
+  border: 10px @disColor solid;
+  box-sizing: border-box;
 }
 
-.exportData{
-    display: inline-block;
-    width:60px;
-    height:34px;
-    line-height: 34px;
-    background: #fff;
-    border-radius: 4px;
-    color: #777;
-    text-align: center;
-    border: 1px solid #777;
-    box-sizing: border-box;
-    cursor: pointer;
-    margin-left: 10px;
-    margin-bottom: 20px;
-    float: left;
-    top: 0px;
+.exportData {
+  display: inline-block;
+  width: 60px;
+  height: 34px;
+  line-height: 34px;
+  background: #fff;
+  border-radius: 4px;
+  color: #777;
+  text-align: center;
+  border: 1px solid #777;
+  box-sizing: border-box;
+  cursor: pointer;
+  margin-left: 10px;
+  margin-bottom: 20px;
+  float: left;
+  top: 0px;
 }
 .export {
-    margin-bottom: 20px !important;
-}
-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%;
-    }
+  margin-bottom: 20px !important;
+}
+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%;
+  }
 }
 
 .dataSelectLight {
-    .partDetailControl .filterItem input {
-        width: 120px;
-        height: 34px;
-        border-radius: 4px;
-        border: 1px solid #E2E5EF;
-        outline: none;
-        margin-right: 10px;
-        padding: 0 10px;
-        box-sizing: border-box;
-    }
-    .partDetailControl .filterItem span {
-        display: inline-block;
-        line-height: 34px;
-        position: relative;
-    }
-    .datapickerBox input {
-        margin-right: 0px !important;
-    }
-    .iconCalen{
-        position: absolute;
-        width: 15px;
-        top: 10px !important;
-        right: 10px;
-    }
-    .divide {
-        margin: 0 10px;
-    }
+  .partDetailControl .filterItem input {
+    width: 120px;
+    height: 34px;
+    border-radius: 4px;
+    border: 1px solid #e2e5ef;
+    outline: none;
+    margin-right: 10px;
+    padding: 0 10px;
+    box-sizing: border-box;
+  }
+  .partDetailControl .filterItem span {
+    display: inline-block;
+    line-height: 34px;
+    position: relative;
+  }
+  .datapickerBox input {
+    margin-right: 0px !important;
+  }
+  .iconCalen {
+    position: absolute;
+    width: 15px;
+    top: 10px !important;
+    right: 10px;
+  }
+  .divide {
+    margin: 0 10px;
+  }
 }
 .dataSelectDark {
-    // position: relative;
-    // display: inline-block;
-    margin: 4px 20px 10px 0;
-    top: 0px !important;
+  // position: relative;
+  // display: inline-block;
+  margin: 4px 20px 10px 0;
+  top: 0px !important;
+  height: 34px !important;
+  line-height: 34px !important;
+  float: right !important;
+  span {
+    position: relative;
+    display: inline-block;
     height: 34px !important;
     line-height: 34px !important;
-    float: right !important;
-    span {
-        position: relative;
-        display: inline-block;
-        height: 34px !important;
-        line-height: 34px !important;
-        float: left;
-    }
-    input {
-        width: 120px;
-        height: 32px;
-        border-radius: 4px;
-        border: 1px solid @themeBorderClr;
-        outline: none;
-        padding: 0 10px;
-        box-sizing: border-box;
-        background-color: @themeColor;
-        color: @secColor;
-    }
-    .iconCalen{
-        position: absolute;
-        width: 15px;
-        top: 8px;
-        right: 10px;
-    }
-    .divide {
-        margin: 0 10px;
-        color: #fff;
-    }
+    float: left;
+  }
+  input {
+    width: 120px;
+    height: 32px;
+    border-radius: 4px;
+    border: 1px solid @themeBorderClr;
+    outline: none;
+    padding: 0 10px;
+    box-sizing: border-box;
+    background-color: @themeColor;
+    color: @secColor;
+  }
+  .iconCalen {
+    position: absolute;
+    width: 15px;
+    top: 8px;
+    right: 10px;
+  }
+  .divide {
+    margin: 0 10px;
+    color: #fff;
+  }
 }
-.managerContainer .filter,.filterclear.abnormalClear {
-    margin-bottom: 20px;
+.managerContainer .filter,
+.filterclear.abnormalClear {
+  margin-bottom: 20px;
 }
 .ui-datepicker-calendar {
-    border: 0 none;
-    min-width: 0;
+  border: 0 none;
+  min-width: 0;
 }
 .ui-datepicker thead {
-    background-color: #fff;
-    color: #c3cbd6;
+  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-widget{
-    z-index: 9999 !important;
-}
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
-    border: 0;
-    background-color: #fff;
-    &:hover {
-        background-color: #c4d8fe;
-    }
+  padding: 0;
+  height: auto;
+  color: #657180;
+}
+.ui-datepicker td span,
+.ui-datepicker td a {
+  text-align: center;
+  height: 30px;
+  line-height: 30px;
+}
+.ui-widget {
+  z-index: 9999 !important;
+}
+.ui-state-default,
+.ui-widget-content .ui-state-default,
+.ui-widget-header .ui-state-default {
+  border: 0;
+  background-color: #fff;
+  &:hover {
+    background-color: #c4d8fe;
+  }
 }
 
-.iconCalen{
-    position: absolute;
-    width: 15px;
-    top: 10px;
-    right: 10px;
-}
-.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;
+.iconCalen {
+  position: absolute;
+  width: 15px;
+  top: 10px;
+  right: 10px;
+}
+.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;
+  background-color: #fff;
+  border: 0 none;
 }
 
 input::-webkit-outer-spin-button,
 input::-webkit-inner-spin-button {
-    -webkit-appearance: none;
+  -webkit-appearance: none;
 }
 .datapickerBox input {
-    height: 34px !important;
-    line-height: 34px !important;
-    box-sizing: border-box;
+  height: 34px !important;
+  line-height: 34px !important;
+  box-sizing: border-box;
 }
 input[type="number"] {
-    -moz-appearance: textfield;
+  -moz-appearance: textfield;
 }
-input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
-    /* WebKit browsers */
-    color: #aaa;
+input::-webkit-input-placeholder,
+textarea::-webkit-input-placeholder {
+  /* WebKit browsers */
+  color: #aaa;
 }
-input:-moz-placeholder, textarea:-moz-placeholder {
-    /* Mozilla Firefox 4 to 18 */
-    color: #aaa;
+input:-moz-placeholder,
+textarea:-moz-placeholder {
+  /* Mozilla Firefox 4 to 18 */
+  color: #aaa;
 }
-input::-moz-placeholder, textarea::-moz-placeholder {
-    /* Mozilla Firefox 19+ */
-    color: #aaa;
+input::-moz-placeholder,
+textarea::-moz-placeholder {
+  /* Mozilla Firefox 19+ */
+  color: #aaa;
 }
-input:-ms-input-placeholder, textarea:-ms-input-placeholder {
-    /* Internet Explorer 10+ */
-    color: #aaa;
+input:-ms-input-placeholder,
+textarea:-ms-input-placeholder {
+  /* Internet Explorer 10+ */
+  color: #aaa;
 }
 
 .modaltipSuc {
-    position: fixed;
-    top: 40%;
-    left: 50%;
-    padding: 15px 0;
-    width: 180px;
-    border-radius: 3px;
-    color: #fff;
-    background: rgba(0, 0, 0, .6);
-    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#88000000,endColorstr=#88000000);
+  position: fixed;
+  top: 40%;
+  left: 50%;
+  padding: 15px 0;
+  width: 180px;
+  border-radius: 3px;
+  color: #fff;
+  background: rgba(0, 0, 0, 0.6);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#88000000,endColorstr=#88000000);
+  text-align: center;
+  img {
+    display: block;
+    width: 40px;
     text-align: center;
-    img {
-      display: block;
-      width: 40px;
-      text-align: center;
-      position: relative;
-      left: 50%;
-      transform: translateX(-50%);
-      margin-bottom: 8px;
-    }
+    position: relative;
+    left: 50%;
+    transform: translateX(-50%);
+    margin-bottom: 8px;
   }
+}
 
-.filterItem{
-    margin-right: 30px !important;
-    input {
-        margin-right: 0 !important;
-    }
+.filterItem {
+  margin-right: 30px !important;
+  input {
+    margin-right: 0 !important;
+  }
 }
 
-.filterHide{
-    display: none!important;
+.filterHide {
+  display: none !important;
 }
 input.canEditDept {
-    width: 160px !important;
+  width: 160px !important;
 }
 
 /*******弹窗*******/
-.modal-container{
-    display: none;
+.modal-container {
+  display: none;
+  position: fixed;
+  width: 100%;
+  height: 100%;
+  top: 0;
+  left: 0;
+  z-index: 99;
+  .cover {
     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;
+    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-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;
     }
-    .modal-body{
-        padding:32px 38px;
-
+    .confirm {
     }
-    .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;
-        }
+    .cancel {
+      margin-left: 20px;
+      color: #00a1ff;
+      border: 1px #00a1ff solid;
+      background: #fff;
     }
-
-}
+  }
+}
+.reds {
+  background: #E34D59;
+  padding: 0 5px;
+  border-radius: 22px;
+  color: #fff;
+}
+.dian {
+  width: 6px;
+  height: 6px;
+  background: #e34d59;
+  display: inline-block;
+  border-radius: 50%;
+  margin-bottom: 5px;
+}

+ 6 - 0
src/css/index.less

@@ -248,6 +248,12 @@
         background: url("../images/data-edit_a.png") @activeBg 16px 11px no-repeat;
       }
     }
+    .YH-SSXX{
+      background: url("../images/appeal.png") 16px 11px no-repeat;
+      &.active{
+        background: url("../images/appeal_a.png") @activeBg 16px 11px no-repeat;
+      }
+    }
     .slide-btn{
       display: inline-block;
     }

+ 104 - 0
src/html/appealCheck.html

@@ -0,0 +1,104 @@
+<!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 appealHistory">
+        <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" 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 typeFilter">
+                        <span>所属科室:</span>
+                        <span class="selectDept">
+                            全部
+                        </span>
+
+                        <ul class="deptList filterDropList"></ul>
+                    </span>
+
+                    <span class="filterItem">
+                        <span>申述模块:</span>
+                        <span class="selectModular">全部</span>
+                        <ul class="modularList filterDropList">
+                            <Li class="modularItem" data-name="全部" data-id="全部">全部</Li>
+                            <Li class="modularItem" data-name="病案首页" data-id="病案首页">病案首页</Li>
+                            <Li class="modularItem" data-name="入院记录" data-id="入院记录">入院记录</Li>
+                            <li class="modularItem" data-name="出院记录" data-id=出院记录>出院记录</li>
+                        </ul>
+                    </span>
+                    <span class="filterItem typeFilter">
+                        <span>审核人:</span>
+                        <input class="patientNameInp" type="text" placeholder="请输入审核人">
+                    </span>
+                    <span class="filterItem">
+                        <span>操作类型:</span>
+                        <span class="selectType">全部</span>
+                        <ul class="typeList filterDropList">
+                            <Li class="typeItem" data-name="全部" data-id="">全部</Li>
+                            <Li class="typeItem" data-name="删除条目" data-id="0">删除条目</Li>
+                            <Li class="typeItem" data-name="新增已有条目" data-id="1">新增已有条目</Li>
+                            <li class="typeItem" data-name="新增缺失条目" data-id=2>新增缺失条目</li>
+                            <li class="typeItem" data-name="恢复条目" data-id=3>恢复条目</li>
+                        </ul>
+                    </span>
+                    <span class="filterItem">
+                        <span>状态:</span>
+                        <span class="qcSelectCheck">全部</span>
+                        <ul class="qcCheckList filterDropList">
+                            <Li class="qcCheckItem" data-name="全部" data-id="">全部</Li>
+                            <Li class="qcCheckItem" data-name="待审核" data-id="0">待审核</Li>
+                            <Li class="qcCheckItem" data-name="审核通过" data-id="2">审核通过</Li>
+                            <li class="qcCheckItem" data-name="已驳回" data-id="1">已驳回</li>
+                        </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="recordScoreOpera textCenter" style="width: 65px;">申述人</th>
+                            <th class="beHospitalId textCenter" >所属科室</th>
+                            <th class="patientNo textCenter" >申述时间</th>
+                            <th class="patientName textCenter" style="width: 100px;">病人住院序号</th>
+                            <th class="patientSex textCenter" >患者姓名</th>
+                            <th class="patientage textCenter" >申述模块</th>
+                            <th class="bedNum textCenter" >缺陷详情</th>
+                            <th class="inHospitalDate textCenter" >审核人</th>
+                            <th class="outHospitalDate textCenter " >审核时间</th>
+                            <th class="diagnose textCenter" >操作类型</th>
+                            <th class="doctorName textCenter" >状态</th>
+                            <th class="doctorName textCenter" >操作</th>
+                        </tr>
+                    </thead>
+                    <tbody class="tbody">
+
+                    </tbody>
+                </table>
+            </div>
+            <div class="pagination"></div>
+        </div>
+
+    </div>
+</body>
+
+</html>

+ 104 - 0
src/html/appealExamine.html

@@ -0,0 +1,104 @@
+<!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>
+    <script type="text/html" id="appealDel">
+        <div class="appeal-box">
+            <div class="item">
+                <span class="title">处理方式: </span>
+                <input type="radio" name="sex" value="2" class="radio" checked/>删除 
+                <input type="radio" name="sex" value="1" class="radio" />修改
+            </div>
+            <p class="item"><span class="title">质控条目:</span><input class="inp" disabled value="${casesEntryName}" /></p>
+            <p class="item"><span class="title">提示信息:</span><input class="inp" disabled value="${casesEntryMsg}" /></p>
+            <p class="item"><span class="title">分值:</span><input class="inp" disabled value="${value}" /></p>
+            <p class="item"><span class="title">备注:</span><input class="inp" disabled value="${explainInfo}"/></p>
+        </div>
+    </script>
+
+    <script type="text/html" id="appealAdd">
+        <div class="appeal-box">
+            <p class="item"><span class="title">处理方式:</span>新增</p>
+            <p class="item"><span class="title">质控条目:</span><input class="inp" disabled value="${casesEntryName}" /></p>
+            <p class="item"><span class="title">提示信息:</span><input class="inp" disabled value="${casesEntryMsg}" /></p>
+            <p class="item"><span class="title">分值:</span><input class="inp" disabled value="${value}" /></p>
+            <p class="item"><span class="title">备注:</span><input class="inp" disabled value="${explainInfo}"/></p>
+        </div>
+    </script>
+
+    <script type="text/html" id="appealDef">
+        <div class="appeal-box appealDef">
+            <p class="item"><span class="title"><i class="required">*</i>处理结果:</span><textarea class="textarea" rows="3" cols="20"></textarea></p>
+            <p class="warning"><span></span><span class="red">处理结果不能为空~</span></p>
+        </div>
+    </script>
+
+    <script type="text/html" id="appealReject">
+        <div class="appeal-box appealReject">
+            <p class="item"><span class="title"><i class="required">*</i>驳回理由:</span><textarea class="textarea2" rows="3" cols="20"></textarea></p>
+            <p class="warning"><span></span><span class="red">驳回理由不能为空~</span></p>
+        </div>
+    </script>
+</head>
+
+<body>
+    <div class="container appealExamine">
+        <h2>申诉信息 > 申诉审核 > 审核</h2>
+        <div class="main-body">
+            <div class="appeal-info">
+                <p class="title">患者基本信息</p>
+                <div class="info">
+
+                </div>
+            </div>
+            <div class="appeal-content">
+                <p class="title">申述内容</p>
+                <div class="content">
+
+                </div>
+            </div>
+            <div class="appeal-history">
+                <p class="title">申述记录</p>
+                <div class="history">
+
+                </div>
+            </div>
+            <div class="bot">
+                <div class="btn-sure">
+                    <span class="sure">审核通过</span>
+
+                </div>
+                <ul>
+                    <li class="appealDel">审核删改</li>
+                    <li class="appealAdd">审核已有新增</li>
+                    <li class="appealDef">审核缺失新增</li>
+                </ul>
+                <p class="btn-cancel">驳回</p>
+            </div>
+        </div>
+
+    </div>
+    <div id="mainBox"></div>
+    <div class="modal" id="delModal">
+        <div class="cover"></div>
+        <div class="modal-box">
+            <div class="modal-header clearfix">
+                <span class="title">审核通过</span>
+                <a class="close" href="javascript:void(0);">×</a>
+            </div>
+            <div class="modal-body">
+                <!--<p>确定要删除该评分记录吗?</p>-->
+            </div>
+            <div class="modal-footer">
+                <a class="close cancel" href="javascript:void(0);">取消</a>
+                <a class="confirm" href="javascript:void(0);">保存</a>
+            </div>
+        </div>
+    </div>
+</body>
+
+</html>

+ 142 - 0
src/html/appealHistory.html

@@ -0,0 +1,142 @@
+<!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>
+    <script type="text/html" id="appealDef">
+        <div class="appeal-box">
+            <p class="item">
+                <span class="title">来源:${casesName}</span>
+                <span class="title">扣分:${qcresultDetaiValue}</span>
+                <span>操作类型:</span><span>${appealOperationType == 0 ? '删改条目' : appealOperationType == 1 ? '新增已有条目' : appealOperationType == 2 ? '新增缺失条目' : '恢复条目'}</span>
+            </p>
+            <p class="item"><span style="width:70px;text-align:right">缺陷详情:</span><span>${qcresultDetailMsg}</span></p>
+            <div class="drop-box checker-drop-box">
+            <span style="width:70px;text-align:right;display:inline-block"><i class="required">*</i>审核人:</span>
+                <p class="checker-drop-input" code=${casesEntryId}>${checkName}</p>
+                <ul></ul>
+            </div>
+            <p class="item"><span ><i class="required">*</i>申述说明:</span><textarea class="textarea" ></textarea></p>
+            <p class="warning"><span></span><span class="red">申诉说明不能为空~</span></p>
+        </div>
+    </script>
+    <script type="text/html" id="flawDropTmpl">
+        {{each(i,it) info}}
+        <li class="infoItem" idx="${i}" name="${it.entryName||it.userName}" code="${it.id}" title="${it.entryName||it.userName}">${it.entryName||it.userName}</li>
+        {{/each}}
+    </script>
+</head>
+
+<body>
+    <div class="container appealHistory">
+        <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" 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 typeFilter">
+                        <span>所属科室:</span>
+                        <span class="selectDept">
+                            全部
+                        </span>
+
+                        <ul class="deptList filterDropList"></ul>
+                    </span>
+
+                    <span class="filterItem">
+                        <span>申述模块:</span>
+                        <span class="selectModular">全部</span>
+                        <ul class="modularList filterDropList">
+                            <Li class="modularItem" data-name="全部" data-id="全部">全部</Li>
+                            <Li class="modularItem" data-name="病案首页" data-id="病案首页">病案首页</Li>
+                            <Li class="modularItem" data-name="入院记录" data-id="入院记录">入院记录</Li>
+                            <li class="modularItem" data-name="出院记录" data-id=出院记录>出院记录</li>
+                        </ul>
+                    </span>
+                    <span class="filterItem typeFilter">
+                        <span>审核人:</span>
+                        <input class="patientNameInp" type="text" placeholder="请输入审核人">
+                    </span>
+                    <span class="filterItem">
+                        <span>操作类型:</span>
+                        <span class="selectType">全部</span>
+                        <ul class="typeList filterDropList">
+                            <Li class="typeItem" data-name="全部" data-id="">全部</Li>
+                            <Li class="typeItem" data-name="删除条目" data-id="0">删除条目</Li>
+                            <Li class="typeItem" data-name="新增已有条目" data-id="1">新增已有条目</Li>
+                            <li class="typeItem" data-name="新增缺失条目" data-id=2>新增缺失条目</li>
+                            <li class="typeItem" data-name="恢复条目" data-id=3>恢复条目</li>
+                        </ul>
+                    </span>
+                    <span class="filterItem">
+                        <span>状态:</span>
+                        <span class="qcSelectCheck">全部</span>
+                        <ul class="qcCheckList filterDropList">
+                            <Li class="qcCheckItem" data-name="全部" data-id="">全部</Li>
+                            <Li class="qcCheckItem" data-name="待审核" data-id="0">待审核</Li>
+                            <Li class="qcCheckItem" data-name="审核通过" data-id="2">审核通过</Li>
+                            <li class="qcCheckItem" data-name="已驳回" data-id="1">已驳回</li>
+                        </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="recordScoreOpera textCenter" style="width: 65px;">申述人</th>
+                            <th class="beHospitalId textCenter" >所属科室</th>
+                            <th class="patientNo textCenter" >申述时间</th>
+                            <th class="patientName textCenter" style="width: 100px;">病人住院序号</th>
+                            <th class="patientSex textCenter" >患者姓名</th>
+                            <th class="patientage textCenter" >申述模块</th>
+                            <th class="bedNum textCenter" >缺陷详情</th>
+                            <th class="inHospitalDate textCenter" >审核人</th>
+                            <th class="outHospitalDate textCenter" >审核时间</th>
+                            <th class="diagnose textCenter" >操作类型</th>
+                            <th class="doctorName textCenter" >状态</th>
+                            <th class="doctorName textCenter" >操作</th>
+                        </tr>
+                    </thead>
+                    <tbody class="tbody">
+
+                    </tbody>
+                </table>
+            </div>
+            <div class="pagination"></div>
+        </div>
+        
+    </div>
+    <div id="mainBox"></div>
+        <div class="modal" id="delModal">
+            <div class="cover"></div>
+            <div class="modal-box">
+                <div class="modal-header clearfix">
+                    <span class="title">审核通过</span>
+                    <a class="close" href="javascript:void(0);">×</a>
+                </div>
+                <div class="modal-body">
+                    <!--<p>确定要删除该评分记录吗?</p>-->
+                </div>
+                <div class="modal-footer">
+                    <a class="close cancel" href="javascript:void(0);">取消</a>
+                    <a class="confirm" href="javascript:void(0);">保存</a>
+                </div>
+            </div>
+        </div>
+</body>
+
+</html>

+ 146 - 0
src/html/appealInit.html

@@ -0,0 +1,146 @@
+<!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 typeFilter">
+                        <span>医生姓名:</span>
+                        <input class="doctorInp" type="text" placeholder="请输入医生姓名">
+                    </span>
+                    <span class="filterItem doctorFilter">
+                        <span>医生工号:</span>
+                        <input class="doctorNumInp" type="text" placeholder="请输入医生工号">
+                    </span>
+                    <span class="filterItem filterHide fpFilterItem">
+                        <span>病案首页核查状态:</span>
+                        <span class="fpSelectCheck">全部</span>
+                        <ul class="checkList filterDropList fpCheckList">
+                            <Li class="fpCheckItem" data-name="全部" data-id="">全部</Li>
+                            <Li class="fpCheckItem" data-name="未核查" data-id="0">未核查</Li>
+                            <Li class="fpCheckItem" data-name="已核查" data-id="1">已核查</Li>
+                        </ul>
+                    </span>
+                    <span class="filterItem filterHide doctorFilter fpFilterItem">
+                        <span>病案首页核查人:</span>
+                        <input class="fpCheckPeople" type="text" placeholder="请输入核查人">
+                    </span>
+                    <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>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerFp2"  autocomplete="off" readonly/></span>
+                    </span>
+                    <span class="filterItem qcFiliterItem">
+                        <span>病历核查状态:</span>
+                        <span class="qcSelectCheck">全部</span>
+                        <ul class="checkList filterDropList qcCheckList">
+                            <Li class="qcCheckItem" data-name="全部" data-id="">全部</Li>
+                            <Li class="qcCheckItem" data-name="未核查" data-id="0">未核查</Li>
+                            <Li class="qcCheckItem" data-name="已核查" data-id="1">已核查</Li>
+                        </ul>
+                    </span>
+                    <span class="filterItem doctorFilter qcFiliterItem">
+                        <span>病历核查人:</span>
+                        <input class="qcCheckPeople" type="text" placeholder="请输入核查人">
+                    </span>
+                    
+                    <span class="filterItem typeFilter clearfix qcFiliterItem" >
+                        <span class="fl">病历核查时间:</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerQc1" autocomplete="off" readonly /></span>
+                        <span  class="divide fl">-</span>
+                        <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepickerQc2"  autocomplete="off" readonly/></span>
+                    </span>
+                    <span class="filterItem doctorFilter qcFiliterItem">
+                        <span>主诊断:</span>
+                        <input class="qcCheckMain" type="text" placeholder="请输入主诊断">
+                    </span>
+                </div>
+            </div>
+            <div class="overAuto">
+                <table class="qctable">
+                    <thead>
+                        <tr class="tabOpera"></tr>
+                        <tr class="tabTitle">
+                            <!-- <th class="textCenter" ></th>
+                            <th class="recordScoreOpera textCenter" style="width: 65px;">操作</th>
+                            <th class="beHospitalId textCenter" code="behospital_code">病人住院序号</th>
+                            <th class="patientNo textCenter" code="file_code">病案号</th>
+                            <th class="patientName textCenter" code="name" style="width: 100px;">病人姓名</th>
+                            <th class="patientSex textCenter" code="sex">性别</th>
+                            <th class="patientage textCenter" code="age">年龄</th>
+                            <th class="bedNum textCenter" code="bed_code">床号</th>
+                            <th class="inHospitalDate textCenter" code="behospital_date">入院日期</th>
+                            <th class="outHospitalDate textCenter desc" code="leave_hospital_date">出院日期</th>
+                            <th class="diagnose textCenter" code="diagnose">主诊断</th>
+                            <th class="doctorName textCenter" code="beh_doctor_name">住院医生</th>
+                            <th class="doctorName textCenter" code="doctor_name">主管医生</th>
+                            <th class="doctorName textCenter" code="director_doctor_name">主任医生</th>
+                            <th class="deptName textCenter" code="beh_dept_name">科室</th>
+                            <th class="recordLevel textCenter" code="level">病历等级</th>
+                            <th class="recordScore textCenter" code="score_res">病历得分</th>
+                            <th class="scoreTime textCenter" code="grade_time">评分时间</th> -->
+                        </tr>
+                    </thead>
+                    <tbody class="tbody">
+
+                    </tbody>
+                </table>
+            </div>
+            <div class="pagination"></div>
+        </div>
+        
+    </div>
+</body>
+
+</html>

+ 385 - 0
src/html/appealUserPage.html

@@ -0,0 +1,385 @@
+<!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">
+    <!--<link rel="shortcut icon" href="../resource/favicon.ico" type="image/x-icon">-->
+    <title>质控评分</title>
+    <script type="text/html" id="subMenuTmpl">
+        {{if sonMode.length}}
+        <li class="list-1 menu-${id}">
+            <p>${name}</p>
+            {{else}}
+        <li class="page menu-${id}" code="${name}" mode="${id}">${name}
+            {{/if}}
+            <ul>
+                {{each sonMode}}
+                <li class="page" code="${name.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g,'')}" mode="${id}">${name}</li>
+                {{/each}}
+            </ul>
+        </li>
+    </script>
+    <script type="text/html" id="miniMenuTmpl">
+        {{if sonMode.length}}
+        <li class="list-1  menu-${id}">
+            <div class="arrow-left"></div>
+            {{else}}
+        <li class="page  menu-${id}" code="${name}">
+            {{/if}}
+            {{if sonMode.length}}
+            <ul> 
+                <div class="liExtend"></div>
+                {{each sonMode}}
+                    <li class="page" code="${name.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g,'')}">${name}</li>
+                {{/each}}
+            </ul>
+            {{/if}}
+        </li>
+    </script>
+    <script type="text/html" id="infoTmpl">
+        <span>病案号:${fileCode}</span>
+        <span>姓名:${name}</span>
+        <span>性别:${sex}</span>
+        <span>年龄:${age}</span>
+        <span>科室:${behDeptName}</span>
+        <span class="level">病历等级:${level}</span>
+        <span class="score">病历得分:${scoreRes}</span>
+    </script>
+    <script type="text/html" id="tableTmpl">
+         {{if k==="出院诊断"}}
+         <table class="embed-table">
+             <tr>
+                 <td>
+                     <table>
+                         <tr>
+                             <th>出院诊断</th>
+                             <th>疾病编码</th>
+                             <th>入院病情</th>
+                             <th>出院病情</th>
+                         </tr>
+                         {{each(i,v) data}}
+                         {{if i<(data.length/2)}}
+                         <tr>
+                             <td>${诊断名称}</td>
+                             <td>${诊断编码}</td>
+                             <td>${入院情况}</td>
+                             <td>${出院情况}</td>
+                         </tr>
+                         {{/if}}
+                         {{/each}}
+                     </table>
+                 </td>
+                 <td>
+                     <table>
+                         <tr>
+                             <th>出院诊断</th>
+                             <th>疾病编码</th>
+                             <th>入院病情</th>
+                             <th>出院病情</th>
+                         </tr>
+                         {{each(i,v) data}}
+                         {{if i>=(data.length/2)}}
+                         <tr>
+                             <td>${诊断名称}</td>
+                             <td>${诊断编码}</td>
+                             <td>${入院情况}</td>
+                             <td>${出院情况}</td>
+                         </tr>
+                         {{/if}}
+                         {{/each}}
+                         {{if (data.length)%2===1}}
+                         <tr>
+                             <td></td>
+                             <td></td>
+                             <td></td>
+                             <td></td>
+                         </tr>
+                         {{/if}}
+                     </table>
+                 </td>
+             </tr>
+<!--
+             <tr><td colspan="2" class="table-tip">入院病情:1、"有" 2、"临床未确定" 3、"情况不明" 4、"无"<br/>出院病情:1、"治愈"  2、"好转"  3、"未愈"  4、"死亡"  9、"其它"</td></tr>
+-->
+         </table>
+         {{else}}
+             <table>
+         <tr>
+             <th rowspan="2">手术及操作编码</th>
+             <th rowspan="2">手术及操作日期</th>
+             <th rowspan="2">手术级别</th>
+             <th rowspan="2">手术及操作名称</th>
+             <th colspan="3">手术及操作医生</th>
+             <th rowspan="2">切口等级</th>
+             <th rowspan="2">愈合等级</th>
+             <th rowspan="2">麻醉方式</th>
+             <th rowspan="2">麻醉医师</th>
+         </tr>
+         <tr><th>术者</th><th>I助</th><th>II助</th></tr>
+         {{each data}}
+         <tr>
+             <td>${手术编码}</td>
+             <td>${手术日期}</td>
+             <td>${手术级别}</td>
+             <td>${手术名称}</td>
+             <td>${手术医生ID}</td>
+             <td>${一助医生ID}</td>
+             <td>${二助医生ID}</td>
+             <td>${切口等级}</td>
+             <td>${愈合等级}</td>
+             <td>${麻醉方式}</td>
+             <td>${麻醉医师}</td>
+         </tr>
+         {{/each}}
+         </table>
+         {{/if}}
+    </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  {{if isDeleted==="Y"}} class="delete title"{{else}}  class="title" {{/if}}>
+                {{if exampleStatus==="0"||exampleStatus==="1"||exampleStatus==="2"}}
+                <span data_id="${appealInfoId}" data_type="${exampleStatus}"  data_casesEntryId="${casesEntryId}" data_qcresultDetailId="${id}"  class="btn ${exampleStatus==='0'?'appeal':exampleStatus==='2'?'examine':exampleStatus==='1'?'reject':''}" msg="${msg}">${exampleStatus==='0'?'申诉':exampleStatus==='2'?'审核':exampleStatus==='1'?'驳回':''}</span>
+                {{/if}}
+                {{if gradeType===2}}
+                <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>
+                {{else}}
+                <a {{if pageKeyList[0]}} anchors="${pageKeyList}" code="${id}" href="#anchor${pageKeyList[0]}" {{/if}}>${msg}</a>
+                {{/if}}
+            </div>
+            <div class="opers clearfix">
+                {{if score===0}}
+                <p {{if isDeleted==="Y"}} class="fl delete" {{else}} class="fl" {{/if}}>评分:<span class="red">warn</span></p>
+                {{else}}
+                <p {{if isDeleted==="Y"}} class="fl delete"{{else}} class="fl" {{/if}}>评分:<span class="red">-${score}</span></p>
+                {{/if}}
+                {{if exampleStatus!=="0"}}
+                <div class="oper fr">
+                    <a class="edit-flaw blue" code="${id}" href="javascript:void(0);" style="margin-right: 18px;">申诉</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">
+        <div class="empty">
+            <img src="../images/empty.png" alt="空"/>
+            <p>暂无缺陷~</p>
+        </div>
+    </script>
+    <script type="text/html" id="editTmpl">
+        <div class="edit-box">
+            {{if score===0}}
+            <p><span>评分: </span> warn</p>
+            {{else}}
+            <p><span>评分: </span> -${score}</p>
+            {{/if}}
+            <p><span>操作类型: </span> 删改条目</p>
+            <p><span>缺陷详情: </span>${standardMsg}</p>
+            <div class="drop-box checker-drop-box">
+            <span><i class="required">*</i>审核人: </span>
+                <span type="text" class="checker-drop-input ellipsis"></span>
+                <ul></ul>
+            </div>
+            <p><span><i class="required">*</i>申诉说明: </span><textarea  id="qcInfo" class="textarea-text" cols="40" rows="6"></textarea></p>
+            <p class="warning"><span></span><span class="red">申诉说明不能为空~</span></p>
+        </div>
+    </script>
+    <script type="text/html" id="flawDropTmpl">
+        {{each(i,it) info}}
+        <li idx="${i}" name="${it.entryName||it.userName}" code="${it.id}" title="${it.entryName||it.userName}">${it.entryName||it.userName}</li>
+        {{/each}}
+    </script>
+    <script type="text/html" id="addFlawTmpl">
+        <div class="edit-box add-box">
+            <p><span><i class="required">*</i>操作类型: </span>
+                <input type="radio" name="operType" value="1" checked><span class="radio-label">新增已有条目</span>
+                <input type="radio" name="operType" value="2"><span class="radio-label">新增缺失条目</span></p>
+            <div class="drop-box checker-drop-box">
+                <span><i class="required">*</i>审核人: </span>
+                <span type="text" class="checker-drop-input ellipsis"></span>
+                <ul></ul>
+            </div>
+            <div class="drop-box flaw-drop-box exist-item">
+                <span><i class="required">*</i>质控条目: </span>
+                <input type="text" class="flaw-drop-input ellipsis"/>
+                <ul></ul>
+            </div>
+            <p class="exist-item"><span style="margin-right: 16px;">提示信息:</span><input title="${msg}" class="ellipsis" id="addQcMsg" type="text" value="${msg}" /></p>
+            <p class="exist-item"><span><i class="required">*</i>分值:</span> <input id="addQcScore" type="text" value="${score}" /></p>
+            <p class="exist-item"><span style="margin-right: 16px;">备注:</span><input title="${explainInfo}" class="ellipsis" id="addQcInfo" type="text" value="${explainInfo}" autocomplete="off"/></p>
+            <p><span><i class="required">*</i>申诉说明: </span><textarea  id="addQcEx" class="textarea-text" cols="40" rows="6"></textarea></p>
+            <p class="warning"><span></span><span class="red">支持≥0的数字输入,最多保留小数点后1位~</span></p>
+        </div>
+    </script>
+    <script type="text/html" id="appealStatusTmpl">
+        <div class="edit-box show-box ${exampleStatus==='1'?'refuse':exampleStatus==='2'?'pass':''}">
+            <p><span>申诉时间: </span> ${appealCreateDate}</p>
+            <p><span>申诉人: </span> ${claimantName}</p>
+            <p><span>审核人: </span> ${checkName}</p>
+            <p><span>操作类型: </span> ${appealOperationType}</p>
+            <p><span>申诉说明: </span> ${appealExplain}</p>
+            {{if exampleStatus==='1'||exampleStatus==='2'}}
+            <p class="line"></p>
+            <p class="check-item reject-item"><span>审核时间:</span>${appealExamineDate}</p>
+            <p class="check-item reject-item"><span>审核人: </span> ${checkName}</p>
+            <p class="check-item reject-item">
+                <span>审核结果:</span>
+                <span class="check-status">${exampleStatus==='1'?'驳回':'审核通过'}</span>
+            </p>
+            <p class="check-item reject-item"><span>驳回理由:</span>${rejectReason}</p>
+            {{/if}}
+            {{if exampleStatus==='2'}}
+            <p class="check-item"><span>处理方式:</span>${exampleOperation}</p>
+            <p class="check-item"><span>质控条目:</span>${casesEntryName}</p>
+            <p class="check-item"><span>提示信息:</span>${msg}</p>
+            <p class="check-item"><span>分值:</span>${score}</p>
+            <p class="check-item"><span>备注:</span>${exampleRemark}</p>
+            {{/if}}
+            <p class="line"></p>
+        </div>
+    </script>
+    <script type="text/html" id="appointBookTmpl">
+        <div class="page-item" code="${title}">
+            <h2 class="title titleSpecial" code="${title}">
+                {{if title==='缺陷总览'}}
+                    <span class="titlePay" data-type="2">缺陷总览</span>
+                    <span class="titleNo" data-type="1">控费缺陷</span>
+                {{/if}}
+                {{if title!=='缺陷总览'}}
+                    ${title}
+                {{/if}}
+            </h2>
+            {{if !data || data&&data.length === 0}}
+            <div class="empty">
+                <img src="../images/empty1.png" alt="空"/>
+                <p>暂无信息~</p>
+            </div>
+            {{else}}
+            {{if title==='缺陷总览'}}
+            <table class="scroll-table">
+                <thead>
+                <tr>
+                    <th width="250">来源</th>
+                    <th>缺陷详情</th>
+                    <th width="150">扣分</th>
+                </tr>
+                </thead>
+                <tbody>
+                    {{if JSON.stringify(data) == "{}"}}
+                    <tr class="empty2">
+                        <td colspan="3" class=""> 
+                            <img src="../images/empty1.png" alt="空"/>
+                            <p>暂无数据~</p></td>
+                    </tr>
+                    {{/if}}
+                {{each(i,val) data}}
+                <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; {{if isDeleted=='Y'}}  text-decoration:line-through;  {{/if}}">${modelName}</td>
+                    <td>
+                        <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" {{if isDeleted=='Y'}}  style="text-decoration:line-through;"  {{/if}}>${score}</td>
+                </tr>
+                {{/each}}
+                {{/each}}
+                </tbody>
+            </table>
+            {{else}}<table code="${title}" class="interval-color">
+            <thead>
+            <tr>
+                <th width="100" align="center">序号</th>
+                <th>文书详情</th>
+            </tr>
+            </thead>
+            <tbody>
+            {{each(i,val) data}}
+            <tr>
+                <td align="center">${i+1}</td>
+                <td>${recTitle}</td>
+            </tr>
+            {{/each}}
+            </tbody>
+        </table>
+            {{/if}}
+            {{/if}}
+        </div>
+    </script>
+</head>
+<body>
+    <div class="main-part clearfix">
+        <div class="sub-menu">
+            <div class="logo">
+                <img src="../images/lantone.png" alt="" style="width: 150px;">
+            </div>
+            <ul id="subMenu" class="subMenu"></ul>
+            <a href="javascript:void(0);" class="slide-show">
+                <img src="../images/down.png" alt="">
+            </a>
+            <div class="copy-right"><p>©杭州朗通信息技术有限公司</p></div>
+        </div>
+        <div class="menu-mini fl">
+            <div class="logo">
+                朗通
+            </div>
+            <ul></ul>
+            <a href="javascript:void(0);" class="slide-hide">
+                <img src="../images/up.png" alt="">
+            </a>
+           
+        </div>
+        <div class="tab-container clearfix">
+            <div class="patient-info" id="patientInfo"></div>
+            <p id="loading">加载中,请稍候 ...</p>
+            <div class="flaw-table">
+                <iframe src="./nursing.html" frameborder="0" id="contentNursing" name="contentNursing" style="display: none;"></iframe>
+                <iframe src="./advice.html" frameborder="0" id="contentIframeIn" name="contentIframeIn" style="display: none;"></iframe>
+                <iframe src="./pacs.html" frameborder="0" id="pacsIframeIn" name="pacsIframeIn" style="display: none;"></iframe>
+                <iframe src="./assist.html" frameborder="0" id="assistIframeIn" name="assistIframeIn" style="display: none;"></iframe>
+                <iframe src="./pacsDetail.html" frameborder="0" id="pacsDetailIframeIn" name="pacsDetailIframeIn" style="display: none;"></iframe>
+            </div>
+            <div class="content-box fl" id="contentInfo"></div>
+            <div class="operation fr" id="flaws">
+                <div class="flaw-title">
+                    <span>缺陷详情</span>
+                    <a href="javascript:void(0);" class="add-flaw">申诉新增</a>
+                </div>
+                <div class="flaw-box content-ht">
+                    <!--<div class="empty">
+                        <img src="../images/empty.png" alt="空"/>
+                        <p>暂无详情~</p>
+                    </div>-->
+                </div>
+            </div>
+        </div>
+    </div>
+    <div id="mainBox"></div>
+    <div class="modal" id="delModal">
+        <div class="cover"></div>
+        <div class="modal-box">
+            <div class="modal-header clearfix">
+                <span class="title">提示</span>
+                <a class="close" href="javascript:void(0);">×</a>
+            </div>
+            <div class="modal-body">
+                <!--<p>确定要删除该评分记录吗?</p>-->
+            </div>
+            <div class="modal-footer">
+                <a class="close cancel" href="javascript:void(0);">关闭</a>
+                <a class="confirm" href="javascript:void(0);">提交</a>
+            </div>
+        </div>
+    </div>
+</body>
+</html>

+ 62 - 49
src/html/index.html

@@ -1,18 +1,23 @@
 <!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">
-  <!--<link rel="shortcut icon" href="../resource/favicon.ico" type="image/x-icon">-->
-  <title>AI病案质控平台-首页</title>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <!--<link rel="shortcut icon" href="../resource/favicon.ico" type="image/x-icon">-->
+    <title>AI病案质控平台-首页</title>
 </head>
 
 <script type="text/html" id="menuTmpl">
     {{if isPlacefile==0&&(code=='YH-SJFX'||code=='YH-SJFXKS')}}
     {{else}}
     {{if subMenuList.length}}
-        <li class="list-1 ${code}"><p>${name}</p>
+        <li class="list-1 ${code}"><p>${name}
+            {{if num}}
+                <span class="dian"></span>
+            {{/if}}
+        </p>
     {{else}}
         {{if showStatus==1}}
             <li class="page ${code}" code="${code}">${name}
@@ -33,7 +38,13 @@
                             <li class="page" code="${code}">终末病历稽查表</li>
                         {{else}}
                         {{/if}} -->
-                        <li class="page" code="${code}">${name}</li>
+                        <li class="page" code="${code}">${name}
+                            {{if code=='YH-SSXX-SSSH'}}
+                            {{if num}}
+                            <span class="reds">${num}</span>
+                            {{/if}}
+                            {{/if}}
+                        </li>
                     {{/if}}
                 {{/if}}
             {{/each}}
@@ -74,55 +85,57 @@
     </li>
     {{/if}}
 </script>
+
 <body>
-  <div class="container">
-      <div class="main-body clearfix">
-          <div class="menu fl">
-              <div class="logo">
-                  <img src="../images/lantone.png" alt="">
+    <div class="container">
+        <div class="main-body clearfix">
+            <div class="menu fl">
+                <div class="logo">
+                    <img src="../images/lantone.png" alt="">
                 </div>
                 <ul class="menuList"></ul>
                 <a href="javascript:void(0);" class="slide-hide">
                     <img src="../images/down.png" alt="">
                 </a>
-              <div class="copy-right"><p>©杭州朗通信息技术有限公司</p></div>
-          </div>
-          <div class="menu-mini fl">
-              <div class="logo">
-                  朗通
-              </div>
-              <ul></ul>
-              <a href="javascript:void(0);" class="slide-show">
-                  <img src="../images/up.png" alt="">
-              </a>
-          
-          </div>
-          <div class="main" id="mainBox">
-              <div class="header clearfix">
-                  <div class="title fl">
-                      <!--<img src="../images/logo.png" alt="logo" />-->
-                      <span class="subtitle">AI病案质控平台</span>
-                    
-                      <span class="qiehuan"><img src="../images/qiehuan2.png" alt=""><i>切换运行质控</i></span>
-                  </div>
-                  <div class="login fr">
-                      <a class="setting" id="userName" href="javascript:void(0);">***</a>
-                      <ul class="userAction">
-                          <li id="changeWord">修改密码</li>
-                          <li><a class="login-out">退出</a></li>
-                      </ul>
-                  </div>
-                  <div class="dateDetail fr">
-                
-                  </div>
-              </div>
-              <iframe src="" frameborder="0" id="contentIframe"></iframe>
-             
+                <div class="copy-right">
+                    <p>©杭州朗通信息技术有限公司</p>
+                </div>
+            </div>
+            <div class="menu-mini fl">
+                <div class="logo">
+                    朗通
+                </div>
+                <ul></ul>
+                <a href="javascript:void(0);" class="slide-show">
+                    <img src="../images/up.png" alt="">
+                </a>
 
-          </div>
-      </div>
+            </div>
+            <div class="main" id="mainBox">
+                <div class="header clearfix">
+                    <div class="title fl">
+                        <!--<img src="../images/logo.png" alt="logo" />-->
+                        <span class="subtitle">AI病案质控平台</span>
+
+                        <span class="qiehuan"><img src="../images/qiehuan2.png" alt=""><i>切换运行质控</i></span>
+                    </div>
+                    <div class="login fr">
+                        <a class="setting" id="userName" href="javascript:void(0);">***</a>
+                        <ul class="userAction">
+                            <li id="changeWord">修改密码</li>
+                            <li><a class="login-out">退出</a></li>
+                        </ul>
+                    </div>
+                    <div class="dateDetail fr">
+
+                    </div>
+                </div>
+                <iframe src="" frameborder="0" id="contentIframe"></iframe>
+
+
+            </div>
+        </div>
     </div>
 </body>
 
-</html>
-
+</html>

BIN
src/images/appeal.png


BIN
src/images/appeal_a.png


BIN
src/images/pass.png


BIN
src/images/refuse.png


+ 13 - 1
src/js/api.js

@@ -207,7 +207,19 @@ const api = {
   getQcClickDeptList:'/qc/analysis/getQcClickDeptList',		//临床质控使用统计科室列表
   getQcClickDept:'/qc/analysis/getQcClickInnerPage',   //临床质控使用统计内页
   getQcClickInnerPageByExport:'/qc/analysis/getQcClickInnerPageByExport',//临床质控使用统计内页-导出
-
+  /***********申诉核查************/
+  getWorkById:'/qc/appealInfo/getWorkById',   //申诉发起列表
+  addAppealInfo:'/qc/appealInfo/addAppealInfo', //发起申诉
+  rejected:'/qc/appealExamineInfo/rejected',  //申诉驳回
+  getReviewer:'/qc/appealInfo/getReviewer', //获取审核人
+  getComplaintRecord:'/qc/appealExamineInfo/getComplaintRecord', //申诉记录列表
+  getApprovedView:'/qc/appealExamineInfo/getApprovedView',    //获取申诉详情
+  getAppealReview:'/qc/appealExamineInfo/getAppealReview', //申诉审核列表
+  approved:'/qc/appealExamineInfo/approved', //审核通过
+  getAppealInfo:'/qc/appealInfo/getAppealInfo', //申述记录
+  cancelAppealInfo:'/qc/appealInfo/cancelAppealInfo', //撤回申述
+  getAppealOperationType:'/qc/appealInfo/getAppealOperationType', //再次申述
+  getAuditNumber:'/qc/appealExamineInfo/getAuditNumber', //获取待审核数量
 }
 const ywCheckApi = {
   addMedCheckInfo: '/qc/medCheckInfo/addMedCheckInfo',   //核查

+ 840 - 0
src/js/appealCheck.js

@@ -0,0 +1,840 @@
+const $ = require('jquery');
+require("../css/appealCheck.less");
+require('./modal.js');
+const { api } = require('./api.js')
+const { post, getCookie, getLocal, getUrlArgObjectNew, emptyBox, downloadExportedData, expJson, getLogoParam, listenScroll, getPickerDate, exportTimeLimit } = require('./utils.js')
+require('./../resource/jquery-ui/jquery-ui.min.js');
+require('./../resource/jquery-ui/jquery-ui.min.css');
+const iconCheck = require("./../images/icon_check.png")
+const iconUnCheck = require("./../images/icon_unchecked.png")
+const iconCalenBlue = require("./../images/icon_calen_blue.png")
+const iconCalenGrey = require("./../images/icon_calen_grey.png")
+const iconDown = require("./../images/arrow_down.png")
+const iconUp = require("./../images/arrow_up.png")
+const loadingImg = require("./../images/loading.gif")
+const arrowLeft = require("./../images/arrow_left.png")
+const arrowRight = require("./../images/arrow_right.png")
+const goUpG = require("./../images/arrow_up_grey.png")
+const goUpB = require("./../images/arrow_up_blue.png")
+const goDownG = require("./../images/arrow_down_grey.png")
+const goDownB = require("./../images/arrow_down_blue.png")
+listenScroll()
+let pageSet = [], pageSetCopy = [], showNum = 0, scrollTop = 0;
+$(".selectModular").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".fpSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".qcSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let srcUrl = $("#contentIframe", parent.document).attr("src")
+let statisticsType = getUrlArgObjectNew("dateType", srcUrl) || getUrlArgObjectNew("shijian", srcUrl) || ""
+let startDateParam = getUrlArgObjectNew("startDateParam", srcUrl) || ""
+let endDateParam = getUrlArgObjectNew("endDateParam", srcUrl) || ""
+let tabList = [], name = "", behospitalCode = "", deptName = "", deptNameTemp = "", behosDateStart = "", level = "", behosDateEnd = "", nameTemp = "", casesName = "", operationType = "",
+    behospitalCodeTemp = "", levelTemp = "", deptId = "", deptIdTemp = "", doctorName = "", doctorNameTemp = "", doctorNum = "", doctorNumTemp = "",
+    fpCheckStatus = "", fpCheckStatusTemp = "", fpCheckName = "", fpCheckNameTemp = "", qcCheckName = "", qcCheckNameTemp = "", qcCheckMain = "", qcCheckStatus = "", state = "",
+    data_desc = ["leave_hospital_date"], data_asc = [];
+let isPlacefile = getCookie('isPlacefile') || 1
+
+$('.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-SSXX-SSSH]").addClass("active")
+
+function getTabData(activePage) {
+    const behosDateStart = getPickerDate($("#datepicker"), 1)
+    const behosDateEnd = getPickerDate($("#datepicker2"), 2)
+    const param = {
+        current: activePage,
+        deptId: deptId.trim(),
+        deptName: deptName == "全部" ? "" : deptName || '',
+        casesName: casesName,
+        operationType: operationType,
+        state: state,
+        size: 15,
+        name: nameTemp,
+        complaintDateEnd: behosDateEnd.replaceAll("/", "-"),
+        complaintDateStart: behosDateStart.replaceAll("/", "-"),
+    }
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...', '',))
+    return post(api.getAppealReview, param).then(res => {
+        if (res.data.code == '0') {
+            tabList = res.data.data.data.records
+            const totalPage = res.data.data.data.pages
+            const totalNum = res.data.data.data.total
+            renderTab(tabList)
+            renderPagination(totalPage, Number(activePage), totalNum)
+            if (totalPage > 1) {
+                renderPagination(totalPage, Number(activePage), totalNum)
+            } else {
+                $('.pagination').html("")
+            }
+        } else {
+            const token = localStorage.getItem('accessToken');
+            if (!token && window.location.href.indexOf('login') == -1) {
+                //alert('无token判断,跳回登录')
+            } else {
+                $.alerModal({ "message": res.data.msg, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+            }
+        }
+    }).catch((e) => {
+
+    })
+}
+
+
+
+$(".filter").on("click", function (e) {
+    behosDateStart = $("#datepicker").val()
+    behosDateEnd = $("#datepicker2").val()
+    const behosDateStartTime = new Date(behosDateStart).getTime()
+    const behosDateEndTime = new Date(behosDateEnd).getTime()
+    if (behosDateStartTime > behosDateEndTime) {
+        $.alerModal({ "message": '出院日期开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+        return
+    }
+    if (behosDateStart) {
+        behosDateStart = behosDateStart.replace(/\//g, '-') + ' 00:00:00'
+    }
+    if (behosDateEnd) {
+        behosDateEnd = behosDateEnd.replace(/\//g, '-') + ' 23:59:59'
+    }
+    name = nameTemp
+    behospitalCode = behospitalCodeTemp
+    level = levelTemp === "全部" ? "" : levelTemp
+    deptId = deptIdTemp
+    deptName = deptNameTemp
+    doctorName = doctorNameTemp
+    fpCheckName = fpCheckNameTemp
+    qcCheckName = qcCheckNameTemp
+
+
+    doctorNum = doctorNumTemp
+    fpCheckStatus = fpCheckStatusTemp
+    qcCheckStatus = state
+    getTabData(1)
+})
+
+$(".abnormalClear").on("click", function (e) {
+    tabList = [];
+    name = "";
+    behospitalCode = "";
+    level = "";
+    scoreSum = 0;
+    nameTemp = "";
+    behospitalCodeTemp = "";
+    levelTemp = "";
+    deptId = "";
+    deptIdTemp = "";
+    deptName = deptNameTemp = "";
+    doctorName = "";
+    fpCheckName = "";
+    qcCheckName = "";
+    qcCheckMain = "";
+    doctorNum = "";
+    doctorNameTemp = "";
+    doctorNumTemp = "";
+    fpCheckNameTemp = "";
+    qcCheckNameTemp = "";
+    qcCheckMainTemp = "";
+    fpCheckStatus = "";
+    fpCheckStatusTemp = "";
+    qcCheckStatus = "";
+    state = ""
+    operationType = ""
+    data_desc = ["leave_hospital_date"]
+    if (isPlacefile != 1) {
+        data_desc = ["behospital_date"]
+    }
+    data_asc = [];
+    $('.patientNameInp').val('')
+
+    // $('#datepicker').val('')
+    // $('#datepicker2').val('')
+    //默认日期为近一周
+    $("#datepicker").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd",
+    }).datepicker("setDate", "-6d");
+    $("#datepicker2").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd"
+    }).datepicker("setDate", new Date());
+    $("#datepickerFp1").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd",
+    }).datepicker("setDate", "");
+    $("#datepickerFp2").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd"
+    }).datepicker("setDate", "");
+    $("#datepickerQc1").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd",
+    }).datepicker("setDate", "");
+    $("#datepickerQc2").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd"
+    }).datepicker("setDate", "");
+    $('.selectDept ').html('全部')
+    $(".deptList").css("display", "none")
+    $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    // $('.selectDept ').addClass('unSelect')
+    $('.selectModular').html('全部')
+    $(".modularList").css("display", "none")
+    $(".selectModular").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    // $('.selectModular ').addClass('unSelect')
+    $('.fpSelectCheck').html('全部')
+    $(".fpCheckList").css("display", "none")
+    $(".fpSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    $('.qcSelectCheck').html('全部')
+    $(".qcCheckList").css("display", "none")
+    $(".qcSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    $("th[code]").removeClass("asc desc")
+    if (isPlacefile == 1) {
+        $(".leaveHospitalDate").addClass(" desc")
+    } else {
+        $(".behospitalDate").addClass(" desc")
+    }
+    behosDateStart = $("#datepicker").val()
+    behosDateEnd = $("#datepicker2").val()
+    if (behosDateStart) {
+        behosDateStart = behosDateStart.replace(/\//g, '-') + ' 00:00:00'
+    }
+    if (behosDateEnd) {
+        behosDateEnd = behosDateEnd.replace(/\//g, '-') + ' 23:59:59'
+    }
+    getTabData(1)
+})
+
+function renderTab(data) {
+    let str = ``
+    if (data.length === 0) {
+        $('.tbody').html(emptyBox(null, showNum + 12))
+        return;
+    }
+    for (let i = 0; i < data.length; i++) {
+        const item = data[i]
+        str += `
+            <tr  data-index=${i} data-doc="${item.doctorName || ""}" >
+                <td >${item.claimantName || "-"}</td>
+                <td >${item.behDeptName || "-"}</td>
+                <td >${item.claimantGmtCreate}</td>
+                <td >${item.behospitalCode}</td>
+                <td >${item.name || "-"}</td>
+                <td >${item.casesName || "-"}</td>
+                <td >${item.defectContent || "-"}</td>
+                <td >${item.checkName || "-"}</td>
+                <td >${item.checkGmtCreate || "-"}</td>
+                <td >${item.appealOperationType == 0 ? '删改条目' : item.appealOperationType == 1 ? '新增已有条目' : item.appealOperationType == 2 ? '新增缺失条目' : '恢复条目'}</td>
+                <td >${item.exampleStatus == 0 ? '<span class="review"><i></i>待审核</span>' : item.exampleStatus == 1 ? '<span class="rejected"><i></i>已驳回</span>' : '<span class="approved"><i></i>审核通过</span>'}</td>
+                <td data-id="${item.id || ""}" data-hos="${item.hospitalId || ""}" data-behospitalCode="${item.behospitalCode || ""}" data-casesEntryId="${item.casesEntryId || ""}" data-qcresultDetailId="${item.qcresultDetailId || ""}" data-appealOperationType="${item.appealOperationType || ""}">
+                    ${item.exampleStatus == 0 ? `<span class="appealBtn goExamine">审核</span><span class="appealBtn goHomeDetail1">查看</span>` : ''}
+                    ${item.exampleStatus == 1 || item.exampleStatus == 2 ? `<span class="appealBtn goHomeDetail1">查看</span>` : ''}
+                </td>
+            </tr>
+        `
+    }
+    $('.tbody').html(str)
+    $(".goExamine").click(function () {
+        let id = $(this).parent().attr("data-id")
+        let hospitalId = $(this).parent().attr("data-hos")
+        let behospitalCode = $(this).parent().attr("data-behospitalCode")
+        let casesEntryId = $(this).parent().attr("data-casesEntryId")
+        let qcresultDetailId = $(this).parent().attr("data-qcresultDetailId")
+        let appealOperationType = $(this).parent().attr("data-appealOperationType")
+        $(parent.document).find("#contentIframe").attr("src", "appealExamine.html?id=" + id + "&hospitalId=" + hospitalId + "&behospitalCode=" + behospitalCode + "&casesEntryId=" + casesEntryId + "&qcresultDetailId=" + qcresultDetailId + "&appealOperationType=" + appealOperationType + "&form=" + 1)
+    })
+    $(".goHomeDetail1").click(function () {
+        let id = $(this).parent().attr("data-id")
+        let hospitalId = $(this).parent().attr("data-hos")
+        let behospitalCode = $(this).parent().attr("data-behospitalCode")
+        let casesEntryId = $(this).parent().attr("data-casesEntryId")
+        let qcresultDetailId = $(this).parent().attr("data-qcresultDetailId")
+        let appealOperationType = $(this).parent().attr("data-appealOperationType")
+        $(parent.document).find("#contentIframe").attr("src", "appealExamine.html?id=" + id + "&hospitalId=" + hospitalId + "&behospitalCode=" + behospitalCode + "&casesEntryId=" + casesEntryId + "&qcresultDetailId=" + qcresultDetailId + "&appealOperationType=" + appealOperationType + "&form=" + 2)
+    })
+}
+
+//选择病历等级
+$('.selectModular').on("click", function (e) {
+    e.stopPropagation()
+    $(".selectDept .arrow").attr("src", iconDown)
+    $(".deptList").css("display", "none")
+    $(".selectType .arrow").attr("src", iconDown)
+    $(".typeList").css("display", "none")
+    $(".qcSelectCheck .arrow").attr("src", iconDown)
+    $(".qcCheckList").css("display", "none")
+    const showList = $(".modularList ").css("display")
+    if (showList == "none" || !showList) {
+        $(".modularList ").css("display", "block")
+        $(".selectModular .arrow").attr("src", iconUp)
+    } else {
+        $(".modularList ").css("display", "none")
+        $(".selectModular .arrow").attr("src", iconDown)
+    }
+})
+
+//操作类型
+$('.selectType').on("click", function (e) {
+    e.stopPropagation()
+    $(".selectDept .arrow").attr("src", iconDown)
+    $(".deptList").css("display", "none")
+    $(".selectModular .arrow").attr("src", iconDown)
+    $(".modularList ").css("display", "none")
+    $(".qcSelectCheck .arrow").attr("src", iconDown)
+    $(".qcCheckList").css("display", "none")
+    const showList = $(".typeList ").css("display")
+    if (showList == "none" || !showList) {
+        $(".typeList ").css("display", "block")
+        $(".selectType .arrow").attr("src", iconUp)
+    } else {
+        $(".typeList ").css("display", "none")
+        $(".selectType .arrow").attr("src", iconDown)
+    }
+})
+
+
+//选择状态
+$('.qcSelectCheck').on("click", function (e) {
+    e.stopPropagation()
+    $(".selectDept .arrow").attr("src", iconDown)
+    $(".deptList").css("display", "none")
+    $(".selectModular .arrow").attr("src", iconDown)
+    $(".modularList ").css("display", "none")
+    $(".selectType .arrow").attr("src", iconDown)
+    $(".typeList").css("display", "none")
+    const showList = $(".qcCheckList ").css("display")
+    if (showList == "none" || !showList) {
+        $(".qcCheckList ").css("display", "block")
+        $(".qcSelectCheck .arrow").attr("src", iconUp)
+    } else {
+        $(".qcCheckList ").css("display", "none")
+        $(".qcSelectCheck .arrow").attr("src", iconDown)
+    }
+})
+
+bindLeveldSelect()
+//病历等级选择
+function bindLeveldSelect() {
+    $('.modularItem').on("click", function () {
+        const modularItemName = $(this).attr("data-name")
+        const modularItemItemId = $(this).attr("data-id")
+        casesName = modularItemItemId
+        $('.selectModular').html(modularItemName)
+        $(".modularList").css("display", "none")
+        $(".selectModular").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        $('.selectModular').removeClass('unSelect')
+    })
+}
+
+
+bindTypedSelect()
+//操作类型
+function bindTypedSelect() {
+    $('.typeItem').on("click", function () {
+        const typeItemName = $(this).attr("data-name")
+        const typeItemItemId = $(this).attr("data-id")
+        operationType = typeItemItemId
+        $('.selectType').html(typeItemName)
+        $(".typeList").css("display", "none")
+        $(".selectType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        $('.selectType').removeClass('unSelect')
+    })
+}
+
+bindCheckedSelectQc()
+//病历核查状态选择
+function bindCheckedSelectQc() {
+    $('.qcCheckItem').on("click", function () {
+        const qcCheckItemName = $(this).attr("data-name")
+        const qcCheckItemItemId = $(this).attr("data-id") || ""
+        state = qcCheckItemItemId
+        $('.qcSelectCheck').html(qcCheckItemName)
+        $(".qcCheckList").css("display", "none")
+        $(".qcSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        $('.qcSelectCheck').removeClass('unSelect')
+    })
+}
+
+$('.selectDept').on("click", function (e) {
+    e.stopPropagation()
+    $(".selectModular .arrow").attr("src", iconDown)
+    $(".modularList ").css("display", "none")
+    $(".selectType .arrow").attr("src", iconDown)
+    $(".typeList").css("display", "none")
+    $(".qcSelectCheck .arrow").attr("src", iconDown)
+    $(".qcCheckList").css("display", "none")
+    const showList = $(".deptList ").css("display")
+    if (showList == "none" || !showList) {
+        $(".deptList ").css("display", "block")
+        $(".selectDept .arrow").attr("src", iconUp)
+    } else {
+        $(".deptList ").css("display", "none")
+        $(".selectDept .arrow").attr("src", iconDown)
+    }
+})
+
+//获取科室列表
+getDeptList()
+function getDeptList() {
+    post(api.getDeptListDept, { inputStr: "" }).then(res => {
+        if (res.data.code == '0') {
+            const deptList = res.data.data
+            rendeDeptList(deptList)
+        } else { }
+    }).catch((e) => {
+
+    })
+}
+
+
+function rendeDeptList(deptList) {
+    let str = `<li class="deptItem ellipsis" data-id=" " data-name="全部">全部</li>`
+    for (let i = 0; i < deptList.length; i++) {
+        str += `<li class="deptItem ellipsis" title=${deptList[i].deptName} data-id=${deptList[i].deptId} data-name=${deptList[i].deptName}> ${deptList[i].deptName}</li>`
+    }
+    $('.deptList').html(str)
+    bindDeptSelect()
+}
+//科室选择
+function bindDeptSelect() {
+    $('.deptItem').on("click", function () {
+        const deptItemName = $(this).attr("data-name")
+        const deptItemId = $(this).attr("data-id")
+        deptIdTemp = deptItemId
+        deptName = deptNameTemp = deptItemName
+        if (deptItemName.length > 10) {
+            $('.selectDept').html(deptItemName.substring(0, 8) + '...')
+        } else {
+            $('.selectDept').html(deptItemName)
+        }
+        $('.selectDept ').attr('title', deptItemName)
+        $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        $('.selectDept').removeClass('unSelect')
+        $(".deptList").css("display", "none")
+    })
+}
+
+function renderColSet(list) {
+    let pageSetList = list || pageSetCopy
+    let allSelect = true
+    for (let i = 0; i < pageSetList.length; i++) {
+        if (pageSetList[i].status != 1) {
+            allSelect = false
+        }
+    }
+    let str = `<div class='colSetBox'> 
+            <div class='mask'></div>
+            <div class='cloInfobox'>
+                <div class='cloInfoTitle'><span class='cloInfoTitleTxt'>列显示设置</span> <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></div>
+                <div class='cloInfo'></div>
+                <div class='btnBox'><span class='defaultColSet'>恢复默认</span> <span class='cancalColSet'>取消</span> <span class='saveColSet'>保存设置</span></div>
+            </div>
+        </div>`
+    let infoStr = `<div class='colTabTitle' ><span class='colOpera toggleSelectColAll' data-select=${allSelect}>${allSelect ? `<img  src=${iconCheck} />` : `<img src=${iconUnCheck} />`}全选</span><span  class='colName'>列名</span></div><div class='colTabInfoBox' >`
+    for (let i = 0; i < pageSetList.length; i++) {
+        infoStr += `<div  class='colTabInfo' data-index=${i}>
+            <span class='colOpera' data-index=${i}>${pageSetList[i].status == 1 ? `<img class="toggleSelectCol" src=${iconCheck} />` : `<img class="toggleSelectCol" src=${iconUnCheck} />`}</span>
+            <span class='colName'>            
+                <span>${pageSetList[i].name}</span>
+                <span class="pageOrder">
+                    <span class="pageSetUpBox">${i === 0 ? '' : `<img class="pageSetUp" src=${goUpG} />`}</span>
+                    <span  class="pageSetDownBox">${i === pageSetList.length - 1 ? '' : `<img class="pageSetDown" src=${goDownG} />`}</span>
+                </span>
+               
+            </span>
+           
+        </div>`
+    }
+    infoStr += "</div>"
+    // $(".main-body").append(str)
+    if (!$("#mainBox .colSetBox", parent.document).length) {
+        $("#mainBox", parent.document).append(str)
+    }
+    $("#mainBox .colSetBox .cloInfo", parent.document).html(infoStr)
+
+    $(".colTabInfoBox", parent.document).scrollTop(scrollTop)
+    scrollTop = 0
+
+    bindSelectCol()
+    bindColOrder()
+    bindSaveColSet()
+    bindDefaultColset()
+    bindCloseColSet()
+    bindImgEnter()
+}
+
+function bindDefaultColset() {
+    $('.defaultColSet', parent.document).off("hover").hover(function () {
+        $(this).css('color', '#00A1FF')
+    }, function () {
+        $(this).css('color', '#777777')
+    })
+    $('.defaultColSet', parent.document).off("click").on('click', function () {
+        return post(api.getDefaultPageSet, { pageType: 1 }).then(res => {
+            if (res.data.code == '0') {
+                pageSet = res.data.data
+                pageSetCopy = JSON.parse(JSON.stringify(pageSet))
+                renderColSet(pageSetCopy)
+            } else { }
+        }).catch((e) => {
+
+        })
+        // closeColSet()
+    })
+
+}
+
+function bindImgEnter() {
+    $(".pageSetUpBox img", parent.document).off("mouseenter").on("mouseenter", function () {
+        $(this).attr('src', goUpB)
+    })
+    $(".pageSetDownBox img", parent.document).off("mouseenter").on("mouseenter", function () {
+        $(this).attr('src', goDownB)
+    })
+    $(".pageSetUpBox img", parent.document).off("mouseout").on("mouseout", function () {
+        $(this).attr('src', goUpG)
+    })
+    $(".pageSetDownBox img", parent.document).off("mouseout").on("mouseout", function () {
+        $(this).attr('src', goDownG)
+    })
+}
+function bindSelectCol() {
+    $(".toggleSelectCol", parent.document).off("click").on("click", function () {
+        const index = $(this).parent().attr("data-index")
+        pageSetCopy[index].status = pageSetCopy[index].status == 1 ? 0 : 1
+        scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
+        renderColSet(pageSetCopy)
+
+    })
+    $(".toggleSelectColAll", parent.document).off("click").on("click", function () {
+        const hasSelectAll = $(this).attr("data-select")
+        for (let i = 0; i < pageSetCopy.length; i++) {
+            if (hasSelectAll == "true") {
+                pageSetCopy[i].status = 0
+
+            } else {
+                pageSetCopy[i].status = 1
+            }
+        }
+        scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
+        renderColSet(pageSetCopy)
+
+    })
+}
+
+function closeColSet() {
+    pageSetCopy = JSON.parse(JSON.stringify(pageSet))
+    $("#mainBox .colSetBox", parent.document).remove()
+}
+function bindCloseColSet() {
+    $(".colSetBox .iconClose", parent.document).off("click").on("click", function () {
+        closeColSet()
+    })
+    $(".colSetBox .cancalColSet", parent.document).off("click").on("click", function () {
+        closeColSet()
+    })
+}
+function bindSaveColSet() {
+    $(".saveColSet", parent.document).off("click").on("click", function () {
+        let showNumSet = 0
+        let sysUserPagesetVOList = []
+        for (let i = 0; i < pageSetCopy.length; i++) {
+            const item = pageSetCopy[i]
+            sysUserPagesetVOList.push({
+                name: item.name,
+                orderNo: i,
+                status: item.status,
+                val: item.val
+            })
+            if (item.status == 1) {
+                showNumSet++
+            }
+        }
+        if (showNumSet === 0) {
+            $.alerModal({ "message": '最少显示一列', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+            return
+        }
+        return post(api.saveQcListPageSet, { pageType: 1, sysUserPagesetVOList: sysUserPagesetVOList }).then(res => {
+            if (res.data.code == '0') {
+                closeColSet()
+            } else {
+                $("#mainBox .colSetBox", parent.document).remove()
+                $.alerModal({ "message": '保存失败,请重试~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+            }
+        }).catch((e) => {
+            $("#mainBox .colSetBox", parent.document).remove()
+            $.alerModal({ "message": '保存失败,请重试~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+        })
+
+    })
+
+}
+
+function bindColOrder() {
+    $(".pageSetUp", parent.document).off("click").on("click", function () {
+        const index = parseInt($(this).parent().parent().parent().parent().attr("data-index"))
+        if (index != 0) {
+            const upItem = pageSetCopy[index]
+            const upItemPre = pageSetCopy[index - 1]
+            pageSetCopy.splice(index - 1, 2, upItem, upItemPre)
+            scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
+            renderColSet(pageSetCopy)
+
+        } else {
+            return
+        }
+    })
+    $(".pageSetDown", parent.document).off("click").on("click", function () {
+        const index = parseInt($(this).parent().parent().parent().parent().attr("data-index"))
+        if (index == pageSetCopy.length - 1) {
+            return
+        } else {
+            const downItem = pageSetCopy[index]
+            const downItemBack = pageSetCopy[index + 1]
+            pageSetCopy.splice(index, 2, downItemBack, downItem)
+            scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
+            renderColSet(pageSetCopy)
+        }
+    })
+}
+
+$(".patientNameInp").on("input", function (e) {
+    const val = $(this).val().trim()
+    nameTemp = val
+})
+$(function () {
+    $.datepicker.regional['zh-CN'] = {
+        clearText: '清除',
+        clearStatus: '清除已选e799bee5baa6e59b9ee7ad9431333361303131日期',
+        closeText: '关闭',
+        closeStatus: '不改变当前选择',
+        prevText: '<上月',
+        prevStatus: '显示上月',
+        prevBigText: '<<',
+        prevBigStatus: '显示上一年',
+        nextText: '下月>',
+        nextStatus: '显示下月',
+        nextBigText: '>>',
+        nextBigStatus: '显示下一年',
+        currentText: '今天',
+        currentStatus: '显示本月',
+        monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
+        monthNamesShort: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
+        yearNamesShort: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
+        monthStatus: '选择月份',
+        yearStatus: '选择年份',
+        weekHeader: '周',
+        weekStatus: '年内周次',
+        dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
+        dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
+        dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'],
+        dayStatus: '设置 DD 为一周起始',
+        dateStatus: '选择 m月 d日, DD',
+        dateFormat: 'yy-mm-dd',
+        firstDay: 1,
+        initStatus: '请选择日期',
+        isRTL: false
+    };
+    $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
+
+    let startDate = "", endDate = new Date()
+    let year = new Date().getFullYear()
+    let month = new Date().getMonth() + 1
+    if (statisticsType == '1') {
+        startDate = new Date(`${year}-${month}-01`)
+    } else if (statisticsType == '2') {
+        startDate = new Date(`${year}-01-01`)
+    } else if (statisticsType == '3') {
+        startDate = new Date(startDateParam)
+        endDate = new Date(endDateParam)
+    } else {
+        startDate = "-6d"
+    }
+    $("#datepicker").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd",
+    }).datepicker("setDate", startDate);
+    $("#datepicker2").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd"
+    }).datepicker("setDate", endDate);
+    $("#datepickerFp1").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd"
+    }).datepicker("setDate", "");
+    $("#datepickerFp2").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd"
+    }).datepicker("setDate", "");
+    $("#datepickerQc1").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd"
+    }).datepicker("setDate", "");
+    $("#datepickerQc2").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd"
+    }).datepicker("setDate", "");
+    getTabData(1)
+});
+
+//分页渲染
+function renderPagination(totalPage, activePage, totalNum) {
+    let str = `<span class="totalSum">共${totalPage}页/${totalNum}条数据</span><span class="prePage"><img class="arrowPage" src=${arrowLeft} /></span>`
+    if (totalPage <= 6) {
+        for (let i = 1; i <= totalPage; i++) {
+
+            str += `<span class="pageNum ${'page' + i}" data-page=${i}>${i}</span>`
+        }
+    } else {
+        if (activePage <= 3) { //选中页数小于4
+            for (let i = 1; i <= 4; i++) {
+                str += `<span class="pageNum ${'page' + i}" data-page=${i}>${i}</span>`
+            }
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
+
+        } else if (activePage > totalPage - 3) {
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page' + (totalPage - 3)}" data-page=${totalPage - 3}>${totalPage - 3}</span>`
+            str += `<span class="pageNum ${'page' + (totalPage - 2)}" data-page=${totalPage - 2}>${totalPage - 2}</span>`
+            str += `<span class="pageNum ${'page' + (totalPage - 1)}" data-page=${totalPage - 1}>${totalPage - 1}</span>`
+            str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        } else {
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page' + (activePage - 1)}" data-page=${activePage - 1}>${activePage - 1}</span>`
+            str += `<span class="pageNum ${'page' + activePage}" data-page=${activePage}>${activePage}</span>`
+            str += `<span class="pageNum ${'page' + (activePage + 1)}" data-page=${activePage + 1}>${activePage + 1}</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        }
+
+    }
+    str += `<span class="nextPage"><img class="arrowPage" src=${arrowRight} /></span>`
+    $('.pagination').html(str)
+    $('.page' + activePage).addClass('activePage')
+    $(".pageNum").on("click", function (e) {
+        const activePageNow = Number($(this).attr('data-page'))
+        getTabData(activePageNow)
+        // renderPagination(totalPage,activePageNow,totalNum)
+    })
+    $(".prePage").on("click", function (e) {
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if (activePageNow > 1) {
+            activePageNow--
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    $(".nextPage").on("click", function (e) {
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if (activePageNow < totalPage) {
+            activePageNow++
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+
+}
+
+$(document).on("click", function () {
+    $(".selectDept .arrow").attr("src", iconDown)
+    $(".deptList").css("display", "none")
+    $(".selectModular .arrow").attr("src", iconDown)
+    $(".modularList ").css("display", "none")
+    $(".selectType .arrow").attr("src", iconDown)
+    $(".typeList").css("display", "none")
+    $(".qcSelectCheck .arrow").attr("src", iconDown)
+    $(".qcCheckList").css("display", "none")
+})
+
+
+
+let radioCheck = 1;
+$((function ($) {
+    $('.export').click(function () {
+        const behosDateStartTime = new Date(behosDateStart).getTime()
+        const behosDateEndTime = new Date(behosDateEnd).getTime()
+        if (behosDateStartTime > behosDateEndTime) {
+            $.alerModal({ "message": '开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+            return
+        }
+        const param = {
+            "behospitalCode": behospitalCode,
+            "deptId": deptId.trim(),
+            "doctorCode": doctorNum,
+            "doctorName": doctorName,
+            "asc": data_asc,     //升序
+            "desc": data_desc,       //降序
+            "leaveHosDateStart": isPlacefile == 1 ? behosDateStart : '', //出院日期--开始时间
+            "leaveHosDateEnd": isPlacefile == 1 ? behosDateEnd : '', //出院日期--结束时间
+            "behosDateStart": isPlacefile == 1 ? '' : behosDateStart, //出院日期--开始时间
+            "behosDateEnd": isPlacefile == 1 ? '' : behosDateEnd, //出院日期--结束时间
+            "isPlacefile": isPlacefile,
+            "level": level,
+            "name": name,
+            "checkStatus": qcCheckStatus ? Number(qcCheckStatus) : qcCheckStatus, //病历核查状态
+            "mrStatus": fpCheckStatus ? Number(fpCheckStatus) : fpCheckStatus,   //首页核查状态(1:已核查,0:未核查)
+            "chName": qcCheckName,   //病历核查人员
+            "diagnose": qcCheckMain,   //病历主症状..........
+            "mrName": fpCheckName,  //首页核查人员
+            "deptName": deptName == "全部" ? "" : deptName || '',
+            "statisticsType": statisticsType,
+        }
+        $.alerModal({ type: "radio", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+        closeRadio()
+        radioSelect()
+        bindSaveColPort(param)
+
+    })
+})($));
+function closeRadio() {
+    $(".colSetBox .iconClose,.colSetBox .cancalColSet", parent.document).off("click").on("click", function () {
+        $(".divModal", parent.document).remove()
+    })
+}
+function radioSelect() {
+    $(".selectDate", parent.document).click(function () {
+        $(this).find("input").prop("checked", true)
+        $(this).siblings().find("input").prop("checked", false)
+    })
+}
+function bindSaveColPort(param) {
+    $(".savePort", parent.document).off("click").on("click", function () {
+        radioCheck = $(".selectDate input[type='radio']:checked", parent.document).attr("data-select")
+        let time = radioCheck == 2 ? exportTimeLimit.defectTime : exportTimeLimit.normalTime
+        if ((new Date(behosDateEnd) - new Date(behosDateStart)) / 24 / 60 / 60 / 1000 > time) {
+            $.alerModal({ "message": `最多只能导出${time}天`, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+            return
+        }
+        param.radioCheck = radioCheck || 1
+        expJson(api.exportQcListDept, param).then(res => {
+            $(".divModal", parent.document).remove()
+            downloadExportedData(res.data, behosDateStart.slice(0, 10).replace(/-/g, "") + "-" + behosDateEnd.slice(0, 10).replace(/-/g, "") + "抽查住院病历质量情况.xls")
+        })
+    })
+}

+ 259 - 0
src/js/appealExamine.js

@@ -0,0 +1,259 @@
+const $ = require('jquery');
+require("../css/appealExamine.less");
+require('./modal.js');
+require('jquery-templates');
+const { api } = require('./api.js')
+const { post, getCookie, getLocal, getUrlArgObjectNew, emptyBox, downloadExportedData, expJson, getLogoParam, listenScroll, getPickerDate, exportTimeLimit } = require('./utils.js')
+require('./../resource/jquery-ui/jquery-ui.min.js');
+require('./../resource/jquery-ui/jquery-ui.min.css');
+const iconCheck = require("./../images/icon_check.png")
+const iconUnCheck = require("./../images/icon_unchecked.png")
+const iconCalenBlue = require("./../images/icon_calen_blue.png")
+const iconCalenGrey = require("./../images/icon_calen_grey.png")
+const iconDown = require("./../images/arrow_down.png")
+const iconUp = require("./../images/arrow_up.png")
+const loadingImg = require("./../images/loading.gif")
+const arrowLeft = require("./../images/arrow_left.png")
+const arrowRight = require("./../images/arrow_right.png")
+const goUpG = require("./../images/arrow_up_grey.png")
+const goUpB = require("./../images/arrow_up_blue.png")
+const goDownG = require("./../images/arrow_down_grey.png")
+const goDownB = require("./../images/arrow_down_blue.png")
+listenScroll()
+let srcUrl = $("#contentIframe", parent.document).attr("src")
+const id = getUrlArgObjectNew("id", srcUrl) || "";
+const hospitalId = getUrlArgObjectNew("hospitalId", srcUrl) || "";
+const behospitalCode = getUrlArgObjectNew("behospitalCode", srcUrl) || "";
+const casesEntryId = getUrlArgObjectNew("casesEntryId", srcUrl) || "";
+const qcresultDetailId = getUrlArgObjectNew("qcresultDetailId", srcUrl) || "";
+const appealOperationType = getUrlArgObjectNew("appealOperationType", srcUrl) || "";
+const form = getUrlArgObjectNew("form", srcUrl) || "";
+let appealInfo;
+(function () {
+    getApprovedView()
+    if (form == 2) {
+        $(".bot").hide();
+        $('.appealExamine h2').html('申诉信息 > 申诉审核 > 查看');
+    } else if (form == 3) {
+        $(".bot").hide();
+        $('.appealExamine h2').html('申诉信息 > 申诉记录 > 查看');
+    }
+})();
+//获取审核详情
+function getApprovedView() {
+    const param = {
+        id: id,
+        behospitalCode: behospitalCode,
+        casesEntryId: casesEntryId,
+        hospitalId: hospitalId,
+        qcresultDetailId: qcresultDetailId,
+    }
+    return post(api.getApprovedView, param).then(res => {
+        if (res.data.code == '0') {
+            data = res.data.data.data
+            appealInfo = {
+                exampleOperation: 2,
+                casesEntryName: data.casesEntryName,
+                casesEntryMsg: data.casesEntryMsg,
+                value: data.qcresultDetaiValue,
+                remark: data.remark,
+                behospitalCode: data.behospitalCode,
+                qcResultAlgVO: {
+                    casesEntryId: casesEntryId,
+                    casesId: data.casesId,
+                    id: data.qcresultDetailId,
+                    exampleOperation: appealOperationType
+                }
+            }
+            getInfo(data)
+            getCon(data)
+            getAppealInfo(id, behospitalCode, casesEntryId, hospitalId, qcresultDetailId)
+        } else {
+            const token = localStorage.getItem('accessToken');
+            if (!token && window.location.href.indexOf('login') == -1) {
+                //alert('无token判断,跳回登录')
+            } else {
+                $.alerModal({ "message": res.data.msg, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+            }
+        }
+    }).catch((e) => {
+
+    })
+}
+function getAppealInfo(id, behospitalCode, casesEntryId, hospitalId, qcresultDetailId) {
+    const param = {
+        id: id,
+        behospitalCode: behospitalCode,
+        casesEntryId: casesEntryId,
+        hospitalId: hospitalId,
+        qcresultDetailId: qcresultDetailId,
+    }
+    return post(api.getAppealInfo, param).then(res => {
+        if (res.data.code == '0') {
+            data = res.data.data.appealExamineRecordDTOList
+            getHistory(data)
+        } else {
+            const token = localStorage.getItem('accessToken');
+            if (!token && window.location.href.indexOf('login') == -1) {
+                //alert('无token判断,跳回登录')
+            } else {
+                $.alerModal({ "message": res.data.msg, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+            }
+        }
+    }).catch((e) => {
+
+    })
+}
+
+function getInfo(data) {
+    let str = ''
+    str += `<span class="info-title">病案号:${data.behospitalCode || '-'}</span>
+        <span class="info-title">姓名:${data.name || '-'}</span>
+        <span class="info-title">性别:${data.sex || '-'}</span>
+        <span class="info-title">年龄:${data.age || '-'}</span>
+        <span class="info-title">科室:${data.behDeptName || '-'}</span>
+        <span class="info-title">主管医生:${data.doctorName || '-'}</span>
+        <span class="info-title">入院时间:${data.behospitalDate || '-'}</span>
+        <span class="info-title">出院时间:${data.leaveHospitalDate || '-'}</span>`;
+    $('.info').append(str);
+}
+function getCon(data) {
+    let str = ''
+    str += `<p class="con-title">申述模块:${data.casesName || '-'}</p>
+        <p class="con-title">病历内容:${data.defectContent || '-'}</p>
+        <p class="con-title">缺陷详情:${data.qcresultDetailMsg || '-'}</p>
+        <p class="con-title">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 评分:${data.qcresultDetaiValue || '-'}</p>
+        <p class="con-title">病案详情:<span class="goDetail">查看</span></p>`;
+    $('.content').append(str);
+}
+
+function getHistory(data) {
+    let str = ''
+    for (let i = 0; i < data.length; i++) {
+        const item = data[i]
+        str += `<div class="box">
+            <p class="con-title"><span>申述时间:${item.appealCreateDate || '-'}</span><span>申述人:${item.claimantName || '-'}</span><span>审核人:${item.checkName || '-'}</span></p>
+            <p class="con-title">操作类型:${item.appealOperationType == 0 ? '删改条目' : item.appealOperationType == 1 ? '新增已有条目' : item.appealOperationType == 2 ? '新增缺失条目' : '恢复条目'}</p>
+            <p class="con-title">申述说明:${item.appealExplain || '-'}</p>
+        </div>`;
+    }
+    $('.history').append(str);
+}
+
+$(document).on("click", ".goDetail", (e) => {
+    $(parent.document).find("#contentIframe").attr("src", "checkTaskList.html")
+});
+
+$(document).on("click", ".btn-sure", (e) => {
+    $("#delModal .modal-body").html("");
+    $("#delModal").show();
+    if (appealOperationType == 0) {
+        $("#appealDel").tmpl(appealInfo).appendTo("#delModal .modal-body");
+        $("#delModal .confirm").text("确定").unbind("click").click(function () {
+            approved(1)
+        });
+    } else if (appealOperationType == 1) {
+
+        $("#appealAdd").tmpl(appealInfo).appendTo("#delModal .modal-body");
+        $("#delModal .confirm").text("确定").unbind("click").click(function () {
+            approved(2)
+        });
+    } else if (appealOperationType == 2) {
+
+        $("#appealDef").tmpl(appealInfo).appendTo("#delModal .modal-body");
+        $("#delModal .confirm").text("确定").unbind("click").click(function () {
+            approved(3)
+        });
+    }
+    console.log(appealOperationType);
+});
+
+
+
+$(document).on("click", ".btn-cancel", (e) => {
+    $("#delModal .modal-body").html("");
+    $('.bot ul').css({
+        "display": 'none',
+    });
+    $("#delModal").show();
+    $("#delModal .modal-header .title").html('驳回');
+
+    $("#appealReject").tmpl(appealInfo).appendTo("#delModal .modal-body");
+    $("#delModal .confirm").text("确定").unbind("click").click(function () {
+        rejected()
+    });
+});
+
+//审核
+function approved(type) {
+    if (type == 1) {
+        appealInfo.exampleOperation = $('input:radio:checked').val()
+        if ($('input:radio:checked').val() == 2) {
+            appealInfo.delStatus == 0
+        }
+    } else if (type == 2) {
+        appealInfo.exampleOperation = 3
+    } else if (type == 3) {
+        appealInfo.exampleOperation = 4
+        appealInfo.processResult = $(".textarea").val()
+        let val = $(".textarea").val()
+        let num = 500
+        if (!val) {
+            $(".appealDef .warning .red").text("处理结果不能为空~");
+            $(".appealDef .warning").show();
+            return
+        } else if (val.length > num) {
+            $(".appealDef .warning .red").text("处理结果不能超过" + num + "个字~");
+            $(".appealDef .warning").show();
+            return
+        }
+    }
+    const param = {
+        ...appealInfo,
+        'id': id,
+    };
+    post(api.approved, param).then(function (res) {
+        if (res.data.code === '0') {
+            $("#delModal").hide();
+            $.alerModal({ "message": "审核成功", type: "tip", time: '1000', win: true });
+        } else {
+            $.alerModal({ "message": res.data.msg || '失败,请重试~', type: "tip", time: '1000', win: 'default' });
+
+        }
+    }).catch(() => {
+        $.alerModal({ "message": '失败,请重试~', type: "tip", time: '1000', win: 'default' });
+
+    });
+}
+
+//驳回
+function rejected() {
+    let val = $(".textarea2").val()
+    let num = 500
+    if (!val) {
+        $(".appealReject .warning .red").text("驳回理由不能为空~");
+        $(".appealReject .warning").show();
+        return
+    } else if (val.length > num) {
+        $(".appealReject .warning .red").text("驳回理由不能超过" + num + "个字~");
+        $(".appealReject .warning").show();
+        return
+    }
+    const param = {
+        'behospitalCode': behospitalCode,
+        'id': id,
+        rejectedReason: $(".textarea2").val()
+    };
+    post(api.rejected, param).then(function (res) {
+        console.log(res.data.data.code);
+        if (res.data.data.code === '0') {
+            $("#delModal").hide();
+            $.alerModal({ "message": "驳回成功", type: "tip", time: '1000', win: true });
+        } else {
+            console.log(123);
+            $.alerModal({ "message": res.data.data.msg || '失败,请重试~', type: "tip", time: '1000', win: 'default' });
+        }
+    }).catch(() => {
+        $.alerModal({ "message": '失败,请重试~', type: "tip", time: '1000', win: 'default' });
+    });
+}

+ 983 - 0
src/js/appealHistory.js

@@ -0,0 +1,983 @@
+const $ = require('jquery');
+require("../css/appealHistory.less");
+require('./modal.js');
+require('jquery-templates');
+const { api } = require('./api.js')
+const { post, getCookie, getLocal, getUrlArgObjectNew, emptyBox, downloadExportedData, expJson, getLogoParam, listenScroll, getPickerDate, exportTimeLimit } = require('./utils.js')
+require('./../resource/jquery-ui/jquery-ui.min.js');
+require('./../resource/jquery-ui/jquery-ui.min.css');
+const iconCheck = require("./../images/icon_check.png")
+const iconUnCheck = require("./../images/icon_unchecked.png")
+const iconCalenBlue = require("./../images/icon_calen_blue.png")
+const iconCalenGrey = require("./../images/icon_calen_grey.png")
+const iconDown = require("./../images/arrow_down.png")
+const iconUp = require("./../images/arrow_up.png")
+const loadingImg = require("./../images/loading.gif")
+const arrowLeft = require("./../images/arrow_left.png")
+const arrowRight = require("./../images/arrow_right.png")
+const goUpG = require("./../images/arrow_up_grey.png")
+const goUpB = require("./../images/arrow_up_blue.png")
+const goDownG = require("./../images/arrow_down_grey.png")
+const goDownB = require("./../images/arrow_down_blue.png");
+const ret = require('bluebird/js/release/util');
+listenScroll()
+let pageSet = [], pageSetCopy = [], showNum = 0, scrollTop = 0;
+$(".selectModular").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".fpSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".qcSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let srcUrl = $("#contentIframe", parent.document).attr("src")
+let statisticsType = getUrlArgObjectNew("dateType", srcUrl) || getUrlArgObjectNew("shijian", srcUrl) || ""
+let startDateParam = getUrlArgObjectNew("startDateParam", srcUrl) || ""
+let endDateParam = getUrlArgObjectNew("endDateParam", srcUrl) || ""
+let tabList = [], name = "", behospitalCode = "", deptName = "", deptNameTemp = "", behosDateStart = "", level = "", behosDateEnd = "", nameTemp = "", moduleName = "", operationType = "",
+    behospitalCodeTemp = "", levelTemp = "", deptId = "", deptIdTemp = "", doctorName = "", doctorNameTemp = "", doctorNum = "", doctorNumTemp = "",
+    fpCheckStatus = "", fpCheckStatusTemp = "", fpCheckName = "", fpCheckNameTemp = "", qcCheckName = "", qcCheckNameTemp = "", qcCheckMain = "", qcCheckStatus = "", state = "",
+    data_desc = ["leave_hospital_date"], data_asc = [], global_checkers = [];    //审核人列表;
+let isPlacefile = getCookie('isPlacefile') || 1
+
+$('.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-SSXX-SSJL]").addClass("active")
+
+function getTabData(activePage) {
+    const behosDateStart = getPickerDate($("#datepicker"), 1)
+    const behosDateEnd = getPickerDate($("#datepicker2"), 2)
+    const param = {
+        current: activePage,
+        deptId: deptId.trim(),
+        deptName: deptName == "全部" ? "" : deptName || '',
+        casesName: moduleName,
+        operationType: operationType,
+        state: state,
+        size: 15,
+        name: $('.patientNameInp').val(),
+        complaintDateEnd: behosDateEnd.replaceAll("/", "-"),
+        complaintDateStart: behosDateStart.replaceAll("/", "-"),
+    }
+    $('.pagination').html("")
+    $('.tbody').html(emptyBox('努力加载中...', '',))
+    return post(api.getComplaintRecord, param).then(res => {
+        if (res.data.code == '0') {
+            tabList = res.data.data.data.records
+            const totalPage = res.data.data.data.pages
+            const totalNum = res.data.data.data.total
+            renderTab(tabList)
+            renderPagination(totalPage, Number(activePage), totalNum)
+            if (totalPage > 1) {
+                renderPagination(totalPage, Number(activePage), totalNum)
+            } else {
+                $('.pagination').html("")
+            }
+        } else {
+            const token = localStorage.getItem('accessToken');
+            if (!token && window.location.href.indexOf('login') == -1) {
+                //alert('无token判断,跳回登录')
+            } else {
+                $.alerModal({ "message": res.data.msg, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+            }
+        }
+    }).catch((e) => {
+
+    })
+}
+
+
+
+$(".filter").on("click", function (e) {
+    behosDateStart = $("#datepicker").val()
+    behosDateEnd = $("#datepicker2").val()
+    const behosDateStartTime = new Date(behosDateStart).getTime()
+    const behosDateEndTime = new Date(behosDateEnd).getTime()
+    if (behosDateStartTime > behosDateEndTime) {
+        $.alerModal({ "message": '出院日期开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+        return
+    }
+    if (behosDateStart) {
+        behosDateStart = behosDateStart.replace(/\//g, '-') + ' 00:00:00'
+    }
+    if (behosDateEnd) {
+        behosDateEnd = behosDateEnd.replace(/\//g, '-') + ' 23:59:59'
+    }
+    name = nameTemp
+    behospitalCode = behospitalCodeTemp
+    level = levelTemp === "全部" ? "" : levelTemp
+    deptId = deptIdTemp
+    deptName = deptNameTemp
+    doctorName = doctorNameTemp
+    fpCheckName = fpCheckNameTemp
+    qcCheckName = qcCheckNameTemp
+
+
+    doctorNum = doctorNumTemp
+    fpCheckStatus = fpCheckStatusTemp
+    qcCheckStatus = state
+    getTabData(1)
+})
+
+$(".abnormalClear").on("click", function (e) {
+    tabList = [];
+    name = "";
+    behospitalCode = "";
+    level = "";
+    scoreSum = 0;
+    nameTemp = "";
+    behospitalCodeTemp = "";
+    levelTemp = "";
+    deptId = "";
+    deptIdTemp = "";
+    deptName = deptNameTemp = "";
+    doctorName = "";
+    fpCheckName = "";
+    qcCheckName = "";
+    qcCheckMain = "";
+    doctorNum = "";
+    doctorNameTemp = "";
+    doctorNumTemp = "";
+    fpCheckNameTemp = "";
+    qcCheckNameTemp = "";
+    qcCheckMainTemp = "";
+    fpCheckStatus = "";
+    fpCheckStatusTemp = "";
+    qcCheckStatus = "";
+    state = ""
+    operationType = ""
+    data_desc = ["leave_hospital_date"]
+    if (isPlacefile != 1) {
+        data_desc = ["behospital_date"]
+    }
+    data_asc = [];
+    $('.patientNameInp').val('')
+
+    // $('#datepicker').val('')
+    // $('#datepicker2').val('')
+    //默认日期为近一周
+    $("#datepicker").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd",
+    }).datepicker("setDate", "-6d");
+    $("#datepicker2").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd"
+    }).datepicker("setDate", new Date());
+    $("#datepickerFp1").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd",
+    }).datepicker("setDate", "");
+    $("#datepickerFp2").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd"
+    }).datepicker("setDate", "");
+    $("#datepickerQc1").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd",
+    }).datepicker("setDate", "");
+    $("#datepickerQc2").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd"
+    }).datepicker("setDate", "");
+    $('.selectDept ').html('全部')
+    $(".deptList").css("display", "none")
+    $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    // $('.selectDept ').addClass('unSelect')
+    $('.selectModular').html('全部')
+    $(".modularList").css("display", "none")
+    $(".selectModular").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    // $('.selectModular ').addClass('unSelect')
+    $('.fpSelectCheck').html('全部')
+    $(".fpCheckList").css("display", "none")
+    $(".fpSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    $('.qcSelectCheck').html('全部')
+    $(".qcCheckList").css("display", "none")
+    $(".qcSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    $("th[code]").removeClass("asc desc")
+    if (isPlacefile == 1) {
+        $(".leaveHospitalDate").addClass(" desc")
+    } else {
+        $(".behospitalDate").addClass(" desc")
+    }
+    behosDateStart = $("#datepicker").val()
+    behosDateEnd = $("#datepicker2").val()
+    if (behosDateStart) {
+        behosDateStart = behosDateStart.replace(/\//g, '-') + ' 00:00:00'
+    }
+    if (behosDateEnd) {
+        behosDateEnd = behosDateEnd.replace(/\//g, '-') + ' 23:59:59'
+    }
+    getTabData(1)
+})
+
+//获取审核人下拉列表
+function getCheckUser() {
+    const param = {};
+    post(api.getReviewer, param).then(function (res) {
+        if (res.data.code === '0') {
+            const data = res.data.data;
+            global_checkers = data;
+            $("#flawDropTmpl").tmpl({ info: data }).appendTo("#delModal .checker-drop-box ul");
+            userDropEvent(".checker-drop-input", selectChecker);
+        }
+    });
+}
+function userDropEvent(domSelector, selectEvent) {
+    $("body").on("click", domSelector, function () {
+        $(domSelector).parents(".drop-box").toggleClass("show");
+    });
+    $("body").on("click", ".checker-drop-box li", function () {
+        $(".add-box .warning").hide();
+        const n = $(this).attr("idx");
+        selectEvent(domSelector, n);
+        $(domSelector).parents(".drop-box").find(".warning").hide();
+        $(domSelector).parents(".drop-box").removeClass("show");
+    });
+}
+//审核人下拉选中
+function selectChecker(domSelector, n) {
+    const flaw = global_checkers[n];
+    const { id, userName } = flaw;
+    $(domSelector).text(userName).attr({ "code": id, "title": userName });
+}
+function renderTab(data) {
+    let str = ``
+    if (data.length === 0) {
+        $('.tbody').html(emptyBox(null, showNum + 12))
+        return;
+    }
+    for (let i = 0; i < data.length; i++) {
+        const item = data[i]
+        str += `
+            <tr>
+                <td >${item.claimantName || "-"}</td>
+                <td >${item.behDeptName || "-"}</td>
+                <td >${item.claimantGmtCreate}</td>
+                <td >${item.behospitalCode}</td>
+                <td >${item.name || "-"}</td>
+                <td >${item.casesName || "-"}</td>
+                <td >${item.defectContent || "-"}</td>
+                <td >${item.checkName || "-"}</td>
+                <td >${item.checkGmtCreate || "-"}</td>
+                <td >${item.appealOperationType == 0 ? '删改条目' : item.appealOperationType == 1 ? '新增已有条目' : item.appealOperationType == 2 ? '新增缺失条目' : '恢复条目'}</td>
+                <td >${item.exampleStatus == 0 ? '<span class="review"><i></i>待审核</span>' : item.exampleStatus == 1 ? '<span class="rejected"><i></i>已驳回</span>' : '<span class="approved"><i></i>审核通过</span>'}</td>
+                <td data-id="${item.id || ""}" data-hos="${item.hospitalId || ""}" data-behospitalCode="${item.behospitalCode || ""}" data-casesEntryId="${item.casesEntryId || ""}" data-qcresultDetailId="${item.qcresultDetailId || ""}" data-appealOperationType="${item.appealOperationType || ""}" data-index=${i}>
+                    ${item.exampleStatus == 0 ? `<span class="appealBtn goHomeDetail1">查看</span><span class="appealBtn withdraw" >撤回</span>` : ''}
+                    ${item.exampleStatus == 1 || item.exampleStatus == 2 ? `<span class="appealBtn appealAgain">再次申述</span>` : ''}
+                </td>
+            </tr>
+        `
+    }
+    $('.tbody').html(str)
+    $(".withdraw").click(function () {
+        let id = $(this).parent().attr("data-id")
+        console.log(id);
+        cancelAppealInfo(id)
+    })
+    $(".appealAgain").click(function () {
+        let i = $(this).parent().attr("data-index")
+        $("#delModal .modal-body").html("");
+        $("#delModal").show();
+        getCheckUser()
+        $("#appealDef").tmpl(data[i]).appendTo("#delModal .modal-body");
+        $("#delModal .confirm").text("确定").unbind("click").click(function () {
+            addAppealInfo(data[i])
+        });
+    })
+    $(".goHomeDetail1").click(function () {
+        let id = $(this).parent().attr("data-id")
+        let hospitalId = $(this).parent().attr("data-hos")
+        let behospitalCode = $(this).parent().attr("data-behospitalCode")
+        let casesEntryId = $(this).parent().attr("data-casesEntryId")
+        let qcresultDetailId = $(this).parent().attr("data-qcresultDetailId")
+        let appealOperationType = $(this).parent().attr("data-appealOperationType")
+        $(parent.document).find("#contentIframe").attr("src", "appealExamine.html?id=" + id + "&hospitalId=" + hospitalId + "&behospitalCode=" + behospitalCode + "&casesEntryId=" + casesEntryId + "&qcresultDetailId=" + qcresultDetailId + "&appealOperationType=" + appealOperationType + "&form=" + 3)
+    })
+}
+
+function cancelAppealInfo(id) {
+    post(api.cancelAppealInfo, { id: id }).then(function (res) {
+        if (res.data.code === '0') {
+            getTabData(1)
+            $.alerModal({ "message": "撤回成功", type: "tip", time: '1000', win: true });
+        } else {
+            $.alerModal({ "message": res.data.msg || '失败,请重试~', type: "tip", time: '1000', win: 'default' });
+
+        }
+    }).catch(() => {
+        $.alerModal({ "message": '失败,请重试~', type: "tip", time: '1000', win: 'default' });
+
+    });
+}
+
+//再次申述
+function addAppealInfo(data) {
+    if (data.appealOperationType == 1) {
+        if (data.exampleStatus == 2) {
+            data.appealOperationType = 0
+        } else {
+            data.appealOperationType = 1
+        }
+    } else if (data.appealOperationType == 3) {
+        data.appealOperationType = 0
+    }
+    $(".warning").hide();
+    let val = $(".textarea").val()
+    let num = 500
+    if (!val) {
+        $(".warning .red").text("申诉说明不能为空~");
+        $(".warning").show();
+        return
+    } else if (val.length > num) {
+        $(".warning .red").text("申诉说明不能超过" + num + "个字~");
+        $(".warning").show();
+        return
+    }
+    const param = {
+        appealExplain: $(".textarea").val(),
+        appealOperationType: data.appealOperationType,
+        behospitalCode: data.behospitalCode,
+        checkId: $(".checker-drop-input").attr("code"),
+        appealType: 1,
+    }
+    post(api.addAppealInfo, param).then(function (res) {
+        if (res.data.code === '0') {
+            getTabData(1)
+            $("#delModal").hide();
+            $.alerModal({ "message": "申述成功", type: "tip", time: '1000', win: true });
+        } else {
+            $.alerModal({ "message": res.data.msg || '失败,请重试~', type: "tip", time: '1000', win: 'default' });
+
+        }
+    }).catch(() => {
+        $.alerModal({ "message": '失败,请重试~', type: "tip", time: '1000', win: 'default' });
+
+    });
+}
+$(document).on("click", ".checker-drop-input", (e) => {
+    e.stopPropagation()
+    $("#delModal ul").css("display", "block")
+});
+$(document).on("click", ".infoItem", (e) => {
+    e.stopPropagation()
+    const name = $(this).attr("data-name")
+    $("#delModal ul").css("display", "none")
+});
+//选择病历等级
+$('.selectModular').on("click", function (e) {
+    e.stopPropagation()
+    $(".deptList ").css("display", "none")
+    $(".selectDept .arrow").attr("src", iconDown)
+    $(".checkList ").css("display", "none")
+    $(".selectCheck .arrow").attr("src", iconDown)
+    $(".fpCheckList ").css("display", "none")
+    $(".fpSelectCheck .arrow").attr("src", iconDown)
+    $(".qcSelectCheck .arrow").attr("src", iconDown)
+    $(".qcCheckList ").css("display", "none")
+    const showList = $(".modularList ").css("display")
+    if (showList == "none" || !showList) {
+        $(".modularList ").css("display", "block")
+        $(".selectModular .arrow").attr("src", iconUp)
+    } else {
+        $(".modularList ").css("display", "none")
+        $(".selectModular .arrow").attr("src", iconDown)
+    }
+})
+
+//操作类型
+$('.selectType').on("click", function (e) {
+    e.stopPropagation()
+    $(".deptList ").css("display", "none")
+    $(".selectDept .arrow").attr("src", iconDown)
+    $(".checkList ").css("display", "none")
+    $(".selectCheck .arrow").attr("src", iconDown)
+    $(".fpCheckList ").css("display", "none")
+    $(".fpSelectCheck .arrow").attr("src", iconDown)
+    $(".qcSelectCheck .arrow").attr("src", iconDown)
+    $(".qcCheckList ").css("display", "none")
+    const showList = $(".typeList ").css("display")
+    if (showList == "none" || !showList) {
+        $(".typeList ").css("display", "block")
+        $(".selectType .arrow").attr("src", iconUp)
+    } else {
+        $(".typeList ").css("display", "none")
+        $(".selectType .arrow").attr("src", iconDown)
+    }
+})
+
+
+//选择状态
+$('.qcSelectCheck').on("click", function (e) {
+    e.stopPropagation()
+    $(".deptList ").css("display", "none")
+    $(".selectDept .arrow").attr("src", iconDown)
+    $(".modularList ").css("display", "none")
+    $(".selectModular .arrow").attr("src", iconDown)
+    $(".fpSelectCheck .arrow").attr("src", iconDown)
+    $(".fpCheckList ").css("display", "none")
+    const showList = $(".qcCheckList ").css("display")
+    if (showList == "none" || !showList) {
+        $(".qcCheckList ").css("display", "block")
+        $(".qcSelectCheck .arrow").attr("src", iconUp)
+    } else {
+        $(".qcCheckList ").css("display", "none")
+        $(".qcSelectCheck .arrow").attr("src", iconDown)
+    }
+})
+
+bindLeveldSelect()
+//病历等级选择
+function bindLeveldSelect() {
+    $('.modularItem').on("click", function () {
+        const modularItemName = $(this).attr("data-name")
+        const modularItemItemId = $(this).attr("data-id")
+        moduleName = modularItemItemId
+        $('.selectModular').html(modularItemName)
+        $(".modularList").css("display", "none")
+        $(".selectModular").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        $('.selectModular').removeClass('unSelect')
+    })
+}
+
+
+bindTypedSelect()
+//操作类型
+function bindTypedSelect() {
+    $('.typeItem').on("click", function () {
+        const typeItemName = $(this).attr("data-name")
+        const typeItemItemId = $(this).attr("data-id")
+        operationType = typeItemItemId
+        $('.selectType').html(typeItemName)
+        $(".typeList").css("display", "none")
+        $(".selectType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        $('.selectType').removeClass('unSelect')
+    })
+}
+
+bindCheckedSelectQc()
+//病历核查状态选择
+function bindCheckedSelectQc() {
+    $('.qcCheckItem').on("click", function () {
+        const qcCheckItemName = $(this).attr("data-name")
+        const qcCheckItemItemId = $(this).attr("data-id") || ""
+        state = qcCheckItemItemId
+        $('.qcSelectCheck').html(qcCheckItemName)
+        $(".qcCheckList").css("display", "none")
+        $(".qcSelectCheck").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        $('.qcSelectCheck').removeClass('unSelect')
+    })
+}
+
+$('.selectDept').on("click", function (e) {
+    e.stopPropagation()
+    $(".modularList ").css("display", "none")
+    $(".selectModular .arrow").attr("src", iconDown)
+    $(".checkList ").css("display", "none")
+    $(".selectCheck .arrow").attr("src", iconDown)
+    $(".fpCheckList ").css("display", "none")
+    $(".fpSelectCheck .arrow").attr("src", iconDown)
+    $(".qcCheckList ").css("display", "none")
+    $(".qcSelectCheck .arrow").attr("src", iconDown)
+    const showList = $(".deptList ").css("display")
+    if (showList == "none" || !showList) {
+        $(".deptList ").css("display", "block")
+        $(".selectDept .arrow").attr("src", iconUp)
+    } else {
+        $(".deptList ").css("display", "none")
+        $(".selectDept .arrow").attr("src", iconDown)
+    }
+})
+
+//获取科室列表
+getDeptList()
+function getDeptList() {
+    post(api.getDeptListDept, { inputStr: "" }).then(res => {
+        if (res.data.code == '0') {
+            const deptList = res.data.data
+            rendeDeptList(deptList)
+        } else { }
+    }).catch((e) => {
+
+    })
+}
+
+
+function rendeDeptList(deptList) {
+    let str = `<li class="deptItem ellipsis" data-id=" " data-name="全部">全部</li>`
+    for (let i = 0; i < deptList.length; i++) {
+        str += `<li class="deptItem ellipsis" title=${deptList[i].deptName} data-id=${deptList[i].deptId} data-name=${deptList[i].deptName}> ${deptList[i].deptName}</li>`
+    }
+    $('.deptList').html(str)
+    bindDeptSelect()
+}
+//科室选择
+function bindDeptSelect() {
+    $('.deptItem').on("click", function () {
+        const deptItemName = $(this).attr("data-name")
+        const deptItemId = $(this).attr("data-id")
+        deptIdTemp = deptItemId
+        deptName = deptNameTemp = deptItemName
+        if (deptItemName.length > 10) {
+            $('.selectDept').html(deptItemName.substring(0, 8) + '...')
+        } else {
+            $('.selectDept').html(deptItemName)
+        }
+        $('.selectDept ').attr('title', deptItemName)
+        $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+        $('.selectDept').removeClass('unSelect')
+        $(".deptList").css("display", "none")
+    })
+}
+
+function renderColSet(list) {
+    let pageSetList = list || pageSetCopy
+    let allSelect = true
+    for (let i = 0; i < pageSetList.length; i++) {
+        if (pageSetList[i].status != 1) {
+            allSelect = false
+        }
+    }
+    let str = `<div class='colSetBox'> 
+            <div class='mask'></div>
+            <div class='cloInfobox'>
+                <div class='cloInfoTitle'><span class='cloInfoTitleTxt'>列显示设置</span> <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></div>
+                <div class='cloInfo'></div>
+                <div class='btnBox'><span class='defaultColSet'>恢复默认</span> <span class='cancalColSet'>取消</span> <span class='saveColSet'>保存设置</span></div>
+            </div>
+        </div>`
+    let infoStr = `<div class='colTabTitle' ><span class='colOpera toggleSelectColAll' data-select=${allSelect}>${allSelect ? `<img  src=${iconCheck} />` : `<img src=${iconUnCheck} />`}全选</span><span  class='colName'>列名</span></div><div class='colTabInfoBox' >`
+    for (let i = 0; i < pageSetList.length; i++) {
+        infoStr += `<div  class='colTabInfo' data-index=${i}>
+            <span class='colOpera' data-index=${i}>${pageSetList[i].status == 1 ? `<img class="toggleSelectCol" src=${iconCheck} />` : `<img class="toggleSelectCol" src=${iconUnCheck} />`}</span>
+            <span class='colName'>            
+                <span>${pageSetList[i].name}</span>
+                <span class="pageOrder">
+                    <span class="pageSetUpBox">${i === 0 ? '' : `<img class="pageSetUp" src=${goUpG} />`}</span>
+                    <span  class="pageSetDownBox">${i === pageSetList.length - 1 ? '' : `<img class="pageSetDown" src=${goDownG} />`}</span>
+                </span>
+               
+            </span>
+           
+        </div>`
+    }
+    infoStr += "</div>"
+    // $(".main-body").append(str)
+    if (!$("#mainBox .colSetBox", parent.document).length) {
+        $("#mainBox", parent.document).append(str)
+    }
+    $("#mainBox .colSetBox .cloInfo", parent.document).html(infoStr)
+
+    $(".colTabInfoBox", parent.document).scrollTop(scrollTop)
+    scrollTop = 0
+
+    bindSelectCol()
+    bindColOrder()
+    bindSaveColSet()
+    bindDefaultColset()
+    bindCloseColSet()
+    bindImgEnter()
+}
+
+function bindDefaultColset() {
+    $('.defaultColSet', parent.document).off("hover").hover(function () {
+        $(this).css('color', '#00A1FF')
+    }, function () {
+        $(this).css('color', '#777777')
+    })
+    $('.defaultColSet', parent.document).off("click").on('click', function () {
+        return post(api.getDefaultPageSet, { pageType: 1 }).then(res => {
+            if (res.data.code == '0') {
+                pageSet = res.data.data
+                pageSetCopy = JSON.parse(JSON.stringify(pageSet))
+                renderColSet(pageSetCopy)
+            } else { }
+        }).catch((e) => {
+
+        })
+        // closeColSet()
+    })
+
+}
+
+function bindImgEnter() {
+    $(".pageSetUpBox img", parent.document).off("mouseenter").on("mouseenter", function () {
+        $(this).attr('src', goUpB)
+    })
+    $(".pageSetDownBox img", parent.document).off("mouseenter").on("mouseenter", function () {
+        $(this).attr('src', goDownB)
+    })
+    $(".pageSetUpBox img", parent.document).off("mouseout").on("mouseout", function () {
+        $(this).attr('src', goUpG)
+    })
+    $(".pageSetDownBox img", parent.document).off("mouseout").on("mouseout", function () {
+        $(this).attr('src', goDownG)
+    })
+}
+function bindSelectCol() {
+    $(".toggleSelectCol", parent.document).off("click").on("click", function () {
+        const index = $(this).parent().attr("data-index")
+        pageSetCopy[index].status = pageSetCopy[index].status == 1 ? 0 : 1
+        scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
+        renderColSet(pageSetCopy)
+
+    })
+    $(".toggleSelectColAll", parent.document).off("click").on("click", function () {
+        const hasSelectAll = $(this).attr("data-select")
+        for (let i = 0; i < pageSetCopy.length; i++) {
+            if (hasSelectAll == "true") {
+                pageSetCopy[i].status = 0
+
+            } else {
+                pageSetCopy[i].status = 1
+            }
+        }
+        scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
+        renderColSet(pageSetCopy)
+
+    })
+}
+
+function closeColSet() {
+    pageSetCopy = JSON.parse(JSON.stringify(pageSet))
+    $("#mainBox .colSetBox", parent.document).remove()
+}
+function bindCloseColSet() {
+    $(".colSetBox .iconClose", parent.document).off("click").on("click", function () {
+        closeColSet()
+    })
+    $(".colSetBox .cancalColSet", parent.document).off("click").on("click", function () {
+        closeColSet()
+    })
+}
+function bindSaveColSet() {
+    $(".saveColSet", parent.document).off("click").on("click", function () {
+        let showNumSet = 0
+        let sysUserPagesetVOList = []
+        for (let i = 0; i < pageSetCopy.length; i++) {
+            const item = pageSetCopy[i]
+            sysUserPagesetVOList.push({
+                name: item.name,
+                orderNo: i,
+                status: item.status,
+                val: item.val
+            })
+            if (item.status == 1) {
+                showNumSet++
+            }
+        }
+        if (showNumSet === 0) {
+            $.alerModal({ "message": '最少显示一列', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+            return
+        }
+        return post(api.saveQcListPageSet, { pageType: 1, sysUserPagesetVOList: sysUserPagesetVOList }).then(res => {
+            if (res.data.code == '0') {
+                closeColSet()
+            } else {
+                $("#mainBox .colSetBox", parent.document).remove()
+                $.alerModal({ "message": '保存失败,请重试~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+            }
+        }).catch((e) => {
+            $("#mainBox .colSetBox", parent.document).remove()
+            $.alerModal({ "message": '保存失败,请重试~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+        })
+
+    })
+
+}
+
+function bindColOrder() {
+    $(".pageSetUp", parent.document).off("click").on("click", function () {
+        const index = parseInt($(this).parent().parent().parent().parent().attr("data-index"))
+        if (index != 0) {
+            const upItem = pageSetCopy[index]
+            const upItemPre = pageSetCopy[index - 1]
+            pageSetCopy.splice(index - 1, 2, upItem, upItemPre)
+            scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
+            renderColSet(pageSetCopy)
+
+        } else {
+            return
+        }
+    })
+    $(".pageSetDown", parent.document).off("click").on("click", function () {
+        const index = parseInt($(this).parent().parent().parent().parent().attr("data-index"))
+        if (index == pageSetCopy.length - 1) {
+            return
+        } else {
+            const downItem = pageSetCopy[index]
+            const downItemBack = pageSetCopy[index + 1]
+            pageSetCopy.splice(index, 2, downItemBack, downItem)
+            scrollTop = $(".colTabInfoBox", parent.document).scrollTop()
+            renderColSet(pageSetCopy)
+        }
+    })
+}
+$(".patientNumInp").on("input", function (e) {
+    const val = $(this).val().trim()
+    let beCode = behospitalCode;
+    const patrn = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/g;
+    beCode = val.replace(patrn, function (x) {
+        return "\\" + x;
+    });
+    behospitalCodeTemp = beCode
+})
+$(".patientNameInp").on("input", function (e) {
+    const val = $(this).val().trim()
+    nameTemp = val
+})
+$(".doctorInp").on("input", function (e) {
+    const val = $(this).val().trim()
+    doctorNameTemp = val
+})
+$(".fpCheckPeople").on("input", function (e) {
+    const val = $(this).val().trim()
+    fpCheckNameTemp = val
+})
+$(".qcCheckPeople").on("input", function (e) {
+    const val = $(this).val().trim()
+    qcCheckNameTemp = val
+})
+$(".qcCheckMain").on("input", function (e) {
+    const val = $(this).val().trim()
+    qcCheckMain = qcCheckMainTemp = val
+})
+$(".doctorNumInp").on("input", function (e) {
+    const val = $(this).val().trim();
+    doctorNumTemp = val
+})
+$(function () {
+    $.datepicker.regional['zh-CN'] = {
+        clearText: '清除',
+        clearStatus: '清除已选e799bee5baa6e59b9ee7ad9431333361303131日期',
+        closeText: '关闭',
+        closeStatus: '不改变当前选择',
+        prevText: '<上月',
+        prevStatus: '显示上月',
+        prevBigText: '<<',
+        prevBigStatus: '显示上一年',
+        nextText: '下月>',
+        nextStatus: '显示下月',
+        nextBigText: '>>',
+        nextBigStatus: '显示下一年',
+        currentText: '今天',
+        currentStatus: '显示本月',
+        monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
+        monthNamesShort: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
+        yearNamesShort: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
+        monthStatus: '选择月份',
+        yearStatus: '选择年份',
+        weekHeader: '周',
+        weekStatus: '年内周次',
+        dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
+        dayNamesShort: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
+        dayNamesMin: ['日', '一', '二', '三', '四', '五', '六'],
+        dayStatus: '设置 DD 为一周起始',
+        dateStatus: '选择 m月 d日, DD',
+        dateFormat: 'yy-mm-dd',
+        firstDay: 1,
+        initStatus: '请选择日期',
+        isRTL: false
+    };
+    $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
+
+    let startDate = "", endDate = new Date()
+    let year = new Date().getFullYear()
+    let month = new Date().getMonth() + 1
+    if (statisticsType == '1') {
+        startDate = new Date(`${year}-${month}-01`)
+    } else if (statisticsType == '2') {
+        startDate = new Date(`${year}-01-01`)
+    } else if (statisticsType == '3') {
+        startDate = new Date(startDateParam)
+        endDate = new Date(endDateParam)
+    } else {
+        startDate = "-6d"
+    }
+    $("#datepicker").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd",
+    }).datepicker("setDate", startDate);
+    $("#datepicker2").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd"
+    }).datepicker("setDate", endDate);
+    $("#datepickerFp1").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd"
+    }).datepicker("setDate", "");
+    $("#datepickerFp2").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd"
+    }).datepicker("setDate", "");
+    $("#datepickerQc1").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd"
+    }).datepicker("setDate", "");
+    $("#datepickerQc2").datepicker({
+        changeMonth: true,
+        changeYear: true,
+        dateFormat: "yy/mm/dd"
+    }).datepicker("setDate", "");
+    getTabData(1)
+});
+
+//分页渲染
+function renderPagination(totalPage, activePage, totalNum) {
+    let str = `<span class="totalSum">共${totalPage}页/${totalNum}条数据</span><span class="prePage"><img class="arrowPage" src=${arrowLeft} /></span>`
+    if (totalPage <= 6) {
+        for (let i = 1; i <= totalPage; i++) {
+
+            str += `<span class="pageNum ${'page' + i}" data-page=${i}>${i}</span>`
+        }
+    } else {
+        if (activePage <= 3) { //选中页数小于4
+            for (let i = 1; i <= 4; i++) {
+                str += `<span class="pageNum ${'page' + i}" data-page=${i}>${i}</span>`
+            }
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
+
+        } else if (activePage > totalPage - 3) {
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page' + (totalPage - 3)}" data-page=${totalPage - 3}>${totalPage - 3}</span>`
+            str += `<span class="pageNum ${'page' + (totalPage - 2)}" data-page=${totalPage - 2}>${totalPage - 2}</span>`
+            str += `<span class="pageNum ${'page' + (totalPage - 1)}" data-page=${totalPage - 1}>${totalPage - 1}</span>`
+            str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        } else {
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page' + (activePage - 1)}" data-page=${activePage - 1}>${activePage - 1}</span>`
+            str += `<span class="pageNum ${'page' + activePage}" data-page=${activePage}>${activePage}</span>`
+            str += `<span class="pageNum ${'page' + (activePage + 1)}" data-page=${activePage + 1}>${activePage + 1}</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page' + totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        }
+
+    }
+    str += `<span class="nextPage"><img class="arrowPage" src=${arrowRight} /></span>`
+    $('.pagination').html(str)
+    $('.page' + activePage).addClass('activePage')
+    $(".pageNum").on("click", function (e) {
+        const activePageNow = Number($(this).attr('data-page'))
+        getTabData(activePageNow)
+        // renderPagination(totalPage,activePageNow,totalNum)
+    })
+    $(".prePage").on("click", function (e) {
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if (activePageNow > 1) {
+            activePageNow--
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    $(".nextPage").on("click", function (e) {
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if (activePageNow < totalPage) {
+            activePageNow++
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+
+}
+
+$(document).on("click", function () {
+    $(".modularList ").css("display", "none")
+    $(".deptList").css("display", "none")
+    $(".checkList").css("display", "none")
+    $(".fpCheckList").css("display", "none")
+    $(".qcCheckList").css("display", "none")
+    $(".selectDept .arrow").attr("src", iconDown)
+    $(".selectModular .arrow").attr("src", iconDown)
+    $(".selectCheck .arrow").attr("src", iconDown)
+    $(".fpSelectCheck .arrow").attr("src", iconDown)
+    $(".qcSelectCheck .arrow").attr("src", iconDown)
+    $("#delModal ul").css("display", "none")
+})
+
+
+
+let radioCheck = 1;
+$((function ($) {
+    $('.export').click(function () {
+        const behosDateStartTime = new Date(behosDateStart).getTime()
+        const behosDateEndTime = new Date(behosDateEnd).getTime()
+        if (behosDateStartTime > behosDateEndTime) {
+            $.alerModal({ "message": '开始时间不能大于结束时间~', type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+            return
+        }
+        const param = {
+            "behospitalCode": behospitalCode,
+            "deptId": deptId.trim(),
+            "doctorCode": doctorNum,
+            "doctorName": doctorName,
+            "asc": data_asc,     //升序
+            "desc": data_desc,       //降序
+            "leaveHosDateStart": isPlacefile == 1 ? behosDateStart : '', //出院日期--开始时间
+            "leaveHosDateEnd": isPlacefile == 1 ? behosDateEnd : '', //出院日期--结束时间
+            "behosDateStart": isPlacefile == 1 ? '' : behosDateStart, //出院日期--开始时间
+            "behosDateEnd": isPlacefile == 1 ? '' : behosDateEnd, //出院日期--结束时间
+            "isPlacefile": isPlacefile,
+            "level": level,
+            "name": name,
+            "checkStatus": qcCheckStatus ? Number(qcCheckStatus) : qcCheckStatus, //病历核查状态
+            "mrStatus": fpCheckStatus ? Number(fpCheckStatus) : fpCheckStatus,   //首页核查状态(1:已核查,0:未核查)
+            "chName": qcCheckName,   //病历核查人员
+            "diagnose": qcCheckMain,   //病历主症状..........
+            "mrName": fpCheckName,  //首页核查人员
+            "deptName": deptName == "全部" ? "" : deptName || '',
+            "statisticsType": statisticsType,
+        }
+        $.alerModal({ type: "radio", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+        closeRadio()
+        radioSelect()
+        bindSaveColPort(param)
+
+    })
+})($));
+function closeRadio() {
+    $(".colSetBox .iconClose,.colSetBox .cancalColSet", parent.document).off("click").on("click", function () {
+        $(".divModal", parent.document).remove()
+    })
+}
+function radioSelect() {
+    $(".selectDate", parent.document).click(function () {
+        $(this).find("input").prop("checked", true)
+        $(this).siblings().find("input").prop("checked", false)
+    })
+}
+function bindSaveColPort(param) {
+    $(".savePort", parent.document).off("click").on("click", function () {
+        radioCheck = $(".selectDate input[type='radio']:checked", parent.document).attr("data-select")
+        let time = radioCheck == 2 ? exportTimeLimit.defectTime : exportTimeLimit.normalTime
+        if ((new Date(behosDateEnd) - new Date(behosDateStart)) / 24 / 60 / 60 / 1000 > time) {
+            $.alerModal({ "message": `最多只能导出${time}天`, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+            return
+        }
+        param.radioCheck = radioCheck || 1
+        expJson(api.exportQcListDept, param).then(res => {
+            $(".divModal", parent.document).remove()
+            downloadExportedData(res.data, behosDateStart.slice(0, 10).replace(/-/g, "") + "-" + behosDateEnd.slice(0, 10).replace(/-/g, "") + "抽查住院病历质量情况.xls")
+        })
+    })
+}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1134 - 0
src/js/appealInit.js


+ 912 - 0
src/js/appealUserPage.js

@@ -0,0 +1,912 @@
+require("../css/appealUserPage.less");
+const $ = require('jquery');
+require('jquery-templates');
+require('./modal.js');
+const { post, getUrlArgObject, setBoxHeight, getCookie, getLocal, initScroll } = require('./utils.js');
+const { api, ywCheckApi } = require('./api.js');
+let checkOk = require('./../images/checkOk.png')
+const adLogo = require("../images/adlogo.png")
+if (localStorage.getItem('toLogin') === '1') {
+  window.location.href = '../login.html';
+}
+$(function () {
+  const hideLogo = getUrlArgObject("hideLg");
+  if (hideLogo) {
+    $(".sub-menu .logo img,.copy-right").remove();
+    $(".menu-mini .logo").text("");
+  }
+  const otherLogo = getUrlArgObject("adLg");
+  if (otherLogo) {
+    $(".logo img").attr("src", adLogo);
+    $(".menu-mini .logo").text("艾登");
+    $(".copy-right").remove();
+  }
+  //本页全局变量
+  let global_flawData = {};    //缺陷数据
+  let global_flawDataPay = {};    //缺陷数据
+  const global_id = getUrlArgObject("id");
+  const global_hid = getUrlArgObject("hid");
+  let global_check;
+  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 = {};    //新增时选中的条目信息
+  let global_checkers = [];    //审核人列表
+  getAllModules();
+  getCheckUser(); //获取审核人列表
+  window.document.title = "质控申诉-" + getUrlArgObject("name");
+  //新增申诉点击事件
+  $(".add-flaw").click(function () {
+    showModal('2');
+  });
+
+  function showAppealDetailEvent() {
+    //申诉状态点击事件
+    $(".flaw-item").off("click").on("click", ".title .btn", function () {
+      showModal("1", $(this).attr("data_id"), $(this).attr("data_type"), $(this).attr("casesEntryId"),$(this).attr("qcresultDetailId"));
+    });
+  }
+
+  function initMenu(data) {
+    const menu = [{ id: 0, name: "缺陷总览", parentId: -1, sonMode: [] }, ...(data || [])];
+    //菜单数据填充
+    $("#subMenuTmpl").tmpl(menu).appendTo("#subMenu");
+    $("#miniMenuTmpl").tmpl(menu).appendTo(".menu-mini ul");
+    //菜单收起展开
+    $(document).on("click", ".sub-menu .list-1", function () {
+      $(".sub-menu .list-1 .slide-up").removeClass('slide-up');
+      $(this).toggleClass('slide-up');
+      $(this).find("ul").slideToggle();
+    });
+    $(".sub-menu .list-1 li").on("click", function (e) {
+      e.stopPropagation();
+    });
+    //收起菜单
+    $(".slide-show").click(function () {
+      $(".sub-menu,.copy-right").animate({ "width": "60px" }, function () {
+        $(this).hide();
+        $(".menu-mini").show();
+      });
+      $(".tab-container").animate({ "margin-left": "60px" });
+    });
+    //展开菜单
+    $(".slide-hide").click(function () {
+      $(".menu-mini").hide();
+      $(".sub-menu,.copy-right").show().animate({ "width": "220px" }, function () {
+      });
+      $(".tab-container").animate({ "margin-left": "220px" });
+    });
+    //右侧内容切换
+    $(".page").on("click", function () {
+      $(".info-item .cont,.flaw-item,td").removeClass("active");   //清空缺陷定位背景
+      const title = $(this).attr("code");
+      if (title === "缺陷总览" || title === "谈话告知书" || title === "知情同意书" || title === '医嘱信息' || title === '检验信息' || title === '检查信息' || title === '护理信息') {
+        if (title === "缺陷总览") {
+          getRecordDetailUpdate()
+        }
+        $(".flaw-table .page-item").hide();
+        $(".flaw-table,.flaw-table .page-item[code=" + title + "]").show();
+      } else {
+        $(".flaw-table").hide();
+      }
+      iframeShow(title)
+      //选中样式
+      $(".sub-menu .active,.menu-mini .active").removeClass('active');
+      const mItems = $(".sub-menu .page[code=" + title + "],.menu-mini .page[code=" + title + "]");
+      mItems.addClass("active");
+      mItems.parents(".list-1").addClass("active");
+      //显示对应内容
+      const code = $(this).attr("code");
+      global_activeTab = code;
+      getQcCasesEntry();
+      //initModuleData();
+      $(".content-item,.flaw-item").hide();
+      $(".content-item[code='" + code + "']").show();
+      showFlawList();
+      $("#contentInfo").scrollTop(0)
+    });
+    // initScroll("subMenu","Y",2)
+  }
+  function iframeShow(title) {
+    console.log(title)
+    if (title === '医嘱信息') {
+      $("#pacsIframeIn,#assistIframeIn,#pacsDetailIframeIn,#contentNursing").css("display", "none")
+      $("#contentIframeIn").css({ display: 'block' }).attr("src", 'advice.html').contents().find(".adviceWrp").height(window.innerHeight - $("#patientInfo").height() - 20 + 'px')
+      $(window).resize(function () {
+        $("#contentIframeIn").contents().find(".adviceWrp").height(window.innerHeight - $("#patientInfo").height() - 20 + 'px')
+      });
+    } else if (title === '检验信息') {
+      $("#contentIframeIn,#assistIframeIn,#pacsDetailIframeIn,#contentNursing").css("display", "none")
+      $("#pacsIframeIn").css({ display: 'block' }).attr("src", 'pacs.html').contents().find(".pacsWrp").height(window.innerHeight - $("#patientInfo").height() - 20 + 'px')
+      $(window).resize(function () {
+        $("#pacsIframeIn").contents().find(".pacsWrp").height(window.innerHeight - $("#patientInfo").height() - 20 + 'px')
+      });
+    } else if (title === '检查信息') {
+      $("#contentIframeIn,#pacsIframeIn,#pacsDetailIframeIn,#contentNursing").css("display", "none")
+      $("#assistIframeIn").css({ display: 'block' }).attr("src", 'assist.html').contents().find(".assistWrp").height(window.innerHeight - $("#patientInfo").height() - 20 + 'px')
+      $(window).resize(function () {
+        $("#assistIframeIn").contents().find(".assistWrp").height(window.innerHeight - $("#patientInfo").height() - 20 + 'px')
+      });
+    } else if (title === '护理信息') {
+      $("#pacsIframeIn,#assistIframeIn,#pacsDetailIframeIn,#contentIframeIn").css("display", "none")
+      $("#contentNursing").css({ display: 'block' }).attr("src", 'nursing.html').contents().find(".nursingWrp").height(window.innerHeight - $("#patientInfo").height() - 20 + 'px')
+      $(window).resize(function () {
+        $("#contentNursing").contents().find(".nursingWrp").height(window.innerHeight - $("#patientInfo").height() - 20 + 'px')
+      });
+    } else {
+      $("#contentIframeIn,#pacsIframeIn,#pacsDetailIframeIn,#assistIframeIn,#contentNursing").css({ display: 'none' })
+    }
+  }
+
+  //获取病例明细
+  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, 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);
+        initScoreItem(msg);
+        global_flawData = msg;
+        global_flawDataPay = drgs;
+        setBoxHeight();
+        changePay()
+      }
+    });
+  }
+  function getRecordDetailUpdate() {
+    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 } = data;
+        // global_check = checkStatus
+        // const info=Object.assign(beHospital,result);
+        // initMenu(JSON.parse(result.menuData));
+        // $(".subMenu >li:first-child.page,.menu-mini>ul>li:first-child.page").addClass("active");
+        // global_activeTab=$(".sub-menu .page.active").attr("code");
+        // initPatientInfo(info);
+        // initContent(result.pageData);
+        initList(msg);
+        initScoreItem(msg);
+        global_flawData = msg;
+        global_flawDataPay = drgs;
+        // setBoxHeight();
+        // changePay()
+      }
+    });
+  }
+  function changePay() {
+    $(document).on('click', ".titleSpecial span", function () {
+      let type = $(this).attr("data-type")
+      if (type == 1) {
+        initList(global_flawDataPay, type);
+      } else {
+        initList(global_flawData, type);
+      }
+    })
+  }
+  //填充患者信息
+  function initPatientInfo(data) {
+    const obj = Object.assign({}, data, { checkState: global_check, checkStateHome: global_check_home });
+
+    $("#infoTmpl").tmpl(obj).appendTo("#patientInfo");
+    /*$(".check").on("click", function(){
+      checkQc()
+    })*/
+    $(".ywCheck").on("click", function () {
+      checkYwQc()
+    })
+  }
+  //显示病例模块明细
+  function initContent(data) {
+    const obj = JSON.parse(data);
+    let info = [];
+    let hml = '', moduleId = '';
+    formatSpecPage(obj["谈话告知书"], "谈话告知书");
+    formatSpecPage(obj["知情同意书"], "知情同意书");
+    // formatSpecPage(obj["医嘱信息"],"医嘱信息");
+    $(".content-box").show();
+    for (let k in obj) {
+      if (k === "谈话告知书" || k === "知情同意书") {
+        continue;
+      }
+      for (let i in obj[k]) {
+        info = formatInfoData(k, obj[k][i]);
+        moduleId = info.mode_id;
+        if (global_modules[moduleId]) {
+          hml = initModuleData(moduleId, obj[k]);
+          $.tmpl(hml, info).appendTo("#contentInfo");
+        } else {
+          const icon = require("../images/empty1.png");
+          const sid = moduleId ? "(" + moduleId + ")" : "";
+          const code = k.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g, '');
+          const emptyStr = `<div class="empty">
+            <img src="${icon}" alt="空"/>
+            <p>暂无信息~</p>
+        </div>`;
+          if (!$(".content-item[code=" + code + "] .empty").length) {  //显示一条空提示即可
+            hml = '<div class="content-item" code="' + code + '">' +
+              '<h2 class="title">' + k + sid + '</h2>' + emptyStr + '</div>';
+            $.tmpl(hml, {}).appendTo("#contentInfo");
+          }
+        }
+      }
+    }
+    $(".content-item[code=" + global_activeTab + "]").show();
+    //console.log(obj)
+  }
+
+  function formatInfoData(k, data) {
+    let obj = {}, name = "";
+    for (let i in data) {
+      if (i !== "mode_id") {
+        name = i.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g, "").replace(/^[0-9]+/, "a");    //过滤key中存在的特殊符号,模板会渲染不出来且不报错
+        obj[name] = data[i].replace(/\n/g, "<br/>") || "";
+      } else {
+        obj[i] = data[i].replace(/\n/g, "<br/>") || "";
+      }
+    }
+    return Object.assign({ title: k }, obj);
+  }
+
+  //知情同意书、谈话告知书
+  function formatSpecPage(data, title, type) {
+    $(".page-item[code='缺陷总览']").remove()
+    $("#appointBookTmpl").tmpl({ title, data }).appendTo(".flaw-table");
+    setBoxHeight();
+    $(".page-anchor").on("click", function () {
+      const code = $(this).attr("code");
+      const pCode = $(this).parents("tr").attr("code").replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g, '');
+      //菜单同步状态
+      $(".sub-menu .page[code=" + pCode + "]").parents(".list-1").click();
+      $(".sub-menu .page[code=" + pCode + "],.menu-mini .page[code=" + pCode + "").click();
+      //缺陷定位
+      $(".info-item .cont,.flaw-item,td").removeClass("active");
+      const flawItem = $(".flaw-item .title a[code=" + code + "]");
+      if (!flawItem.length) {
+        $.alerModal({ "message": '模块数据缺失~', type: "tip", time: '1000', isFather: true, fatherWrapper: $(".flaw-table", parent.document) });
+        return;
+      }
+      $(".flaw-item .title a[code=" + code + "]").click();
+      const anch = $(".flaw-item .title a[code=" + code + "]").attr("href");
+      if ($(anch)[0]) {
+        $('#contentInfo').scrollTop($(anch).offset().top - 60);
+      }
+    });
+
+    if (global_activeTab == "缺陷总览") {
+      $(".check").css("display", "none")
+    } else {
+      $(".check").css("display", "block")
+    }
+
+    if (type && type == 1) {
+      $(".titleNo").css({
+        'background-color': '#00A1FF',
+        'color': '#fff',
+        'border-color': '#00A1FF'
+      })
+      $(".titlePay").css({
+        'background-color': '#fff',
+        'border': '1px solid #777',
+        'border-right': 0,
+        'color': '#777'
+      })
+      setBoxHeight()
+    } else if (type && type == 2) {
+      $(".titleNo").css({
+        'background-color': '#fff',
+        'border': '1px solid #777',
+        'border-left': 0,
+        'color': '#777'
+      })
+      $(".titlePay").css({
+        'background-color': '#00A1FF',
+        'color': '#fff',
+        'border-color': '#00A1FF'
+      })
+      setBoxHeight()
+    }
+  }
+
+  function initList(data, type) {
+    //$("#flawTotalList").tmpl({title:"缺陷总览",data:data}).appendTo(".flaw-table");
+    formatSpecPage(data, "缺陷总览", type);
+    $(".flaw-table").show();
+    $(".flaw-table .page-item[code=" + global_activeTab + "]").show();
+    $(".slide-up").off("click").on("click", function () {
+      const name = $(this).text();
+      $("tr[code='" + name + "']").slideToggle();
+      $(this).toggleClass("down");
+    });
+  }
+
+  //评分项数据填充
+  function initScoreItem(data) {
+    
+    $("#flaws .flaw-box").html("");
+    for (let k in data) {
+      console.log(data[k]);
+      $("#flawTmpl").tmpl(data[k]).appendTo("#flaws .flaw-box");
+    }
+    showFlawList();
+    $(".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");
+      showModal('0', code, i);  //申诉
+      //审核人下拉渲染
+      $("#delModal .checker-drop-box ul").html("");
+      $("#flawDropTmpl").tmpl({ info: global_checkers }).appendTo("#delModal .checker-drop-box ul");
+    })
+    $(".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) => {
+        return "#anchor" + it;
+      });
+      $(".info-item .cont,.flaw-item,td").removeClass("active");
+      $(ans.join(",")).addClass("active");
+      $(this).parents(".flaw-item").addClass("active");
+    });
+  }
+
+  //显示缺陷列表
+  function showFlawList() {
+    const hml = $(".flaw-item[code=" + global_activeTab + "]");
+    if (hml.length) {
+      hml.show();
+      $("#flaws .empty").hide();
+    } else {
+      $("#flaws .empty").length ? $("#flaws .empty").show() : $("#emptyTmpl").tmpl().appendTo("#flaws .flaw-box");
+    }
+    showAppealDetailEvent();
+  }
+
+  //申诉
+  function appealItem(info) {
+    const param = {
+      "behospitalCode": global_id,
+      ...info
+    };
+    post(api.addAppealInfo, param).then(function (res) {
+      if (res.data.code === '0') {
+        $("#delModal").hide();
+        updateFlaws(res.data.data);
+        $.alerModal({ "message": "申诉成功", type: "tip", time: '1000', win: true });
+      } else {
+        $.alerModal({ "message": res.data.msg || '申诉失败,请重试~', type: "tip", time: '1000', isFather: true, win: 'default', fatherWrapper: $("#mainBox", parent.document) });
+
+      }
+    }).catch(() => {
+      $.alerModal({ "message": res.data.msg || '申诉失败,请重试~', type: "tip", time: '1000', isFather: true, win: 'default', fatherWrapper: $("#mainBox", parent.document) });
+
+    });
+  }
+  //新增申诉
+  function addScore(info) {
+    let param = {};
+    if (info.type === '1') {
+      param = {
+        "appealExplain": info.appealExec,
+        "appealOperationType": info.type,
+        "appealType": 1,
+        "behospitalCode": global_id,
+        "casesEntryId": info.casesEntryId,
+        "casesEntryMsg": info.msg,
+        "casesEntryName": info.standardMsg,
+        "checkId": info.userId,
+        "casesId": info.modeId,
+        "modeName": info.modelName,
+        "remark": info.explainInfo,
+        "value": info.score,
+      };
+    } else {
+      param = {
+        "appealExplain": info.appealExec,
+        "appealOperationType": info.type,
+        "appealType": 1,
+        "behospitalCode": global_id,
+        "checkId": info.userId,
+        "casesId": info.modelId,
+        "modeName": info.modelName,
+        "remark": info.explainInfo
+      };
+    }
+
+    post(api.addAppealInfo, param).then(function (res) {
+      if (res.data.code === '0') {
+        $("#delModal").hide();
+        //updateFlaws(res.data.data);
+        $.alerModal({ "message": "申诉成功", type: "tip", win: true, time: '1000' });
+      } else {
+        $.alerModal({ "message": "申诉失败,请重试~", type: "tip", win: 'default', time: '1000' });
+
+      }
+    }).catch(() => {
+      $.alerModal({ "message": "申诉失败,请重试~", type: "tip", win: 'default', time: '1000' });
+
+    });
+  }
+
+  function getAppealDetail(id, flg,casesEntryId,qcresultDetailId) {
+    const param = {
+      behospitalCode: global_id,
+      casesEntryId: casesEntryId,
+      hospitalId: global_hid,
+      qcresultDetailId: qcresultDetailId,
+      id: +id
+    };
+    post(api.getApprovedView, param).then((res) => {
+      const info = res.data.data.data || {};
+      const appealInfo = info.appealExamineRecordDTOList;
+      $("#appealStatusTmpl").tmpl(appealInfo).appendTo("#delModal .modal-body");
+      /*if (flg === '1') {
+        $(".check-item").hide();
+        $(".reject-item").show();
+      } else if (flg === '2') {
+        $(".check-item").show();
+      }*/
+    })
+  }
+
+  //申诉弹窗
+  function showModal(flag, code, i,id,qcresultDetailId) {
+    $("#delModal .modal-body").html("");
+    $("#delModal").show();
+    //事件解绑
+    $("#delModal .confirm").off("click");
+    $("#addQcScore,#addQcMsg,#addQcInfo").off("input");
+    $("#delModal .confirm").show();
+
+    if (flag === '0') {   //申诉
+      const flawsList = formatFlawKeys(global_flawData);
+      const info = flawsList[global_activeTab] && flawsList[global_activeTab][i];
+      $("#delModal .title").text("申诉");
+      $("#delModal .modal-box").css("margin-top", "-215px");
+      $("#editTmpl").tmpl(info).appendTo("#delModal .modal-body");
+      $("#flawDropTmpl").tmpl({ info: global_checkers }).appendTo("#delModal .modal-body ul");
+      $("#qcInfo").off("input");
+      //申诉说明输入验证
+      const num = 500;
+      $("#qcInfo").on("input", function () {
+        const val = $(this).val().trim();
+        $(this).attr("title", val)
+        if (!val) {
+          $(".edit-box .warning .red").text("申诉说明不能为空~");
+          $(".edit-box .warning").show();
+        } else if (val.length > num) {
+          $(".edit-box .warning .red").text("申诉说明不能超过" + num + "个字~");
+          $(".edit-box .warning").show();
+        } else {
+          $(".edit-box .warning").hide();
+          return;
+        }
+      });
+      console.log(info);
+      $("#delModal .confirm").unbind("click").click(function () {
+        if ($(".edit-box .warning").is(":visible")) {
+          return;
+        }
+        
+        const obj = {
+          appealExplain: $("#delModal #qcInfo").val(),
+          appealOperationType: 0,
+          appealType: 1,
+          checkId: $(".checker-drop-input").attr("code"),
+          modeId: info.modelId,
+          modeName: info.modelName,
+          qcresultDetailId: info.id,
+          workFlowNodeId: 1,
+          casesScore:info.casesScore,
+          casesEntryId:info.casesEntryId,
+          casesId:info.casesId,
+          isReject:info.isReject,
+        };
+        appealItem(obj);
+      });
+    } else if (flag === '1') {   //查看
+      $("#delModal .title").text("查看");
+      $("#delModal .confirm").hide();
+      $("#delModal .modal-box").css("margin-top", '-245px');
+      //0申诉1驳回2审核
+      //新增项模板
+      getAppealDetail(code, i,id,qcresultDetailId);
+    } else if (flag === '2') {   //新增
+      $("#delModal .title").text("申诉新增");
+      $("#delModal .modal-box").css("margin-top", "-281px");
+      //新增项模板
+      $("#addFlawTmpl").tmpl().appendTo("#delModal .modal-body");
+      //缺陷项下拉模板
+      $("#flawDropTmpl").tmpl({ info: global_flaws }).appendTo("#delModal .flaw-drop-box ul");
+      //审核人模板
+      $("#delModal .checker-drop-box ul").html("");
+      $("#flawDropTmpl").tmpl({ info: global_checkers }).appendTo("#delModal .checker-drop-box ul");
+      //事件绑定
+      flawDropEvent(".add-box .flaw-drop-input", getQcCasesEntry, selectFlaw);
+      //分数输入验证
+      $("#addQcScore").on("input", function () {
+        const val = $(this).val();
+        if (/^[0-9]\d*$|^[0-9]\d*(.\d)?$/.test(val) && val <= 100) {
+          $(".add-box .warning").hide();
+        } else {
+          $(".add-box .warning .red").text("支持≥0且≤100的数字输入,最多保留小数点后1位~");
+          $(".add-box .warning").show();
+          return;
+        }
+      });
+      //提示信息输入验证
+      $("#addQcMsg").on("input", function () {
+        const val = $(this).val();
+        $(this).attr("title", val)
+        if (val.trim()) {
+          $(".add-box .warning").hide();
+        } else {
+          $(".add-box .warning .red").text("提示信息不能为空~");
+          $(".add-box .warning").show();
+          return;
+        }
+      });
+      //备注输入验证
+      $("#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;
+        }
+      });
+      //申诉说明输入验证
+      $("#addQcEx").on("input", function () {
+        const val = $(this).val();
+        if (val.trim().length === 0) {
+          $(".add-box .warning .red").text("申诉说明不能为空~");
+          $(".add-box .warning").show();
+        } else if (val.length > 500) {
+          $(".add-box .warning .red").text("申诉说明不能超过500个字~");
+          $(".add-box .warning").show();
+        } else {
+          $(".add-box .warning").hide();
+          return;
+        }
+      });
+      //新增申诉提交事件
+      $("#delModal .confirm").unbind("click").click(function () {
+        const type = $("input[name=operType]:checked").val();
+        const msg = $("#delModal #addQcMsg").val();
+        const score = Number($("#delModal #addQcScore").val());
+        const explainInfo = $("#delModal #addQcInfo").val();
+        const appealExec = $("#delModal #addQcEx").val();   //申诉说明
+        const userId = $(".checker-drop-input").attr("code");
+        if ($(".edit-box .warning").is(":visible")) {
+          return;
+        }
+        //必填验证
+        if (type === '1') {     //新增已有时
+          if (!userId) {
+            $(".add-box .warning .red").text("请选择审核人~");
+            $(".add-box .warning").show();
+            return;
+          }
+          if (!$(".flaw-drop-input").attr("code")) {
+            $(".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 (appealExec.length === 0) {
+          $(".add-box .warning .red").text("申诉说明不能为空~");
+          $(".add-box .warning").show();
+          return;
+        }
+        if (appealExec.length > 500) {
+          $(".add-box .warning .red").text("申诉说明不能超过500个字~");
+          $(".add-box .warning").show();
+          return;
+        }
+        const obj = Object.assign({}, global_selectedFlaw, { msg, score, appealExec, type, explainInfo, userId });
+        addScore(obj);
+      });
+    }
+  }
+  //缺陷列表key值去掉特殊符号
+  function formatFlawKeys(data) {
+    const obj = {};
+    for (let k in data) {
+      obj[k.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g, '')] = data[k];
+    }
+    return obj;
+  }
+  //获取审核人下拉列表
+  function getCheckUser() {
+    const param = {};
+    post(api.getReviewer, param).then(function (res) {
+      if (res.data.code === '0') {
+        const data = res.data.data; console.log(223, data)
+        global_checkers = data;
+        $("#delModal .checker-drop-box ul").html("");
+        $("#flawDropTmpl").tmpl({ info: data }).appendTo("#delModal .checker-drop-box ul");
+        userDropEvent(".checker-drop-input", selectChecker);
+      }
+    });
+  }
+  //获取缺陷条目下拉列表
+  function getQcCasesEntry() {
+    const name = ($(".flaw-drop-input").val() || "").trim();
+    const id = $("#subMenu [code=" + global_activeTab + "]").attr("mode");
+    const param = {
+      'behospitalCode': global_id,
+      'entryName': name || "",
+      'modeId': id
+    };
+    post(api.findQcCasesEntry, param).then(function (res) {
+      if (res.data.code === '0') {
+        const data = res.data.data;
+        //if(name){
+        global_flaws = data;
+        //if(name){
+        $("#delModal .flaw-drop-box ul").html("");
+        $("#flawDropTmpl").tmpl({ info: data }).appendTo("#delModal .flaw-drop-box ul");
+        //}
+        /*$("#delModal .flaw-drop-box ul").html("");
+        $("#flawDropTmpl").tmpl({info:data}).appendTo("#delModal .flaw-drop-box ul");
+        /*}else{
+        glal_flaws=data;
+        showModal('2',data);
+        }*/
+      }
+    });
+  }
+  //审核人下拉事件
+  function userDropEvent(domSelector, selectEvent) {
+    $("body").on("click", domSelector, function () {
+      $(domSelector).parents(".drop-box").toggleClass("show");
+    });
+    $("body").on("click", ".checker-drop-box li", function () {
+      $(".add-box .warning").hide();
+      const n = $(this).attr("idx");
+      selectEvent(domSelector, n);
+      $(domSelector).parents(".drop-box").find(".warning").hide();
+      $(domSelector).parents(".drop-box").removeClass("show");
+    });
+  }
+  //增加条目弹窗元素事件
+  function flawDropEvent(domSelector, getData, selectEvent) {
+    $("body").off("click,blur,input");
+    $("body").on("click", domSelector, function () {
+      $(domSelector).parents(".drop-box").addClass("show");
+    });
+    $("body").on("blur", domSelector, function () {
+      setTimeout(function () {
+        $(domSelector).parents(".drop-box").removeClass("show");
+      }, 300)
+    });
+    $("body").on("input", domSelector, function () {
+      $(this).attr({ "code": "", "title": $(this).val().trim() });
+      getData($(this).val().trim());
+    });
+    $("body").on("click", ".flaw-drop-box li", function () {
+      $(".add-box .warning").hide();
+      const n = $(this).attr("idx");
+      selectEvent(domSelector, n);
+      $(domSelector).parents(".drop-box").find(".warning").hide();
+      $(domSelector).parents(".drop-box").removeClass("show");
+    });
+    //单选事件
+    $(".add-box input[type=radio]").on("click", function () {
+      if ($(this).val() === '1') {
+        $(".exist-item").show();
+      } else {
+        $(".exist-item").hide();
+      }
+    });
+  }
+
+  //条目下拉选中
+  function selectFlaw(domSelector, n) {
+    const flaw = global_flaws[n] || {};
+    const { score, msg, entryName, casesEntryId } = flaw;
+    global_selectedFlaw = flaw;
+    $(domSelector).val(entryName).attr({ "code": casesEntryId, "title": entryName });
+    $("#addQcMsg").val(msg).attr("title", msg);
+    $("#addQcScore").val(score);
+  }
+  //审核人下拉选中
+  function selectChecker(domSelector, n) {
+    const flaw = global_checkers[n];
+    const { id, userName } = flaw;
+    $(domSelector).text(userName).attr({ "code": id, "title": userName });
+  }
+
+  //更新缺陷列表
+  function updateFlaws() {
+    const param = {
+      'behospitalCode': global_id,
+      'paramStr': [
+        "msg"
+      ]
+    };
+    post(api.getRecordDetail, param).then(function (res) {
+      if (res.data.code === '0') {
+        const data = res.data.data;
+        const { msg } = data;
+        initScoreItem(msg);
+        global_flawData = msg;
+      }
+    });
+  }
+
+  //获取病例模板
+  function getInfoModule(moduleId) {
+    const param = {
+      moduleId: moduleId
+    };
+    post(api.getInfoModule, param).then(function (res) {
+      if (res.data.code === '0') {
+        const data = res.data.data;
+        cachemoduleDatas(data);
+        getRecordDetail();
+      }
+    });
+  }
+
+  //模板数据缓存
+  function cachemoduleDatas(data) {
+    const moudle = data.moduleDetail;
+    global_modules[data.modeName] = [];
+    for (let i in moudle) {
+      global_modules[data.modeName].push(moudle[i]);
+    }
+  }
+
+  //初始化模板
+  function initModuleData(mid, obj) {
+    const n = obj.length;
+    const module = global_modules[mid].moduleDetail;
+    const key = global_modules[mid].modeName.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g, '');
+    let hml = '<div class="content-item" code="' + key + '">' +
+      '<h2 class="title">' + global_modules[mid].modeName + '(' + mid + ')</h2>' +
+      (n > 1 ? '<div class="container">' : '<div class="container content-ht">');
+
+
+    for (let i in module) {
+      hml = hml + '<div class="info-item">';
+      for (let j = 0; j < module[i].length; j++) {
+        const detal = module[i][j].questionDTO;
+        const { tagType } = detal;
+        switch (tagType) {
+          case 1:
+            hml = hml + simpleStructure(detal, obj);
+            break;
+          case 4:
+            hml = hml + combineStructure(detal);
+            break;
+          default:
+            break;
+        }
+      }
+      hml = hml + "</div>"
+    }
+    return hml + "</div></div>";
+  }
+
+
+  //基础类型结构生成
+  function simpleStructure(data, obj) {
+    //console.log(data,obj,7878787)
+    const { name, val, monoLine, addLine, position, bold, retract, id } = data;
+    if (name === "手术记录表格-1") {
+      const value = val.replace("【", "").replace("】", "");
+      const diag = obj[0][value] ? JSON.parse(obj[0][value]) : "";
+      let thml = `<div class="cont" style="width: 100%;" id="anchor${id}">`;
+      thml += $("#tableTmpl").tmpl({ k: "手术信息", data: diag })[0].outerHTML + "</div>";
+      return thml;
+    }
+    if (name === "出院诊断表格-1") {
+      const value = val.replace("【", "").replace("】", "");
+      const diag = obj[0][value] ? JSON.parse(obj[0][value]) : "";
+
+      let thml = `<div class="cont" style="width: 100%;" id="anchor${id}">`;
+      thml += $("#tableTmpl").tmpl({ k: "出院诊断", data: diag })[0].outerHTML + "</div>";
+      return thml;
+    }
+    const posClass = position === 1 ? 'text-left' : '';
+    const boldClass = bold === 1 ? 'text-bold' : '';
+    const retractClass = retract === 1 ? 'text-indent' : '';
+    const lineHml = ('<p class="' + posClass + ' ' + boldClass + ' ' + retractClass + '">' + extractVars(val) + '</p>');
+    const txtHml = ('<p style="display: inline;vertical-align: middle;" class="' + posClass + ' ' + boldClass + ' ' + retractClass + '">' + extractVars(val) + '</p>');
+
+    let hml = addLine || monoLine ? `<div class="cont ${posClass}" style="width: 100%;" id="anchor${id}">` : `<div class="cont" id="anchor${id}">`;
+    hml = hml + `<span class="label">${name}</span>` + (addLine ? lineHml : txtHml) + `</div>`;
+    return hml;
+  }
+
+  //组合类型结构生成
+  function combineStructure(data) {
+    const { name, questionMapping, id } = data;
+    let hml = '<div class="inner-table"><table>';
+    const colNum = Math.ceil(questionMapping.length / 2);
+    let tdVal = '';
+    const regexp = /(【(.+?)】)/g;
+    for (let i = 0; i < questionMapping.length;) {
+      if (questionMapping[i + 1]) {
+        tdVal = "<td id='anchor" + questionMapping[i].id + "'>" + questionMapping[i].name + extractVars(questionMapping[i].val) + "</td><td id='anchor" + questionMapping[i + 1].id + "'>" + questionMapping[i + 1].name + extractVars(questionMapping[i + 1].val) + "</td>";
+      } else {
+        tdVal = "<td id='anchor" + questionMapping[i].id + "'>" + questionMapping[i].name + extractVars(questionMapping[i].val) + "</td><td></td>";
+      }
+      if (i == 0) {
+        hml = hml + `<tr><td rowspan="${colNum}" id='anchor${id}'>${name}</td>${tdVal}`;
+      } else {
+        hml = hml + `<tr>${tdVal}`;
+      }
+      hml = hml + "</tr>";
+      i = ((i + 2) > questionMapping.length ? i + 1 : i + 2)
+    }
+    hml = hml + "</table></div>";
+    return hml;
+  }
+
+  //抽取变量
+  function extractVars(org) {
+    const regexp = /(【(.+?)】)/g;
+    const arr = org.split(regexp);
+    //console.log(arr)
+    let htl = '', val = '';
+    for (let i = 0; i < arr.length; i++) {
+      val = arr[i].indexOf("【") != -1 ? '' : (arr[i - 1] && arr[i - 1].indexOf("【") != -1 ? "{{html " + arr[i] + "}}" : arr[i]);
+      htl = htl + val;
+    }
+    return htl;
+  }
+  //获取所有模板
+  function getAllModules() {
+    const param = {
+      hospitalId: getUrlArgObject("hid"),
+      modeId: ''
+    };
+    post(api.getModuleById, param).then((res) => {
+      if (res.data.code === '0') {
+        const data = res.data.data;
+        global_modules = data;
+        getRecordDetail();
+        $("#loading").hide();
+      }
+    });
+  }
+  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 });
+      }
+    });
+  }
+
+});
+

+ 39 - 15
src/js/index.js

@@ -32,7 +32,8 @@ const otherLogo = getUrlArgObject("adLg");
 const is3His = getUrlArgObject('is3His')
 //token判断没有跳登录
 const token = localStorage.getItem('accessToken');
-if (!token||localStorage.getItem('toLogin')==='1') {
+let auditNumber;
+if (!token || localStorage.getItem('toLogin') === '1') {
   window.location.href = '../login.html';
 }
 const modalDom = `
@@ -327,8 +328,26 @@ function userActionHide(e) {
   $(".userAction").css("display", "none")
 }
 window.userActionHide = userActionHide
+//获取待审核数量
+getAuditNumber()
+function getAuditNumber() {
+  return post(api.getAuditNumber, {}).then(res => {
+    if (res.data.code == '0') {
+      auditNumber = res.data.data.data > 99 ? '99+' : res.data.data.data
+    } else {
+      const token = localStorage.getItem('accessToken');
+      if (!token && window.location.href.indexOf('login') == -1) {
+        //alert('无token判断,跳回登录')
+      } else {
+        $.alerModal({ "message": res.data.msg, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
+      }
+    }
+  }).catch((e) => {
 
+  })
+}
 function initMenu(data, userInfo) {
+  console.log(data);
   //菜单数据填充
   $(".menu ul").html("");
   $(".menu-mini ul").html("");
@@ -372,7 +391,7 @@ function initMenu(data, userInfo) {
     $(".menu-mini").hide();
     $(".menu,.copy-right").show().animate({
       "width": "205px"
-    }, function () {});
+    }, function () { });
     $(".main").animate({
       "margin-left": "205px"
     });
@@ -431,10 +450,7 @@ function getMenu() {
     if (res.data.code === '0') {
       const data = res.data.data;
       for (let i = 0; i < data.menuWrappers.length; i++) {
-        // if (isPlacefile === '0' && data.menuWrappers[i].code === 'YH-ZKHC') {
-        //   data.menuWrappers.splice(i, 1);
-        //   continue;
-        // }
+
         for (let j = 0; j < data.menuWrappers[i].subMenuList.length; j++) {
           if (isPlacefile === '0' && is3His && (data.menuWrappers[i].subMenuList[j].code === 'YH-ZKK-BASYHGLYSZB_XQ' || data.menuWrappers[i].subMenuList[j].code === 'YH-KSZR-BASYHGLYSZB_XQ')) {
             data.menuWrappers[i].subMenuList.splice(j, 1);
@@ -443,17 +459,25 @@ function getMenu() {
         }
         data.menuWrappers[i].isPlacefile = isPlacefile
       }
+      for (let i = 0; i < data.menuWrappers.length; i++) {
+        if (isPlacefile === '0' && data.menuWrappers[i].code === 'YH-ZKHC') {
+          $(".YH-ZKHC").hide()
+        }
+        if (data.menuWrappers[i].code === 'YH-SSXX') {
+          data.menuWrappers[i].num = auditNumber
+          for (let j = 0; j < data.menuWrappers[i].subMenuList.length; j++) {
+            if (data.menuWrappers[i].subMenuList[j].code === 'YH-SSXX-SSSH') {
+              data.menuWrappers[i].subMenuList[j].num = auditNumber
+            }
+          }
+        }
+      }
       initMenu(data.menuWrappers, data.userLoginDTO);
       userInfo = data.userLoginDTO
       setCookie("hospital", data.basHospitalInfoDTO.name)
       setCookie("hospitalid", data.basHospitalInfoDTO.id)
       getAllCode(data.menuWrappers);
-      for (let i = 0; i < data.menuWrappers.length; i++) {
-        if (isPlacefile === '0' && data.menuWrappers[i].code === 'YH-ZKHC') {
-          $(".YH-ZKHC").hide()
-        }
 
-      }
     }
   })
 };
@@ -569,7 +593,7 @@ function getTimeDetail() {
   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)
 }
 
@@ -582,7 +606,7 @@ function bindMenu() {
 
 window.addEventListener('message', e => {
   //console.trace("token已清除index", e)
-  let data = e.data||'{}';
+  let data = e.data || '{}';
   if (typeof data == 'string') {
     data = JSON.parse(data)
   }
@@ -596,8 +620,8 @@ window.addEventListener('message', e => {
       width: '470',
       time: 1000,
       cancalText: '我知道了',
-	  isFather: true,
-	  fatherWrapper: $("#mainBox", parent.document),
+      isFather: true,
+      fatherWrapper: $("#mainBox", parent.document),
       sureBtn: false,
       message: data.data || '登录过期',
       callback: function () {

+ 2 - 1
src/js/roleManager.js

@@ -112,7 +112,8 @@ $(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||grandParentId==61||grandParentId==69||grandParentId==72){//循环
+            const parentIdArr = ['3','2','17','18','61','69','72','81','100'];
+            if(parentIdArr.includes(grandParentId)){//循环
                 // console.log(curData[grandIndex])
                 let tmpData = curData[grandIndex];
                 let tmpDataLis = curData[grandIndex].sonMenuDTOList;

+ 5 - 0
src/js/utils.js

@@ -73,6 +73,10 @@ const pageMap = {
   "YH-ZKK-LCZKSYTJ": 'useStatistics.html', //临床质控使用统计
   'YH-KSZR-TMQXGSTJ': 'improveStatisticsDept.html', //条目缺陷改善统计(科室)
   "YH-KSZR-LCZKSYTJ": 'useStatisticsDept.html', //临床质控使用统计(科室)
+
+  "YH-SSXX-SSJL": 'appealHistory.html', //申诉记录
+  "YH-SSXX-SSSH": 'appealCheck.html', //申诉审核
+  "YH-SSXX-SSFQ": 'appealInit.html', //申诉发起列表
 };
 
 //导出时间天数
@@ -548,6 +552,7 @@ function getPickerDate(picker, mode) {
     return;
   }
   let date = picker.val();
+  console.log(date);
   if (mode == 1) {
     return date + ' 00:00:00';
     // return date.replace(/\//g,'-') + ' 00:00:00'

+ 3 - 2
webpack.config.js

@@ -7,7 +7,7 @@ const CopyWebpackPlugin = require('copy-webpack-plugin');
 const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
 const webpack = require('webpack');
 const glob = require('glob');
-const proxyHost = "http://192.168.2.241:5858";
+const proxyHost = "http://192.168.2.236:5858";
 // const proxyHost = "http://192.168.2.241:5858";
 // const proxyHost = "http://192.168.4.222:5858";
 // const proxyHost = "http://192.168.3.117:5858";//铁钢
@@ -120,7 +120,8 @@ module.exports = {
         use: {
           loader: 'babel-loader',
           options: {
-            presets: ['@babel/preset-env']
+           presets: ['@babel/preset-env'],
+           //plugins:["@babel/plugin-transform-runtime"]
           }
         }
       },