Browse Source

病案详情-修复从终末下钻进来不不展示首页病案的问题、设置各种类型选中状态、从专家质控下钻进来带参显示

liyanyan 1 week ago
parent
commit
2cd82185a8
1 changed files with 83 additions and 42 deletions
  1. 83 42
      src/views/allcase/caseViews.vue

+ 83 - 42
src/views/allcase/caseViews.vue

@@ -25,32 +25,41 @@
             <span>病案首页</span>
           </li>
           <li
+            v-for="(item, index) in treeList"
             :class="[
-              is_active == item.bllb && item.bllb != 49 ? 'is-active' : '',
+              is_active == item.bllb ? 'is-active' : '',
               item.bllb == 49 || [2000002, 294, 303, 288, 87].includes(item.bllb) ? 'li-left-itemyz' : 'li-left-item',
             ]"
-            v-for="(item, index) in treeList"
             :key="index"
             @click="clickTree(item.bllb, item.name, item)"
           >
-            <span>{{ item.name }}</span>
+            <el-row type="flex" justify="space-between" align="middle"><span>{{ item.name }}</span><i v-if="item.bllb == 49 || (Array.isArray(item.list) && !!item.list.length)" class="el-icon-arrow-down"/></el-row>
+            <!-- 医嘱 -->
             <div v-if="item.bllb == 49">
-              <div :class="['li-left-item-li', is_active == '长期医嘱' ? 'is-active' : '']" data-li="49-1" :id="item.bllb">长期医嘱</div>
-              <div :class="['li-left-item-li', is_active == '临时医嘱' ? 'is-active' : '']" data-li="49-2" :id="item.bllb">临时医嘱</div>
+              <div :class="['li-left-item-li', is_active == '长期医嘱' ? 'is-active' : '']" data-li="49-1" :id="item.bllb" @click.stop="clickTree(item.bllb, '长期医嘱', {}, true)" >长期医嘱</div>
+              <div :class="['li-left-item-li', is_active == '临时医嘱' ? 'is-active' : '']" data-li="49-2" :id="item.bllb" @click.stop="clickTree(item.bllb, '临时医嘱', {}, true)">临时医嘱</div>
             </div>
+            <!-- 报告单 -->
             <div v-if="item.bllb == 2000002">
-              <div :class="['li-left-item-li', is_active == jitem.ExamType ? 'is-active' : '']" v-for="(jitem, jindex) in item.list" :key="jindex" :id="jitem.type">
+              <div 
+                v-for="(jitem, jindex) in item.list" 
+                :key="jindex" 
+                :id="jitem.type" 
+                :class="['li-left-item-li', is_active == jitem.type ? 'is-active' : '']"
+                @click.stop="clickTree(item.bllb, jitem.name, jitem, true)"
+              >
                 {{ jitem.name }}
               </div>
             </div>
             <!-- 病程记录、手术记录 -->
             <div v-if="[294, 303, 288, 87].includes(item.bllb)">
               <div
-                :class="['li-left-item-li', is_active == jitem.blbh ? 'is-active' : '']"
                 v-for="(jitem, jindex) in item.list"
+                :class="['li-left-item-li', parentType == item.bllb && is_active == jitem.blbh ? 'is-active' : '']"
                 :key="jindex"
                 :id="`${jitem.blbh}`"
                 :title="jitem.name.trim()"
+                @click.stop="clickTree(item.bllb, jitem.name, jitem, true)"
               >
                 {{ jitem.name.trim() }}
               </div>
@@ -70,12 +79,12 @@
           <!-- 出院记录 -->
           <OutHospitalRecord :data="outHospitalRecordData" />
         </div>
-        <div v-else-if="parentType == 294">
+        <div v-else-if="parentType == 294 && is_active != 294">
           <!-- 病程记录 -->
           <CaseRecord :data="caseRecodeInfo" v-if="caseRecodeInfo.is_format === 1" :ZYH="valData"/>
           <NoFormatText :text="caseRecodeInfo.content" :data="caseRecodeInfo" name="" v-else />
         </div>
-        <div v-else-if="parentType == 303">
+        <div v-else-if="parentType == 303 && is_active != 303">
           <!-- 手术记录 -->
           <template v-if="surgeryData.is_format">
             <ShouShuRecord1 v-if="surgeryData.type === 1" :data="surgeryData" />
@@ -405,7 +414,13 @@ export default {
 
       if (this.valData) {
         if (this.$route.query.from !== 'forewarning') {
-          this.funQuery();
+          if(this.$route.query.bllb && this.$route.query.bllb == '-1') {
+            this.is_active = 0
+            this.funQuery();
+          } else {
+            this.is_active = 0
+            this.funQuery();
+          }
         }
         this.getCaseQualityResults();
       }
@@ -549,39 +564,65 @@ export default {
           const item = this.treeList[keys[0]];
           this.clickTree(item.bllb, item.name, item);
         }
+        if(this.$route.query.from == 'expertQualityControl') {
+          this.setCurrentTreeNode()
+        }
       });
     },
