luolei il y a 4 ans
Parent
commit
a2fe8b599d
7 fichiers modifiés avec 1130 ajouts et 8 suppressions
  1. 371 0
      src/css/nursing.less
  2. 1 1
      src/css/qcScore.less
  3. 53 0
      src/html/nursing.html
  4. 1 0
      src/html/qcScore.html
  5. 676 0
      src/js/nursing.js
  6. 12 5
      src/js/qcScore.js
  7. 16 2
      webpack.config.js

+ 371 - 0
src/css/nursing.less

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

+ 1 - 1
src/css/qcScore.less

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

+ 53 - 0
src/html/nursing.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 singleVeto nursingWrp">
+        <div class="partTitle">
+            护理信息
+        </div>
+        <div class="partTitleT"></div>
+        <div class="main-body">
+            <div class="filterBox">
+                <span class="filterItem">
+                    <span>体征名称:</span>
+                    <span class="">
+                        <input class="moduleItemInps" type="text" placeholder="请输入体征名称">
+                    </span>
+                </span>
+                
+                <span class="filterItem typeFilter clearfix dataSelectLight">
+                    <span class="fl">测量时间:</span>
+                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker" autocomplete="off" readonly/></span>
+                    <span  class="divide fl">-</span>
+                    <span class="datapickerBox fl"><input type="text" placeholder="请选择时间" id="datepicker2"  autocomplete="off" readonly/></span>
+                </span>
+                <span class="filter">查询</span>
+                <span class="filterclear abnormalClear">重置</span>
+                <span class="export">导出</span>
+            </div>
+            <table>
+                <thead>
+                    <th class="moduleName" style="width: 65px;">序号</th>
+                    <th class="moduleItemName">体征名称</th>
+                    <th class="moduleItemName">体征数值</th>
+                    <th class="moduleItemName">测量时间</th>
+                </thead>
+                <tbody class="tbody">
+
+                </tbody>
+            </table>
+            <div class="pagination"></div>
+        </div>
+    </div>
+</body>
+
+</html>

+ 1 - 0
src/html/qcScore.html

@@ -325,6 +325,7 @@
             <div class="patient-info" id="patientInfo"></div>
             <p id="loading">加载中,请稍候 ...</p>
             <div class="flaw-table">
+                <iframe src="./nursing.html" frameborder="0" id="contentNursing" name="contentNursing" style="display: none;"></iframe>
                 <iframe src="./advice.html" frameborder="0" id="contentIframeIn" name="contentIframeIn" style="display: none;"></iframe>
                 <iframe src="./pacs.html" frameborder="0" id="pacsIframeIn" name="pacsIframeIn" style="display: none;"></iframe>
                 <iframe src="./assist.html" frameborder="0" id="assistIframeIn" name="assistIframeIn" style="display: none;"></iframe>

+ 676 - 0
src/js/nursing.js

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

+ 12 - 5
src/js/qcScore.js

@@ -72,7 +72,7 @@ function initMenu(data){
     }else{
       $(".check").css('display','block').text(global_check==1?'重新核查':'病历核查')
     }
