Browse Source

医生查看一写其他的东西

xiaochan 9 months ago
parent
commit
a00b85e5b8

+ 129 - 93
src/components/medical-advice/temperature/GraphicsTempalte.vue

@@ -1,107 +1,143 @@
 <template>
-    <div style="margin-bottom: 10px;margin-top: 10px">
-        <div style="width: 100%;height: 20px;padding-left: 10px;" >
-            查询日期
-            <el-input :disabled="true" v-model="queryParam.startRecTime" style="width: 80px"></el-input>
-            至
-            <el-input :disabled="true"  v-model="queryParam.endRecTime" style="width: 80px"></el-input>
-            <el-select  filterable v-model="queryParam.week" style="width: 100px;" size="small" @change="selectWeek">
-                <el-option v-for="item in weekList" :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>
-            <el-button icon="Search" type="primary" @click="queryInfo">查询</el-button>
-            <el-button icon="Printer" type="success" v-print="'#scdPrint'">打印</el-button>&nbsp;
-            <el-checkbox v-model="checkBoxFlag.mbFlag" label="脉搏" size="small" />
-            <el-checkbox v-model="checkBoxFlag.hxFlag" label="呼吸" size="small" />
-            <el-checkbox v-model="checkBoxFlag.xyFlag" label="血压" size="small" />
-            <el-checkbox v-model="checkBoxFlag.wcyRqFlag" label="无出院日期" size="small" />
-        </div>
+  <div class="layout_container">
+    <header>
+      <div style="width: 100%; height: 20px; padding-left: 10px">
+        查询日期
+        <el-input
+          :disabled="true"
+          v-model="queryParam.startRecTime"
+          style="width: 80px"
+        ></el-input>
+        至
+        <el-input
+          :disabled="true"
+          v-model="queryParam.endRecTime"
+          style="width: 80px"
+        ></el-input>
+        <el-select
+          filterable
+          v-model="queryParam.week"
+          style="width: 100px"
+          size="small"
+          @change="selectWeek"
+        >
+          <el-option
+            v-for="item in weekList"
+            :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>
+        <el-button icon="Search" type="primary" @click="queryInfo"
+          >查询
+        </el-button>
+        <el-button icon="Printer" type="success" v-print="'#scdPrint'"
+          >打印 </el-button
+        >&nbsp;
+        <el-checkbox v-model="checkBoxFlag.mbFlag" label="脉搏" size="small" />
+        <el-checkbox v-model="checkBoxFlag.hxFlag" label="呼吸" size="small" />
+        <el-checkbox v-model="checkBoxFlag.xyFlag" label="血压" size="small" />
+        <el-checkbox
+          v-model="checkBoxFlag.wcyRqFlag"
+          label="无出院日期"
+          size="small"
+        />
+      </div>
+    </header>
+    <div class="layout_main" style="overflow: auto">
+      <div id="scdPrint" style="background: white; width: 900px">
+        <Graphics
+          v-if="graphicsFlag"
+          :patientInfo="patientInfo"
+          :queryParam="queryParam"
+        ></Graphics>
+      </div>
     </div>
-    <el-scrollbar :height="(getWindowSize.h/1.2-100)+'px'">
-        <div id="scdPrint" style="background:white;width: 900px;">
-            <Graphics v-if="graphicsFlag"  :patientInfo="patientInfo" :queryParam="queryParam"></Graphics>
-        </div>
-    </el-scrollbar>
+  </div>
 </template>
 
-<script setup name='GraphicsTempalte'>
-import  Graphics from '@/components/medical-advice/temperature/graphics'
-import { ref, onMounted,nextTick,watch } from 'vue'
-import {getWeek} from "@/api/medical-advice/nursing-manage";
-import {getWindowSize} from "@/utils/window-size";
-const props = defineProps({
-    patientInfo: {
-        type: Object,
-        default: {}
-    }
-}
-)
+<script setup name="GraphicsTempalte">
+import Graphics from "@/components/medical-advice/temperature/graphics";
+import { nextTick, onMounted, ref, watch } from "vue";
+import { getWeek } from "@/api/medical-advice/nursing-manage";
+import { stringIsBlank } from "@/utils/blank-utils";
 
-const patientInfo = ref({})
+const props = defineProps({
+  patientInfo: {
+    type: Object,
+    default: {},
+  },
+});
 
-const queryParam = ref(
-     {
-         startRecTime:'',
-         endRecTime:'',
-         week:'',
-     }
- )
- //选中第几周
- const selectWeek = (val)=>{
-     queryParam.value.startRecTime = weekMap.value['ev_'+val].startDate
-     queryParam.value.endRecTime = weekMap.value['ev_'+val].endDate
- }
- //下拉框 周
- const weekList = ref([])
+const patientInfo = ref({});
 
- const weekMap = ref({})
- const checkBoxFlag = ref({
-     mbFlag:true,
-     hxFlag:true,
-     xyFlag:true,
-     wcyRqFlag:false
- })
-const graphicsFlag = ref(false)
-const queryInfo = ()=>{
-    queryParam.value['checkBoxFlag'] = checkBoxFlag.value
-    graphicsFlag.value = false
-    nextTick(() => {
-        graphicsFlag.value =true
-    })
-}
+const queryParam = ref({
+  startRecTime: "",
+  endRecTime: "",
+  week: "",
+});
+//选中第几周
+const selectWeek = val => {
+  queryParam.value.startRecTime = weekMap.value["ev_" + val].startDate;
+  queryParam.value.endRecTime = weekMap.value["ev_" + val].endDate;
+};
+//下拉框 周
+const weekList = ref([]);
 
-onMounted(()=> {
+const weekMap = ref({});
+const checkBoxFlag = ref({
+  mbFlag: true,
+  hxFlag: true,
+  xyFlag: true,
+  wcyRqFlag: false,
+});
+const graphicsFlag = ref(false);
+const queryInfo = () => {
+  queryParam.value["checkBoxFlag"] = checkBoxFlag.value;
+  graphicsFlag.value = false;
+  nextTick(() => {
+    graphicsFlag.value = true;
+  });
+};
 
-})
-watch(() => props.patientInfo, () => {
-    patientInfo.value = props.patientInfo
-    clearQueryData()
-    getWeek({inpatientNo: props.patientInfo.inpatientNo, admissTimes: props.patientInfo.admissTimes}).then((res) => {
-        weekMap.value = res
-        for (let i = 1; i <= res.totalWeek; i++) {
-            let temp = {}
-            temp['code'] = i;
-            temp['name'] = `第${i}周`;
-            weekList.value.push(temp)
-        }
-        queryParam.value.week = 1
-        selectWeek(1)
-        queryInfo()
-    })
-})
+onMounted(() => {});
+watch(
+  () => props.patientInfo,
+  () => {
+    if (stringIsBlank(props.patientInfo.inpatientNo)) {
+      return;
+    }
+    patientInfo.value = props.patientInfo;
+    clearQueryData();
+    getWeek({
+      inpatientNo: props.patientInfo.inpatientNo,
+      admissTimes: props.patientInfo.admissTimes,
+    }).then(res => {
+      weekMap.value = res;
+      for (let i = 1; i <= res.totalWeek; i++) {
+        let temp = {};
+        temp["code"] = i;
+        temp["name"] = `第${i}周`;
+        weekList.value.push(temp);
+      }
+      queryParam.value.week = 1;
+      selectWeek(1);
+      queryInfo();
+    });
+  },
+  { immediate: true }
+);
 
 function clearQueryData() {
-    weekList.value = []
-    queryParam.value.week = null
-    queryParam.value.startRecTime = ''
-    queryParam.value.endRecTime = ''
+  weekList.value = [];
+  queryParam.value.week = null;
+  queryParam.value.startRecTime = "";
+  queryParam.value.endRecTime = "";
 }
-
 </script>
 
-<style scoped>
-
-</style>
+<style scoped></style>

+ 303 - 212
src/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrAuxiliaryTools.vue

@@ -1,13 +1,15 @@
 <template>
   <div class="emr_tools-content">
-    <template v-for="(value , key) in drawerRange">
+    <template v-for="(value, key) in drawerRange">
       <el-divider>
         {{ key }}
       </el-divider>
       <el-row :gutter="5">
-        <el-col v-for="item in value"
-                :span="item.span ?? 8"
-                @click="handelClick(item)">
+        <el-col
+          v-for="item in value"
+          :span="item.span ?? 8"
+          @click="handelClick(item)"
+        >
           <div>
             {{ item.name }}
           </div>
@@ -17,330 +19,419 @@
   </div>
 
   <el-drawer
-      v-model="drawer"
-      direction="btt"
-      append-to-body
-      @opened="handleDrawerOpened"
-      modal-class="change_padding"
-      @closed="currentComp = ''"
-      destroy-on-close
-      size="100%"
-      :with-header="false">
-    <el-button class="close_but"
-               type="danger"
-               :style="{zIndex: zIndex}"
-               icon="Close"
-               @click="drawer =false">
+    v-model="drawer"
+    direction="btt"
+    append-to-body
+    @opened="handleDrawerOpened"
+    modal-class="change_padding"
+    @closed="currentComp = ''"
+    destroy-on-close
+    size="100%"
+    :with-header="false"
+  >
+    <el-button
+      class="close_but"
+      type="danger"
+      :style="{ zIndex: zIndex }"
+      icon="Close"
+      @click="drawer = false"
+    >
       关闭
     </el-button>
