require("../css/qcScore.less"); const $ = require('jquery'); require('jquery-templates'); require('./modal.js'); const {post,getUrlArgObject,setBoxHeight,getCookie} = require('./utils.js'); const {api} = require('./api.js'); window.document.title="质控评分-"+getUrlArgObject("name"); $(function(){ //本页全局变量 let global_flawData = {}; //缺陷数据 const global_id=getUrlArgObject("id"); const global_age = getUrlArgObject("age"); const global_code = getUrlArgObject("code"); let global_activeTab=$(".sub-menu .page.active").attr("code"); //当前激活菜单项 let global_modules ={}; //模板数据缓存 let global_flaws=[]; //缺陷条目列表缓存 let global_selectedFlaw = {}; //新增时选中的条目信息 getAllModules(); $(".add-flaw").click(function(){ getQcCasesEntry(); }); function initMenu(data){ const menu=[{id:0,name:"缺陷总览",parentId: -1,sonMode: []},...(data||[])]; //菜单数据填充 $("#subMenuTmpl").tmpl(menu).appendTo("#subMenu"); $("#miniMenuTmpl").tmpl(menu).appendTo(".menu-mini ul"); //菜单收起展开 $(".list-1").on("click",function(){ $(".list-1 .slide-up").removeClass('slide-up'); $(this).toggleClass('slide-up'); $(this).find("ul").slideToggle(); }); $(".list-1 li").on("click",function(e){ e.stopPropagation(); }); //收起菜单 $(".slide-hide").click(function(){ $(".sub-menu").animate({"width":"45px"},function(){ $(this).hide(); $(".menu-mini").show(); }); $(".tab-container").animate({"margin-left":"45px"}); }); //展开菜单 $(".slide-show").click(function(){ $(".menu-mini").hide(); $(".sub-menu").show().animate({"width":"205px"},function(){ }); $(".tab-container").animate({"margin-left":"205px"}); }); //右侧内容切换 $(".page").on("click",function(){ const title = $(this).attr("code"); if(title==="缺陷总览"||title==="谈话告知书"||title==="知情同意书"){ $(".flaw-table .page-item").hide(); $(".flaw-table,.flaw-table .page-item[code="+title+"]").show(); }else{ $(".flaw-table").hide(); } //选中样式 $(".sub-menu .active").removeClass('active'); $(this).parents(".list-1").addClass("active"); $(this).addClass("active"); //显示对应内容 const code=$(this).attr("code"); global_activeTab=code; //initModuleData(); $(".content-item,.flaw-item").hide(); $(".content-item[code='"+code+"']").show(); showFlawList(); }); } //判断有无某一权限 function hasData(data){ let trdObj = JSON.parse(getCookie("trdObj")) let lis = trdObj[global_code] if(!lis){ return false } if(lis.indexOf(data)>-1){//有权限 return true } return false; } //获取病例明细 function getRecordDetail(){ post(api.getRecordDetail,{'behospitalCode':global_id}).then(function(res){ if(res.data.code==='0'){ const data = res.data.data; const {beHospital,result,msg} = data; const info=Object.assign(beHospital,result); initMenu(JSON.parse(result.menuData)); $(".sub-menu>ul>li:first-child.page").addClass("active"); global_activeTab=$(".sub-menu .page.active").attr("code"); initPatientInfo(info); initContent(result.pageData); initList(msg); initScoreItem(msg); global_flawData=msg; setBoxHeight(); } }); } //填充患者信息 function initPatientInfo(data){ const obj=Object.assign({},data,{age:!global_age||global_age=="null"?"-":global_age}); $("#infoTmpl").tmpl(obj).appendTo("#patientInfo"); } //显示病例模块明细 function initContent(data){ const obj = JSON.parse(data); let info=[]; let hml='',moduleId=''; formatSpecPage(obj["谈话告知书"],"谈话告知书"); formatSpecPage(obj["知情同意书"],"知情同意书"); for(let k in obj){ if(k==="谈话告知书"||k==="知情同意书"){ continue; } for(let i in obj[k]){ info=formatInfoData(k,obj[k][i]); moduleId=info.mode_id; if(global_modules[moduleId]){ hml=initModuleData(moduleId,obj[k]); $.tmpl(hml,info).appendTo("#contentInfo"); }else{ const icon=require("../images/empty1.png"); const sid=moduleId?"("+moduleId+")":""; const emptyStr=`
暂无信息~
确定要删除该评分记录吗?
'); $("#delModal .confirm").click(function(){ delScore(code,info); }); } } //缺陷列表key值去掉特殊符号 function formatFlawKeys(data){ const obj = {}; for(let k in data){ obj[k.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g,'')]=data[k]; } return obj; } //获取缺陷条目下拉列表 function getQcCasesEntry(name){ const id=$("#subMenu [code="+global_activeTab+"]").attr("mode"); const param = { 'behospitalCode':global_id, 'entryName':name||"", 'modeId':id }; post(api.findQcCasesEntry,param).then(function(res){ if(res.data.code==='0'){ const data = res.data.data; if(name){ global_flaws=data; $("#delModal .modal-body ul").html(""); $("#flawDropTmpl").tmpl({info:data}).appendTo("#delModal .modal-body ul"); }else{ global_flaws=data; if($("#delModal").css("display") == "block"){ $("#flawDropTmpl").tmpl({info:data}).appendTo("#delModal .modal-body ul"); return } showModal('2',data); } } }); } //增加条目弹窗元素事件 $("body").on("click",".add-box .flaw-drop-input",function(){ $(".add-box .drop-box").addClass("show"); }); $("body").on("blur",".add-box .flaw-drop-input",function(){ setTimeout(function(){ $(".add-box .drop-box").removeClass("show"); },300) }); $("body").on("input",".add-box .flaw-drop-input",function(){ $(this).attr({"code":"","title":$(this).val().trim()}); getQcCasesEntry($(this).val().trim()); }); $("body").on("click",".add-box .drop-box li",function(){ const n = $(this).attr("idx"); const flaw=global_flaws[n]; const {score,msg,entryName,casesEntryId}=flaw; global_selectedFlaw=flaw; $(".flaw-drop-input").val(entryName).attr({"code":casesEntryId,"title":entryName}); $("#addQcMsg").val(msg).attr("title",msg); $("#addQcScore").val(score); $(".add-box .warning").hide(); $(".add-box .drop-box").removeClass("show"); }); //更新缺陷列表 function updateFlaws(info){ $("#patientInfo .level").text("质控等级:"+info.level); $("#patientInfo .score").text("质控得分:"+info.scoreRes); const param = { 'behospitalCode':global_id, 'paramStr':[ "msg" ] }; post(api.getRecordDetail,param).then(function(res){ if(res.data.code==='0'){ const data = res.data.data; const {msg} = data; initScoreItem(msg); global_flawData=msg; } }); } //获取病例模板 function getInfoModule(moduleId){ const param = { moduleId:moduleId }; post(api.getInfoModule,param).then(function(res){ if(res.data.code==='0'){ const data = res.data.data; cachemoduleDatas(data); getRecordDetail(); } }); } //模板数据缓存 function cachemoduleDatas(data){ const moudle=data.moduleDetail; global_modules[data.modeName]=[]; for(let i in moudle){ global_modules[data.modeName].push(moudle[i]); } } //初始化模板 function initModuleData(mid,obj){ const n = obj.length; const module=global_modules[mid].moduleDetail; const key = global_modules[mid].modeName.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g,''); let hml = ''+ extractVars(val)+'
'); const txtHml = (''+ extractVars(val)+'
'); let hml = addLine||monoLine?`"+questionMapping[i+1].name+extractVars(questionMapping[i+1].val)+" | "; }else{ tdVal=""+questionMapping[i].name+extractVars(questionMapping[i].val)+" | "; } if(i==0){ hml=hml+` |
${name} | ${tdVal}`; }else{ hml=hml+`