Forráskód Böngészése

科室缺陷占比

luolei 5 éve
szülő
commit
93a787d3a1

+ 6 - 1
src/css/console.less

@@ -4,6 +4,9 @@ body.console {
   overflow: auto;
   overflow-y: hidden;
   background: @activeBg;
+  .innerOuter {
+    display: none;
+  }
 }
 .echarts {
   width: 100%;
@@ -274,7 +277,9 @@ body.console {
     }
   }
 }
-
+.explainPanT .explainLi {
+  cursor: pointer;
+}
 
 .part01 {
   width: 28%;

+ 1 - 0
src/css/deptScoreDetailControl.less

@@ -16,6 +16,7 @@
         }
     }
     .filterItem.deptListWrap {
+        display: none;
         .selectDept,.deptList {
             width: 180px;
         }

+ 22 - 0
src/css/quexianDetail.less

@@ -101,6 +101,28 @@
             background: #EFF0F9;
            
         }
+                
+        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%;
+            }
+        }
         th,td{
             height: 40px;
             box-sizing: border-box;

+ 22 - 1
src/css/quexianDetailControl.less

@@ -10,7 +10,6 @@
         max-height: 200px;
         overflow-y: auto;
         background: #fff;
-        display: none;
         border: 1px solid #e4e7ed;
         box-shadow: 0 2px 12px 0 #e4e7ed;
         z-index: 2;
@@ -101,6 +100,28 @@
             background: #EFF0F9;
            
         }