-    <Component :is="currentComp"/>
+    <Component :is="currentComp" />
   </el-drawer>
 </template>
 
-<script setup lang="ts">
-import {onMounted, ref, h, computed} from 'vue'
-import {patInfo} from './emr-tools-store'
-import {getServerDateApi} from "@/api/public-api";
-import {formatDate} from "@/utils/date";
-import {
-  emrMitt
-} from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/emr-init";
-import {useZIndex} from "element-plus";
-import {openPatientImage} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
-import {getDrgIntelligentGrouping} from "@/api/zhu-yuan-yi-sheng/emr-patient";
+<script setup lang="tsx">
+import { computed, h, onMounted, ref } from "vue";
+import { patInfo } from "./emr-tools-store";
+import { getServerDateApi } from "@/api/public-api";
+import { formatDate } from "@/utils/date";
+import { emrMitt } from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/emr-init";
+import { useZIndex } from "element-plus";
+import { openPatientImage } from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
+import { getDrgIntelligentGrouping } from "@/api/zhu-yuan-yi-sheng/emr-patient";
 
 const component = {
-  InspectionReportIndex: defineAsyncComponent(() =>
-      import('@/views/examination/InspectionReportIndex.vue')),
-  FluorescenceTest: defineAsyncComponent(() =>
-      import('@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/fluorescence-test/FluorescenceTest.vue')),
-  EmrHerbs: defineAsyncComponent(() =>
-      import('@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrHerbs.vue')),
-  EmrElectrocardiogram: defineAsyncComponent(() =>
-      import("@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrElectrocardiogram.vue")),
-  BloodSugar: defineAsyncComponent(() =>
-      import('@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/BloodSugar.vue')),
+  InspectionReportIndex: defineAsyncComponent(
+    () => import("@/views/examination/InspectionReportIndex.vue")
+  ),
+  FluorescenceTest: defineAsyncComponent(
+    () =>
+      import(
+        "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/fluorescence-test/FluorescenceTest.vue"
+      )
+  ),
+  EmrHerbs: defineAsyncComponent(
+    () =>
+      import("@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrHerbs.vue")
+  ),
+  EmrElectrocardiogram: defineAsyncComponent(
+    () =>
+      import(
+        "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrElectrocardiogram.vue"
+      )
+  ),
+  BloodSugar: defineAsyncComponent(
+    () =>
+      import(
+        "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/BloodSugar.vue"
+      )
+  ),
 
-  EmrOrderList: defineAsyncComponent(() =>
-      import('@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrOrderList.vue')),
-  EmrInspect: defineAsyncComponent(() =>
-      import('@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrInspect.vue')),
-  EmrTestV2: defineAsyncComponent(() =>
-      import('@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrTestV2/EmrTestV2.vue')),
-  EmrYzTemperature: defineAsyncComponent(() =>
-      import('@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrYzTemperature.vue')),
-  EmrGroupConsultation: defineAsyncComponent(() =>
-      import('@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrGroupConsultation.vue')),
-  EmrOperation: defineAsyncComponent(() =>
-      import('@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrOperation.vue')),
-  NreTable: defineAsyncComponent(() =>
-      import('@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/NreTable.vue'))
-}
+  EmrOrderList: defineAsyncComponent(
+    () =>
+      import(
+        "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrOrderList.vue"
+      )
+  ),
+  EmrInspect: defineAsyncComponent(
+    () =>
+      import(
+        "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrInspect.vue"
+      )
+  ),
+  EmrTestV2: defineAsyncComponent(
+    () =>
+      import(
+        "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrTestV2/EmrTestV2.vue"
+      )
+  ),
+  EmrYzTemperature: defineAsyncComponent(
+    () =>
+      import(
+        "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrYzTemperature.vue"
+      )
+  ),
+  EmrGroupConsultation: defineAsyncComponent(
+    () =>
+      import(
+        "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrGroupConsultation.vue"
+      )
+  ),
+  EmrOperation: defineAsyncComponent(
+    () =>
+      import(
+        "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrOperation.vue"
+      )
+  ),
+  NreTable: defineAsyncComponent(
+    () =>
+      import("@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/NreTable.vue")
+  ),
+  GraphicsTempalte: defineAsyncComponent(
+    () => import("@/components/medical-advice/temperature/GraphicsTempalte")
+  ),
+};
 
 const props = defineProps({
   patInfo: {
-    type: Object
+    type: Object,
   },
   emrData: {
-    type: Object
-  }
-})
+    type: Object,
+  },
+});
 
-const emits = defineEmits(['toFillInData', 'rightClickOnRegistrationMouse'])
+const emits = defineEmits(["toFillInData", "rightClickOnRegistrationMouse"]);
 
-const end = ref('')
-const start = ref('')
+const end = ref("");
+const start = ref("");
 
-const drawer = ref(false)
+const drawer = ref(false);
 
-const toFillInData = (data) => {
-  emits('toFillInData', data)
-}
+const toFillInData = data => {
+  emits("toFillInData", data);
+};
 
-const index = ref(-1)
-const open = (val) => {
-  localStorage.removeItem('clipBoardData');
-  drawer.value = true
-  index.value = val
-}
+const index = ref(-1);
+const open = val => {
+  localStorage.removeItem("clipBoardData");
+  drawer.value = true;
+  index.value = val;
+};
 
 const close = () => {
-  drawer.value = false
-  index.value = -1
-}
+  drawer.value = false;
+  index.value = -1;
+};
 
-const zIndex = ref(useZIndex().nextZIndex())
+const zIndex = ref(useZIndex().nextZIndex());
 const handleDrawerOpened = () => {
-  zIndex.value = useZIndex().nextZIndex()
-}
+  zIndex.value = useZIndex().nextZIndex();
+};
 
 function openWindow() {
-  openPatientImage(patInfo.value.inpatientNo)
+  openPatientImage(patInfo.value.inpatientNo);
 }
 
 const propsPatientInfo = computed(() => {
   return {
     patNo: patInfo.value.inpatientNo,
     times: patInfo.value.admissTimes,
-    onClose: close
-  }
-})
+    onClose: close,
+  };
+});
 
 const drawerRange: {
   [key: string]: {
-    name: string,
-    comp?: () => any,
-    click?: () => any,
-    span?: number
-  }[]
+    name: string;
+    comp?: () => any;
+    click?: () => any;
+    span?: number;
+  }[];
 } = {
-  "查询": [
+  查询: [
     {
-      name: '检验',
+      name: "检验",
       comp: () => {
-        return h(component.InspectionReportIndex, {...propsPatientInfo.value, start: start.value, end: end.value})
-      }
+        return h(component.InspectionReportIndex, {
+          ...propsPatientInfo.value,
+          start: start.value,
+          end: end.value,
+        });
+      },
     },
     {
-      name: '病理',
+      name: "病理",
       comp: () => {
-        return h('iframe', {
-          class: 'layout_full_size-no-border',
-          src: `http://172.16.32.192:801/PIMSWebView.asp?Zid=${propsPatientInfo.value.patNo}`
-        })
-      }
-    }, {
-      name: '荧光',
+        return h("iframe", {
+          class: "layout_full_size-no-border",
+          src: `http://172.16.32.192:801/PIMSWebView.asp?Zid=${propsPatientInfo.value.patNo}`,
+        });
+      },
+    },
+    {
+      name: "荧光",
       comp: () => {
-        return h('div', {style: {width: '100%', height: '100%'}},
-            h(component.FluorescenceTest, {
-              ...propsPatientInfo.value,
-              showCopy: true
-            }))
-      }
-    }, {
-      name: '影像',
+        return h(
+          "div",
+          { style: { width: "100%", height: "100%" } },
+          h(component.FluorescenceTest, {
+            ...propsPatientInfo.value,
+            showCopy: true,
+          })
+        );
+      },
+    },
+    {
+      name: "影像",
       click: () => {
-        openWindow()
-      }
-    }, {
-      name: '心电',
+        openWindow();
+      },
+    },
+    {
+      name: "心电",
+      comp: () => {
+        return h(component.EmrElectrocardiogram, { ...propsPatientInfo.value });
+      },
+    },
+    {
+      name: "血糖",
       comp: () => {
-        return h(component.EmrElectrocardiogram, {...propsPatientInfo.value})
-      }
+        return h(component.BloodSugar, { ...propsPatientInfo.value });
+      },
     },
     {
-      name: '血糖',
+      name: "手麻",
       comp: () => {
-        return h(component.BloodSugar, {...propsPatientInfo.value})
-      }
-    }, {
-      name: '手麻',
+        return h("iframe", {
+          class: "layout_full_size-no-border",
+          src: `http://172.16.32.181/interface/patient/doc.html?admissionNum=${propsPatientInfo.value.patNo}&admissionTimes=${propsPatientInfo.value.times}`,
+        });
+      },
+    },
+    {
+      name: "三测单",
       comp: () => {
-        return h('iframe', {
-          class: 'layout_full_size-no-border',
-          src: `http://172.16.32.181/interface/patient/doc.html?admissionNum=${propsPatientInfo.value.patNo}&admissionTimes=${propsPatientInfo.value.times}`
-        })
-      }
-    }, {
-      name: 'Drg分组',
+        return h(component.GraphicsTempalte, {
+          patientInfo: {
+            inpatientNo: propsPatientInfo.value.patNo,
+            admissTimes: propsPatientInfo.value.times,
+          },
+        });
+      },
+    },
+    {
+      name: "Drg分组",
       span: 24,
       click: () => {
-        getDrgIntelligentGrouping(propsPatientInfo.value.patNo, propsPatientInfo.value.times).then(res => {
-          setComp(h('iframe', {
-            class: 'layout_full_size-no-border',
-            src: res
-          }))
-        })
-      }
-    }
+        getDrgIntelligentGrouping(
+          propsPatientInfo.value.patNo,
+          propsPatientInfo.value.times
+        ).then(res => {
+          setComp(
+            h("iframe", {
+              class: "layout_full_size-no-border",
+              src: res,
+            })
+          );
+        });
+      },
+    },
   ],
