瀏覽代碼

保存编辑数据

zhouna 3 年之前
父節點
當前提交
140d48f115
共有 3 個文件被更改,包括 64 次插入101 次删除
  1. 17 90
      src/css/editableDetail.less
  2. 2 1
      src/html/editableDetail.html
  3. 45 10
      src/js/editableDetail.js

+ 17 - 90
src/css/editableDetail.less

@@ -230,94 +230,21 @@ body{
     color: #aaa;
   }
 }
-/*******手术知情同意书*********/
-.surgery-book{
-  .book-item{
-    margin-bottom:15px;
-    :not(:first-child){
-      text-indent: 15px;
-    }
-    .intent{
-      text-indent: 30px;
-    }
-    .intent-1{
-      margin-left: 48px;
-      text-indent: 0;
-    }
-    &.clearfix{
-      p{
-        width: 100%;
-      }
-    }
-    .fr{
-      margin-top: 25px;
-      text-align: right;
-    }
-  }
-}
-
-/********术后首次病程记录及谈话记录*******/
-
-.textR{
-  text-align: right;
-}
-.textL{
-  text-align: left;
-}
-.textPreLine{
-  white-space: pre-line;
-}
-.textIndent30{
-  text-indent:30px
-}
-.textBold{
-  font-weight: bold;
-}
-.padL30{
-  padding-left: 30px;
-}
-.displayInlineBlock{
-  display: inline-block;
-}
-
-/********缺陷总览*********/
-.modal .modal-footer a.cancel{
-  display: none;
-  color: #FF4D4F;
-  border-color: #FF4D4F;
-  margin-right: 16px;
-}
-.checkTipsBox{
-  width:184px;
-  height:112px;
-}
-.page-anchor-hover:hover {
-  color: #00A1FF;
-}
-.checkImg{
-  width: 40px;
-  position: relative;
-  top: 20px;
-  left: 50%;
-  margin-left: -20px;
-}
-.checkTxt{
-  color: #fff;
-  top: 10px;
-  margin-top: 10px;
+.oper-box{
+  background: #fff;
+  margin: 0 40px;
   text-align: center;
-  position: relative;
-  width: 100%;
-  opacity: .5;
-}
-.liExtend{
-  position: absolute;
-  left: -3px;
-  width: 3px;
-  height: 100%;
-}
-
-#contentIframeIn,#pacsIframeIn,#assistIframeIn,#pacsDetailIframeIn,#contentNursing { //医嘱信息
-  width: 100%;
-  height: 100%;
-} 
+  padding-bottom: 30px;
+  button{
+    display: inline-block;
+    width: 68px;
+    height: 30px;
+    line-height: 30px;
+    text-align: center;
+    border-radius: 4px;
+    box-sizing: border-box;
+    border: 1px solid #00A1FF;
+    color: #fff;
+    background: #00A1FF;
+  }
+}

+ 2 - 1
src/html/editableDetail.html

@@ -5,13 +5,14 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     <!--<link rel="shortcut icon" href="../resource/favicon.ico" type="image/x-icon">-->
-    <title>质控评分</title>
+    <title>数据编辑</title>
 </head>
 <body>
     <div class="main-part clearfix">
         <div class="tab-container clearfix">
             <p id="loading">加载中,请稍候 ...</p>
             <div class="content-box1" id="contentInfo"></div>
+            <div class="oper-box"> <button id="saveBtn">保 存</button> </div>
         </div>
     </div>
     <div id="mainBox"></div>

+ 45 - 10
src/js/editableDetail.js

@@ -1,13 +1,14 @@
 require("../css/editableDetail.less");
 const $ = require('jquery');
 require('jquery-templates');