-    clickTree(b, n, item) {
-      if (item) {
-        if (item.blbh) {
-          this.is_active_blbh = item.blbh;
+    setCurrentTreeNode() {
+      const currentTreeRow = this.treeList[this.$route.query.currentKey]
+      if (this.$route.query.bllb && this.$route.query.bllb != '-1' && !this.$route.query.blbh) {
+        // this.$message.success('请求多组')
+        if(this.$route.query.specialName) {
+          this.clickTree(this.$route.query.bllb, this.$route.query.specialName, {}, true)
         } else {
-          this.is_active_blbh = event.target.id;
+          this.clickTree(this.$route.query.bllb, currentTreeRow.name, currentTreeRow)
         }
-      } else {
-        // this.is_active_blbh = this.mainHomeData.MED_REC_ID
+      }
+      if(this.$route.query.blbh && this.$route.query.bllb) {
+        if( Array.isArray(currentTreeRow.list) ) {
+          let currentChildRow = currentTreeRow.list.find(element => element.blbh == this.$route.query.blbh)
+          currentChildRow && this.clickTree(this.$route.query.bllb, currentChildRow.name, currentChildRow, true);
+        }
+      }
+    },
+    clickTree(b, n, item, isLeaf = false) {
+      if (item) {
+        if (isLeaf) {
+          if(n == '长期医嘱' || n == '临时医嘱') {
+            this.is_active = n
+          } else if (b == '2000002') { // 报告单
+            this.is_active = type
+          } else {
+            this.is_active = item.blbh
+          }
+        } else { // 如果不是叶子节点
+          this.is_active = b;
+        }
+      } else { // 病案首页
         this.is_active = 0;
         this.funQuery();
       }
+      console.log('----------is_active', this.is_active)
       this.titleName = n;
       this.parentType = b;
       let that = this;
       // 判断点击的
-      if (event.target.id || !item?.list) {
-        if (event.target.outerText == '长期医嘱' || event.target.outerText == '临时医嘱') {
-          that.is_active = event.target.outerText;
-        } else if (b == 2000002) {
-          that.is_active = event.target.id;
-        } else if (b == 294) {
-          that.is_active = event.target.id;
-        } else if (b == 303) {
-          that.is_active = event.target.id;
-        } else {
-          that.is_active = b;
-        }
-      }
+      // if (event.target.id || !item?.list) {
+      //   if (event.target.outerText == '长期医嘱' || event.target.outerText == '临时医嘱') {
+      //     that.is_active = event.target.outerText;
+      //   } else if (b == 2000002) {
+      //     that.is_active = event.target.id;
+      //   } else if (b == 294) {
+      //     that.is_active = event.target.id;
+      //   } else if (b == 303) {
+      //     that.is_active = event.target.id;
+      //   } else {
+      //     that.is_active = b;
+      //   }
+      // }
       that.name_title = n;
-      if (b != 0 && b != 292 && b != 1) {
+      if (b != 0 && b != 292 && b != 1 && !isLeaf) {
         const params = {
           MED_REC_ID: that.valData,
           bllb: b,
@@ -595,7 +636,7 @@ export default {
           that.reload();
         });
       } else if (b == 292) {
-        // 获取详情
+        // 获取详情-入院记录
         const params = {
           id: this.valData,
           bllb: b,
@@ -608,7 +649,7 @@ export default {
           this.admissionRecord = res.data;
         });
       } else if (b == 1) {
-        // 获取详情
+        // 获取详情-出院记录
         const params = {
           id: this.valData,
           bllb: b,
@@ -664,11 +705,11 @@ export default {
         });
       }
       // 病程记录
-      if (item.bllb === 294) {
-        if (that.is_active) {
+      if (b == 294 && isLeaf) {
+        // if (that.is_active) {
           // 请求前先重置之前的数据
           that.caseRecodeInfo = {};
-          let parm = { blbh: that.is_active };
+          let parm = { blbh: item.blbh };
           if (this.is_tm_path.includes(this.$route.path)) {
             parm.is_tm = 1;
           }
@@ -676,14 +717,14 @@ export default {
             that.caseRecodeInfo = res.data[0].bc_data;
             that.caseRecodeInfo.is_format = res.data[0].is_format;
           });
-        }
+        // }
       }
       // 手术记录
-      if (item.bllb === 303) {
-        if (that.is_active) {
+      if (b == 303 && isLeaf) {
+        // if (that.is_active) {
           // 请求前先重置之前的数据
           that.surgeryData = {};
-          let parm = { blbh: that.is_active };
+          let parm = { blbh: item.blbh };
           if (this.is_tm_path.includes(this.$route.path)) {
             parm.is_tm = 1;
           }
@@ -691,7 +732,7 @@ export default {
             that.surgeryData = res.data[0].surgery_data;
             that.surgeryData.is_format = res.data[0].is_format;
           });
-        }
+        // }
       }
     },
     //质控依据高亮方法
@@ -791,7 +832,7 @@ export default {
   line-height: 56px;
   font-size: 14px;
   color: #303133;
-  padding-left: 20px;
+  padding: 0 20px;
 
   -webkit-transition: border-color 0.3s, background-color 0.3s, color 0.3s;
   transition: border-color 0.3s, background-color 0.3s, color 0.3s;