-  "引用": [
+  引用: [
     {
-      name: '医嘱',
+      name: "医嘱",
       comp: () => {
-        return h(component.EmrOrderList, {...propsPatientInfo.value})
-      }
+        return h(component.EmrOrderList, { ...propsPatientInfo.value });
+      },
     },
     {
-      name: '检查',
+      name: "检查",
       comp: () => {
-        return h(component.EmrInspect, {...propsPatientInfo.value})
-      }
-    }, {
-      name: '检验',
+        return h(component.EmrInspect, { ...propsPatientInfo.value });
+      },
+    },
+    {
+      name: "检验",
       comp: () => {
-        return h(component.EmrTestV2, {...propsPatientInfo.value, isEmr: true})
-      }
+        return h(component.EmrTestV2, {
+          ...propsPatientInfo.value,
+          isEmr: true,
+        });
+      },
     },
     {
-      name: '护理',
-      comp: () => h(component.EmrYzTemperature, {...propsPatientInfo.value})
+      name: "护理",
+      comp: () => h(component.EmrYzTemperature, { ...propsPatientInfo.value }),
     },
     {
-      name: '会诊',
-      comp: () => h(component.EmrGroupConsultation, {...propsPatientInfo.value})
+      name: "会诊",
+      comp: () =>
+        h(component.EmrGroupConsultation, { ...propsPatientInfo.value }),
     },
     {
-      name: '手术',
-      comp: () => h(component.EmrOperation, {...propsPatientInfo.value, onToFillInData: toFillInData})
+      name: "手术",
+      comp: () =>
+        h(component.EmrOperation, {
+          ...propsPatientInfo.value,
+          onToFillInData: toFillInData,
+        }),
     },
     {
-      name: '草药',
+      name: "草药",
       comp: () => {
-        return h(component.EmrHerbs, {...propsPatientInfo.value})
-      }
+        return h(component.EmrHerbs, { ...propsPatientInfo.value });
+      },
     },
     {
-      name: '营养',
-      comp: () => h(component.NreTable, {
-        ...propsPatientInfo.value,
-        defaultValue: [start.value, end.value],
-        quote: (data) => {
-          emrMitt.emit('dataSourcePadding', data)
-          close()
-        }
-      })
-    }
+      name: "营养",
+      comp: () =>
+        h(component.NreTable, {
+          ...propsPatientInfo.value,
+          defaultValue: [start.value, end.value],
+          quote: data => {
+            emrMitt.emit("dataSourcePadding", data);
+            close();
+          },
+        }),
+    },
   ],
-  "回报": [
+  回报: [
     {
       span: 24,
-      name: 'CT检查结果',
+      name: "CT检查结果",
       click() {
-        createAnObject(this.name)
+        createAnObject(this.name);
       },
     },
     {
       span: 24,
-      name: '磁共振检查结果',
+      name: "磁共振检查结果",
       click() {
-        createAnObject(this.name)
+        createAnObject(this.name);
       },
     },
     {
       span: 24,
-      name: '病理结果',
+      name: "病理结果",
       click() {
-        createAnObject(this.name)
+        createAnObject(this.name);
       },
     },
     {
       span: 24,
-      name: '细菌培养结果',
+      name: "细菌培养结果",
       click() {
-        createAnObject(this.name)
+        createAnObject(this.name);
       },
-    }
-  ]
-}
+    },
+  ],
+};
 
-const createAnObject = (name) => {
-  const editor = emrMitt.emit('editor');
-  if (editor == null) return
+const createAnObject = name => {
+  const editor = emrMitt.emit("editor");
+  if (editor == null) return;
 
-  editor.execute('insertContents', {
+  editor.execute("insertContents", {
     value: [
       {
-        type: 'smarttext',
+        type: "smarttext",
         tips: name,
-        element: {code: {business: name, internal: '', dataElement: ''}, name: name, type: 'element'}
+        element: {
+          code: { business: name, internal: "", dataElement: "" },
+          name: name,
+          type: "element",
+        },
       },
-    ], isPuzzlepiece: true, defaultValue: ''
-  })
-}
-
+    ],
+    isPuzzlepiece: true,
+    defaultValue: "",
+  });
+};
 
 function handelClick(item) {
   if (item.click) {
-    item.click()
+    item.click();
   } else {
-    setComp(item.comp)
+    setComp(item.comp);
   }
 }
 
-const currentComp = ref('')
+const currentComp = ref("");
 
-const setComp = (comp) => {
-  currentComp.value = comp
-  drawer.value = true
-}
+const setComp = comp => {
+  currentComp.value = comp;
+  drawer.value = true;
+};
 
 async function rightClickOnRegistrationMouse() {
-  await nextTick()
+  await nextTick();
 
-  const tmp = []
+  const tmp = [];
   for (let key in drawerRange) {
     const item = drawerRange[key];
-    const itemTmp = []
+    const itemTmp = [];
     item.forEach(item => {
       itemTmp.push({
         text: item.name,
-        handler: () => handelClick(item)
-      })
-    })
+        handler: () => handelClick(item),
+      });
+    });
     tmp.push({
       text: key,
       menu: {
-        items: itemTmp
-      }
-    })
+        items: itemTmp,
+      },
+    });
   }
 
-  emits('rightClickOnRegistrationMouse', {text: '辅助工具', menu: {items: tmp}})
+  emits("rightClickOnRegistrationMouse", {
+    text: "辅助工具",
+    menu: { items: tmp },
+  });
 }
 
-
 onMounted(async () => {
-  patInfo.value = props.patInfo
-  start.value = formatDate(props.patInfo.admissDate)
-  end.value = formatDate(await getServerDateApi())
-  emrMitt.on('openTools', (val) => {
-    open(val)
-  })
-  rightClickOnRegistrationMouse()
-})
-
+  patInfo.value = props.patInfo;
+  start.value = formatDate(props.patInfo.admissDate);
+  end.value = formatDate(await getServerDateApi());
+  emrMitt.on("openTools", val => {
+    open(val);
+  });
+  rightClickOnRegistrationMouse();
+});
 </script>
 
 <style lang="scss">

+ 331 - 223
src/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/yz-header/YzQueryCondition.vue

@@ -1,14 +1,16 @@
 <template>
   <div>
     <div>
-      <CyDateRange
-          v-model="queryParam"
-          clearable/>
-      <el-button @click="queryYz"
-                 v-title="'医嘱过多导致查看医嘱困难,可选择时间范围来减少医嘱的条数,默认查询今天到90天前的数据,可通过选择日期后面的删除按钮,取消时间范围的查询'">
+      <CyDateRange v-model="queryParam" clearable />
+      <el-button
+        @click="queryYz"
+        v-title="
+          '医嘱过多导致查看医嘱困难,可选择时间范围来减少医嘱的条数,默认查询今天到90天前的数据,可通过选择日期后面的删除按钮,取消时间范围的查询'
+        "
+      >
         查询
       </el-button>
-      <el-divider direction="vertical"/>
+      <el-divider direction="vertical" />
       <label>
         显示范围:
         <select v-model="queryParam.displayRange" v-title="'显示范围'">
@@ -31,55 +33,69 @@
       </label>
       <label>
         药房:
-        <select v-model="queryParam.groupNo" v-title="'在新增医嘱的时候,去指定的药房查询药品。'">
+        <select
+          v-model="queryParam.groupNo"
+          v-title="'在新增医嘱的时候,去指定的药房查询药品。'"
+        >
           <option value="73">住院</option>
           <option value="71">门诊</option>
         </select>
       </label>
       <label>
         排序:
-        <select v-model="queryParam.sort"
-                @change="setYzOrderGroup">
+        <select v-model="queryParam.sort" @change="setYzOrderGroup">
           <option :value="OrderBy.asc">正序</option>
           <option :value="OrderBy.desc">反序</option>
         </select>
       </label>
 
