Ver código fonte

住院医生优化

DESKTOP-0GD05B0\Administrator 2 anos atrás
pai
commit
551d824b29

+ 5 - 14
src/components/med-tec-mod/YiJiXiangMuLuRu.vue

@@ -70,15 +70,16 @@
                 <el-option v-for="item in deptData" :key="item.code" :label="item.name" :value="item.code">
                   <span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
                   <el-divider direction="vertical"></el-divider>
-                  <span>{{ item.name }}</span></el-option
-                >
+                  <span>{{ item.name }}</span>
+                </el-option>
               </el-select>
             </template>
           </el-table-column>
           <el-table-column label="单价" prop="chargeAmount"></el-table-column>
           <el-table-column label="数量" prop="amount" width="130">
             <template #default="scope">
-              <el-input-number v-model="scope.row.amount" :min="0" :precision="1"
+              <el-input-number v-model="scope.row.amount" :min="0"
+                               :precision="scope.row.serial === '00' ? 1 : 0"
                                style="width: 120px"/>
             </template>
           </el-table-column>
@@ -131,17 +132,7 @@
         <el-table-column label="国家编码" prop="nationalCode"></el-table-column>
         <el-table-column label="国家名称" prop="nationalName"></el-table-column>
         <el-table-column label="单位" prop="spec"></el-table-column>
-        <el-table-column label="执行科室" prop="deptCode">
-          <template #default="scope">
-            <el-select v-model="scope.row.deptCode" filterable style="width: 90%">
-              <el-option v-for="item in deptData" :key="item.code" :label="item.name" :value="item.code">
-                <span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
-                <el-divider direction="vertical"></el-divider>
-                <span>{{ item.name }}</span></el-option
-              >
-            </el-select>
-          </template>
-        </el-table-column>
+        <el-table-column label="执行科室" prop="execUnitName"/>
         <el-table-column label="单价" prop="chargeAmount"></el-table-column>
         <el-table-column label="数量" prop="amount"/>
         <el-table-column label="金额">

+ 80 - 70
src/components/zhu-yuan-yi-sheng/HuanZheXinXi.vue

@@ -1,77 +1,80 @@
 <template>
-  <div class="header" style="border: 0;color: #000000">
-    <div class="box">
-      <div>
+  <el-collapse class="collapse" v-model="collapse">
+    <el-collapse-item title="患者信息" name="1">
+      <div class="header" style="border: 0;color: #000000">
+        <div class="box">
+          <div>
         <span v-if="isDev || needRule(1)">
           <el-input style="width: 90px" v-model="huanZheXinXi.inpatientNo" @keydown.enter="queryPatientInfoClick"/>
           {{ huanZheXinXi.admissTimes }}
         </span>