+require('./modal.js');
 const {post,getUrlArgObject} = require('./utils.js');
 const {api,editApi} = require('./api.js');
 
 $(function(){
 //本页全局变量
-  const global_id=getUrlArgObject("id");
-  let global_activeTab=$(".sub-menu .page.active").attr("code");  //当前激活菜单项
+  let global_wholeData={};
+  let global_recId = '';
   let global_modules ={};   //模板数据缓存
   getAllModules();
   //window.document.title=(showCheckBtns?"质控核查-":"质控评分-")+getUrlArgObject("name");
@@ -17,15 +18,50 @@ function getRecordDetail(){
   post(editApi.getDataEdit).then(function(res){
     if(res.data.code==='0'){
       const data = res.data.data;
-        console.log(2222,data)
-      const { wholeData,modeId } = data;
+      const { wholeData,modeId,recId } = data;
+      global_recId=recId;
       initContent(modeId,wholeData);
+    }else{
+        $.alerModal({"message":res.data.msg||'获取数据失败',type:"tip",time:'1000'});
     }
+  }).catch((error)=>{
+      $.alerModal({"message":error,type:"tip",time:'1000'});
   });
 }
+
+//保存事件注册
+    function saveDataEvent(){
+      $("#saveBtn").off('click').on("click",function(){
+          saveData();
+      })
+    }
+
+    //保存数据
+    function saveData(){
+        const datasDom = $(".cont div[contenteditable=\"true\"]");
+        let valName = '',obj={};
+        for(let i=0;i<datasDom.length;i++){
+            valName = $(datasDom[i]).attr("valname");
+            obj[valName]=$(datasDom[i]).text();
+        }
+        global_wholeData = Object.assign({},global_wholeData,obj);
+        let param = {wholeData:JSON.stringify(global_wholeData),hospitalId:getUrlArgObject("hid"),recId:global_recId};
+        console.log(11,obj,global_wholeData);
+        post(editApi.saveDataEdit,param).then((res)=>{
+          if(res.data.code==='0'){
+              $.alerModal({"message":"保存成功",type:"tip",time:'1000',win:true});
+          }else{
+              $.alerModal({"message":res.data.msg||"保存失败",type:"tip",time:'1000'});
+          }
+        }).catch((error)=>{
+            $.alerModal({"message":error,type:"tip",time:'1000'});
+        })
+    }
+
 //显示病例模块明细
 function initContent(moduleId,data){
   const obj = JSON.parse(data);
+  global_wholeData=obj;
   let info=[];
   let hml='';
   //formatSpecPage(obj["谈话告知书"],"谈话告知书");
@@ -40,8 +76,8 @@ function initContent(moduleId,data){
         <p>暂无信息~</p>
     </div>`;
   }
-    $.tmpl(hml,info).appendTo("#contentInfo");
-  $(".content-item[code="+global_activeTab+"]").show();
+  $.tmpl(hml,info).appendTo("#contentInfo");
+  saveDataEvent();
   //console.log(obj)
 }
 
@@ -64,7 +100,7 @@ function formatInfoData(data){
     const module=global_modules[mid].moduleDetail;
     const key = global_modules[mid].modeName.replace(/[^\u4e00-\u9fa5|a-zA-Z0-9]+/g,'');
     let hml = '<div class="content-item" code="'+key+'">' +
-      '<h2 class="title">'+global_modules[mid].modeName+'('+mid+')</h2>'+
+      //'<h2 class="title">'+global_modules[mid].modeName+'('+mid+')</h2>'+
       (n>1?'<div class="container">':'<div class="container">');
 
       
@@ -97,14 +133,13 @@ function formatInfoData(data){
     const noEdits = `'医师签名','时间','出院计划','修正诊断','治疗监测计划','姓名','家庭住址','出生日期','性别','工作单位','身份证号','民族','年龄','联系人(关系)','职业','婚姻状况','出生地','入院日期','记录日期','病史陈述者','电话','户口地址','目前使用的药物','成瘾药物','诊疗计划','需求评估','预期目标'`;
     let nameStr = name.replace(":","").replace(":","");
     const editable = noEdits.indexOf(nameStr)===-1;
-    console.log(nameStr)
     const posClass = position===1?'text-left':'';
     const boldClass = bold===1?'text-bold':'';
     const retractClass = retract===1?'text-indent':'';
     const valName = extractVars(val);
     const valT = valName.replace(/[{{html |}}]/g,"")
     const lineHml = ('<p class="'+posClass+' '+boldClass+' '+retractClass+'">${extractVars(val)}</p>');
-    const txtHml = (`<div contenteditable="${editable?true:false}" valName="`+valT+`" class="fl ${posClass} ${boldClass} ${retractClass}">${ extractVars(val)}</div>`);
+    const txtHml = (`<div contenteditable="${editable?true:false}" valname="`+valT+`" class="fl ${posClass} ${boldClass} ${retractClass}">${ extractVars(val)}</div>`);
 
     let hml = addLine||monoLine?`<div class="cont clearfix ${posClass}" style="width: 100%;" id="anchor${id}">`:`<div class="cont" id="anchor${id}">`;
     hml=hml+`<span class="label fl">${name}</span>`+ (addLine?lineHml:txtHml)+ `</div>`;
@@ -145,7 +180,7 @@ function formatInfoData(data){
       val = arr[i].indexOf("【")!=-1?'':(arr[i-1]&&arr[i-1].indexOf("【")!=-1?"{{html "+arr[i]+"}}":arr[i]);
       htl=htl+val;
     }
-      console.log(11,org,arr,htl)
+    //console.log(11,org,arr,htl)
     return htl;
   }
 //获取所有模板