-      <el-divider direction="vertical"/>
+      <el-divider direction="vertical" />
 
       <el-button-group>
-        <el-button type="primary"
-                   @click="addYiZhuClick"
-                   v-title="'添加医嘱,快捷键 ALT+A'">
+        <el-button
+          type="primary"
+          @click="addYiZhuClick"
+          v-title="'添加医嘱,快捷键 ALT+A'"
+        >
           添加
         </el-button>
 
-        <el-button type="success"
-                   :loading="confirmLoading"
-                   @click="currentConfirmOrdersClick"
-                   v-title="'把录入状态的医嘱,变为确认状态。'"
-                   v-if="!isCydy()">
+        <el-button
+          type="success"
+          :loading="confirmLoading"
+          @click="currentConfirmOrdersClick"
+          v-title="'把录入状态的医嘱,变为确认状态。'"
+          v-if="!isCydy()"
+        >
           确认
         </el-button>
 
-        <el-button type="success"
-                   @click="confirmTheDoctorSOrderWithMedicineClick"
-                   v-else
-                   v-title="'把录入状态的医嘱,变为确认状态。'">
+        <el-button
+          type="success"
+          @click="confirmTheDoctorSOrderWithMedicineClick"
+          v-else
+          v-title="'把录入状态的医嘱,变为确认状态。'"
+        >
           确认带药
         </el-button>
-
       </el-button-group>
-      <el-divider direction="vertical"/>
-      <el-dropdown split-button
-                   type="danger"
-                   @click="deleteAnOrderByOrderNo"
-                   v-title="'在表格中选中了一条医嘱后这个方法才能有效果,(这个医嘱需要在工作台显示),也可以在点击表格后面的删按钮<br /><span style=\'color:#fffe00\'>限制:</span>只能删除自己开的,只能删除(录入、确认)状态的医嘱。'">
+      <el-divider direction="vertical" />
+      <el-dropdown
+        split-button
+        type="danger"
+        @click="deleteAnOrderByOrderNo"
+        v-title="
+          '在表格中选中了一条医嘱后这个方法才能有效果,(这个医嘱需要在工作台显示),也可以在点击表格后面的删按钮<br /><span style=\'color:#fffe00\'>限制:</span>只能删除自己开的,只能删除(录入、确认)状态的医嘱。'
+        "
+      >
         删除
         <template #dropdown>
           <el-dropdown-menu>
             <div
-                v-title="'在表格中,点击前面的选择框,选中医嘱(多条或单挑),才能点击此按钮,限制:只能删除自己开的,只能删除(录入、确认)状态的医嘱。'">
+              v-title="
+                '在表格中,点击前面的选择框,选中医嘱(多条或单挑),才能点击此按钮,限制:只能删除自己开的,只能删除(录入、确认)状态的医嘱。'
+              "
+            >
               <el-dropdown-item @click="batchDeleteOrdersClick">
                 批量删除
               </el-dropdown-item>
@@ -88,11 +104,13 @@
         </template>
       </el-dropdown>
 
-      <el-divider direction="vertical"/>
+      <el-divider direction="vertical" />
 
-      <el-dropdown split-button
-                   @click="yzMitt.emit('clickOnTheOrderTemplate')"
-                   v-title="'获取医嘱的模板'">
+      <el-dropdown
+        split-button
+        @click="yzMitt.emit('clickOnTheOrderTemplate')"
+        v-title="'获取医嘱的模板'"
+      >
         模板
         <template #dropdown>
           <el-dropdown-menu>
@@ -110,13 +128,17 @@
         </template>
       </el-dropdown>
     </div>
-    <div style="border-top: 1px solid #000; margin: 5px 0"/>
+    <div style="border-top: 1px solid #000; margin: 5px 0" />
     <div>
-      <el-dropdown split-button
-                   @click="clickToStopTheOrder"
-                   v-title="'批量停止医嘱,需要结束时间一栏的日期数据框变成红色则代表,是要停止这条医嘱。<br />' +
-                    '双击日期输入框,默认填充停止到当前时间,并选中医嘱,可点击输入框中的日历,去选择其他时间。<br />' +
-                     '鼠标右键数据框,可以取消停止。'">
+      <el-dropdown
+        split-button
+        @click="clickToStopTheOrder"
+        v-title="
+          '批量停止医嘱,需要结束时间一栏的日期数据框变成红色则代表,是要停止这条医嘱。<br />' +
+          '双击日期输入框,默认填充停止到当前时间,并选中医嘱,可点击输入框中的日历,去选择其他时间。<br />' +
+          '鼠标右键数据框,可以取消停止。'
+        "
+      >
         批量停止
         <template #dropdown>
           <el-dropdown-menu>
@@ -150,328 +172,370 @@
         </template>
       </el-dropdown>
 
-      <el-dropdown split-button
-                   v-title="'设置选中医嘱成组。'"
-                   @click="confirmAssociationClick">
+      <el-dropdown
+        split-button
+        v-title="'设置选中医嘱成组。'"
+        @click="confirmAssociationClick"
+      >
         关联
         <template #dropdown>
           <el-dropdown-menu>
-            <el-dropdown-item @click="clearAssociate()">取消关联</el-dropdown-item>
+            <el-dropdown-item @click="clearAssociate()"
+              >取消关联
+            </el-dropdown-item>
           </el-dropdown-menu>
         </template>
       </el-dropdown>
 
-      <el-dropdown
-          v-title="'患者数据维护,包含传染病、过敏源。'"
-          split-button>
+      <el-dropdown v-title="'患者数据维护,包含传染病、过敏源。'" split-button>
         数据维护
         <template #dropdown>
           <el-dropdown-menu>
-            <el-dropdown-item
-                @click="yzMitt.emit('allergen')">
+            <el-dropdown-item @click="yzMitt.emit('allergen')">
               过敏源维护
             </el-dropdown-item>
-            <el-dropdown-item @click="crbOpen">
-              传染病上报
-            </el-dropdown-item>
+            <el-dropdown-item @click="crbOpen"> 传染病上报</el-dropdown-item>
             <el-dropdown-item
-                @click="router.push(`/outpatient/chronicDisease/chronicDiseaseRegister/${props.patientInfo.inpatientNo}`)">
+              @click="
+                router.push(
+                  `/outpatient/chronicDisease/chronicDiseaseRegister/${props.patientInfo.inpatientNo}`
+                )
+              "
+            >
               慢病登记
             </el-dropdown-item>
           </el-dropdown-menu>
         </template>
       </el-dropdown>
 
-      <el-dropdown v-title="'工作台操作,录入、清空、医嘱弹窗、复制粘贴'"
-                   @click="yzMitt.emit('toAddAnOrder')"
-                   split-button>
+      <el-dropdown
+        v-title="'工作台操作,录入、清空、医嘱弹窗、复制粘贴'"
+        @click="yzMitt.emit('toAddAnOrder')"
+        split-button
+      >
         录入医嘱
         <template #dropdown>
           <el-dropdown-menu>
             <div v-title="'清空,正在编辑的医嘱或者选中的医嘱。'">
-              <el-dropdown-item
-                  @click="yzMitt.emit('emptyTheWorkbench')">
+              <el-dropdown-item @click="yzMitt.emit('emptyTheWorkbench')">
                 清空工作台
               </el-dropdown-item>
             </div>
-            <div v-title="'打开医嘱弹窗,目前只有转科、抗菌药物信息、处置医嘱可以打开弹窗。'">
+            <div
+              v-title="
+                '打开医嘱弹窗,目前只有转科、抗菌药物信息、处置医嘱可以打开弹窗。'
+              "
+            >
               <el-dropdown-item @click="yzMitt.emit('openTheOrderPopUpWindow')">
                 医嘱弹窗
               </el-dropdown-item>
             </div>
-            <div v-title="'复制并粘贴医嘱,如果想要分开,请在表格中鼠标右键一个医嘱,选择复制,然后在到表格中,选择粘贴医嘱。<br /><br />' +
-             '<span style=\'color:#fffe00\'>注意:</span>如果你是在临时医嘱页面,那么长期医嘱会改为 ONCE 频率,如果在长期医嘱页面那么临时医嘱会改为 QD 频率,如果是成组的医嘱' +
-              '复制父医嘱即可子医嘱会自动复制,目前不会提供批量复制医嘱的功能。'">
-              <el-dropdown-item
-                  @click="yzMitt.emit('duplicateAndPaste')">
+            <div
+              v-title="
+                '复制并粘贴医嘱,如果想要分开,请在表格中鼠标右键一个医嘱,选择复制,然后在到表格中,选择粘贴医嘱。<br /><br />' +
+                '<span style=\'color:#fffe00\'>注意:</span>如果你是在临时医嘱页面,那么长期医嘱会改为 ONCE 频率,如果在长期医嘱页面那么临时医嘱会改为 QD 频率,如果是成组的医嘱' +
+                '复制父医嘱即可子医嘱会自动复制,目前不会提供批量复制医嘱的功能。'
+              "
+            >
+              <el-dropdown-item @click="yzMitt.emit('duplicateAndPaste')">
                 复制并粘贴
               </el-dropdown-item>
             </div>
 
