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