-
-        <span v-else>
-        住院号:{{ huanZheXinXi.inpatientNo }}_{{ huanZheXinXi.admissTimes }}
-        </span>
-      </div>
-      <div>
-        床号:{{ huanZheXinXi.bedNo }}
-      </div>
-      <div>
-        姓名:{{ huanZheXinXi.name }}
-      </div>
-      <div>
-        身份证号:{{ huanZheXinXi.socialNo }}
-      </div>
-      <div>
-        出生日期:{{ huanZheXinXi.birthDate }} {{ huanZheXinXi.age }} 岁
-      </div>
-      <div>
-        性别:{{ huanZheXinXi.sexName }}
-      </div>
-      <div>
-        联系电话:{{ huanZheXinXi.homeTel }}
-      </div>
-      <div>
-        入院日期:{{ huanZheXinXi.admissDate }}
-        {{ huanZheXinXi.actIptDays }}天
-      </div>
-    </div>
-
-    <div class="box">
-      <div>
-        管床医生:{{ huanZheXinXi.referPhysicianName }}
-      </div>
-      <div>
-        病区:{{ huanZheXinXi.admissWardName }}
-      </div>
-      <div>
-        入院医生:{{ huanZheXinXi.admissPhysicianName }}
-      </div>
-      <div>
-        入院诊断:{{ huanZheXinXi.admissDiagStr }}
-      </div>
-      <div>
-        小科室:{{ huanZheXinXi.zkWardName }}
-      </div>
-      <div>
-        身份:{{ huanZheXinXi.medTypeName }}
-      </div>
-
-    </div>
-
-    <div class="box">
-      <div>
-        总费用:{{ huanZheXinXi.totalCharge }} {{ huanZheXinXi.balance }}
-      </div>
-      <div>
-        药品占比:{{ huanZheXinXi.yp }}
-      </div>
-      <div>
-        检验检查:{{ huanZheXinXi.jyjc }}
-      </div>
-      <div>
-        医保:{{ huanZheXinXi.chargeYb }} {{ huanZheXinXi.yb }}
-      </div>
-    </div>
-  </div>
+            <span v-else>
+          住院号:{{ huanZheXinXi.inpatientNo }}_{{ huanZheXinXi.admissTimes }}
+          </span>
+          </div>
+          <div>
+            床号:{{ huanZheXinXi.bedNo }}
+          </div>
+          <div>
+            姓名:{{ huanZheXinXi.name }}
+          </div>
+          <div>
+            身份证号:{{ huanZheXinXi.socialNo }}
+          </div>
+          <div>
+            出生日期:{{ huanZheXinXi.birthDate }} {{ huanZheXinXi.age }} 岁
+          </div>
+          <div>
+            性别:{{ huanZheXinXi.sexName }}
+          </div>
+          <div>
+            联系电话:{{ huanZheXinXi.homeTel }}
+          </div>
+          <div>
+            入院日期:{{ huanZheXinXi.admissDate }}
+            {{ huanZheXinXi.actIptDays }}天
+          </div>
+        </div>
+
+        <div class="box">
+          <div>
+            管床医生:{{ huanZheXinXi.referPhysicianName }}
+          </div>
+          <div>
+            病区:{{ huanZheXinXi.admissWardName }}
+          </div>
+          <div>
+            入院医生:{{ huanZheXinXi.admissPhysicianName }}
+          </div>
+          <div>
+            入院诊断:{{ huanZheXinXi.admissDiagStr }}
+          </div>
+          <div>
+            小科室:{{ huanZheXinXi.zkWardName }}
+          </div>
+          <div>
+            身份:{{ huanZheXinXi.medTypeName }}
+          </div>
+
+        </div>
+
+        <div class="box">
+          <div>
+            总费用:{{ huanZheXinXi.totalCharge }} {{ huanZheXinXi.balance }}
+          </div>
+          <div>
+            药品占比:{{ huanZheXinXi.yp }}
+          </div>
+          <div>
+            检验检查:{{ huanZheXinXi.jyjc }}
+          </div>
+          <div>
+            医保:{{ huanZheXinXi.chargeYb }} {{ huanZheXinXi.yb }}
+          </div>
+        </div>
+      </div>
+    </el-collapse-item>
+  </el-collapse>
 
 </template>
 
@@ -86,6 +89,8 @@ const props = defineProps({
   }
 })
 
+const collapse = ref("1")
+
 const queryPatientInfoClick = () => {
   clickOnThePatient(props.huanZheXinXi.inpatientNo)
 }