-            <div v-title="'<span style=\'color:#fffe00\'>带有实验性质的功能,如果此方法出错频率高,后期可能会删除。</span>' +
-             '<br />复制选中的医嘱并粘贴。'">
+            <div
+              v-title="
+                '<span style=\'color:#fffe00\'>带有实验性质的功能,如果此方法出错频率高,后期可能会删除。</span>' +
+                '<br />复制选中的医嘱并粘贴。'
+              "
+            >
               <el-dropdown-item @click="openCopyDialog">
                 复制选中的医嘱
               </el-dropdown-item>
             </div>
-
           </el-dropdown-menu>
         </template>
       </el-dropdown>
 
-      <el-dropdown title="其他操作"
-                   split-button>
+      <el-dropdown title="其他操作" split-button>
         其他
         <template #dropdown>
           <el-dropdown-menu>
-            <div v-title="'为即将出院的患者预约门诊,如果患者没有门诊号的话,需要先创建一个门诊号。'">
-              <el-dropdown-item
-                  @click="outPatientDialogOpen()">
+            <div
+              v-title="
+                '为即将出院的患者预约门诊,如果患者没有门诊号的话,需要先创建一个门诊号。'
+              "
+            >
+              <el-dropdown-item @click="outPatientDialogOpen()">
                 门诊预约
               </el-dropdown-item>
             </div>
-            <div v-title="'一键停止正在执行的医嘱,会生成一条医嘱,此医嘱是口头医嘱,有没任何效果。'">
-              <el-dropdown-item
-                  @click="oneClickStopOpen">
+            <div
+              v-title="
+                '一键停止正在执行的医嘱,会生成一条医嘱,此医嘱是口头医嘱,有没任何效果。'
+              "
+            >
+              <el-dropdown-item @click="oneClickStopOpen">
                 一键停止
               </el-dropdown-item>
             </div>
             <el-dropdown-item @click="clickTimeLimitReminder">
               时限提示
             </el-dropdown-item>
+            <el-dropdown-item @click="openSanCeDan"> 三测单</el-dropdown-item>
+            <el-dropdown-item @click="nursingRecordForm">
+              护理记录单
+            </el-dropdown-item>
           </el-dropdown-menu>
         </template>
       </el-dropdown>
 
-      <el-button type="success" icon="RefreshRight" @click="rcvrcalcost"
-                 v-title="'如果患者费用存在问题或者有些费用看不到,<br />可以执行此操作。'"> 费用接收重算
+      <el-button
+        type="success"
+        icon="RefreshRight"
+        @click="rcvrcalcost"
+        v-title="
+          '如果患者费用存在问题或者有些费用看不到,<br />可以执行此操作。'
+        "
+      >
+        费用接收重算
       </el-button>
-
     </div>
   </div>
 
   <!--  门诊预约 -->
-  <OutpatientAppointments v-if="outPatientDialog"
-                          @closed="outPatientDialog  = false"/>
+  <OutpatientAppointments
+    v-if="outPatientDialog"
+    @closed="outPatientDialog = false"
+  />
 
-  <one-click-stop v-if="oneClickStopDialog"
-                  @closed="oneClickStopDialog  = false"/>
+  <one-click-stop
+    v-if="oneClickStopDialog"
+    @closed="oneClickStopDialog = false"
+  />
 
-  <CopyTableDataOrder v-model="copyTableDialog"
-                      v-if="copyTableDialog"/>
+  <CopyTableDataOrder v-model="copyTableDialog" v-if="copyTableDialog" />
 </template>
 
-<script setup>
+<script setup lang="jsx">
 import {
   associateOrdersApi,
   confirmTheDoctorSOrderWithMedicine,
-  stopOrder
+  stopOrder,
 } from "@/api/zhu-yuan-yi-sheng/yi-zhu-lu-ru";
 import {
   associateOrders,
   clearAssociate,
+  clickTimeLimitReminder,
   confirmLoading,
+  errorMsgFunc,
   huanZheXinXi,
   isCydy,
+  jsQueryYzData,
+  OrderBy,
   queryParam,
   setOrderDataAndTwinkle,
+  setYzOrderGroup,
   yiZhuData,
   yiZhuDataInit,
   youWuXuanZheHuanZhe,
   yzMitt,
-  clickTimeLimitReminder,
-  errorMsgFunc, OrderBy, setYzOrderGroup, jsQueryYzData
 } from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
-import {BizException, ExceptionEnum} from "@/utils/BizException";
+import { BizException, ExceptionEnum } from "@/utils/BizException";
 import router from "@/router";
-import {clone} from "@/utils/clone";
-import {listIsBlank, stringIsBlank} from "@/utils/blank-utils";
-import {xcMessage} from "@/utils/xiaochan-element-plus";
-import {getFormatDatetime} from "@/utils/date";
-import {ElMessageBox} from "element-plus";
-import ReportOfInfectiousDiseases
-  from "@/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/report-of-infectious-diseases/ReportOfInfectiousDiseases.vue";
-import OutpatientAppointments
-  from "@/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/components/OutpatientAppointments.vue";
+import { clone } from "@/utils/clone";
+import { listIsBlank, stringIsBlank } from "@/utils/blank-utils";
+import { xcMessage } from "@/utils/xiaochan-element-plus";
+import { getFormatDatetime } from "@/utils/date";
+import { ElMessageBox } from "element-plus";
+import ReportOfInfectiousDiseases from "@/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/report-of-infectious-diseases/ReportOfInfectiousDiseases.vue";
+import OutpatientAppointments from "@/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/components/OutpatientAppointments.vue";
 import OneClickStop from "@/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/components/OneClickStop.vue";
-import {getPatientInfo, receiveAndRecalculateCost} from "@/api/inpatient/patient";
-import CopyTableDataOrder
-  from "@/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/components/table/CopyTableDataOrder.vue";
+import {
+  getPatientInfo,
+  receiveAndRecalculateCost,
+} from "@/api/inpatient/patient";
+import CopyTableDataOrder from "@/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/components/table/CopyTableDataOrder.vue";
 import setDialogToJs from "@/components/js-dialog-comp/useDialogToJs";
-import {CyMessageBox} from "@/components/cy/message-box";
-import {useUserStore} from "@/pinia/user-store";
+import { CyMessageBox } from "@/components/cy/message-box";
+import { useUserStore } from "@/pinia/user-store";
 import CyDateRange from "@/components/cy/date-range/CyDateRange.vue";
+import { useDialog } from "@/components/cy/CyDialog/index";
+import XEUtils from "xe-utils";
 
 const props = defineProps({
   patientInfo: {
-    type: Object
+    type: Object,
   },
   returnData: {
-    type: Function
+    type: Function,
   },
   frequCodeChange: Function,
   confirmOrdersClick: Function,
-  clickOnTheOrderTemplate: Function
-})
+  clickOnTheOrderTemplate: Function,
+});
 
-const userStore = useUserStore().userInfo
+const userStore = useUserStore().userInfo;
 
-const emits = defineEmits(['batchDeleteOrdersClick'])
+const emits = defineEmits(["batchDeleteOrdersClick"]);
 
