Browse Source

电子病历方法优化

xiaochan 1 year ago
parent
commit
98b2b24d8f

+ 2 - 2
src/pinia/system-store.ts

@@ -4,7 +4,7 @@ import XEUtils from "xe-utils";
 // @ts-ignore
 import {setUserConfig} from "@/api/settings/user-settings";
 
-declare interface systemAttr {
+declare interface SystemAttr {
     theme: object,
     unreadMessageCount: number,
     systemMessages: string[],
@@ -34,7 +34,7 @@ const userConfig: SystemConfig = {
 }
 
 export const useSystemStore = defineStore('system', {
-    state: () => useLocalStorage<systemAttr>('systemStore', ({
+    state: () => useLocalStorage<SystemAttr>('systemStore', ({
         userConfig: userConfig,
         theme: {},  // 主题
         unreadMessageCount: 0, // 未查看的消息数量

+ 40 - 4
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/EmrHeader.vue

@@ -29,7 +29,13 @@ emrMitt.on('setHeaderFunction', (value) => {
   <div class="mac_header">
     <div class="mac_left">
       <div class="mac_item"
+           :class="{'activation': item.activation}"
            v-for="item in buttonList">
+        <div v-if="item.dropdown" class="mac_dropdown">
+          <div v-for="dropdownItem in item.dropdown" @click="item.click">
+            {{ dropdownItem.name }}
+          </div>
+        </div>
         <button
             @click="handleClick(item)"
             :disabled="item.disabled ?? false">
@@ -86,10 +92,6 @@ emrMitt.on('setHeaderFunction', (value) => {
     width: max-content;
     display: flex;
     align-items: center;
-
-    .mac_item {
-      margin: 0 5px;
-    }
   }
 
   .mac_item {
@@ -98,6 +100,40 @@ emrMitt.on('setHeaderFunction', (value) => {
     cursor: pointer;
     user-select: none;
     background: transparent;
+    position: relative;
+    margin: 0 5px;
+
+    &.activation {
+      background: #4169E1;
+      color: white;
+    }
+
+    &:hover {
+      .mac_dropdown {
+        display: block;
+      }
+    }
+
+    .mac_dropdown {
+      display: none;
+      position: absolute;
+      background: white;
+      top: 24px;
+      left: 0;
+      width: max-content;
+      text-align: center;
+      min-width: 50px;
+      box-shadow: var(--el-box-shadow-lighter);
+
+      > div {
+        padding: 0 5px;
+      }
+
+      > div:hover {
+        background: #4169E1;
+        color: white;
+      }
+    }
 
     button[disabled] {
       cursor: not-allowed;

+ 12 - 1
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/components/emr-function/EmrFunctionList.vue

@@ -27,6 +27,7 @@ import {
 } from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-func/useEmrStore";
 import {useSystemStore} from "@/pinia/system-store";
 import {RevisionShowMode} from "@/utils/emr/emr-init-v2";
+import XEUtils from "xe-utils";
 
 interface EmrFunctionListProps {
   openRecovery: Function;
@@ -251,7 +252,17 @@ const functionList = ref<FunctionList[][]>([
   ]
 ]);
 
-emrMitt.emit('setHeaderFunction', [...businessFunctions, ...functionList.value[0]])
+onMounted(() => {
+  const data = []
+
+  functionList.value.forEach((item) => {
+    data.push(...item)
+  })
+
+  emrMitt.emit('setHeaderFunction', data)
+})
+
+
 </script>
 
 <template>