+        
+        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%;
+            }
+        }
         th,td{
             height: 40px;
             box-sizing: border-box;

+ 317 - 0
src/css/quexianDetailControlHome.less

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

+ 318 - 0
src/css/quexianDetailHome.less

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

+ 1 - 1
src/css/reset.less

@@ -451,7 +451,7 @@ input:-ms-input-placeholder{  /* Internet Explorer 10-11 */
   position: relative;
   top: 2px !important;
 }
-.goHomeDetailColor {
+.goHomeDetail {
   color: #00A1F0;
   cursor: pointer;
 }

+ 4 - 5
src/html/console.html

@@ -125,17 +125,16 @@
         
         <div class="pubEchartB paymoney">
           <p class="title">各科室质控平均分柱状图 <img src="../images/details.png" alt=""></p>
-          <div class="toggleSlide">
-            <p data-str="内科系统" data-type="3"><span>内科系统</span><img src="../images/arrow_down.png" alt=""> </p>
+          <div class="toggleSlide innerOuter">
+            <p data-str="内科" data-type="3"><span>内科</span><img src="../images/arrow_down.png" alt=""> </p>
             <ul>
-              <li class="toggleAverge toggleSlide1" data-str="内科系统" data-type="3">内科系统</li>
-              <li class="toggleAverge toggleSlide2" data-str="外科系统" data-type="4">外科系统</li>
+              <li class="toggleAverge toggleSlide1" data-str="内科" data-type="3">内科</li>
+              <li class="toggleAverge toggleSlide2" data-str="外科" data-type="4">外科</li>
             </ul>
           </div>
           <div id="barChartPay" class="barChartPay" style="height: 217px;"></div>
         </div>
       </div>
-
   </div>
 </body>
 </html>

+ 9 - 0
src/html/deptConsole.html

@@ -93,6 +93,15 @@
             <p>丙级占比</p>
           </div>
         </div>
+        <div class="circleB circleBSingle clearfix">
+          <p class="title">条目缺陷占比 <img class="detailGo" src="../images/details.png" alt=""></p>
+          <div id="emptyCircleB" class="emptyCircle"></div>
+          <div class="explainPan explainPanB">
+            <table>
+              
+            </table>
+          </div>
+        </div>
         <div class="circleBLis">
           <div class="circleB homePage clearfix">
             <p class="title">病案首页合格率占比 <img class="detailGo" src="../images/details.png" alt=""></p>

+ 6 - 23
src/html/deptScoreDetailControl.html

@@ -28,38 +28,21 @@
                     <span>科室名称:</span>
                     <input class="patientNumInp" style="width: 148px;" type="text" placeholder="请输入科室名称">
                 </span>
-                <!-- <span class="filterItem typeFilter deptListWrap">
-                    <span>病历等级数:</span>
+                <span class="filterItem typeFilter deptListWrap">
+                    <span>科室系统:</span>
                     <span class="selectDept" data-id="">全部</span>
                     <ul class="deptList filterDropList">
                         <li class="deptItem ellipsis" title="全部" data-id="" data-name="全部">全部</li>
-                        <li class="deptItem ellipsis" title="甲级病历数" data-id="甲级病历数" data-name="甲级病历数">甲级病历数</li>
-                        <li class="deptItem ellipsis" title="乙级病历数" data-id="乙级病历数" data-name="乙级病历数">乙级病历数</li>
-                        <li class="deptItem ellipsis" title="丙级病历数" data-id="丙级病历数" data-name="丙级病历数">丙级病历数</li>
+                        <li class="deptItem ellipsis" title="内科" data-id="内科" data-name="内科">内科</li>
+                        <li class="deptItem ellipsis" title="外科" data-id="外科" data-name="外科">外科</li>
                     </ul>
-                </span> -->
+                </span>
                 <span class="filter">查询</span>
                 <span class="filterclear abnormalClear">重置</span>
             </div>
-            <div>
+            <div class="deptScoreDetailControlTable">
                 <table>
-                    <thead>
-                    <th class="moduleName" style="width: 65px;">序号</th>
-                    <th class="beHospitalId textCenter">科室编码</th>
-                    <th class="beHospitalId textCenter">科室名称</th>
-                    <th class="beHospitalId textCenter">缺陷总数</th>
-                    <th class="beHospitalId textCenter">质控平均分</th>
-                    <th class="beHospitalId textCenter">质控病历数</th>
-                    <th class="beHospitalId textCenter">甲级病历数</th>
-                    <th class="beHospitalId textCenter">乙级病历数</th>
-                    <th class="beHospitalId textCenter">丙级病历数</th>
-                    <th class="beHospitalId textCenter">甲级率</th>
-                    <th class="beHospitalId textCenter">乙级率</th>
-                    <th class="beHospitalId textCenter">丙级率</th>
-                    </thead>
-                    <tbody>
 
-                    </tbody>
                 </table>
             </div>
 

+ 11 - 0
src/html/quexianDetail.html

@@ -31,6 +31,16 @@
                         <input class="moduleItemInp" type="text" placeholder="请输入缺陷名称">
                     </span>
                 </span>
+                <span class="filterItem typeFilter deptListWrap">
+                    <span>所属模块:</span>
+                    <span class="selectDept" data-id="">全部</span>
+                    <ul class="deptList filterDropList">
+                        <li class="deptItem ellipsis" title="全部" data-id="" data-name="全部">全部</li>
+                        <li class="deptItem ellipsis" title="甲级病历" data-id="甲" data-name="甲级病历">甲级病历</li>
+                        <li class="deptItem ellipsis" title="乙级病历" data-id="乙" data-name="乙级病历">乙级病历</li>
+                        <li class="deptItem ellipsis" title="丙级病历" data-id="丙" data-name="丙级病历">丙级病历</li>
+                    </ul>
+                </span>
                 <span class="filter">查询</span>
                 <span class="filterclear abnormalClear">重置</span>
             </div>
@@ -38,6 +48,7 @@
                 <thead>
                     <th class="moduleName" style="width: 65px;">序号</th>
                     <th class="moduleItemName">缺陷名称</th>
+                    <th class="moduleItemName desc" code="casesName">所属模块</th>
                     <th class="moduleItemName textCenter">数量</th>
                     <th class="moduleScore" style="width: 80px;">缺陷占比</th>
                 </thead>

+ 11 - 0
src/html/quexianDetailControl.html

@@ -31,6 +31,16 @@
                         <input class="moduleItemInp" type="text" placeholder="请输入缺陷名称">
                     </span>
                 </span>
+                <span class="filterItem typeFilter deptListWrap">
+                    <span>所属模块:</span>
+                    <span class="selectDept" data-id="">全部</span>
+                    <ul class="deptList filterDropList">
+                        <li class="deptItem ellipsis" title="全部" data-id="" data-name="全部">全部</li>
+                        <li class="deptItem ellipsis" title="甲级病历" data-id="甲" data-name="甲级病历">甲级病历</li>
+                        <li class="deptItem ellipsis" title="乙级病历" data-id="乙" data-name="乙级病历">乙级病历</li>
+                        <li class="deptItem ellipsis" title="丙级病历" data-id="丙" data-name="丙级病历">丙级病历</li>
+                    </ul>
+                </span>
                 <span class="filter">查询</span>
                 <span class="filterclear abnormalClear">重置</span>
             </div>
@@ -38,6 +48,7 @@
                 <thead>
                     <th class="moduleName" style="width: 65px;">序号</th>
                     <th class="moduleItemName">缺陷名称</th>
+                    <th class="moduleItemName desc" code="casesName">所属模块</th>
                     <th class="moduleItemName textCenter">数量</th>
                     <th class="moduleScore" style="width: 80px;">缺陷占比</th>
                 </thead>

+ 64 - 0
src/html/quexianDetailControlHome.html

@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>缺陷详情</title>
+    
+</head>
+
+<body>
+    <div class="managerContainer quexianDetailControlHome">
+        <div class="partTitle">
+          <p class="titlePic"></p>
+          <div class="monthYear">
+            <span class="mon">本月</span>
+            <span class="year">本年</span>
+          </div> 
+          <div class="dateDetail fr">
+            
+          </div>
+        </div>
+        <div class="partTitleT"></div>
+        <div class="grayLine"></div>
+        <div class="main-body">
+            <div class="filterBox">
+                <span class="filterItem">
+                    <span>缺陷名称:</span>
+                    <span class="">
+                        <input class="moduleItemInp" type="text" placeholder="请输入缺陷名称">
+                    </span>
+                </span>
+                <!-- <span class="filterItem typeFilter deptListWrap">
+                    <span>所属模块:</span>
+                    <span class="selectDept" data-id="">全部</span>
+                    <ul class="deptList filterDropList">
+                        <li class="deptItem ellipsis" title="全部" data-id="" data-name="全部">全部</li>
+                        <li class="deptItem ellipsis" title="甲级病历" data-id="甲" data-name="甲级病历">甲级病历</li>
+                        <li class="deptItem ellipsis" title="乙级病历" data-id="乙" data-name="乙级病历">乙级病历</li>
+                        <li class="deptItem ellipsis" title="丙级病历" data-id="丙" data-name="丙级病历">丙级病历</li>
+                    </ul>
+                </span> -->
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">重置</span>
+            </div>
+            <table>
+                <thead>
+                    <th class="moduleName" style="width: 65px;">序号</th>
+                    <th class="moduleItemName">缺陷名称</th>
+                    <!-- <th class="moduleItemName desc" code="casesName">所属模块</th> -->
+                    <th class="moduleItemName textCenter">数量</th>
+                    <th class="moduleScore" style="width: 80px;">缺陷占比</th>
+                </thead>
+                <tbody>
+    
+                </tbody>
+            </table>
+            <div class="pagination"></div>
+        </div>
+    </div>
+</body>
+
+</html>

+ 53 - 0
src/html/quexianDetailHome.html

@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>缺陷详情</title>
+    
+</head>
+
+<body>
+    <div class="managerContainer quexianDetailHome">
+        <div class="partTitle">
+          <p class="titlePic"></p>
+          <div class="monthYear">
+            <span class="mon">本月</span>
+            <span class="year">本年</span>
+          </div> 
+          <div class="dateDetail fr">
+            
+          </div>
+        </div>
+        <div class="partTitleT"></div>
+        <div class="grayLine"></div>
+        <div class="main-body">
+            <div class="filterBox">
+                <span class="filterItem">
+                    <span>缺陷名称:</span>
+                    <span class="">
+                        <input class="moduleItemInp" type="text" placeholder="请输入缺陷名称">
+                    </span>
+                </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">重置</span>
+            </div>
+            <table>
+                <thead>
+                    <th class="moduleName" style="width: 65px;">序号</th>
+                    <th class="moduleItemName">缺陷名称</th>
+                    <th class="moduleItemName textCenter">数量</th>
+                    <th class="moduleScore" style="width: 80px;">缺陷占比</th>
+                </thead>
+                <tbody>
+    
+                </tbody>
+            </table>
+            <div class="pagination"></div>
+        </div>
+    </div>
+</body>
+
+</html>

+ 7 - 2
src/js/api.js

@@ -25,6 +25,7 @@ const api = {
     getAverageDayNum:'/console/getAverageDayNum',//平均住院天数
     getAverageFee:'/console/getAverageFee',//平均住院费用
     getAverageScore:'/console/getAverageScore',//各科室质控平均分
+    getAverageScoreByDeptClass:'/console/getAverageScoreByDeptClass',//各科室质控平均分
     leaveHosCount:'/console/leaveHosCount',//出院人数统计
     mrCount:'/console/mrCount',//质控病历统计
     entryCountGroupByCase:'/console/entryCountGroupByCase',//各模块缺陷占比排行
@@ -48,9 +49,11 @@ const api = {
     saveRoleMenu:'/sys/role/saveRoleMenu',//修改角色菜单权限数据
     entryCountGroupByEntryAndDept:'/consoleByDept/entryCountGroupByEntryAndDept',//条目缺陷占比
     entryCountGroupByCaseAndDept:'/consoleByDept/entryCountGroupByCaseAndDept',//各模块缺陷占比排行
-    entryCountGroupByEntryAndDeptPage:'/consoleByDept/entryCountGroupByEntryAndDeptPage',//条目明细(科室)
     entryCountGroupByCaseAndDeptPage:'/consoleByDept/entryCountGroupByCaseAndDeptPage',//模块缺陷占比明细(科室)
+    entryCountGroupByEntryAndDeptPage:'/consoleByDept/entryCountGroupByEntryAndDeptPage',//条目明细(科室)
+    entryGroupByEntryAndDeptInnerPage:'/consoleByDept/entryGroupByEntryAndDeptInnerPage',//条目明细(科室)
     entryCountGroupByEntryPage:'/console/entryCountGroupByEntryPage',//条目明细
+    entryGroupByEntryInnerPage:'/console/entryGroupByEntryInnerPage',//条目明细
     entryCountGroupByCasePage:'/console/entryCountGroupByCasePage',//模块缺陷占比明细
     getAverageDayNumPage:'/console/getAverageDayNumPage',//住院天数详情
     getAverageFeePage:'/console/getAverageFeePage',//花费详情
@@ -58,8 +61,10 @@ const api = {
     getQcAnnormal:'/qc/abnormal/getQcAnnormal',//异常数据查询
     saveQcAnnormal:'/qc/abnormal/saveQcAnnormal',//异常数据修改
     resultStatisticsByDeptPage:'/console/resultStatisticsByDeptPage',//各科室缺陷占比排行(分页)
-    levelPercentGroupByDeptPage:'/console/levelPercentGroupByDeptPage',//甲级科室缺陷占比排行(分页)台州
     levelStatistics:'/console/levelStatistics',//科室缺陷占比排行(组合全局)
+    levelStatisticsByDeptClass:'/console/levelStatisticsByDeptClass',//各科室缺陷占比排行(分页)台州
+    getAverageScoreByDeptPage:'/console/getAverageScoreByDeptPage',//各科室缺陷占比排行(分页)
+    levelPercentGroupByDeptPage:'/console/levelPercentGroupByDeptPage',//甲级科室缺陷占比排行(分页)台州
     homePageLevelStatistics:'/console/homePageLevelStatistics',//病案首页合格率占比
     homePageLevelLimit:'/console/homePageLevelLimit',//病案首页合格率占比
     homePageLevelByDeptLimit:'/consoleByDept/homePageLevelStatisticsByDept',//病案首页合格率占比keshi详情

+ 55 - 31
src/js/console.js

@@ -8,15 +8,17 @@ require("../images/arrow_down.png")
 const {api} = require('./api.js')
 const echarts = require('echarts');
 const {post,setCookie,delCookie,getCookie,focusMenuItem} = require('../js/utils.js');
-let payMoney = [],dayLis = [],dateType = 2,slideType = 1,hospital=getCookie("hospital");
+let payMoney = [],dayLis = [],dateType = 2,slideType = 1,hospital=getCookie("hospital"),deptType="内科";
 $(function(){
     if(!hasData('YH-KZT')){
         $("body").html('')
     }
     if(hospital == "台州市立"){
         $(".part03 .partTitlePub .name").html('各科室甲级病例占比')
+        $(".innerOuter").css("display","block")
     }else{
         $(".part03 .partTitlePub .name").html('病案首页合格率')
+        $(".innerOuter").css("display","none")
     }
     $(".partTitle p span").html(hospital)
     setInterval(() => {
@@ -60,25 +62,34 @@ $(function(){
             $(".pubEchart .title").html("科室平均住院花费柱状图")
             barChart(payMoney,dateType)
         }else if(type == 3){//科室平均分内科
-            if(!hasData('FUNC000046')){
+            if(!hasData('FUNC000091')){
                 return
             }
-            barChartPay(payMoney,dateType)
+            deptType="内科"
+            getAverageScoreLis()
         }else if(type == 4){//科室平均分外科
-            if(!hasData('FUNC000046')){
+            if(!hasData('FUNC000091')){
                 return
             }
-            barChartPay(payMoney,dateType)
+            deptType="外科"
+            getAverageScoreLis()
         }
         $(this).parent().slideToggle().prev().find("span").html(str)
     })
     getDetails()
+    getAverageScoreLis()
 })
 function getDetails(){
-    $(".part02 .bingli,.part02 .bingliLis,.part03 .circle .title,.pubEchartB.paymoney .title").click(function(){
+    $(".part02 .bingliLis,.part03 .circle .title,.pubEchartB.paymoney .title").click(function(){
       focusMenuItem("YH-ZKK-GKSQXZB_XQ");
       $(parent.document).find("#contentIframe").attr("src","./deptScoreDetailControl.html?from=1&dateType="+dateType)
     })
+    $(".part02").on("click",".bingli li.sec",function(){
+      focusMenuItem("YH-BLZK-ZKPF");
+      let dataC = $(this).attr("data-c")
+      let chengdu = dataC == 1?'甲':dataC==2?'乙':'丙'
+      $(parent.document).find("#contentIframe").attr("src","./qcList.html?from=1&dateType="+dateType+"&chengdu="+chengdu)
+    })
     $(".part03 .partTitlePub").click(function(){
         if(hospital=="台州市立"){
             focusMenuItem("YH-ZKK-GKSJJBLZB_XQ")
@@ -135,6 +146,7 @@ function resizeBox(){
             })
             dateType = 1
             getBarData(1)
+            getAverageScoreLis()
         })
         $(".monthYear .year").click(function(){
             $(this).css({
@@ -147,6 +159,7 @@ function resizeBox(){
                 backgroundColor:'#203463'
             })
             dateType = 2
+            getAverageScoreLis()
             getBarData(2)
         })
     }
@@ -189,6 +202,32 @@ function initConsole(result){
     }
     $(".partAll").html(dom)
 }
+//平均分
+function getAverageScoreLis(){
+    let url = ''
+    if(hospital=="台州市立"&&hasData('FUNC000091')){
+        url = api.getAverageScoreByDeptClass
+    }else if(hospital=="长兴医院"&&hasData('FUNC000047')){
+        url = api.getAverageScore
+    }else{
+        return
+    }
+    post(url,{//各科室质控平均分
+        "type": dateType||1,//1月2年
+        "className":deptType
+    }).then((res)=>{
+        let data = res.data;
+        if(data.code == 0){
+            let result1 = (hospital=="台州市立"?data.data:data.data['各科室质控平均分'])||[]
+            let dataX1=[],dataY1=[]
+            for(let i = 0;i < result1.length;i++){
+                dataX1.push(result1[i].name)
+                dataY1.push(result1[i].averageValue)
+            }
+            barChartPay(dataX1,dataY1)
+        }
+    })
+}
 //获取图表数据
 function getBarData(type){
     if(hasData('FUNC000045')){
@@ -223,22 +262,6 @@ function getBarData(type){
     }else{
         $(".toggleSlide2").css("opacity",0.5)
     }
-    if(hasData('FUNC000047')){
-        post(api.getAverageScore,{//各科室质控平均分
-            "type": type||1//1月2年
-        }).then((res)=>{
-            let data = res.data;
-            if(data.code == 0){
-                let result1 = data.data['各科室质控平均分']||[]
-                let dataX1=[],dataY1=[]
-                for(let i = 0;i < result1.length;i++){
-                    dataX1.push(result1[i].name)
-                    dataY1.push(result1[i].averageValue)
-                }
-                barChartPay(dataX1,dataY1)
-            }
-        })
-    }
     if(hasData('FUNC000048')&&hospital=="台州市立"){
         post(api.getLevelResultDept,{//各科室甲级占比
             "type": type||1//1月2年
@@ -388,7 +411,7 @@ function setNumDetail(data){
     let str = ''
     for(let i = 0;i < data.length;i++){
         str += `
-            <li class="${i==0?'fst':''}">
+            <li class="${i==0?'fst':'sec'}" data-c="${i}">
             <p class="numShow">${data[i].num}</p>
             <p class="explainNum">${data[i].name}</p>
             </li>
@@ -672,6 +695,7 @@ function lineChartSpecial(dataX,dataY){
 }
 //柱状图住院费用
 function barChartPay(dataX,dataY){
+    // console.log(dataX,dataY)
     var myCharts = echarts.init(document.getElementById('barChartPay'));
     var lengthNum = dataX.length;
     $(window).resize(function(){
@@ -1088,10 +1112,7 @@ function emptyCircleB(data){
     let title = '总量';
     let color = ['#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336','#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336'];
     let echartData = data;
-    let total = 0;
-    for(let i = 0;i < echartData.length;i++){
-        total += echartData[i].num
-    }
+    let total = echartData.length>0?echartData[0].totleNum:0;
     option = {
         /*backgroundColor: bgColor,*/
         color: color,
@@ -1201,7 +1222,7 @@ function panDetail(data){
     let strAll = '';
     for(let i = 0;i < data.length;i++){
         strAll += `
-            <tr class="explainLi">
+            <tr class="explainLi" data-dept="${data[i].name}">
                 <td class="deptName" title="${data[i].name}">
                     <p class="smp"><i class="tip" style="background-color:${color[i]}"></i>${data[i].name}</p>
                 </td>
@@ -1211,9 +1232,12 @@ function panDetail(data){
         `
     }
     $(".explainPanT table").html(strAll);
-    // $(".explainPan").css({
-    //     marginTop:-($(".explainPan").height()/2-20)+'px'
-    // })
+    $(".explainPanT .explainLi").click(function(){
+        let deptName = $(this).attr("data-dept")
+        focusMenuItem("YH-BLZK-ZKPF");
+        $(parent.document).find("#contentIframe").attr("src","./qcList.html?from=1&dateType="+dateType+"&deptName="+deptName)
+
+    })
 }
 function panDetailB(data){
     let color = ['#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336','#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336'];

+ 1 - 1
src/js/deptConsole.js

@@ -506,7 +506,6 @@ function part02pan(data,dom){
 function emptyCircleB(data){
     if(!document.getElementById('emptyCircleB'))return
     var myChart = echarts.init(document.getElementById('emptyCircleB'));
-    return
     $(window).resize(function(){
         myChart.resize()
     });
@@ -514,6 +513,7 @@ function emptyCircleB(data){
     let title = '总量';
     let color = ['#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336','#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336'];
     let echartData = data;
+    console.log(echartData,9999)
     let total = 0;
     for(let i = 0;i < echartData.length;i++){
         total += echartData[i].num

+ 11 - 7
src/js/deptScoreDetail.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/deptScoreDetail.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,focusMenuItem} = 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")
@@ -88,10 +88,9 @@ function getDeptList(flg){
     let str = ``
     if(deptList.length<=0)return
     if(flg){
-        $(".partDetail .selectDept ").attr("data-id",deptList[0].deptName).find("i").html(deptList[0].deptName)
+        $(".deptScoreDetail .selectDept ").attr("data-id",deptList[0].deptName).find("i").html(deptList[0].deptName)
         deptId = deptIdTemp = deptList[0].deptName
     }
-    // $(".deptScoreDetail .selectDept ").attr("data-id",deptList[0].deptName).find("i").html(deptList[0].deptName)
     for(let i = 0;i < deptList.length;i++){
         let tmp = deptList[i]
         str += `<li class="deptItem ellipsis" title="${tmp.deptName}" data-id="${tmp.deptName}" data-name="${tmp.deptName}">${tmp.deptName}</li>`
@@ -142,7 +141,6 @@ function dateChange(){
 }
 
 function getTabData(activePage){
-    console.log(deptIdTemp,deptId,7878778)
     const param = {
         "asc": "",
         "deptName": deptId||"",
@@ -192,9 +190,9 @@ function renderTab(data,hisId,activePage){
                 <td class="goHomeDetail" data-doc="${item.doctorName || ""}">${item.entryNum || "-"}</td>
                 <td >${item.averageValue || "-"}</td>
                 <td >${item.mrNum || "-"}</td>
-                <td >${item.firstLevelNum || "-"}</td>
-                <td >${item.secondLevelNum || "-"}</td>
-                <td >${item.thirdLevelNum || "-"}</td>
+                <td  class="goHomeDetailB goHomeDetail" data-dept="${item.doctorName || ""}" data-c="甲">${item.firstLevelNum || "-"}</td>
+                <td  class="goHomeDetailB goHomeDetail" data-dept="${item.doctorName || ""}" data-c="乙">${item.secondLevelNum || "-"}</td>
+                <td  class="goHomeDetailB goHomeDetail" data-dept="${item.doctorName || ""}" data-c="丙">${item.thirdLevelNum || "-"}</td>
                 <td >${item.firstLevelPercentStr || "-"}</td>
                 <td >${item.secondLevelPercentStr || "-"}</td>
                 <td >${item.thirdLevelPercentStr || "-"}</td>
@@ -210,6 +208,12 @@ function renderTab(data,hisId,activePage){
         let docName = $(this).attr("data-doc")
         $(parent.document).find("#contentIframe").attr("src","quexianDetail.html?from=2&deptName="+deptIdTemp+"&docName="+docName+"&shijian="+statisticsType)
     })
+    $(".goHomeDetailB").click(function(){
+        let docName = $(this).attr("data-dept")
+        let deptC = $(this).attr("data-c")
+        focusMenuItem("YH-BLZK-ZKPFKS");
+        $(parent.document).find("#contentIframe").attr("src","qcListDept.html?from=2&deptName="+deptIdTemp+"&docName="+docName+"&shijian="+statisticsType+"&chengdu="+deptC)
+    })
 }
 
 function scoreDetail(id,age,hid,code){

+ 53 - 20
src/js/deptScoreDetailControl.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/deptScoreDetailControl.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post,getCookie,getUrlArgObjectNew} = require('./utils.js')
+const {post,getCookie,getUrlArgObjectNew,focusMenuItem} = 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")
@@ -19,10 +19,14 @@ $(".selectLevel").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 let tabList = [], name = "", behospitalCode="", behosDateStart="", level="",behosDateEnd="", scoreSum = 0,statisticsType=2,
   nameTemp = "", behospitalCodeTemp="",levelTemp="", deptId="",deptIdTemp="", doctorName="", doctorNum="",doctorNameTemp="",doctorNumTemp="",
-  data_desc=[],data_asc=[];
+  data_desc=[],data_asc=[],hospital=getCookie("hospital");
   let srcUrl = $("#contentIframe",parent.document).attr("src")
   statisticsType = getUrlArgObjectNew("dateType",srcUrl)||""
-  
+  if(hospital == '台州市立'){
+    $(".deptListWrap").css("display","inline-block")
+}else{
+    $(".deptListWrap").css("display","none")
+  }
   if(statisticsType == 1){
       $(".monthYear .mon").css({
           backgroundColor:'#00A1FF',
@@ -94,13 +98,14 @@ function dateChange(){
     })
 }
 //判断有无某一权限
-  function hasData(data){
-    let trdObj = JSON.parse(getCookie("trdObj"))
-    let lis = trdObj['YH-BLZK-ZKPF']
-    if(!lis){
-      return false
+  function hasData(data,parent){
+    let codeLis = getCookie("codeLis")
+    if(parent){
+        if(codeLis.indexOf(parent)==-1){//有权限
+            return false
+        }
     }
-    if(lis.indexOf(data)>-1){//有权限
+    if(codeLis.indexOf(data)>-1){//有权限
         return true
     }
     return false;
@@ -110,10 +115,19 @@ function getTabData(activePage){
         "asc": "",
         "desc": "",
         "name": behospitalCode||"",
-        "level": deptId||'',
+        "deptClass": deptId||'',
         "type": statisticsType||2, //1-本月,2-本年
     }
-    post(api.levelStatistics,param).then(res =>{
+    let url = ''
+
+    if(hospital=="台州市立"&&hasData('FUNC000092','YH-ZKK-GKSQXZB_XQ')){
+        url = api.levelStatisticsByDeptClass
+    }else if(hospital=="长兴医院"&&hasData('FUNC000071','YH-ZKK-GKSQXZB_XQ')){
+        url = api.levelStatistics
+    }else{
+        return
+    }
+    post(url,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data;
             tabList = data.records;
@@ -145,38 +159,57 @@ $(".filter").on("click", function(e){
 })
 function renderTab(data,hisId,activePage){
     let str = ``
-    for(let i = 0; i < data.length; i++){
+    let tHead = `
+        <thead>
+        <th class="moduleName" style="width: 65px;">序号</th>
+        <th class="beHospitalId textCenter">科室编码</th>
+        ${hospital=='台州市立'?'<th class="beHospitalId textCenter">科室系统</th>':null}
+        <th class="beHospitalId textCenter">科室名称</th>
+        <th class="beHospitalId textCenter">缺陷总数</th>
+        <th class="beHospitalId textCenter">质控平均分</th>
+        <th class="beHospitalId textCenter">质控病历数</th>
+        <th class="beHospitalId textCenter">甲级病历数</th>
+        <th class="beHospitalId textCenter">乙级病历数</th>
+        <th class="beHospitalId textCenter">丙级病历数</th>
+        <th class="beHospitalId textCenter">甲级率</th>
+        <th class="beHospitalId textCenter">乙级率</th>
+        <th class="beHospitalId textCenter">丙级率</th>
+        </thead>`
+    for(let i = 0; i <data.length; i++){
         const item = data[i]
         str += `
             <tr  data-index=${i}>
                 <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
                 <td>${item.deptId || "-"}</td>
+                ${hospital=='台州市立'?('<td >'+(item.deptClass||"-")+'</td>'):''}
                 <td >${item.deptName || "-"}</td>
-                <td class="goHomeDetailQuexian goHomeDetailColor" data-dept="${item.deptName || ""}">${item.entryNum || "-"}</td>
+                <td class="goHomeDetailQuexian goHomeDetail" data-dept="${item.deptName || ""}">${item.entryNum || "-"}</td>
                 <td >${item.averageValue || "-"}</td>
                 <td >${item.mrNum || "-"}</td>
-                <td  class="goHomeDetailB goHomeDetailColor" data-type="${item.deptName}" data-c="甲">${item.firstLevelNum || "-"}</td>
-                <td  class="goHomeDetailB goHomeDetailColor" data-type="${item.deptName}" data-c="乙">${item.secondLevelNum || "-"}</td>
-                <td  class="goHomeDetailB goHomeDetailColor" data-type="${item.deptName}" data-c="丙">${item.thirdLevelNum || "-"}</td>
+                <td  class="goHomeDetailB goHomeDetail" data-dept="${item.deptName || ""}" data-c="甲">${item.firstLevelNum || "-"}</td>
+                <td  class="goHomeDetailB goHomeDetail" data-dept="${item.deptName || ""}" data-c="乙">${item.secondLevelNum || "-"}</td>
+                <td  class="goHomeDetailB goHomeDetail" data-dept="${item.deptName || ""}" data-c="丙">${item.thirdLevelNum || "-"}</td>
                 <td >${item.firstLevelPercentStr || "-"}</td>
                 <td >${item.secondLevelPercentStr || "-"}</td>
                 <td >${item.thirdLevelPercentStr || "-"}</td>
             </tr>
         `
     }
-    $('tbody').html(str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
+    $('.deptScoreDetailControlTable table').html(str?tHead+'<tbody>'+str+'</tbody>':tHead+`<tbody><tr><td colspan="17" style="text-align: center;color: #aaa">
         <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
         <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
-    </td></tr>`)
+    </td></tr></tbody>`)
     bindScoreDetail(hisId)
     $(".goHomeDetailQuexian").click(function(){
         let deptName = $(this).attr("data-dept")
+        // focusMenuItem("YH-ZKK-GKSQXZB_XQ");
         $(parent.document).find("#contentIframe").attr("src","quexianDetailControl.html?deptName="+deptName+"&from=2"+"&shijian="+statisticsType)
     })
     $(".goHomeDetailB").click(function(){
         let deptName = $(this).attr("data-dept")
         let deptC = $(this).attr("data-c")
-        $(parent.document).find("#contentIframe").attr("src","quexianDetailControl.html?deptName="+deptName+"&from=2"+"&shijian="+statisticsType+"&chengdu="+deptC)
+        focusMenuItem("YH-BLZK-ZKPF");
+        $(parent.document).find("#contentIframe").attr("src","qcList.html?deptName="+deptName+"&from=2"+"&shijian="+statisticsType+"&chengdu="+deptC)
     })
 }
 
@@ -387,7 +420,7 @@ function hideLoading(){
     $("#mainBox .loadingBox", parent.document).remove()
 }
 $('.recordScoreBtn').on("click",function(e){
-    if(!hasData('FUNC000017')){
+    if(!hasData('FUNC000017','YH-BLZK-ZKPF')){
         return
     }
     let scoreList = []

+ 1 - 1
src/js/partDetail.js

@@ -205,7 +205,7 @@ function renderTab(data,hisId,activePage){
     bindScoreDetail(hisId)
     $(".goHomeDetail").click(function(){
         let docName = $(this).attr("data-doc")
-        $(parent.document).find("#contentIframe").attr("src","quexianDetail.html?from=1&casesId=243&deptName="+deptIdTemp+"&docName="+docName+"&shijian="+statisticsType)
+        $(parent.document).find("#contentIframe").attr("src","quexianDetailHome.html?from=1&casesId=243&deptName="+deptIdTemp+"&docName="+docName+"&shijian="+statisticsType)
     })
 }
 

+ 1 - 1
src/js/partDetailControl.js

@@ -163,7 +163,7 @@ function renderTab(data,hisId,activePage){
     bindScoreDetail(hisId)
     $(".goHomeDetail").click(function(){
         let deptName = $(this).attr("data-dept")
-        $(parent.document).find("#contentIframe").attr("src","quexianDetailControl.html?deptName="+deptName+"&from=1&casesId=243"+"&shijian="+statisticsType)
+        $(parent.document).find("#contentIframe").attr("src","quexianDetailControlHome.html?deptName="+deptName+"&from=1&casesId=243"+"&shijian="+statisticsType)
     })
 }
 

+ 37 - 6
src/js/quexianDetail.js

@@ -12,7 +12,7 @@ const arrowLeft= require("./../images/arrow_left.png")
 const arrowRight = require("./../images/arrow_right.png")
 
 
-let casesId="", name="", isReject ="2",deptName="", isUsed ="",casesIdTemp="", nameTemp="",casesIds="", isRejectTemp ="2", isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId=""
+let casesId="", name="", isReject ="2",deptName="", isUsed ="",casesIdTemp="", data_asc=[],data_desc=["casesName"],nameTemp="",casesIds="", isRejectTemp ="2", isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId=""
 $(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectUsed").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
@@ -22,6 +22,7 @@ $(function(){
     dateChange()
     let srcUrl = $("#contentIframe",parent.document).attr("src")
     deptName = getUrlArgObjectNew("deptName",srcUrl)||""
+    deptId = deptIdTemp = getUrlArgObjectNew("chengdu",srcUrl)||""
     docName = getUrlArgObjectNew("docName",srcUrl)||""
     casesIds = getUrlArgObjectNew("casesId",srcUrl)||""
     isReject= isRejectTemp= getUrlArgObjectNew("shijian",srcUrl)||"2"
@@ -42,7 +43,6 @@ $(function(){
             backgroundColor:'#fff'
         })
     }
-
     getTabData(1)//条目缺陷    
     from = getUrlArgObjectNew("from",srcUrl)||""
     if(from == 1){
@@ -53,7 +53,6 @@ $(function(){
         })
         $(".partTitle .consoleP").click(function(){
             focusMenuItem('YH-KSZR-BASYHGLZB_XQ')
-            console.log(999)
         })
     }else{
         $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台(科室) / </a><a class="consoleP" href="deptScoreDetail.html">各科室缺陷占比 / </a>缺陷详情`)
@@ -70,7 +69,19 @@ $(function(){
         $(".patientNumInp").val("")
         getTabData(1)
     })
+    getMolist()
 })
+function getMolist(){
+    post(api.getQcCases).then(res =>{
+        if(res.data.code == '0'){
+            data = res.data.data
+            deptList = data
+            getDeptList()
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
 function focusMenuItem(code){
     const ele = $(parent.document).find(".menu .page[code="+code+"]");
     const parEle = ele.parents(".list-1");
@@ -86,7 +97,7 @@ function bindDeptSelect(){
     $(document).on("click",'.deptItem',function(){
         const deptItemName = $(this).attr("data-name")
         const deptItemId = $(this).attr("data-id")
-        deptIdTemp =deptItemId
+        deptIdTemp=deptId =deptItemId
         if(deptItemName.length > 10){
             $('.selectDept').html(deptItemName.substring(0,8)+'...')
         }else{
@@ -122,10 +133,26 @@ function getDeptList(){
     $(".tiaomu .selectDept ").attr("data-id",deptList[0].deptName).find("i").html(deptList[0].deptName)
     for(let i = 0;i < deptList.length;i++){
         let tmp = deptList[i]
-        str += `<li class="deptItem ellipsis" title="${tmp.deptName}" data-id="${tmp.deptName}" data-name="${tmp.deptName}">${tmp.deptName}</li>`
+        str += `<li class="deptItem ellipsis" title="${tmp.name}" data-id="${tmp.name}" data-name="${tmp.name}">${tmp.name}</li>`
     }
-    $(".tiaomu .filterDropList").html(str)
+    $(".quexianDetail .filterDropList").html('<li class="deptItem ellipsis" title="" data-id="" data-id="" data-name="全部">全部</li>'+str)
 }
+$("th[code]").on("click",function(e){
+    const code=$(this).attr("code");
+    if(data_asc[0]===code){
+      data_desc=[code];
+      data_asc=[];
+      $("th[code]").removeClass("asc desc");
+      $(this).addClass("desc");
+    }else{
+      data_desc=[];
+      data_asc=[code];
+      $("th[code]").removeClass("asc desc");
+      $(this).addClass("asc");
+    }
+    getTabData(1);
+    // console.log(code)
+});
 function getTabData(activePage){
     const param = {
         current:activePage,
@@ -133,7 +160,10 @@ function getTabData(activePage){
         name: name, //条目名
         doctorName:docName||"",
         deptName:deptName||"",
+        casesName:deptId||"",
         casesId:casesIds||"",
+        ascs:data_asc,
+        descs:data_desc,
         size: 15
     }
     post(api.entryCountGroupByEntryAndDeptPage,param).then(res =>{
@@ -258,6 +288,7 @@ function renderTab(data,activePage){
             <tr data-id=${item.id} data-index=${i}>
                 <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
                 <td>${item.name}</td>
+                <td class="textCenter">${item.casesName}</td>
                 <td class="textCenter">${item.num}</td>
                 <td  class="textCenter">${item.percentStr}</td>
             </tr>

+ 42 - 9
src/js/quexianDetailControl.js

@@ -12,16 +12,17 @@ const arrowLeft= require("./../images/arrow_left.png")
 const arrowRight = require("./../images/arrow_right.png")
 
 
-let casesId="", name="", isReject ="2",deptName="", isUsed ="",casesIdTemp="",casesIds="", nameTemp="", isRejectTemp ="2", isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId=""
+let casesId="", name="", isReject ="2",deptName="",data_asc=[],data_desc=["casesName"], isUsed ="",casesIdTemp="",casesIds="", nameTemp="", isRejectTemp ="2", isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId=""
 $(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectUsed").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
 $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
-let deptList = JSON.parse(getCookie("deptList"))||[]
+let deptList = []
 $(function(){
     dateChange()
     let srcUrl = $("#contentIframe",parent.document).attr("src")
     deptName = getUrlArgObjectNew("deptName",srcUrl)||""
+    deptId = deptIdTemp = getUrlArgObjectNew("caseName",srcUrl)||""
     from = getUrlArgObjectNew("from",srcUrl)||""
     isReject = isRejectTemp = getUrlArgObjectNew("shijian",srcUrl)||"2"
     casesIds = getUrlArgObjectNew("casesId",srcUrl)||""
@@ -42,7 +43,6 @@ $(function(){
             backgroundColor:'#fff'
         })
     }
-
     if(from == 1){
         $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="partDetailControl.html">病案首页合格率占比 / </a>缺陷详情`)
         $(".partTitle .consoleD").click(function(){
@@ -63,14 +63,27 @@ $(function(){
         $(".patientNumInp").val("")
         getTabData(1)
     })
+    getMolist()
 })
+
+function getMolist(){
+    post(api.getQcCases).then(res =>{
+        if(res.data.code == '0'){
+            data = res.data.data
+            deptList = data
+            getDeptList()
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
 bindDeptSelect()
 //科室选择
 function bindDeptSelect(){
     $(document).on("click",'.deptItem',function(){
-        const deptItemName = $(this).attr("data-name")
+        const deptItemName = $(this).attr("data-name")||""
         const deptItemId = $(this).attr("data-id")
-        deptIdTemp =deptItemId
+        deptIdTemp = deptId = deptItemId
         if(deptItemName.length > 10){
             $('.selectDept').html(deptItemName.substring(0,8)+'...')
         }else{
@@ -99,26 +112,45 @@ $('.selectDept').on("click", function(e){
 })
 
 //科室处理
-getDeptList()
+
 function getDeptList(){
     let str = ``
     if(deptList.length<=0)return
-    $(".tiaomu .selectDept ").attr("data-id",deptList[0].deptName).find("i").html(deptList[0].deptName)
     for(let i = 0;i < deptList.length;i++){
         let tmp = deptList[i]
-        str += `<li class="deptItem ellipsis" title="${tmp.deptName}" data-id="${tmp.deptName}" data-name="${tmp.deptName}">${tmp.deptName}</li>`
+        str += `<li class="deptItem ellipsis" title="${tmp.name}" data-id="${tmp.name}" data-name="${tmp.name}">${tmp.name}</li>`
     }
-    $(".tiaomu .filterDropList").html(str)
+    $(".quexianDetailControl .filterDropList").html('<li class="deptItem ellipsis" title="" data-id="" data-id="" data-name="全部">全部</li>'+str)
 }
+
+$("th[code]").on("click",function(e){
+    const code=$(this).attr("code");
+    if(data_asc[0]===code){
+      data_desc=[code];
+      data_asc=[];
+      $("th[code]").removeClass("asc desc");
+      $(this).addClass("desc");
+    }else{
+      data_desc=[];
+      data_asc=[code];
+      $("th[code]").removeClass("asc desc");
+      $(this).addClass("asc");
+    }
+    getTabData(1);
+    // console.log(code)
+});
 function getTabData(activePage){
     const param = {
         current:activePage,
         type: isReject,
         name: name, //条目名
         doctorName:"",
+        casesName:deptId,
         deptName:deptName||"",
         casesId:casesIds||"",
         globalType:1,
+        ascs:data_asc,
+        descs:data_desc,
         size: 15
     }
     post(api.entryCountGroupByEntryPage,param).then(res =>{
@@ -243,6 +275,7 @@ function renderTab(data,activePage){
             <tr data-id=${item.id} data-index=${i}>
                 <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
                 <td>${item.name}</td>
+                <td class="textCenter">${item.casesName}</td>
                 <td class="textCenter">${item.num}</td>
                 <td  class="textCenter">${item.percentStr}</td>
             </tr>

+ 530 - 0
src/js/quexianDetailControlHome.js

@@ -0,0 +1,530 @@
+const $ = require('jquery');
+require("../css/quexianDetailControlHome.less");
+require('./../resource/jquery-ui/jquery-ui.min.js');
+require('./modal.js');
+const {api} = require('./api.js')
+const {post,getCookie,getUrlArgObjectNew} = require('./utils.js')
+const switchIconOpen = require("./../images/btn_open.png")
+const switchIconClose = require("./../images/btn_close.png")
+const iconDown= require("./../images/arrow_down.png")
+const iconUp = require("./../images/arrow_up.png")
+const arrowLeft= require("./../images/arrow_left.png")
+const arrowRight = require("./../images/arrow_right.png")
+
+
+let casesId="", name="", isReject ="2",deptName="",data_asc=[],data_desc=["casesName"], isUsed ="",casesIdTemp="",casesIds="", nameTemp="", isRejectTemp ="2", isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId=""
+$(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectUsed").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let deptList = []
+$(function(){
+    dateChange()
+    let srcUrl = $("#contentIframe",parent.document).attr("src")
+    deptName = getUrlArgObjectNew("deptName",srcUrl)||""
+    deptId = deptIdTemp = getUrlArgObjectNew("caseName",srcUrl)||""
+    from = getUrlArgObjectNew("from",srcUrl)||""
+    isReject = isRejectTemp = getUrlArgObjectNew("shijian",srcUrl)||"2"
+    casesIds = getUrlArgObjectNew("casesId",srcUrl)||""
+    if(isReject == 1){
+        $(".monthYear .mon").css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+    }else{
+        $(".monthYear .year").css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+    }
+    if(from == 1){
+        $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="partDetailControl.html">病案首页合格率占比 / </a>缺陷详情`)
+        $(".partTitle .consoleD").click(function(){
+            $(".menu .page",parent.document).removeClass("active").eq(0).addClass("active");
+            $(".container",parent.document).addClass("console-cont");
+        })
+    }else{
+        $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台 / </a><a class="consoleP" href="deptScoreDetailControl.html">各科室缺陷占比 / </a>缺陷详情`)
+        $(".partTitle .consoleD").click(function(){
+            $(".menu .page",parent.document).removeClass("active").eq(0).addClass("active");
+            $(".container",parent.document).addClass("console-cont");
+        })
+    }
+    getTabData(1)//条目缺陷
+    
+    $(".abnormalClear").click(function(){
+        name = ""
+        $(".patientNumInp").val("")
+        getTabData(1)
+    })
+    // getMolist()
+})
+
+function getMolist(){
+    post(api.getQcCases).then(res =>{
+        if(res.data.code == '0'){
+            data = res.data.data
+            deptList = data
+            getDeptList()
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+bindDeptSelect()
+//科室选择
+function bindDeptSelect(){
+    $(document).on("click",'.deptItem',function(){
+        const deptItemName = $(this).attr("data-name")||""
+        const deptItemId = $(this).attr("data-id")
+        deptIdTemp = deptId = deptItemId
+        if(deptItemName.length > 10){
+            $('.selectDept').html(deptItemName.substring(0,8)+'...')
+        }else{
+            $('.selectDept').html(deptItemName)
+        }
+        $('.selectDept ').attr('title',deptItemName)
+        $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".deptList").css("display", "none")
+    })
+}
+//全选绑定
+
+$('.selectDept').on("click", function(e){
+    e.stopPropagation()
+    $(".levelList ").css("display","none")
+    $(".selectLevel .arrow").attr("src",iconDown)
+    const showList =  $(".deptList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".deptList ").css("display","block")
+        $(".selectDept .arrow").attr("src",iconUp)
+    }else{
+        $(".deptList ").css("display", "none")
+        $(".selectDept .arrow").attr("src",iconDown)
+    }
+})
+
+//科室处理
+
+function getDeptList(){
+    let str = ``
+    if(deptList.length<=0)return
+    for(let i = 0;i < deptList.length;i++){
+        let tmp = deptList[i]
+        str += `<li class="deptItem ellipsis" title="${tmp.name}" data-id="${tmp.name}" data-name="${tmp.name}">${tmp.name}</li>`
+    }
+    $(".quexianDetailControl .filterDropList").html('<li class="deptItem ellipsis" title="" data-id="" data-id="" data-name="全部">全部</li>'+str)
+}
+
+$("th[code]").on("click",function(e){
+    const code=$(this).attr("code");
+    if(data_asc[0]===code){
+      data_desc=[code];
+      data_asc=[];
+      $("th[code]").removeClass("asc desc");
+      $(this).addClass("desc");
+    }else{
+      data_desc=[];
+      data_asc=[code];
+      $("th[code]").removeClass("asc desc");
+      $(this).addClass("asc");
+    }
+    getTabData(1);
+    // console.log(code)
+});
+function getTabData(activePage){
+    const param = {
+        current:activePage,
+        type: isReject,
+        name: name, //条目名
+        doctorName:"",
+        casesName:deptId,
+        deptName:deptName||"",
+        casesId:casesIds||"",
+        globalType:1,
+        ascs:data_asc,
+        descs:data_desc,
+        size: 15
+    }
+    post(api.entryCountGroupByEntryPage,param).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data.records
+            const totalPage = res.data.data.pages
+            const totalNum = res.data.data.total
+            renderTab(data,activePage)
+            if(totalPage > 1){
+                renderPagination(totalPage,Number(activePage),totalNum)
+            } else{
+                $('.pagination').html("")
+            }
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+//所有数据切换日期筛选
+function dateChange(){
+    $(".monthYear .mon").click(function(){
+        $(this).css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        isReject = 1
+        isRejectTemp = 1
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        isReject = 2
+        isRejectTemp = 2
+        getTabData(1)
+    })
+}
+//判断有无某一权限
+function hasData(data){
+    let lis = JSON.parse(getCookie("codeLis"))||[]
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+}
+
+$(".moduleItemInp").on("input", function(e){
+    const val = $(this).val().trim()
+    nameTemp = val
+})
+$(".filter").on("click", function(e){
+    casesId=casesIdTemp, name=nameTemp, isReject =isRejectTemp, isUsed =isUsedTemp,deptId = deptIdTemp
+    getTabData(1)
+})
+$(".filterclear").on("click", function(e){
+    nameTemp = ""
+    $(".moduleItemInp").val("")
+})
+$('.selectModuleType').on("click", function(e){
+    e.stopPropagation()
+    $(".rejectList ").css("display","none")
+    $(".usedList ").css("display", "none")
+    $(".selectReject .arrow").attr("src",iconDown)
+    $(".selectUsed .arrow").attr("src",iconDown)
+    const showList =  $(".moduleTypeList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".moduleTypeList ").css("display","block")
+        $(".selectModuleType .arrow").attr("src",iconUp)
+    }else{
+        $(".moduleTypeList ").css("display", "none")
+        $(".selectModuleType .arrow").attr("src",iconDown)
+    }
+})
+$('.selectReject').on("click", function(e){
+    e.stopPropagation()
+    $(".moduleTypeList ").css("display", "none")
+    $(".usedList ").css("display", "none")
+    $(".selectModuleType .arrow").attr("src",iconDown)
+    $(".selectUsed .arrow").attr("src",iconDown)
+    const showList =  $(".rejectList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".rejectList ").css("display","block")
+        $(".selectUsed .arrow").attr("src",iconUp)
+    }else{
+        $(".rejectList ").css("display", "none")
+        $(".selectUsed .arrow").attr("src",iconDown)
+    }
+})
+$('.selectUsed').on("click", function(e){
+    e.stopPropagation()
+    $(".moduleTypeList ").css("display", "none")
+    $(".rejectList ").css("display","none")
+    $(".selectModuleType .arrow").attr("src",iconDown)
+    $(".selectReject .arrow").attr("src",iconDown)
+    const showList =  $(".usedList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".usedList ").css("display","block")
+        $(".selectUsed .arrow").attr("src",iconUp)
+    }else{
+        $(".usedList ").css("display", "none")
+        $(".selectUsed .arrow").attr("src",iconDown)
+    }
+})
+// bindRejectSelect()
+// bindUsedSelect()
+// getTabData(1)
+// getmoduleTypeList()
+function renderTab(data,activePage){
+    let str = ``;
+    const cls = hasData("FUNC000007")?"editItem":"editItemDis";
+    for(let i = 0; i < data.length; i++){
+        const item = data[i]
+        str += `
+            <tr data-id=${item.id} data-index=${i}>
+                <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
+                <td>${item.name}</td>
+                <td class="textCenter">${item.num}</td>
+                <td  class="textCenter">${item.percentStr}</td>
+            </tr>
+        `
+    }
+    $('tbody').html(str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
+        <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
+        <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
+    </td></tr>`)
+    bindEdit(data,activePage)
+}
+
+function bindEdit(data,activePage){
+    if(!hasData('FUNC000007')){
+        return
+    }
+    $('.editItem').click(function(e){
+        const index = $(this).parent().attr('data-index') 
+        editItem(data[index],activePage)
+    })
+}
+
+//修改
+function editItem(item,activePage){
+    const itemCpoy = JSON.parse(JSON.stringify(item))
+    $('.pop-box').remove()
+    $('.container').append('<div class="pop-box"></div>')
+    const str = `
+        <div class="itemMsgBox">
+            <div class="mask"></div>
+            <div class="itemMsgContent">
+                <p class="itemMsgTitle">修改 <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></p>
+                <div class="itemMsgContentBox">
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">模块名称:</span> <span class="itemInfoRight">${itemCpoy.casesName}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">条目名称:</span> <span class="itemInfoRight"> ${itemCpoy.name}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">提示信息:</span> <span class="itemInfoRight"> <input class="itemTipMsg" value="${itemCpoy.msg}" /></span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">
+                        分值:
+                        </span> <span class="itemInfoRight"> 
+                            <input class="itemScore" type="number" min="0" value=${itemCpoy.score} />
+                        </span>
+                        <p class="itemMsgInfoTips">支持≥0的数字输入,最多保留小数点后1位~</p>
+                    </div>
+                 
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">单项否决:</span><span class="itemInfoRight itemReject">${item.isReject == '1' ? `<img class="switchImg" src=${switchIconOpen} /><span class="imgInfo">  是</span>`:`<img class="switchImg" src=${switchIconClose} /> <span class="imgInfo"> 否</span>`}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">启用:</span><span class=" temInfoRight itemUsed">${item.isUsed == '1' ? `<img class="switchImg" src=${switchIconOpen} /><span class="imgInfo"> 是</span>`:`<img class="switchImg" src=${switchIconClose} /> <span class="imgInfo"> 否</span>`}</span></div>
+                </div>
+                
+                <div class="confirmEditBox"><span class="confirmEdit">保存</span></div>
+            </div>
+        </div>
+       
+    `
+    $("#mainBox", parent.document).append(str)
+    $("#mainBox .itemMsgBox .iconClose", parent.document).on("click", function(e){
+        $("#mainBox .itemMsgBox", parent.document).remove()
+    })
+    $("#mainBox .itemMsgBox .itemTipMsg", parent.document).on("input", function(e){
+        const val = $(this).val().trim()
+        itemCpoy.msg = val
+    })
+    $("#mainBox .itemMsgBox .itemScore", parent.document).on("keypress", function(e){
+        return (/[0-9\.]/.test(String.fromCharCode(e.keyCode)))
+    })
+    $("#mainBox .itemMsgBox .itemScore", parent.document).on("input", function(e){
+        const val = $(this).val()
+        itemCpoy.score = val
+    })
+    $("#mainBox .itemMsgBox .itemReject", parent.document).on("click", function(e){
+        itemCpoy.isReject = itemCpoy.isReject == 1 ? 0 : 1
+        $('#mainBox .itemMsgBox', parent.document).remove()
+        editItem(itemCpoy,activePage)
+    })
+    $("#mainBox .itemMsgBox .itemUsed", parent.document).on("click", function(e){
+        itemCpoy.isUsed = itemCpoy.isUsed == 1 ? 0 : 1
+        $('#mainBox .itemMsgBox', parent.document).remove()
+        editItem(itemCpoy,activePage)
+    })
+    
+    $("#mainBox .itemMsgBox .confirmEdit", parent.document).on("click", function(){
+        var reg = new RegExp(/^\d+(\.\d)?$/);
+        if(reg.test(itemCpoy.score)){
+            // console.log('itemCopy', itemCpoy)
+            if(!itemCpoy.msg.trim()){
+                $.alerModal({"message":"提示信息不能为空~",type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+                return 
+            }
+            
+            saveEdit(itemCpoy,activePage)
+            $("#mainBox .itemMsgBox .itemMsgInfoTips", parent.document).css("display","none")
+            $('#mainBox .itemMsgBox', parent.document).remove()
+            return 
+        }else{
+            $("#mainBox .itemMsgBox .itemMsgInfoTips", parent.document).css("display","block")
+            
+            return
+        }
+      
+    })
+   
+    
+}
+
+//保存修改
+function saveEdit(item,activePage){
+    const param = {
+        id: item.id,
+        isReject: item.isReject,
+        isUsed: item.isUsed,
+        msg: item.msg,
+        score: item.score
+    }
+
+    post(api.updataQcCasesEntry,param).then(res =>{
+        if(res.data.code == '0'){
+            // const data = res.data.data
+            $.alerModal({"message":"修改成功",type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            getTabData(activePage)
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+
+//获取模块类型
+function getmoduleTypeList(){
+    post(api.getQcCasesAll).then(res =>{
+        if(res.data.code == '0'){
+           const  moduleTypeList = res.data.data
+           renderModuleTypeList(moduleTypeList)
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+
+
+function renderModuleTypeList(moduleTypeList){
+    let str = `<li class="modeTypeItem " data-id=" " data-name="全部">全部</li>`
+    for(let i = 0; i < moduleTypeList.length; i++){
+        str += `<li class="modeTypeItem ellipsis" title=${moduleTypeList[i].name} data-id=${moduleTypeList[i].id} data-name=${moduleTypeList[i].name}> ${moduleTypeList[i].name}</li>`
+    }
+    $('.moduleTypeList').html(str)
+    bindModuleTypeSelect()
+}
+
+//模块类型选择
+function bindModuleTypeSelect(){
+    $('.modeTypeItem').on("click",function(){
+        const modeTypeItemName = $(this).attr("data-name")
+        const modeTypeItemId = $(this).attr("data-id")
+        casesIdTemp =modeTypeItemId
+        $('.selectModuleType').html(modeTypeItemName).attr("title",modeTypeItemName)
+        $(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".moduleTypeList ").css("display", "none")
+    })
+}
+//单项否决选择
+function bindRejectSelect(){
+    $('.rejectItem').on("click",function(){
+        const rejectItemName = $(this).attr("data-name")
+        const rejectItemId = $(this).attr("data-id")
+        isRejectTemp=rejectItemId
+        $('.selectReject').html(rejectItemName)
+        $(".rejectList ").css("display", "none")
+        $(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+    })
+}
+//是否启用选择
+function bindUsedSelect(){
+    $('.usedItem').on("click",function(){
+        const usedItemName = $(this).attr("data-name")
+        const usedItemItemId = $(this).attr("data-id")
+        isUsedTemp =usedItemItemId
+        $('.selectUsed').html(usedItemName)
+        $(".usedList").css("display", "none")
+        $(".selectUsed").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    })
+}
+
+
+
+
+//分页渲染
+function renderPagination(totalPage,activePage,totalNum){
+    let str = `<span class="totalSum">共${totalPage}页/${totalNum}条数据</span><span class="prePage"><img class="arrowPage" src=${arrowLeft} /></span>`
+    if(totalPage <= 6){
+        for(let i = 1; i <= totalPage; i++){
+            str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
+        }
+    }else{
+        if(activePage <= 3){ //选中页数小于4
+            for(let i = 1; i <= 4; i++){
+                str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
+            }
+            str += `<span class="more" >...</span>`
+        str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+
+        } else if(activePage > totalPage -3){
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-3)}" data-page=${totalPage -3}>${totalPage -3}</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-2)}" data-page=${totalPage -2}>${totalPage -2}</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-1)}" data-page=${totalPage -1}>${totalPage -1}</span>`
+            str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        } else {
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+(activePage -1)}" data-page=${activePage -1}>${activePage -1}</span>`
+            str += `<span class="pageNum ${'page'+activePage}" data-page=${activePage}>${activePage}</span>`
+            str += `<span class="pageNum ${'page'+(activePage +1)}" data-page=${activePage +1}>${activePage +1}</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        }
+       
+    }
+    str += `<span class="nextPage"><img class="arrowPage" src=${arrowRight} /></span>`
+    $('.pagination').html(str)
+    $('.page' + activePage).addClass('activePage')
+    $(".pageNum").on("click", function(e){
+        const activePageNow = Number($(this).attr('data-page'))
+        getTabData(activePageNow)
+        // renderPagination(totalPage,activePageNow,totalNum)
+    })
+    $(".prePage").on("click", function(e){
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if(activePageNow > 1){
+            activePageNow--
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    $(".nextPage").on("click", function(e){
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if(activePageNow < totalPage){
+            activePageNow++
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    
+}
+
+$(document).on("click", function(){
+    $(".moduleTypeList ").css("display", "none")
+    $(".rejectList ").css("display","none")
+    $(".usedList ").css("display", "none")
+    $(".selectModuleType .arrow").attr("src",iconDown)
+    $(".selectReject .arrow").attr("src",iconDown)
+    $(".selectUsed .arrow").attr("src",iconDown)
+})

+ 543 - 0
src/js/quexianDetailHome.js

@@ -0,0 +1,543 @@
+const $ = require('jquery');
+require("../css/quexianDetailHome.less");
+require('./../resource/jquery-ui/jquery-ui.min.js');
+require('./modal.js');
+const {api} = require('./api.js')
+const {post,getCookie,getUrlArgObjectNew} = require('./utils.js')
+const switchIconOpen = require("./../images/btn_open.png")
+const switchIconClose = require("./../images/btn_close.png")
+const iconDown= require("./../images/arrow_down.png")
+const iconUp = require("./../images/arrow_up.png")
+const arrowLeft= require("./../images/arrow_left.png")
+const arrowRight = require("./../images/arrow_right.png")
+
+
+let casesId="", name="", isReject ="2",deptName="", isUsed ="",casesIdTemp="", data_asc=[],data_desc=["casesName"],nameTemp="",casesIds="", isRejectTemp ="2", isUsedTemp ="",from="",deptIdTemp="",deptItemId="",deptId=""
+$(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectUsed").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+$(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+let deptList = JSON.parse(getCookie("deptList"))||[]
+$(function(){
+    dateChange()
+    let srcUrl = $("#contentIframe",parent.document).attr("src")
+    deptName = getUrlArgObjectNew("deptName",srcUrl)||""
+    deptId = deptIdTemp = getUrlArgObjectNew("chengdu",srcUrl)||""
+    docName = getUrlArgObjectNew("docName",srcUrl)||""
+    casesIds = getUrlArgObjectNew("casesId",srcUrl)||""
+    isReject= isRejectTemp= getUrlArgObjectNew("shijian",srcUrl)||"2"
+    if(isReject == 1){
+        $(".monthYear .mon").css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+    }else{
+        $(".monthYear .year").css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+    }
+    getTabData(1)//条目缺陷    
+    from = getUrlArgObjectNew("from",srcUrl)||""
+    if(from == 1){
+        $(".partTitle .titlePic ").html(`<a class="consoleD" href="deptConsole.html">控制台(科室) / </a><a class="consoleP" href="partDetail.html">病案首页合格率占比 / </a>缺陷详情`)
+        $(".partTitle .consoleD").click(function(){
+            focusMenuItem('YH-KZTKS')
+            $(".container",parent.document).addClass("console-cont");
+        })
+        $(".partTitle .consoleP").click(function(){
+            focusMenuItem('YH-KSZR-BASYHGLZB_XQ')
+        })
+    }else{
+        $(".partTitle .titlePic ").html(`<a class="consoleD" href="console.html">控制台(科室) / </a><a class="consoleP" href="deptScoreDetail.html">各科室缺陷占比 / </a>缺陷详情`)
+        $(".partTitle .consoleD").click(function(){
+            focusMenuItem('YH-KZT')
+            $(".container",parent.document).addClass("console-cont");
+        })
+        $(".partTitle .consoleP").click(function(){
+            focusMenuItem('YH-KSZR-KSQXZB_XQ')
+        })
+    }
+    $(".abnormalClear").click(function(){
+        name = ""
+        $(".patientNumInp").val("")
+        getTabData(1)
+    })
+    // getMolist()
+})
+function getMolist(){
+    post(api.getQcCases).then(res =>{
+        if(res.data.code == '0'){
+            data = res.data.data
+            deptList = data
+            getDeptList()
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+function focusMenuItem(code){
+    const ele = $(parent.document).find(".menu .page[code="+code+"]");
+    const parEle = ele.parents(".list-1");
+    if(!parEle.is(".list-1-show")){
+      parEle.click();
+    }
+    //console.log($(parent.document).find(".menu .page[code='YH-ZKK-GMKQXZB_XQ']"))
+    ele.click();
+  }
+bindDeptSelect()
+//科室选择
+function bindDeptSelect(){
+    $(document).on("click",'.deptItem',function(){
+        const deptItemName = $(this).attr("data-name")
+        const deptItemId = $(this).attr("data-id")
+        deptIdTemp=deptId =deptItemId
+        if(deptItemName.length > 10){
+            $('.selectDept').html(deptItemName.substring(0,8)+'...')
+        }else{
+            $('.selectDept').html(deptItemName)
+        }
+        $('.selectDept ').attr('title',deptItemName)
+        $(".selectDept").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".deptList").css("display", "none")
+    })
+}
+//全选绑定
+
+$('.selectDept').on("click", function(e){
+    e.stopPropagation()
+    $(".levelList ").css("display","none")
+    $(".selectLevel .arrow").attr("src",iconDown)
+    const showList =  $(".deptList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".deptList ").css("display","block")
+        $(".selectDept .arrow").attr("src",iconUp)
+    }else{
+        $(".deptList ").css("display", "none")
+        $(".selectDept .arrow").attr("src",iconDown)
+    }
+})
+
+//科室处理
+getDeptList()
+function getDeptList(){
+    let str = ``
+    if(deptList.length<=0)return
+    $(".tiaomu .selectDept ").attr("data-id",deptList[0].deptName).find("i").html(deptList[0].deptName)
+    for(let i = 0;i < deptList.length;i++){
+        let tmp = deptList[i]
+        str += `<li class="deptItem ellipsis" title="${tmp.name}" data-id="${tmp.name}" data-name="${tmp.name}">${tmp.name}</li>`
+    }
+    $(".quexianDetail .filterDropList").html('<li class="deptItem ellipsis" title="" data-id="" data-id="" data-name="全部">全部</li>'+str)
+}
+$("th[code]").on("click",function(e){
+    const code=$(this).attr("code");
+    if(data_asc[0]===code){
+      data_desc=[code];
+      data_asc=[];
+      $("th[code]").removeClass("asc desc");
+      $(this).addClass("desc");
+    }else{
+      data_desc=[];
+      data_asc=[code];
+      $("th[code]").removeClass("asc desc");
+      $(this).addClass("asc");
+    }
+    getTabData(1);
+    // console.log(code)
+});
+function getTabData(activePage){
+    const param = {
+        current:activePage,
+        type: isReject,
+        name: name, //条目名
+        doctorName:docName||"",
+        deptName:deptName||"",
+        casesName:deptId||"",
+        casesId:casesIds||"",
+        ascs:data_asc,
+        descs:data_desc,
+        size: 15
+    }
+    post(api.entryCountGroupByEntryAndDeptPage,param).then(res =>{
+        if(res.data.code == '0'){
+            const data = res.data.data.records
+            const totalPage = res.data.data.pages
+            const totalNum = res.data.data.total
+            renderTab(data,activePage)
+            if(totalPage > 1){
+                renderPagination(totalPage,Number(activePage),totalNum)
+            } else{
+                $('.pagination').html("")
+            }
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+//所有数据切换日期筛选
+function dateChange(){
+    $(".monthYear .mon").click(function(){
+        $(this).css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        isReject = 1
+        isRejectTemp = 1
+        getTabData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#00A1FF',
+            color:'#fff'
+        }).siblings().css({
+            color:'#00A1FF',
+            backgroundColor:'#fff'
+        })
+        isReject = 2
+        isRejectTemp = 2
+        getTabData(1)
+    })
+}
+//判断有无某一权限
+function hasData(data){
+    let lis = JSON.parse(getCookie("codeLis"))||[]
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+}
+
+$(".moduleItemInp").on("input", function(e){
+    const val = $(this).val().trim()
+    nameTemp = val
+})
+$(".filter").on("click", function(e){
+    casesId=casesIdTemp, name=nameTemp, isReject =isRejectTemp, isUsed =isUsedTemp,deptId = deptIdTemp
+    getTabData(1)
+})
+$(".filterclear").on("click", function(e){
+    nameTemp = ""
+    $(".moduleItemInp").val("")
+})
+$('.selectModuleType').on("click", function(e){
+    e.stopPropagation()
+    $(".rejectList ").css("display","none")
+    $(".usedList ").css("display", "none")
+    $(".selectReject .arrow").attr("src",iconDown)
+    $(".selectUsed .arrow").attr("src",iconDown)
+    const showList =  $(".moduleTypeList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".moduleTypeList ").css("display","block")
+        $(".selectModuleType .arrow").attr("src",iconUp)
+    }else{
+        $(".moduleTypeList ").css("display", "none")
+        $(".selectModuleType .arrow").attr("src",iconDown)
+    }
+})
+$('.selectReject').on("click", function(e){
+    e.stopPropagation()
+    $(".moduleTypeList ").css("display", "none")
+    $(".usedList ").css("display", "none")
+    $(".selectModuleType .arrow").attr("src",iconDown)
+    $(".selectUsed .arrow").attr("src",iconDown)
+    const showList =  $(".rejectList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".rejectList ").css("display","block")
+        $(".selectUsed .arrow").attr("src",iconUp)
+    }else{
+        $(".rejectList ").css("display", "none")
+        $(".selectUsed .arrow").attr("src",iconDown)
+    }
+})
+$('.selectUsed').on("click", function(e){
+    e.stopPropagation()
+    $(".moduleTypeList ").css("display", "none")
+    $(".rejectList ").css("display","none")
+    $(".selectModuleType .arrow").attr("src",iconDown)
+    $(".selectReject .arrow").attr("src",iconDown)
+    const showList =  $(".usedList ").css("display")
+    if(showList == "none" ||!showList){
+        $(".usedList ").css("display","block")
+        $(".selectUsed .arrow").attr("src",iconUp)
+    }else{
+        $(".usedList ").css("display", "none")
+        $(".selectUsed .arrow").attr("src",iconDown)
+    }
+})
+// bindRejectSelect()
+// bindUsedSelect()
+// getTabData(1)
+// getmoduleTypeList()
+function renderTab(data,activePage){
+    let str = ``;
+    const cls = hasData("FUNC000007")?"editItem":"editItemDis";
+    for(let i = 0; i < data.length; i++){
+        const item = data[i]
+        str += `
+            <tr data-id=${item.id} data-index=${i}>
+                <td  class="textCenter">${(activePage-1)*15 + i+1}</td>
+                <td>${item.name}</td>
+                <td class="textCenter">${item.num}</td>
+                <td  class="textCenter">${item.percentStr}</td>
+            </tr>
+        `
+    }
+    $('tbody').html(str?str:`<tr><td colspan="17" style="text-align: center;color: #aaa">
+        <img style="margin-top:50px;width:100px;" src="${require('../images/empty.png')}" />
+        <p style="margin-top:20px;margin-bottom:30px;color:#ccc;position:relative;left:5px;">暂无数据~</p>
+    </td></tr>`)
+    bindEdit(data,activePage)
+}
+
+function bindEdit(data,activePage){
+    if(!hasData('FUNC000007')){
+        return
+    }
+    $('.editItem').click(function(e){
+        const index = $(this).parent().attr('data-index') 
+        editItem(data[index],activePage)
+    })
+}
+
+//修改
+function editItem(item,activePage){
+    const itemCpoy = JSON.parse(JSON.stringify(item))
+    $('.pop-box').remove()
+    $('.container').append('<div class="pop-box"></div>')
+    const str = `
+        <div class="itemMsgBox">
+            <div class="mask"></div>
+            <div class="itemMsgContent">
+                <p class="itemMsgTitle">修改 <img class="iconClose" src=${require('./../images/icon_close_default.png')} alt="关闭" /></p>
+                <div class="itemMsgContentBox">
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">模块名称:</span> <span class="itemInfoRight">${itemCpoy.casesName}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">条目名称:</span> <span class="itemInfoRight"> ${itemCpoy.name}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">提示信息:</span> <span class="itemInfoRight"> <input class="itemTipMsg" value="${itemCpoy.msg}" /></span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">
+                        分值:
+                        </span> <span class="itemInfoRight"> 
+                            <input class="itemScore" type="number" min="0" value=${itemCpoy.score} />
+                        </span>
+                        <p class="itemMsgInfoTips">支持≥0的数字输入,最多保留小数点后1位~</p>
+                    </div>
+                 
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">单项否决:</span><span class="itemInfoRight itemReject">${item.isReject == '1' ? `<img class="switchImg" src=${switchIconOpen} /><span class="imgInfo">  是</span>`:`<img class="switchImg" src=${switchIconClose} /> <span class="imgInfo"> 否</span>`}</span></div>
+                    <div class="itemMsgInfoBox"><span class="itemMsgLab">启用:</span><span class=" temInfoRight itemUsed">${item.isUsed == '1' ? `<img class="switchImg" src=${switchIconOpen} /><span class="imgInfo"> 是</span>`:`<img class="switchImg" src=${switchIconClose} /> <span class="imgInfo"> 否</span>`}</span></div>
+                </div>
+                
+                <div class="confirmEditBox"><span class="confirmEdit">保存</span></div>
+            </div>
+        </div>
+       
+    `
+    $("#mainBox", parent.document).append(str)
+    $("#mainBox .itemMsgBox .iconClose", parent.document).on("click", function(e){
+        $("#mainBox .itemMsgBox", parent.document).remove()
+    })
+    $("#mainBox .itemMsgBox .itemTipMsg", parent.document).on("input", function(e){
+        const val = $(this).val().trim()
+        itemCpoy.msg = val
+    })
+    $("#mainBox .itemMsgBox .itemScore", parent.document).on("keypress", function(e){
+        return (/[0-9\.]/.test(String.fromCharCode(e.keyCode)))
+    })
+    $("#mainBox .itemMsgBox .itemScore", parent.document).on("input", function(e){
+        const val = $(this).val()
+        itemCpoy.score = val
+    })
+    $("#mainBox .itemMsgBox .itemReject", parent.document).on("click", function(e){
+        itemCpoy.isReject = itemCpoy.isReject == 1 ? 0 : 1
+        $('#mainBox .itemMsgBox', parent.document).remove()
+        editItem(itemCpoy,activePage)
+    })
+    $("#mainBox .itemMsgBox .itemUsed", parent.document).on("click", function(e){
+        itemCpoy.isUsed = itemCpoy.isUsed == 1 ? 0 : 1
+        $('#mainBox .itemMsgBox', parent.document).remove()
+        editItem(itemCpoy,activePage)
+    })
+    
+    $("#mainBox .itemMsgBox .confirmEdit", parent.document).on("click", function(){
+        var reg = new RegExp(/^\d+(\.\d)?$/);
+        if(reg.test(itemCpoy.score)){
+            // console.log('itemCopy', itemCpoy)
+            if(!itemCpoy.msg.trim()){
+                $.alerModal({"message":"提示信息不能为空~",type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+                return 
+            }
+            
+            saveEdit(itemCpoy,activePage)
+            $("#mainBox .itemMsgBox .itemMsgInfoTips", parent.document).css("display","none")
+            $('#mainBox .itemMsgBox', parent.document).remove()
+            return 
+        }else{
+            $("#mainBox .itemMsgBox .itemMsgInfoTips", parent.document).css("display","block")
+            
+            return
+        }
+      
+    })
+   
+    
+}
+
+//保存修改
+function saveEdit(item,activePage){
+    const param = {
+        id: item.id,
+        isReject: item.isReject,
+        isUsed: item.isUsed,
+        msg: item.msg,
+        score: item.score
+    }
+
+    post(api.updataQcCasesEntry,param).then(res =>{
+        if(res.data.code == '0'){
+            // const data = res.data.data
+            $.alerModal({"message":"修改成功",type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
+            getTabData(activePage)
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+
+//获取模块类型
+function getmoduleTypeList(){
+    post(api.getQcCasesAll).then(res =>{
+        if(res.data.code == '0'){
+           const  moduleTypeList = res.data.data
+           renderModuleTypeList(moduleTypeList)
+        }else{}
+    }).catch((e) =>{
+    
+    })
+}
+
+
+function renderModuleTypeList(moduleTypeList){
+    let str = `<li class="modeTypeItem " data-id=" " data-name="全部">全部</li>`
+    for(let i = 0; i < moduleTypeList.length; i++){
+        str += `<li class="modeTypeItem ellipsis" title=${moduleTypeList[i].name} data-id=${moduleTypeList[i].id} data-name=${moduleTypeList[i].name}> ${moduleTypeList[i].name}</li>`
+    }
+    $('.moduleTypeList').html(str)
+    bindModuleTypeSelect()
+}
+
+//模块类型选择
+function bindModuleTypeSelect(){
+    $('.modeTypeItem').on("click",function(){
+        const modeTypeItemName = $(this).attr("data-name")
+        const modeTypeItemId = $(this).attr("data-id")
+        casesIdTemp =modeTypeItemId
+        $('.selectModuleType').html(modeTypeItemName).attr("title",modeTypeItemName)
+        $(".selectModuleType").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+        $(".moduleTypeList ").css("display", "none")
+    })
+}
+//单项否决选择
+function bindRejectSelect(){
+    $('.rejectItem').on("click",function(){
+        const rejectItemName = $(this).attr("data-name")
+        const rejectItemId = $(this).attr("data-id")
+        isRejectTemp=rejectItemId
+        $('.selectReject').html(rejectItemName)
+        $(".rejectList ").css("display", "none")
+        $(".selectReject").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+
+    })
+}
+//是否启用选择
+function bindUsedSelect(){
+    $('.usedItem').on("click",function(){
+        const usedItemName = $(this).attr("data-name")
+        const usedItemItemId = $(this).attr("data-id")
+        isUsedTemp =usedItemItemId
+        $('.selectUsed').html(usedItemName)
+        $(".usedList").css("display", "none")
+        $(".selectUsed").append(`<img class="arrow" src=${iconDown} alt="下拉">`)
+    })
+}
+
+
+
+
+//分页渲染
+function renderPagination(totalPage,activePage,totalNum){
+    let str = `<span class="totalSum">共${totalPage}页/${totalNum}条数据</span><span class="prePage"><img class="arrowPage" src=${arrowLeft} /></span>`
+    if(totalPage <= 6){
+        for(let i = 1; i <= totalPage; i++){
+            str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
+        }
+    }else{
+        if(activePage <= 3){ //选中页数小于4
+            for(let i = 1; i <= 4; i++){
+                str += `<span class="pageNum ${'page'+i}" data-page=${i}>${i}</span>`
+            }
+            str += `<span class="more" >...</span>`
+        str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+
+        } else if(activePage > totalPage -3){
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-3)}" data-page=${totalPage -3}>${totalPage -3}</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-2)}" data-page=${totalPage -2}>${totalPage -2}</span>`
+            str += `<span class="pageNum ${'page'+(totalPage-1)}" data-page=${totalPage -1}>${totalPage -1}</span>`
+            str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        } else {
+            str += `<span class="pageNum page1" data-page=1>1</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+(activePage -1)}" data-page=${activePage -1}>${activePage -1}</span>`
+            str += `<span class="pageNum ${'page'+activePage}" data-page=${activePage}>${activePage}</span>`
+            str += `<span class="pageNum ${'page'+(activePage +1)}" data-page=${activePage +1}>${activePage +1}</span>`
+            str += `<span class="more" >...</span>`
+            str += `<span class="pageNum ${'page'+totalPage}" data-page=${totalPage}>${totalPage}</span>`
+        }
+       
+    }
+    str += `<span class="nextPage"><img class="arrowPage" src=${arrowRight} /></span>`
+    $('.pagination').html(str)
+    $('.page' + activePage).addClass('activePage')
+    $(".pageNum").on("click", function(e){
+        const activePageNow = Number($(this).attr('data-page'))
+        getTabData(activePageNow)
+        // renderPagination(totalPage,activePageNow,totalNum)
+    })
+    $(".prePage").on("click", function(e){
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if(activePageNow > 1){
+            activePageNow--
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    $(".nextPage").on("click", function(e){
+        let activePageNow = Number($(".activePage").attr('data-page'))
+        if(activePageNow < totalPage){
+            activePageNow++
+            getTabData(activePageNow)
+            // renderPagination(totalPage,activePageNow,totalNum)
+        }
+    })
+    
+}
+
+$(document).on("click", function(){
+    $(".moduleTypeList ").css("display", "none")
+    $(".rejectList ").css("display","none")
+    $(".usedList ").css("display", "none")
+    $(".selectModuleType .arrow").attr("src",iconDown)
+    $(".selectReject .arrow").attr("src",iconDown)
+    $(".selectUsed .arrow").attr("src",iconDown)
+})

+ 1 - 1
src/js/tiaomu.js

@@ -140,7 +140,7 @@ function getTabData(activePage){
         size: 15
     }
     // console.log(isReject)
-    post(from == 1?api.entryCountGroupByEntryPage:api.entryCountGroupByEntryAndDeptPage,param).then(res =>{
+    post(from == 1?api.entryCountGroupByEntryPage:api.entryGroupByEntryAndDeptInnerPage,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data.records
             const totalPage = res.data.data.pages

+ 1 - 1
src/js/tiaomuControl.js

@@ -111,7 +111,7 @@ function getTabData(activePage){
         size: 15
     }
     // console.log(isReject)
-    post(from == 1?api.entryCountGroupByEntryPage:api.entryCountGroupByEntryAndDeptPage,param).then(res =>{
+    post(from == 1?api.entryGroupByEntryInnerPage:api.entryCountGroupByEntryAndDeptPage,param).then(res =>{
         if(res.data.code == '0'){
             const data = res.data.data.records
             const totalPage = res.data.data.pages

+ 28 - 0
webpack.config.js

@@ -37,6 +37,8 @@ module.exports = {
     quexianXQ: path.resolve(__dirname, 'src/js', 'quexianXQ.js'),
     quexianDetail: path.resolve(__dirname, 'src/js', 'quexianDetail.js'),
     quexianDetailControl: path.resolve(__dirname, 'src/js', 'quexianDetailControl.js'),
+    quexianDetailHome: path.resolve(__dirname, 'src/js', 'quexianDetailHome.js'),
+    quexianDetailControlHome: path.resolve(__dirname, 'src/js', 'quexianDetailControlHome.js'),
     mukuaiControl: path.resolve(__dirname, 'src/js', 'mukuaiControl.js'),
     tiaomuControl: path.resolve(__dirname, 'src/js', 'tiaomuControl.js'),
     assertType: path.resolve(__dirname, 'src/js', 'assertType.js'),
@@ -144,6 +146,19 @@ module.exports = {
         collapseWhitespace: true //删除空白符与换行符
       }
     }),
+    new HtmlWebpackPlugin({
+      title: 'quexianDetailHome.html',
+      template: path.resolve(__dirname, 'src/html', 'quexianDetailHome.html'),
+      filename: 'quexianDetailHome.html',
+      chunks: ['quexianDetailHome', 'vendor', 'common'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
     new HtmlWebpackPlugin({
       title: 'quexianDetailControl.html',
       template: path.resolve(__dirname, 'src/html', 'quexianDetailControl.html'),
@@ -157,6 +172,19 @@ module.exports = {
         collapseWhitespace: true //删除空白符与换行符
       }
     }),
+    new HtmlWebpackPlugin({
+      title: 'quexianDetailControlHome.html',
+      template: path.resolve(__dirname, 'src/html', 'quexianDetailControlHome.html'),
+      filename: 'quexianDetailControlHome.html',
+      chunks: ['quexianDetailControlHome', 'vendor', 'common'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
     new HtmlWebpackPlugin({
       title: 'quexianXQ.html',
       template: path.resolve(__dirname, 'src/html', 'quexianXQ.html'),