-const copyTableDialog = ref(false)
+const copyTableDialog = ref(false);
 const openCopyDialog = () => {
-  if (youWuXuanZheHuanZhe()) return
-  copyTableDialog.value = true
-}
+  if (youWuXuanZheHuanZhe()) return;
+  copyTableDialog.value = true;
+};
 
 const queryYz = async (tableScrollTop = true) => {
   if (!props.patientInfo.inpatientNo) {
-    BizException(ExceptionEnum.MESSAGE_ERROR, '请先选择患者')
+    BizException(ExceptionEnum.MESSAGE_ERROR, "请先选择患者");
   }
   try {
-    yiZhuDataInit()
-    yzMitt.emit('clearSelected')
+    yiZhuDataInit();
+    yzMitt.emit("clearSelected");
     if (tableScrollTop) {
-      yzMitt.emit('tableScroll', 0);
+      yzMitt.emit("tableScroll", 0);
     }
-    await jsQueryYzData()
-  } catch (e) {
-  }
-
-}
+    await jsQueryYzData();
+  } catch (e) {}
+};
 
 const addYiZhuClick = () => {
-  yzMitt.emit('toAddAnOrder')
-}
+  yzMitt.emit("toAddAnOrder");
+};
 
 const currentConfirmOrdersClick = () => {
   if (!props.patientInfo.inpatientNo) {
-    BizException(ExceptionEnum.MESSAGE_ERROR, '请先选择患者')
+    BizException(ExceptionEnum.MESSAGE_ERROR, "请先选择患者");
   }
-  props.confirmOrdersClick()
-}
+  props.confirmOrdersClick();
+};
 
 /**
  * 确认医嘱
  */
 const confirmTheDoctorSOrderWithMedicineClick = () => {
   if (!props.patientInfo.inpatientNo) {
-    BizException(ExceptionEnum.MESSAGE_ERROR, '请先选择患者')
+    BizException(ExceptionEnum.MESSAGE_ERROR, "请先选择患者");
   }
-  confirmLoading.value = true
-  confirmTheDoctorSOrderWithMedicine(props.patientInfo.inpatientNo, props.patientInfo.admissTimes).then((res) => {
+  confirmLoading.value = true;
+  confirmTheDoctorSOrderWithMedicine(
+    props.patientInfo.inpatientNo,
+    props.patientInfo.admissTimes
+  ).then(res => {
     if (res && res?.error) {
-      errorMsgFunc.add(res.data)
+      errorMsgFunc.add(res.data);
     } else {
-      queryYz()
-      confirmLoading.value = false
+      queryYz();
+      confirmLoading.value = false;
     }
-  })
-}
+  });
+};
 
 const deleteAnOrderByOrderNo = () => {
-  yzMitt.emit('deleteAnOrderByOrderNo', yiZhuData.value)
-}
+  yzMitt.emit("deleteAnOrderByOrderNo", yiZhuData.value);
+};
 
 /**
  * 点击批量删除数据
  */
 const batchDeleteOrdersClick = () => {
-  emits('batchDeleteOrdersClick')
-}
+  emits("batchDeleteOrdersClick");
+};
 
 /**
  * 跳转到模板页面
  */
 const orderTemplateClick = () => {
   router.push({
-    name: 'orderTemplateMaintenance',
-  })
-}
+    name: "orderTemplateMaintenance",
+  });
+};
 
 /**
  * 选中复制的医嘱
  */
 const orderTemplateClickCopy = () => {
-  let temp = clone(yzMitt.emit('getSelectedData'))
+  let temp = clone(yzMitt.emit("getSelectedData"));
   if (listIsBlank(temp)) {
-    xcMessage.error('请先选中医嘱。')
-    return
+    xcMessage.error("请先选中医嘱。");
+    return;
   }
   let dept = {
     code: huanZheXinXi.value.zkWard,
-    name: huanZheXinXi.value.zkWardName
-  }
+    name: huanZheXinXi.value.zkWardName,
+  };
   router.push({
-    name: 'orderTemplateMaintenance',
+    name: "orderTemplateMaintenance",
     params: {
       data: JSON.stringify(temp),
-      dept: JSON.stringify(dept)
-    }
-  })
-}
+      dept: JSON.stringify(dept),
+    },
+  });
+};
 
 /**
  * 批量停止时间
  */
 const clickToStopTheOrder = async () => {
-  const tempData = yzMitt.emit('getSelectedData')
+  const tempData = yzMitt.emit("getSelectedData");
   tempData.forEach(item => {
     // 因为前端用的是浏览器自带的 所以要删除 T
-    item.endTime = getFormatDatetime(item.endTimeTemp)
-  })
+    item.endTime = getFormatDatetime(item.endTimeTemp);
+  });
 
   await CyMessageBox.confirm({
     message: `是否批量停止时间,${tempData.length}条`,
-  })
+  });
 
   const param = {
     inpatientNo: huanZheXinXi.value.inpatientNo,
     admissTimes: huanZheXinXi.value.admissTimes,
-    list: tempData
-  }
-  stopOrder(param).then(() => {
-    yzMitt.emit('queryYz')
-    yzMitt.emit('getTableRef')?.clearCheckboxRow()
-  }).catch(e => {
-    const tmp = {}
-    for (const key in e.data) {
-      tmp[key] = {error: [e.data[key]]}
-    }
-    errorMsgFunc.add(tmp)
-  })
-
-}
+    list: tempData,
+  };
+  stopOrder(param)
+    .then(() => {
+      yzMitt.emit("queryYz");
+      yzMitt.emit("getTableRef")?.clearCheckboxRow();
+    })
+    .catch(e => {
+      const tmp = {};
+      for (const key in e.data) {
+        tmp[key] = { error: [e.data[key]] };
+      }
+      errorMsgFunc.add(tmp);
+    });
+};
 
 // 点击修改医嘱时间
 const clickToModifyTheDoctorSOrderTime = () => {
   router.push({
-    name: 'yzActOrderModify',
+    name: "yzActOrderModify",
     query: {
       patNo: huanZheXinXi.value.inpatientNo,
     },
-  })
-}
+  });
+};
 
 // 跳转到病案首页
 const jumpToMedicalRecord = () => {
   router.push({
-    name: 'fillCaseFrontSheet',
+    name: "fillCaseFrontSheet",
     query: {
       patNo: huanZheXinXi.value.inpatientNo,
       deptCode: huanZheXinXi.value.smallDept,
     },
-  })
-}
+  });
+};
 
 // 合理用药
 const openRationalDrugUse = () => {
-  window.open('http://172.16.32.121:9097/index.html')
-}
+  window.open("http://172.16.32.121:9097/index.html");
+};
 
 function openNewNutrientPlus() {
-  if (youWuXuanZheHuanZhe()) return
-  window.open(`http://172.16.32.159/sysmgrApi/sysmgr/staff/hisToLogin?account=${userStore.codeRs}&patientHospitalNumber=${huanZheXinXi.value.inpatientNo}`)
+  if (youWuXuanZheHuanZhe()) return;
+  window.open(
+    `http://172.16.32.159/sysmgrApi/sysmgr/staff/hisToLogin?account=${userStore.codeRs}&patientHospitalNumber=${huanZheXinXi.value.inpatientNo}`
+  );
 }
 
 /**
@@ -479,83 +543,128 @@ function openNewNutrientPlus() {
  */
 const routerBloodSugarClick = () => {
   router.push({
-    name: 'bloodSugarQuery',
+    name: "bloodSugarQuery",
     params: {
       patNo: huanZheXinXi.value.inpatientNo,
       times: huanZheXinXi.value.admissTimes,
-    }
-  })
-}
+    },
+  });
+};
 
 // 点击确认关联
 const confirmAssociationClick = () => {
   if (associateOrders.value.actOrderNo === null) {
-    BizException(ExceptionEnum.MESSAGE_ERROR, '请先选择需要关联的父医嘱')
+    BizException(ExceptionEnum.MESSAGE_ERROR, "请先选择需要关联的父医嘱");
   }
   if (associateOrders.value.associatedGroup.length === 0) {
-    BizException(ExceptionEnum.MESSAGE_ERROR, '至少选择一个子医嘱')
+    BizException(ExceptionEnum.MESSAGE_ERROR, "至少选择一个子医嘱");
   }
-  ElMessageBox.confirm('请确认是否要关联这些医嘱。', '提示', {
-    type: 'warning'
-  }).then(() => {
-    associateOrdersApi(associateOrders.value).then(async (res) => {
-      clearAssociate()
-      await setOrderDataAndTwinkle(res[0].actOrderNo, res)
-    })
-  }).catch(() => {
+  ElMessageBox.confirm("请确认是否要关联这些医嘱。", "提示", {
+    type: "warning",
   })
-}
+    .then(() => {
+      associateOrdersApi(associateOrders.value).then(async res => {
+        clearAssociate();
+        await setOrderDataAndTwinkle(res[0].actOrderNo, res);
+      });
+    })
+    .catch(() => {});
+};
 
 const crbOpen = () => {
-  if (youWuXuanZheHuanZhe()) return
+  if (youWuXuanZheHuanZhe()) return;
   setDialogToJs(ReportOfInfectiousDiseases, {
     patNo: huanZheXinXi.value.inpatientNo,
     times: huanZheXinXi.value.admissTimes,
-  }).catch(() => {
+  }).catch(() => {});
+};
 
-  })
-}
-
-const outPatientDialog = ref(false)
+const outPatientDialog = ref(false);
 const outPatientDialogOpen = () => {
   if (stringIsBlank(huanZheXinXi.value.zkWard)) {
     BizException(ExceptionEnum.LOGICAL_ERROR, "请先选择患者。");
   }
   if (stringIsBlank(huanZheXinXi.value.mzNo)) {
-    BizException(ExceptionEnum.LOGICAL_ERROR, "没有查询到患者门诊号,请先建档。");
+    BizException(
+      ExceptionEnum.LOGICAL_ERROR,
+      "没有查询到患者门诊号,请先建档。"
+    );
   }
-  outPatientDialog.value = true
-}
+  outPatientDialog.value = true;
+};
 