-    if(title==="缺陷总览"||title==="谈话告知书"||title==="知情同意书"||title === '医嘱信息'||title === '检验信息'||title === '检查信息'){
+    if(title==="缺陷总览"||title==="谈话告知书"||title==="知情同意书"||title === '医嘱信息'||title === '检验信息'||title === '检查信息'||title === '护理信息'){
       if(title==="缺陷总览"){
         getRecordDetailUpdate()
       }
@@ -99,26 +99,33 @@ function initMenu(data){
   // initScroll("subMenu","Y",2)
 }
 function iframeShow(title){
+  console.log(title)
   if(title === '医嘱信息'){
-    $("#pacsIframeIn,#assistIframeIn,#pacsDetailIframeIn").css("display","none")
+    $("#pacsIframeIn,#assistIframeIn,#pacsDetailIframeIn,#contentNursing").css("display","none")
     $("#contentIframeIn").css({display:'block'}).attr("src",'advice.html').contents().find(".adviceWrp").height(window.innerHeight-$("#patientInfo").height()-20+'px')
     $(window).resize(function(){
       $("#contentIframeIn").contents().find(".adviceWrp").height(window.innerHeight-$("#patientInfo").height()-20+'px')
     });
   }else if(title === '检验信息'){
-    $("#contentIframeIn,#assistIframeIn,#pacsDetailIframeIn").css("display","none")
+    $("#contentIframeIn,#assistIframeIn,#pacsDetailIframeIn,#contentNursing").css("display","none")
     $("#pacsIframeIn").css({display:'block'}).attr("src",'pacs.html').contents().find(".pacsWrp").height(window.innerHeight-$("#patientInfo").height()-20+'px')
     $(window).resize(function(){
       $("#pacsIframeIn").contents().find(".pacsWrp").height(window.innerHeight-$("#patientInfo").height()-20+'px')
     });
   }else if(title === '检查信息'){
-    $("#contentIframeIn,#pacsIframeIn,#pacsDetailIframeIn").css("display","none")
+    $("#contentIframeIn,#pacsIframeIn,#pacsDetailIframeIn,#contentNursing").css("display","none")
     $("#assistIframeIn").css({display:'block'}).attr("src",'assist.html').contents().find(".assistWrp").height(window.innerHeight-$("#patientInfo").height()-20+'px')
     $(window).resize(function(){
       $("#assistIframeIn").contents().find(".assistWrp").height(window.innerHeight-$("#patientInfo").height()-20+'px')
     });
+  }else if(title === '护理信息'){
+    $("#pacsIframeIn,#assistIframeIn,#pacsDetailIframeIn,#contentIframeIn").css("display","none")
+    $("#contentNursing").css({display:'block'}).attr("src",'nursing.html').contents().find(".nursingWrp").height(window.innerHeight-$("#patientInfo").height()-20+'px')
+    $(window).resize(function(){
+      $("#contentNursing").contents().find(".nursingWrp").height(window.innerHeight-$("#patientInfo").height()-20+'px')
+    });
   }else{
-    $("#contentIframeIn,#pacsIframeIn,#pacsDetailIframeIn,#assistIframeIn").css({display:'none'})
+    $("#contentIframeIn,#pacsIframeIn,#pacsDetailIframeIn,#assistIframeIn,#contentNursing").css({display:'none'})
   }
 }
 //判断有无某一权限

+ 16 - 2
webpack.config.js

@@ -6,8 +6,8 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin');
 const CopyWebpackPlugin = require('copy-webpack-plugin');
 const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
 const webpack = require('webpack');
-// const proxyHost = "http://192.168.2.236:5858";
-const proxyHost = "http://192.168.2.241:5858";
+const proxyHost = "http://192.168.2.236:5858";
+// const proxyHost = "http://192.168.2.241:5858";
 // const proxyHost = "http://192.168.4.222:5858";
 // const proxyHost = "http://192.168.3.117:5858";//铁钢
 // const proxyHost = "http://192.168.3.113:5858";//王峰
@@ -61,6 +61,7 @@ module.exports = {
     pacsDetail:path.resolve(__dirname, 'src/js', 'pacsDetail.js'),
     assist:path.resolve(__dirname, 'src/js', 'assist.js'),
     error:path.resolve(__dirname, 'src/js', 'error.js'),
+    nursing:path.resolve(__dirname, 'src/js', 'nursing.js'),
     vendor: 'lodash',  //多个页面所需的公共库文件,防止重复打包带入
   },
   output: {
@@ -86,6 +87,19 @@ module.exports = {
         collapseWhitespace: true //删除空白符与换行符
       }
     }),
+    new HtmlWebpackPlugin({
+      title: 'nursing',
+      template: path.resolve(__dirname, 'src/html', 'nursing.html'),
+      filename: 'nursing.html',
+      chunks: ['nursing', 'vendor', 'common','scrollBar'],
+      hash: true, //防止缓存
+      inject: true,
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
     new HtmlWebpackPlugin({
       title: 'error',
       template: path.resolve(__dirname, 'src/html', 'error.html'),