zhouna 5 anni fa
parent
commit
d671a228e0
4 ha cambiato i file con 173 aggiunte e 17 eliminazioni
  1. 29 1
      src/css/qcScore.less
  2. 21 3
      src/html/qcScore.html
  3. 1 1
      src/js/api.js
  4. 122 12
      src/js/qcScore.js

+ 29 - 1
src/css/qcScore.less

@@ -419,10 +419,38 @@
   span{
     display: inline-block;
     width: 70px;
-    margin-right: 20px;
+    margin-right: 12px;
     text-align: right;
   }
 }
+.add-box{
+  .drop-box{
+    position: relative;
+    margin-bottom: 10px;
+  }
+  ul{
+    display: none;
+    position: absolute;
+    right: 0;
+    width: 300px;
+    background: #fff;
+    border:1px @tableBorderColor solid;
+    height: 205px;
+    overflow: auto;
+    li{
+      line-height: 25px;
+      padding: 0 5px;
+      cursor: pointer;
+      white-space: nowrap;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      &:hover{
+        background: @tableBorderColor;
+      }
+    }
+
+  }
+}
 .standard_table {
   tr {
     td.standard_fst {

+ 21 - 3
src/html/qcScore.html

@@ -10,11 +10,11 @@
         <li class="list-1 menu-${id}">
             <p>${name}</p>
             {{else}}
-        <li class="page menu-${id}" code="${name}">${name}
+        <li class="page menu-${id}" code="${name}" mode="${id}">${name}
             {{/if}}
             <ul>
                 {{each sonMode}}
-                <li class="page" code="${name.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g,'')}">${name}</li>
+                <li class="page" code="${name.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g,'')}" mode="${id}">${name}</li>
                 {{/each}}
             </ul>
         </li>
@@ -596,6 +596,24 @@
             <p class="warning"><span></span><span class="red">支持≥0的数字输入,最多保留小数点后1位~</span></p>
         </div>
     </script>
+    <script type="text/html" id="flawDropTmpl">
+        {{each(i,it) info}}
+        <li idx="${i}" name="${it.entryName}">${it.entryName}</li>
+        {{/each}}
+    </script>
+    <script type="text/html" id="addFlawTmpl">
+        <div class="edit-box add-box">
+            <div class="drop-box">
+                <span>质控条目: </span>
+                <input type="text" class="flaw-drop-input"/>
+                <ul></ul>
+            </div>
+            <!--<p><span>模块名称: </span><input type="text" value="${modelName}" /></p>-->
+            <p><span style="margin-right: 16px;">提示信息:</span><input id="addQcMsg" type="text" value="${msg}" /></p>
+            <p><span>分值:</span> <input id="addQcScore" type="text" value="${score}" /></p>
+            <p class="warning"><span></span><span class="red">支持≥0的数字输入,最多保留小数点后1位~</span></p>
+        </div>
+    </script>
     <script type="text/html" id="flawTotalList">
         {{if Object.keys(data).length===0}}
             <div class="empty">
@@ -653,7 +671,7 @@
             <div class="operation fr" id="flaws">
                 <div class="flaw-title">
                     <span>缺陷详情</span>
-                    <!--<a href="javascript:void(0);">+ 新增</a>-->
+                    <a href="javascript:void(0);" class="add-flaw">+ 新增</a>
                 </div>
                 <div class="flaw-box content-ht">
                     <!--<div class="empty">

+ 1 - 1
src/js/api.js

@@ -6,8 +6,8 @@ const api = {
     delScore:'/qc/behospitalInfo/delCase' ,//删除评分项
     editScore:'/qc/behospitalInfo/updCase' ,//修改评分
     addScore:'/qc/behospitalInfo/addCase' ,//添加评分项
+    findQcCasesEntry:"/qc/casesEntryHospital/findQcCasesEntry",//条目下拉列表
     getRecordDetail:'/qc/behospitalInfo/getByBehospitalCode', //获取病例明细
-    getInfoModule:'/qc/module/getById',
     getModuleById:'/qc/module/getModuleMap',
     getQcCases:'/qc/cases/getQcCases',
     getQcCasesAll:'/qc/casesEntryHospital/getQcCasesAll',

+ 122 - 12
src/js/qcScore.js

@@ -4,21 +4,22 @@ require('jquery-templates');
 require('./modal.js');
 const {post,getUrlArgObject,setBoxHeight,getCookie} = require('./utils.js');
 const {api} = require('./api.js');
-//本页全局变量
-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 ={};   //模板数据缓存
 window.document.title="质控评分-"+getUrlArgObject("name");
 
 $(function(){
-  //getSubMenu();
-  //initScoreItem();
-  //getRecordDetail();
-  getAllModules()
-  //getInfoModule(15);    //根据对应id获取模板
+//本页全局变量
+  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||[])];
   //菜单数据填充
@@ -133,6 +134,9 @@ function initContent(data){
   let info=[];
   let hml='',moduleId='';
   for(let k in obj){
+    if(k==="谈话告知书"){
+      continue;
+    }
     if(k==="病案首页"){   //病案首页不使用动态模板
       info=formatInfoData(k,obj[k][0]);
       $("#indexTmpl").tmpl(info).appendTo("#contentInfo");
@@ -270,6 +274,22 @@ function editScore(info){
     }
   });
 }
+//添加评分项
+function addScore(info){
+  const param={
+    "behospitalCode": global_id,
+    "optResultAlgVO": info
+  };
+  post(api.addScore,param).then(function(res){
+    if(res.data.code==='0'){
+      $("#delModal").hide();
+      updateFlaws(res.data.data);
+      $.alerModal({"message":"添加成功",type:"tip",time:'1000'});
+    }
+  });
+}
+
+
 //显示删除/修改弹窗
 function showModal(flag,code,i){
   $("#delModal .modal-body").html("");
@@ -311,6 +331,45 @@ function showModal(flag,code,i){
       const obj = Object.assign({},info,{msg:$("#delModal #qcMsg").val(),score:$("#delModal #qcScore").val()});
       editScore(obj);
     });
+  }else if(flag==='2'){   //新增
+    $("#delModal .title").text("新增");
+    $("#delModal .confirm").text("保存");
+    $("#addFlawTmpl").tmpl().appendTo("#delModal .modal-body");
+    $("#flawDropTmpl").tmpl({info:code}).appendTo("#delModal .modal-body ul");
+    //分数输入验证
+    $("#addQcScore").on("input",function(){
+      const val=$(this).val();
+      if(/^[0-9]\d*$|^[0-9]\d*(.\d)?$/.test(val) && val <= 100){
+        $(".add-box .warning").hide();
+      }else{
+        $(".add-box .warning .red").text("支持≥0且≤100的数字输入,最多保留小数点后1位~");
+        $(".add-box .warning").show();
+      }
+    });
+    //提示信息输入验证
+    $("#addQcMsg").on("input",function(){
+      const val=$(this).val();
+      if(val.trim()){
+        $(".add-box .warning").hide();
+      }else{
+        $(".add-box .warning .red").text("提示信息不能为空~");
+        $(".add-box .warning").show();
+      }
+    });
+    $("#delModal .confirm").click(function(){
+      if(!$(".flaw-drop-input").attr("code")){
+        $(".add-box .warning .red").text("请选择质控条目~");
+        $(".add-box .warning").show();
+        return;
+      }
+      const msg=$("#delModal #addQcMsg").val();
+      const score=$("#delModal #addQcScore").val();
+      if($(".add-box .warning").is(":visible")||!msg.trim()||!score){
+        return;
+      }
+      const obj = Object.assign({},global_selectedFlaw,{msg,score});
+      addScore(obj);
+    });
   }else{
     $("#delModal .title").text("删除评分");
     $("#delModal .confirm").text("确定");
@@ -328,6 +387,57 @@ function formatFlawKeys(data){
     }
     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");
+          addFlawEvent();
+        }else{
+          global_flaws=data;
+          showModal('2',data);
+          addFlawEvent();
+        }
+      }
+    });
+  }
+//增加条目弹窗元素事件
+  function addFlawEvent(){
+    $(".add-box .flaw-drop-input").off("click").on("click",function(){
+      $(".add-box .drop-box ul").show();
+    });
+    $(".add-box .flaw-drop-input").off("blur").on("blur",function(){
+      setTimeout(function(){
+        $(".add-box .drop-box ul").hide();
+      },300)
+
+    });
+    $(".add-box .flaw-drop-input").off("input").on("input",function(){
+      $(this).attr("code","");
+      getQcCasesEntry($(this).val().trim());
+    });
+    $(".add-box .drop-box li").off("click").on("click",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);
+      $("#addQcMsg").val(msg);
+      $("#addQcScore").val(score);
+      $(".add-box .warning").hide();
+      $(".add-box .drop-box ul").hide();
+    });
+  }
 
 //更新缺陷列表
   function updateFlaws(info){