-const oneClickStopDialog = ref(false)
+const oneClickStopDialog = ref(false);
 const oneClickStopOpen = () => {
-  if (youWuXuanZheHuanZhe()) return
-  oneClickStopDialog.value = true
-}
+  if (youWuXuanZheHuanZhe()) return;
+  oneClickStopDialog.value = true;
+};
 
 const rcvrcalcost = async () => {
-  if (youWuXuanZheHuanZhe()) return
-  let {inpatientNo, admissTimes, ledgerSn, admissDate} = huanZheXinXi.value
-  await receiveAndRecalculateCost({inpatientNo, admissTimes, ledgerSn, admissDate})
-  huanZheXinXi.value = await getPatientInfo(inpatientNo)
+  if (youWuXuanZheHuanZhe()) return;
+  let { inpatientNo, admissTimes, ledgerSn, admissDate } = huanZheXinXi.value;
+  await receiveAndRecalculateCost({
+    inpatientNo,
+    admissTimes,
+    ledgerSn,
+    admissDate,
+  });
+  huanZheXinXi.value = await getPatientInfo(inpatientNo);
+};
+
+const GraphicsTempalte = defineAsyncComponent(
+  () => import("@/components/medical-advice/temperature/GraphicsTempalte")
+);
+
+function openSanCeDan() {
+  if (youWuXuanZheHuanZhe()) return;
+  const { inpatientNo, admissTimes } = huanZheXinXi.value;
+
+  useDialog(GraphicsTempalte, {
+    dialogProps: { title: "三测单", fullscreen: true },
+    params: {
+      patientInfo: {
+        inpatientNo,
+        admissTimes,
+      },
+    },
+  }).catch(XEUtils.noop);
 }
 
-onMounted(async () => {
+const EmrYzTemperature = defineAsyncComponent(
+  () =>
+    import(
+      "@/components/zhu-yuan-yi-sheng/emr/auxiliary-tools/EmrYzTemperature.vue"
+    )
+);
+
+function nursingRecordForm() {
+  if (youWuXuanZheHuanZhe()) return;
+  const { inpatientNo, admissTimes } = huanZheXinXi.value;
+  useDialog(EmrYzTemperature, {
+    dialogProps: {
+      title: "护理记录单",
+      fullscreen: true,
+    },
+    params: {
+      patNo: inpatientNo,
+      times: admissTimes,
+    },
+  });
+}
 
-  yzMitt.on('queryYz', (val) => {
-    return queryYz(val)
-  })
+onMounted(async () => {
+  yzMitt.on("queryYz", val => {
+    return queryYz(val);
+  });
 
-  yzMitt.on('confirmMedicalAdvice', () => {
+  yzMitt.on("confirmMedicalAdvice", () => {
     if (isCydy()) {
-      confirmTheDoctorSOrderWithMedicineClick()
+      confirmTheDoctorSOrderWithMedicineClick();
     } else {
-      currentConfirmOrdersClick()
+      currentConfirmOrdersClick();
     }
-  })
-
-})
-
+  });
+});
 </script>
 
 <style scoped lang="scss">
@@ -563,5 +672,4 @@ onMounted(async () => {
   width: 10px;
   height: 10px;
 }
-
 </style>

+ 11 - 15
src/views/hospitalization/zhu-yuan-yi-sheng/Home.vue

@@ -1,44 +1,41 @@
 <template>
   <div class="layout_container">
     <header>
-      <HuanZheXinXi
-          :huan-zhe-xin-xi="patientInfo"/>
+      <HuanZheXinXi :huan-zhe-xin-xi="patientInfo" />
     </header>
     <div class="layout_main layout_container layout-horizontal">
       <aside>
-        <YzSidebar/>
+        <YzSidebar />
       </aside>
       <div class="layout_main layout_container">
         <header>
-          <YzTag :patient-info="patientInfo"/>
+          <YzTag :patient-info="patientInfo" />
         </header>
         <div class="layout_main">
-          <LayoutRouterView/>
+          <LayoutRouterView />
         </div>
       </div>
     </div>
   </div>
   <!-- 电子病历质控 -->
-  <EmrControlRule/>
+  <EmrControlRule />
 </template>
 
 <script setup>
 import HuanZheXinXi from "@/components/zhu-yuan-yi-sheng/HuanZheXinXi.vue";
-import {
-  huanZheXinXi as patientInfo,
-} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
+import { huanZheXinXi as patientInfo } from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
 import EmrControlRule from "@/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/EmrControlRuleDialog.vue";
 import YzTag from "@/components/zhu-yuan-yi-sheng/YzTag.vue";
 import router from "@/router";
-import {useKeepKeys} from "@/utils/xckeydown";
+import { useKeepKeys } from "@/utils/xckeydown";
 import YzSidebar from "@/views/hospitalization/zhu-yuan-yi-sheng/comp/sidebar/YzSidebar.vue";
 import LayoutRouterView from "@/layout/LayoutRouterView.vue";
 
 useKeepKeys({
-  'F2': () => {
-    router.push('/')
-  }
-})
+  F2: () => {
+    router.push("/");
+  },
+});
 </script>
 
 <style lang="scss">
@@ -52,5 +49,4 @@ useKeepKeys({
     height: 10px;
   }
 }
-
 </style>

+ 183 - 146
src/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/components/OutpatientAppointments.vue

@@ -1,157 +1,178 @@
 <script setup name="OutpatientAppointments">
-import {huanZheXinXi} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
-import {stringIsBlank} from "@/utils/blank-utils";
+import { huanZheXinXi } from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
+import { stringIsBlank } from "@/utils/blank-utils";
 import {
   getAmpmByDateAndDeptCode,
-  getChargeTypeByRequestDayAndDoctor, getDoctorCodeByRequestDayAndDoctor, getMzChargeTypeByMzyRequestId, saveMzyReqrec
+  getChargeTypeByRequestDayAndDoctor,
+  getDoctorCodeByRequestDayAndDoctor,
+  getMzChargeTypeByMzyRequestId,
+  saveMzyReqrec,
 } from "@/api/outpatient/appointments";
-import {xcMessage} from "@/utils/xiaochan-element-plus";
+import { xcMessage } from "@/utils/xiaochan-element-plus";
 
-const dialog = ref(true)
+const dialog = ref(true);
 
-const emits = defineEmits(['closed'])
+const emits = defineEmits(["closed"]);
 
 const openDialog = () => {
   if (stringIsBlank(huanZheXinXi.value.zkWard)) {
-    xcMessage.error('请先选择患者。')
-    cancel()
+    xcMessage.error("请先选择患者。");
+    cancel();
   }
   if (stringIsBlank(huanZheXinXi.value.mzNo)) {
-    xcMessage.error('没有查询到患者门诊号,请先建档。')
-    cancel()
+    xcMessage.error("没有查询到患者门诊号,请先建档。");
+    cancel();
   }
-  param.unitCode = huanZheXinXi.value.zkWard
-  param.patientId = huanZheXinXi.value.mzNo
-  param.birthDay = huanZheXinXi.value.birthDay
-}
+  param.unitCode = huanZheXinXi.value.zkWard;
+  param.patientId = huanZheXinXi.value.mzNo;
+  param.birthDay = huanZheXinXi.value.birthDay;
+};
 
 let param = reactive({
-  requestDayStr: '',
-  unitCode: '',
-  ampm: '',
-  apTime: '',
-  chargeType: '',
-  mzyRequestId: '',
-  birthDay: '',
-  patientId: ''
-})
+  requestDayStr: "",
+  unitCode: "",
+  ampm: "",
+  apTime: "",
+  chargeType: "",
+  mzyRequestId: "",
+  birthDay: "",
+  patientId: "",
+});
 
-const segmentList = ref([])
+const segmentList = ref([]);
 
 const dateChange = () => {
+  param.ampm = "";
+  param.apTime = "";
+  param.chargeType = "";
+  param.mzyRequestId = "";
 
-  param.ampm = ''
-  param.apTime = ''
-  param.chargeType = ''
-  param.mzyRequestId = ''
-
-  segmentList.value = []
-  numbercategory.value = []
-  doctorList.value = []
+  segmentList.value = [];
+  numbercategory.value = [];
+  doctorList.value = [];
 
   getAmpmByDateAndDeptCode(param.requestDayStr, param.unitCode).then(res => {
-    segmentList.value = res
-  })
-}
+    segmentList.value = res;
+  });
+};
 
 const aList = [
-  {code: 'a1', name: '08:00-08:30'},
-  {code: 'a2', name: '08:30-09:00'},
-  {code: 'a3', name: '09:00-09:30'},
-  {code: 'a4', name: '09:30-10:00'},
-  {code: 'a5', name: '10:00-10:30'},
-  {code: 'a6', name: '10:30-11:00'},
-  {code: 'a7', name: '11:00-11:30'},
-  {code: 'a8', name: '11:30-12:00'},
-]
+  { code: "a1", name: "08:00-08:30" },
+  { code: "a2", name: "08:30-09:00" },
+  { code: "a3", name: "09:00-09:30" },
+  { code: "a4", name: "09:30-10:00" },
+  { code: "a5", name: "10:00-10:30" },
+  { code: "a6", name: "10:30-11:00" },
+  { code: "a7", name: "11:00-11:30" },
+  { code: "a8", name: "11:30-12:00" },
+];
 const pList = [
-  {code: 'p1', name: '14:00-14:30'},
-  {code: 'p2', name: '14:30-15:00'},
-  {code: 'p3', name: '15:00-15:30'},
-  {code: 'p4', name: '15:30-16:00'},
-  {code: 'p5', name: '16:00-16:30'},
-  {code: 'p6', name: '16:30-17:00'},
-]
+  { code: "p1", name: "14:00-14:30" },
+  { code: "p2", name: "14:30-15:00" },
+  { code: "p3", name: "15:00-15:30" },
+  { code: "p4", name: "15:30-16:00" },
+  { code: "p5", name: "16:00-16:30" },
+  { code: "p6", name: "16:30-17:00" },
+];
 const segmentCalculation = computed(() => {
-  if (param.ampm === 'a') {
-    return aList
-  } else if (param.ampm === 'p') {
-    return pList
+  if (param.ampm === "a") {
+    return aList;
+  } else if (param.ampm === "p") {
+    return pList;
   }
-  return []
-})
-
+  return [];
+});
 