@@ -93,6 +98,11 @@ const queryPatientInfoClick = () => {
 </script>
 
 <style lang="scss" scoped>
+.collapse {
+  :deep(.el-collapse-item__content) {
+    padding-bottom: 0
+  }
+}
 
 .header {
   width: 100%;
@@ -108,7 +118,7 @@ const queryPatientInfoClick = () => {
 
   div {
     white-space: nowrap;
-    padding: 5px;
+    padding: 0 5px;
   }
 
   .box {

+ 14 - 14
src/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/table/YzTable.vue

@@ -1,6 +1,6 @@
 <template>
   <el-scrollbar>
-    <div style="width: 1600px">
+    <div style="width: 1600px;height: max-content">
       <table>
         <colgroup>
           <col v-for="item in header" :style="{width: item.width + 'px'}"/>
@@ -20,9 +20,8 @@
       </table>
       <el-scrollbar :height="maxHeight" @scroll="scroll" ref="elScrollbarRef">
         <div style="display: flex">
-          <div :style="{height: virtualHeight + 'px'}">
-          </div>
-          <div :style="{transform: `translateY(${translateY})`}" style="height: 100%">
+          <div :style="{height: virtualHeight + 'px'}"/>
+          <div style="height: 100%" :style="{transform: `translateY(${translateY})`}">
             <table>
               <colgroup>
                 <col v-for="item in header" :style="{width: item.width + 'px'}"/>
@@ -75,7 +74,7 @@ import {
   drugManual
 } from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
 import {getFormatDatetime} from "@/utils/date";
-import {computed, defineEmits, defineProps, nextTick, ref, watch} from 'vue'
+import {computed, defineEmits, defineProps, nextTick, Ref, ref, watch} from 'vue'
 import sleep from "@/utils/sleep";
 import store from "@/store"
 import {ElScrollbar} from "element-plus";
@@ -220,7 +219,7 @@ const cancelStopTime = (val) => {
 }
 
 // div 的最大高度
-const maxHeight = ref(400)
+const maxHeight = ref(500)
 // 开始位置
 const startIndex = ref(0)
 // 可以看见 的 内容大小
@@ -228,7 +227,7 @@ const itemCount = ref(0)
 //  实际的高度
 const virtualHeight = ref(0)
 // 每一个 元素的大小
-const itemHeight = ref(25)
+const itemHeight = ref(27)
 // 偏移量
 const translateY = ref('0px')
 
@@ -245,23 +244,24 @@ watch(() => tempYzData.value, (oldData, newData) => {
   if (oldData.length !== newData.length) {
     itemCount.value = Math.ceil(maxHeight.value / itemHeight.value)
     virtualHeight.value = itemHeight.value * tempYzData.value.length
+    console.log(virtualHeight.value)
   }
 })
 
 const elScrollbarRef = ref<InstanceType<typeof ElScrollbar>>()
 
-
-const windowSize = computed(() => {
-  calculateTableHeight()
-  return store.state['app']['windowSize']
-})
-
 const calculateTableHeight = async () => {
   await nextTick()
+  let windowSize = store.state['app']['windowSize']
   let divTop = elScrollbarRef.value.wrap$.getBoundingClientRect().top
-  maxHeight.value = Math.ceil(windowSize.value.h - divTop + 60)
+  // console.log(divTop)
+  maxHeight.value = Math.floor(windowSize.h / 2)
 }
 
+watch(() => store.state['app']['windowSize'], () => {
+  calculateTableHeight()
+}, {immediate: true})
+
 const scrollToTheEnd = () => {
   elScrollbarRef.value!.setScrollTop(virtualHeight.value)
 }

+ 40 - 0
src/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/table/YzTableV2.vue

@@ -0,0 +1,40 @@
+<template>
+  <el-table-v2
+      :columns="columns"
+      :data="tempYzData"
+      :width="700"
+      :height="400"
+  />
+</template>
+
+<script setup name='YzTableV2' lang="tsx">
+import {tempYzData} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
+import type {Column} from 'element-plus'
+
+
+const columns: Column<any>[] = [
+  {
+    key: 'orderGroup',
+    title: '组',
+    dataKey: 'orderGroup',
+    width: 25
+  },
+  {
+    key: 'actOrderNo',
+    title: '医嘱号',
+    dataKey: 'actOrderNo',
+    width: 125
+  },
+  {
+    key: 'orderName',
+    title: '医嘱名称',
+    dataKey: 'orderName',
+    width: 225
+  }
+]
+
+</script>
+
+<style scoped lang="scss">
+
+</style>

+ 6 - 1
src/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/yz-edit/YzEditor.vue

@@ -1,5 +1,5 @@
 <template>
-  <div ref="editorMainRef">
+  <div ref="editorMainRef" style="border: 1px solid">
     <div v-if="tiShiBiaoTi?.length > 0" class="editor__title">
         <span v-for="item in tiShiBiaoTi">
             {{ item }}
@@ -78,6 +78,7 @@
         <div>
           给药方式:
           <xc-select-v3
+              :disabled="yiZhuData.serial === '00'"
               style="width: 120px"
               v-model="yiZhuData"
               :data="geiYaoFangShiData"
@@ -421,6 +422,10 @@ const xuanZhongFeiYong = async (row, laiyuan = 1) => {
   if (newData) {
     // 判断这个是不是 新添加的数据 如果是空的就是 新数据
     let serverDate = await getServerDateApi()
+    // 如果是项目就不需要给药方式
+    yiZhuData.value.supplyCode = null
+    yiZhuData.value.supplyCodeName = ''
+
     if (!yiZhuData.value.orderTime) {
       yiZhuData.value.orderTime = serverDate
     }

+ 23 - 31
src/views/hospitalization/zhu-yuan-yi-sheng/Home.vue

@@ -1,41 +1,31 @@
 <template>
-  <div style="overflow: auto; width: calc(100% - 10px)"
-       :style="{height: windowSize.h + 'px'}">
-    <div style="color:#000; height: 947px;width:2063px;">
-      <div class="yz__header">
-        <div class="yz__close" @click="basicPatientInformation = !basicPatientInformation">
-          <el-icon>
-            <Close/>
-          </el-icon>
-        </div>
-        <transition name="el-zoom-in-top">
-          <huan-zhe-xin-xi v-show="basicPatientInformation"
-                           :huan-zhe-xin-xi="patientInfo"/>
-        </transition>
+  <div style="color:#000;">
+    <div class="yz__header">
+      <huan-zhe-xin-xi v-show="basicPatientInformation"
+                       :huan-zhe-xin-xi="patientInfo"/>
+    </div>
+    <div class="yz__main" style="overflow: auto">
+      <div style="width: 158px">
+        <patient-list/>
       </div>
-      <div class="yz__main" style="overflow: auto">
-        <div style="width: 158px">
-          <patient-list/>
-        </div>
-        <div ref="mainRef" class="resident_doctor__main">
-          <div class="tag">
-            <div v-for="(item,index) in pathList"
-                 :style="currentPagePosition(item.path)"
-                 @click="item.func? item.func(index) :  handleClick(item.path,item.disable)">
+      <div ref="mainRef" class="resident_doctor__main">
+        <div class="tag">
+          <div v-for="(item,index) in pathList"
+               :style="currentPagePosition(item.path)"
+               @click="item.func? item.func(index) :  handleClick(item.path,item.disable)">
               <span>
                 {{ item.title }}
               </span>
-            </div>
-            <div @click="downloadGuide" style="background-color: red;color: white">
-              <span>操作指南 {{ fileName }}</span>
-            </div>
           </div>
-          <router-view v-slot="{ Component }">
-            <keep-alive>
-              <component :is="Component"/>
-            </keep-alive>
-          </router-view>
+          <div @click="downloadGuide" style="background-color: red;color: white">
+            <span>操作指南 {{ fileName }}</span>
+          </div>
         </div>
+        <router-view v-slot="{ Component }">
+          <keep-alive>
+            <component :is="Component"/>
+          </keep-alive>
+        </router-view>
       </div>
     </div>
   </div>
@@ -170,6 +160,8 @@ onMounted(async () => {
   })
   await nextTick()
   winsize.value.main = mainRef.value.clientWidth
+  console.log(mainRef.value.clientHeight)
+  console.log(mainRef.value)
   getJyJcZdTree().then((res) => {
     jyTree.value = res.jy
     jcTree.value = res.jc

+ 8 - 8
src/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/YiZhuLuRu.vue

@@ -22,20 +22,19 @@
       <button @click="openRationalDrugUse">合理用药</button>
       <button @click="allergen.open()">患者过敏原信息维护</button>
     </div>
-    <div>
-      <yz-editor :patient-info="huanZheXinXi"
-                 ref="yzEditorRef"
-                 :current-page="currentPage"
-                 :open-group-order-template="openGroupOrderTemplate"
-                 :successfullyEntered="successfullyEntered"/>
-    </div>
+    <yz-editor :patient-info="huanZheXinXi"
+               ref="yzEditorRef"
+               :current-page="currentPage"
+               :open-group-order-template="openGroupOrderTemplate"
+               :successfullyEntered="successfullyEntered"/>
 
-    <div style="overflow-x: auto" :style="{width: winsize.main - 20  + 'px'}">
+    <div style="overflow-x: auto; " :style="{width: winsize.main - 20  + 'px'}">
       <yz-table :data="tempYzData"
                 ref="tableRef"
                 @rowClick="rowClick"
                 @clickAssociate="clickAssociate"
                 :void-orders="voidOrdersClick"/>
+      <!--            <yz-table-v2/>-->
     </div>
 
     <doctor-s-order-fee :data="chargeDetails.data"
@@ -104,6 +103,7 @@ import XcDialog from "@/components/xiao-chan/dialog/XcDialog";
 import {xcMessage} from "@/utils/xiaochan-element-plus";
 import YaoPingXiangQing from "@/components/zhu-yuan-yi-sheng/he-li-yong-yao/YaoPingXiangQing.vue";
 import AllergenEntry from "@/components/zhu-yuan-yi-sheng/AllergenEntry.vue";
+import YzTableV2 from "@/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/table/YzTableV2.vue";
 
 const windowSize = computed(() => {
   return store.state.app.windowSize