-const numbercategory = ref([])
+const numbercategory = ref([]);
 const chargeTypeByRequestDayAndDoctor = () => {
   if (param.unitCode && param.ampm && param.requestDayStr) {
-    getChargeTypeByRequestDayAndDoctor(param.unitCode, param.ampm, param.requestDayStr, param.apTime).then((res) => {
-      numbercategory.value = res
-    })
+    getChargeTypeByRequestDayAndDoctor(
+      param.unitCode,
+      param.ampm,
+      param.requestDayStr,
+      param.apTime
+    ).then(res => {
+      numbercategory.value = res;
+    });
   }
-}
+};
 
 const ampmChange = () => {
-  param.apTime = ''
-  param.chargeType = ''
-  param.mzyRequestId = ''
+  param.apTime = "";
+  param.chargeType = "";
+  param.mzyRequestId = "";
 
-  numbercategory.value = []
-  doctorList.value = []
+  numbercategory.value = [];
+  doctorList.value = [];
 
-  if (!(param.ampm === 'a' || param.ampm === 'p')) {
-    chargeTypeByRequestDayAndDoctor()
+  if (!(param.ampm === "a" || param.ampm === "p")) {
+    chargeTypeByRequestDayAndDoctor();
   }
+};
 
-}
-
-const doctorList = ref([])
+const doctorList = ref([]);
 const doctorCodeByRequestDayAndDoctor = () => {
-  param.mzyRequestId = ''
-  doctorList.value = []
+  param.mzyRequestId = "";
+  doctorList.value = [];
 
   if (param.unitCode && param.ampm && param.requestDayStr && param.chargeType) {
-    getDoctorCodeByRequestDayAndDoctor(param.unitCode, param.ampm, param.requestDayStr, param.apTime, param.chargeType).then((res) => {
-      doctorList.value = res
-    })
+    getDoctorCodeByRequestDayAndDoctor(
+      param.unitCode,
+      param.ampm,
+      param.requestDayStr,
+      param.apTime,
+      param.chargeType
+    ).then(res => {
+      doctorList.value = res;
+    });
   }
-}
+};
 
-const feeInfo = ref({})
+const feeInfo = ref({});
 const doctorsChange = () => {
   if (param.mzyRequestId && param.birthDay && param.patientId) {
-    getMzChargeTypeByMzyRequestId(param.mzyRequestId, param.birthDay, param.patientId).then((res) => {
-      feeInfo.value = res
-    })
+    getMzChargeTypeByMzyRequestId(
+      param.mzyRequestId,
+      param.birthDay,
+      param.patientId
+    ).then(res => {
+      feeInfo.value = res;
+    });
   }
-}
+};
 
 const apTimeValidator = (rule, value, callback) => {
-  if (param.ampm === 'a' || param.ampm === 'p') {
+  if (param.ampm === "a" || param.ampm === "p") {
     if (stringIsBlank(param.apTime)) {
-      callback(new Error('时间不能为空'))
+      callback(new Error("时间不能为空"));
     } else {
-      callback()
+      callback();
     }
   } else {
-    param.apTime = ''
-    callback()
+    param.apTime = "";
+    callback();
   }
-}
+};
 
 const rules = {
-  requestDayStr: [{required: true, message: '预约日期不能为空。', trigger: 'blur'}],
-  ampm: [{required: true, message: '号段不能为空。', trigger: 'blur'}],
-  apTime: [{validator: apTimeValidator, message: '时间不能为空。', trigger: 'blur'}],
-  chargeType: [{required: true, message: '号别不能为空。', trigger: 'blur'}],
-  mzyRequestId: [{required: true, message: '医生不能为空。', trigger: 'blur'}],
-}
+  requestDayStr: [
+    { required: true, message: "预约日期不能为空。", trigger: "blur" },
+  ],
+  ampm: [{ required: true, message: "号段不能为空。", trigger: "blur" }],
+  apTime: [
+    { validator: apTimeValidator, message: "时间不能为空。", trigger: "blur" },
+  ],
+  chargeType: [{ required: true, message: "号别不能为空。", trigger: "blur" }],
+  mzyRequestId: [
+    { required: true, message: "医生不能为空。", trigger: "blur" },
+  ],
+};
 
-const formRef = ref(null)
+const formRef = ref(null);
 
 const confirm = async () => {
-  if (!formRef.value) return
-  await formRef.value.validate()
+  if (!formRef.value) return;
+  await formRef.value.validate();
   let data = {
     mzyRequestId: param.mzyRequestId,
     totalFee: feeInfo.value.clinicFee,
@@ -163,81 +184,96 @@ const confirm = async () => {
       unitCode: param.unitCode,
       chargeType: param.chargeType,
       requestDayStr: param.requestDayStr,
-    }
-  }
+    },
+  };
   saveMzyReqrec(data).then(res => {
-    cancel()
-  })
-}
-
+    cancel();
+  });
+};
 
 const cancel = () => {
-  segmentList.value = []
-  numbercategory.value = []
-  doctorList.value = []
-  feeInfo.value = {}
+  segmentList.value = [];
+  numbercategory.value = [];
+  doctorList.value = [];
+  feeInfo.value = {};
   param = {
-    requestDayStr: '',
-    unitCode: '',
-    ampm: '',
-    apTime: '',
-    chargeType: '',
-    mzyRequestId: '',
-    birthDay: '',
-    patientId: ''
-  }
-  dialog.value = false
-  emits('closed')
-}
+    requestDayStr: "",
+    unitCode: "",
+    ampm: "",
+    apTime: "",
+    chargeType: "",
+    mzyRequestId: "",
+    birthDay: "",
+    patientId: "",
+  };
+  dialog.value = false;
+  emits("closed");
+};
 
 onMounted(() => {
-  openDialog()
-})
+  openDialog();
+});
 </script>
 
 <template>
   <div>
     <el-dialog v-model="dialog" title="门诊预约" @closed="cancel">
-      <el-form inline
-               ref="formRef"
-               label-position="right"
-               label-width="120px"
-               :model="param"
-               :rules="rules">
+      <el-form
+        inline
+        ref="formRef"
+        label-position="right"
+        label-width="120px"
+        :model="param"
+        :rules="rules"
+      >
         <el-row>
           <el-col :span="12">
             <el-form-item label="日期" prop="requestDayStr">
-              <el-date-picker v-model="param.requestDayStr"
-                              @change="dateChange"
-                              format="YYYY-MM-DD"
-                              value-format="YYYY-MM-DD"
-                              type="date"/>
+              <el-date-picker
+                v-model="param.requestDayStr"
+                @change="dateChange"
+                format="YYYY-MM-DD"
+                value-format="YYYY-MM-DD"
+                type="date"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="号段" prop="ampm" style="width: 100%">
               <el-select v-model="param.ampm" @change="ampmChange">
-                <el-option v-for="item in segmentList" :value="item.code" :label="item.name"/>
+                <el-option
+                  v-for="item in segmentList"
+                  :value="item.code"
+                  :label="item.name"
+                />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="时间" prop="apTime" style="width: 100%">
-              <el-select v-model="param.apTime" @change="chargeTypeByRequestDayAndDoctor">
+              <el-select
+                v-model="param.apTime"
+                @change="chargeTypeByRequestDayAndDoctor"
+              >
                 <el-option
-                    v-for="item in segmentCalculation"
-                    :value="item.code"
-                    :label="item.name"/>
+                  v-for="item in segmentCalculation"
+                  :value="item.code"
+                  :label="item.name"
+                />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="号别" prop="chargeType" style="width: 100%">
-              <el-select v-model="param.chargeType" @change="doctorCodeByRequestDayAndDoctor">
+              <el-select
+                v-model="param.chargeType"
+                @change="doctorCodeByRequestDayAndDoctor"
+              >
                 <el-option
-                    v-for="item in numbercategory"
-                    :value="item.code"
-                    :label="item.name"/>
+                  v-for="item in numbercategory"
+                  :value="item.code"
+                  :label="item.name"
+                />
               </el-select>
             </el-form-item>
           </el-col>
@@ -245,9 +281,10 @@ onMounted(() => {
             <el-form-item label="医生" prop="mzyRequestId" style="width: 100%">
               <el-select v-model="param.mzyRequestId" @change="doctorsChange">
                 <el-option
-                    v-for="item in doctorList"
-                    :value="item.mzyRequestId"
-                    :label="item.employee.employeeName"/>
+                  v-for="item in doctorList"
+                  :value="item.mzyRequestId"
+                  :label="item.employee.employeeName"
+                />
               </el-select>
             </el-form-item>
           </el-col>