xiaochan 3 月之前
父节点
当前提交
b4d7a3b166

+ 1 - 1
.env.production

@@ -7,7 +7,7 @@ VITE_SOCKET_V2 = 'ws://172.16.32.160:20922/websocket'
 
 
 VITE_DATA_BASE = 'http://172.16.32.167:9205'
-VITE_MAGIC_API_IFRAME = 'http://172.16.32.167:9207'
+VITE_MAGIC_API_IFRAME = 'http://172.16.32.170:9207'
 
 
 VITE_HOSPITAL_NAME = '长沙泰和'

+ 171 - 106
src/components/settings/permissions/PersonnelInformationEditing.vue

@@ -1,8 +1,12 @@
 <template>
-  <el-dialog v-model="dialog"
-             :title="title"
-             @closed="emit('close')">
-    <el-form :model="userInfo" :inline="true" label-width="80px" :rules="rules" ref="formRef">
+  <el-dialog v-model="dialog" :title="title" @closed="emit('close')">
+    <el-form
+      :model="userInfo"
+      :inline="true"
+      label-width="80px"
+      :rules="rules"
+      ref="formRef"
+    >
       <el-form-item prop="name" label="姓名">
         <el-input v-model="userInfo.name"></el-input>
       </el-form-item>
@@ -12,96 +16,157 @@
       </el-form-item>
 
       <el-form-item prop="deptCode" label="科室">
-        <xc-select :data="peopleAddData.deptData" v-model="userInfo"
-                   :name="['deptCode','deptName']"></xc-select>
+        <xc-select
+          :data="peopleAddData.deptData"
+          v-model="userInfo"
+          :name="['deptCode', 'deptName']"
+        ></xc-select>
       </el-form-item>
 
       <el-form-item prop="empPoCode" label="职务">
-        <xc-select :data="peopleAddData.empPosition" v-model="userInfo"
-                   :name="['empPoCode','position']"></xc-select>
+        <xc-select
+          :data="peopleAddData.empPosition"
+          v-model="userInfo"
+          :name="['empPoCode', 'position']"
+        ></xc-select>
       </el-form-item>
 
       <el-form-item prop="empTitCode" label="职称">
-        <xc-select :data="peopleAddData.zdEmpTitle" v-model="userInfo"
-                   :name="['empTitCode','title']"></xc-select>
+        <xc-select
+          :data="peopleAddData.zdEmpTitle"
+          v-model="userInfo"
+          :name="['empTitCode', 'title']"
+        ></xc-select>
       </el-form-item>
 
       <el-form-item prop="mark" label="在院标志">
-        <xc-select :data="peopleAddData.empInmark" v-model="userInfo" :name="['mark','markName']"></xc-select>
+        <xc-select
+          :data="peopleAddData.empInmark"
+          v-model="userInfo"
+          :name="['mark', 'markName']"
+        ></xc-select>
       </el-form-item>
 
       <el-form-item prop="ifcader" label="干工标志">
-        <xc-select :data="peopleAddData.zdIfcadre" v-model="userInfo"
-                   :name="['ifcadre','ifcadreName']"></xc-select>
+        <xc-select
+          :data="peopleAddData.zdIfcadre"
+          v-model="userInfo"
+          :name="['ifcadre', 'ifcadreName']"
+        ></xc-select>
       </el-form-item>
 
       <el-form-item prop="orderYn" label="处方权">
-        <xc-select :data="doctorSPrescription" v-model="userInfo" :name="['orderYn','orderYnName']"></xc-select>
+        <xc-select
+          :data="doctorSPrescription"
+          v-model="userInfo"
+          :name="['orderYn', 'orderYnName']"
+        ></xc-select>
       </el-form-item>
 
       <el-form-item prop="ysjb" label="病历级别">
-        <xc-select :data="peopleAddData.ysjbData" v-model="userInfo" :name="['ysjb','ysjbName']"></xc-select>
+        <xc-select
+          :data="peopleAddData.ysjbData"
+          v-model="userInfo"
+          :name="['ysjb', 'ysjbName']"
+        ></xc-select>
       </el-form-item>
 
       <el-form-item prop="ghChargeType" label="挂号号别">
-        <xc-select :data="peopleAddData.mzyZdChargeType" v-model="userInfo"
-                   :name="['ghChargeType','ghChargeTypeName']"/>
+        <xc-select
+          :data="peopleAddData.mzyZdChargeType"
+          v-model="userInfo"
+          :name="['ghChargeType', 'ghChargeTypeName']"
+        />
       </el-form-item>
       <el-form-item prop="doctorXzYp" label="限制级别">
-        <xc-select :data="peopleAddData.restrictedDrugLevels" v-model="userInfo"
-                   :name="['doctorXzYp','doctorXzYpName']"/>
+        <xc-select
+          :data="peopleAddData.restrictedDrugLevels"
+          v-model="userInfo"
+          :name="['doctorXzYp', 'doctorXzYpName']"
+        />
       </el-form-item>
       <el-form-item prop="loginFlag" label="病区就诊">
-        <el-switch v-model="userInfo.loginFlag" active-color="#ff4949" active-text="不允许" active-value="2"
-                   inactive-color="#13ce66" inactive-text="允许" inactive-value="1">
+        <el-switch
+          v-model="userInfo.loginFlag"
+          active-color="#ff4949"
+          active-text="不允许"
+          active-value="2"
+          inactive-color="#13ce66"
+          inactive-text="允许"
+          inactive-value="1"
+        >
         </el-switch>
       </el-form-item>
       <el-form-item prop="delFlag" label="停用">
-        <el-switch v-model="userInfo.delFlag" active-color="#ff4949" active-text="停用" active-value="1"
-                   inactive-color="#13ce66" inactive-text="开启" inactive-value="0">
+        <el-switch
+          v-model="userInfo.delFlag"
+          active-color="#ff4949"
+          active-text="停用"
+          active-value="1"
+          inactive-color="#13ce66"
+          inactive-text="开启"
+          inactive-value="0"
+        >
         </el-switch>
       </el-form-item>
       <el-form-item prop="socialNo" label="身份证">
         <el-input v-model="userInfo.socialNo" clearable></el-input>
       </el-form-item>
       <el-form-item prop="phoneNo" label="手机号">
-        <el-input v-model="userInfo.phoneNo" clearable></el-input>
+        <el-input
+          v-model="userInfo.phoneNo"
+          clearable
+          style="width: 190px"
+        ></el-input>
       </el-form-item>
       <el-form-item prop="ybCode" label="医保">
         <el-input v-model="userInfo.ybCode" clearable></el-input>
       </el-form-item>
       <el-form-item prop="doctorZy" label="中医处方权">
-        <el-switch v-model="userInfo.doctorZy"
-                   active-color="#ff4949"
-                   active-text="是" :active-value="1"
-                   inactive-color="#13ce66" inactive-text="否" :inactive-value="0"
+        <el-switch
+          v-model="userInfo.doctorZy"
+          active-color="#ff4949"
+          active-text="是"
+          :active-value="1"
+          inactive-color="#13ce66"
+          inactive-text="否"
+          :inactive-value="0"
         />
       </el-form-item>
       <el-form-item prop="doctorYpZl" label="肿瘤药物分级限制">
-
         <el-select v-model="userInfo.doctorYpZl" style="width: 120px">
-          <el-option v-for="item in peopleAddData.doctorYpZl" :value="item.code" :label="item.name"/>
+          <el-option
+            v-for="item in peopleAddData.doctorYpZl"
+            :value="item.code"
+            :label="item.name"
+          />
         </el-select>
-
       </el-form-item>
       <el-form-item label="兼诊科室">
-        <el-select v-model="userInfo.partTimeDept"
-                   multiple
-                   filterable
-                   placeholder="兼诊科室"
-                   style="width: 240px">
+        <el-select
+          v-model="userInfo.partTimeDept"
+          multiple
+          filterable
+          placeholder="兼诊科室"
+          style="width: 240px"
+        >
           <el-option
-              v-for="item in peopleAddData.deptData"
-              :key="item.code"
-              :label="item.name"
-              :value="item.code"/>
+            v-for="item in peopleAddData.deptData"
+            :key="item.code"
+            :label="item.name"
+            :value="item.code"
+          />
         </el-select>
       </el-form-item>
       <el-form-item prop="dualchnlFlag" label="双通道医生">
-        <el-switch v-model="userInfo.dualchnlFlag"
-                   active-color="#ff4949"
-                   active-text="是" :active-value="1"
-                   inactive-color="#13ce66" inactive-text="否" :inactive-value="0"
+        <el-switch
+          v-model="userInfo.dualchnlFlag"
+          active-color="#ff4949"
+          active-text="是"
+          :active-value="1"
+          inactive-color="#13ce66"
+          inactive-text="否"
+          :inactive-value="0"
         />
       </el-form-item>
     </el-form>
@@ -115,120 +180,120 @@
 </template>
 
 <script setup name="PersonnelInformationEditing">
-import {peopleAddData} from "@/components/settings/permissions/EmployeeInformationData";
-import {clone} from "@/utils/clone";
+import { peopleAddData } from "@/components/settings/permissions/EmployeeInformationData";
+import { clone } from "@/utils/clone";
 import XcSelect from "@/components/xiao-chan/select/XcSelect.vue";
 import Sleep from "@/utils/sleep";
-import {idVerificationApi} from "@/api/public-api";
-import {isValidPhone} from "@/utils/validate";
-import {ElMessage} from "element-plus";
-import {modifyEmployeeInfo, saveEmployeeInfo} from "@/api/settings/permission-settings";
-import {stringIsBlank} from "@/utils/blank-utils";
+import { idVerificationApi } from "@/api/public-api";
+import { isValidPhone } from "@/utils/validate";
+import { ElMessage } from "element-plus";
+import {
+  modifyEmployeeInfo,
+  saveEmployeeInfo,
+} from "@/api/settings/permission-settings";
+import { stringIsBlank } from "@/utils/blank-utils";
 
 const props = defineProps({
   userInfo: {
     type: Object,
     default: {
-      name: '添加员工'
-    }
+      name: "添加员工",
+    },
   },
   index: {
     type: Number,
-    default: -1
+    default: -1,
   },
-})
-const emit = defineEmits(['close', 'changeTheData'])
-const dialog = ref(true)
-const title = stringIsBlank(props.userInfo.name) ? '添加员工' : '正在编辑:' + props.userInfo.name
-const userInfo = ref({})
+});
+const emit = defineEmits(["close", "changeTheData"]);
+const dialog = ref(true);
+const title = stringIsBlank(props.userInfo.name)
+  ? "添加员工"
+  : "正在编辑:" + props.userInfo.name;
+const userInfo = ref({});
 
 const doctorSPrescription = [
-  {code: '1', name: '普通处方权'},
-  {code: '2', name: '毒麻药处方权'},
-]
+  { code: "1", name: "普通处方权" },
+  { code: "2", name: "毒麻药处方权" },
+];
 
 const wardVisit = [
-  {code: '1', name: '允许'},
-  {code: '2', name: '不允许'}
-]
+  { code: "1", name: "允许" },
+  { code: "2", name: "不允许" },
+];
 
-const formRef = ref(null)
+const formRef = ref(null);
 
 const idVerification = async (rule, value, callback) => {
   if (value) {
-    const check = await idVerificationApi(value)
+    const check = await idVerificationApi(value);
     if (check) {
-      callback()
+      callback();
     } else {
-      callback(new Error("请填写正确的身份证号码"))
+      callback(new Error("请填写正确的身份证号码"));
     }
   } else {
-    callback(new Error("请填写身份证"))
+    callback(new Error("请填写身份证"));
   }
-}
+};
 
 const phoneNumber = (rule, value, callback) => {
   if (value) {
     if (isValidPhone(value)) {
-      callback()
+      callback();
     } else {
-      callback(new Error("请填写正确的手机号"))
+      callback(new Error("请填写正确的手机号"));
     }
   } else {
-    callback(new Error("该项不能为空"))
+    callback(new Error("该项不能为空"));
   }
-}
+};
 
 const rules = reactive({
-  name: [{required: true, message: '该项不能为空', trigger: 'blur'}],
-  codeRs: [{required: true, message: '该项不能为空', trigger: 'blur'}],
-  deptCode: [{required: true, message: '该项不能为空', trigger: 'blur'}],
-  empInmark: [{required: true, message: '该项不能为空', trigger: 'blur'}],
-  doctorXzYp: [{required: true, message: '该项不能为空', trigger: 'blur'}],
+  name: [{ required: true, message: "该项不能为空", trigger: "blur" }],
+  codeRs: [{ required: true, message: "该项不能为空", trigger: "blur" }],
+  deptCode: [{ required: true, message: "该项不能为空", trigger: "blur" }],
+  empInmark: [{ required: true, message: "该项不能为空", trigger: "blur" }],
+  doctorXzYp: [{ required: true, message: "该项不能为空", trigger: "blur" }],
   socialNo: [
-    {required: true, message: '该项不能为空', trigger: 'blur'},
-    {validator: idVerification, trigger: 'blur'}
+    { required: true, message: "该项不能为空", trigger: "blur" },
+    { validator: idVerification, trigger: "blur" },
   ],
   phoneNo: [
-    {required: true, message: '该项不能为空', trigger: 'change'},
-    {validator: phoneNumber, trigger: 'blur'}
+    { required: true, message: "该项不能为空", trigger: "change" },
+    { validator: phoneNumber, trigger: "blur" },
   ],
-})
+});
 
-const confirm = (formRef) => {
-  if (!formRef) return
-  formRef.validate(async (valid) => {
+const confirm = formRef => {
+  if (!formRef) return;
+  formRef.validate(async valid => {
     if (valid) {
       if (props.index !== -1) {
         await modifyEmployeeInfo(userInfo.value);
-        emit('changeTheData', props.index, userInfo.value)
+        emit("changeTheData", props.index, userInfo.value);
       } else {
-        await saveEmployeeInfo(userInfo.value)
-        emit('changeTheData', props.index, userInfo.value)
+        await saveEmployeeInfo(userInfo.value);
+        emit("changeTheData", props.index, userInfo.value);
       }
     } else {
-      ElMessage.error("请仔细检查")
+      ElMessage.error("请仔细检查");
     }
-  })
-
-}
+  });
+};
 
 onMounted(async () => {
-  await Sleep(500)
+  await Sleep(500);
   if (props.userInfo) {
-    userInfo.value = clone(props.userInfo)
-    userInfo.value.oldData = true
+    userInfo.value = clone(props.userInfo);
+    userInfo.value.oldData = true;
     if (userInfo.value.partTimeDeptCode) {
-      userInfo.value.partTimeDept = userInfo.value.partTimeDeptCode.split(',')
+      userInfo.value.partTimeDept = userInfo.value.partTimeDeptCode.split(",");
     }
   } else {
-    userInfo.value.oldData = false
+    userInfo.value.oldData = false;
   }
-})
-
-
+});
 </script>
 
-<style scoped>
-
-</style>
+<style scoped></style>

+ 7 - 48
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/EmrMain.vue

@@ -378,13 +378,11 @@ const emrEvent = {
   contentchange: (e, op) => {
     triggerScript("contentchange", e, op);
     if (op.batch.type === "persist") return;
-    if (!readonlyPattern()) {
-      // 如果是空的编辑器就不触发了
-      if (!isEmpty) {
-        // 判断内容是否改变
-        emrStore.store.isEditorChange = true;
-      }
-    }
+    if (readonlyPattern()) return;
+    // 如果是空的编辑器就不触发了
+    if (isEmpty) return;
+    // 判断内容是否改变
+    emrStore.store.isEditorChange = true;
   },
   contextUpdate: (evt, contextMap, component, context) => {
     styleBarRef.value?.setEmrStyleV2(context);
@@ -1588,48 +1586,9 @@ const initEdit = () => {
     emrStore.mutation.installPlugins(res, emrStore);
     if (isDev) {
       await sleep(1000);
-      loadDocument({
-        documentId: "944086704942286848",
-        categoryCode: "shoucibingchengjilu",
-        name: "病程记录",
-        parent: "551247f0a6bb11eda6787350e3f497c0",
-        emrPatientData: {
-          id: 364389,
-          patNo: "0436572",
-          times: 1,
-          emrDocumentId: "944086704942286848",
-          emrCategoryCode: "shoucibingchengjilu",
-          delFlag: 0,
-          emrName: "首次病程记录(5.29)",
-          name: "病程记录",
-          createId: "01038",
-          createName: "杨海婧",
-          createDate: "2025-02-08 18:29:56",
-          modifyId: "01038",
-          modifyDate: "2025-02-24 02:22:03",
-          children: [],
-          emrDataElement: null,
-          emrDataElementStr: "",
-          submit: 0,
-          submitId: null,
-          submitTime: null,
-          documentData: null,
-          fragment: null,
-          parent: "551247f0a6bb11eda6787350e3f497c0",
-          referPhysician: null,
-          consultPhysician: null,
-          deptDirector: null,
-          reviewDoctors: null,
-          reviewTime: null,
-          signType: null,
-          signComplete: null,
-          archivePath: null,
-          sort: null,
-          type: "group-category",
-        },
-      });
+
       await sleep(1000);
-      emrStore.store.right = EmrRightTabs.opinion;
+      emrStore.store.right = EmrRightTabs.ca;
     }
   });
 };

+ 75 - 76
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/plugins/ca/EmrCAComp.vue

@@ -1,7 +1,7 @@
 <script setup lang="tsx">
 import {
   emrRootContextKey,
-  EmrStore
+  EmrStore,
 } from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-func/useEmrStore";
 import {
   authorizedSignatureDataElement,
@@ -10,15 +10,15 @@ import {
   SignComp,
 } from "./emr-ca";
 import XEUtils from "xe-utils";
-import {BizException, ExceptionEnum} from "@/utils/BizException";
-import {sendMoreEventSign} from "@/api/ca/ca-api";
-import {useDialog} from "@/components/cy/CyDialog/index";
+import { BizException, ExceptionEnum } from "@/utils/BizException";
+import { sendMoreEventSign } from "@/api/ca/ca-api";
+import { useDialog } from "@/components/cy/CyDialog/index";
 import EmrCaSign from "./EmrCaSign.vue";
-import {ElMessageBox} from "element-plus";
+import { ElMessageBox } from "element-plus";
 import XcElOption from "@/components/xiao-chan/xc-el-option/XcElOption.vue";
-import {useUserStore} from "@/pinia/user-store";
-import {patientInfo} from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/emr-init";
-import {stringIsBlank} from "@/utils/blank-utils";
+import { useUserStore } from "@/pinia/user-store";
+import { patientInfo } from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/emr-init";
+import { stringIsBlank } from "@/utils/blank-utils";
 
 const root = inject(emrRootContextKey) as EmrStore;
 const selectList = ref<SignComp[]>([]);
@@ -26,7 +26,7 @@ const signOpinionList = ref<{ id: string; content: string }[]>([]);
 
 const signTypeValue = ref(null);
 const idCardPublicKey =
-    "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCgHPo86lSh7IzXcrgxi+7us2UeeY/O5ftBhk+P8hFfivGbS9RqCIDg+r7+nhINojsJeloeoavF0eHCMs1crzGd+XSMN6BjfPTm7bgoWu4CzplmFCBlZ5FAZCxXiHcHuBfG6tateaO2s7E1XpEsjSX/8J8VjKfIm7bzuNU/AyM2TwIDAQAB";
+  "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCgHPo86lSh7IzXcrgxi+7us2UeeY/O5ftBhk+P8hFfivGbS9RqCIDg+r7+nhINojsJeloeoavF0eHCMs1crzGd+XSMN6BjfPTm7bgoWu4CzplmFCBlZ5FAZCxXiHcHuBfG6tateaO2s7E1XpEsjSX/8J8VjKfIm7bzuNU/AyM2TwIDAQAB";
 
 const us = useUserStore().userInfo;
 
@@ -44,11 +44,10 @@ const changeSignType = val => {
     ElMessageBox.confirm("是否使用该方式进行签名,一旦确认无法更换", "提示", {
       type: "info",
     })
-        .then(() => {
-          signTypeValue.value = val;
-        })
-        .catch(() => {
-        });
+      .then(() => {
+        signTypeValue.value = val;
+      })
+      .catch(() => {});
   }
 };
 
@@ -60,10 +59,10 @@ function change() {
   if (data) {
     selectList.value = data.map((item, index) => {
       const name = "CA签名" + (index + 1);
-      const {view} = root.editFun.getViewById(item.id);
+      const { view } = root.editFun.getViewById(item.id);
 
       view.setValue(name);
-      editor.setViewStyle(view, {color: "#fff"});
+      editor.setViewStyle(view, { color: "#fff" });
       view.setReadonly(true);
       return {
         content: name,
@@ -83,10 +82,10 @@ function change() {
   const opinion = getInternalByCode(editor, "患者CA意见", "internal", false);
   if (opinion) {
     signOpinionList.value = opinion.map((item, index) => {
-      const {view} = root.editFun.getViewById(item.id);
+      const { view } = root.editFun.getViewById(item.id);
       const value = "患者CA意见签名处" + (index + 1);
       view.setValue(value);
-      editor.setViewStyle(view, {color: "#fff"});
+      editor.setViewStyle(view, { color: "#fff" });
       view.setReadonly(true);
       return {
         id: item.id,
@@ -115,8 +114,7 @@ const sendSignature = async () => {
       data: selectList.value,
     },
     showFooter: false,
-  }).then(() => {
-  });
+  }).then(() => {});
 };
 
 const sendCodeData = computed(() => {
@@ -157,8 +155,8 @@ const checkParams = () => {
   });
 
   const group = XEUtils.countBy(
-      selectList.value,
-      item => item?.emrSignOpinion?.content || "none"
+    selectList.value,
+    item => item?.emrSignOpinion?.content || "none"
   );
 
   for (let key in group) {
@@ -206,39 +204,40 @@ function sendMoveSign() {
   }
 
   ElMessageBox.confirm(
-      "请确认,必须人证符合,患者一旦签名完成病历无法修改",
-      "发送到平板",
-      {
-        type: "warning",
-      }
+    "请确认,必须人证符合,患者一旦签名完成病历无法修改",
+    "发送到平板",
+    {
+      type: "warning",
+    }
   )
-      .then(() => {
-        const clone = XEUtils.cloneDeep(selectList.value);
-        clone.forEach(item => {
-          item.idCard = XEUtils.encrypt(item.idCard, idCardPublicKey);
-          if (stringIsBlank(item.signTypeName)) {
-            item.signTypeName = XEUtils.find(selectData, f => {
-              return f.code === item.signType;
-            })?.name;
-          }
-          item.signOpinion = item.emrSignOpinion.content;
-        });
-        sendMoreEventSign({
-          documentId: root.getEditor().documentData._id,
-          sendCode: moveSendCode.value.value,
-          sendCodeName: moveSendCode.value.name,
-          data: clone,
-        });
-      })
-      .catch(XEUtils.noop);
+    .then(() => {
+      const clone = XEUtils.cloneDeep(selectList.value);
+      clone.forEach(item => {
+        item.idCard = XEUtils.encrypt(item.idCard, idCardPublicKey);
+        if (stringIsBlank(item.signTypeName)) {
+          item.signTypeName = XEUtils.find(selectData, f => {
+            return f.code === item.signType;
+          })?.name;
+        }
+        item.signOpinion = item.emrSignOpinion.content;
+      });
+      sendMoreEventSign({
+        documentId: root.getEditor().documentData._id,
+        sendCode: moveSendCode.value.value,
+        sendCodeName: moveSendCode.value.name,
+        data: clone,
+      });
+    })
+    .catch(XEUtils.noop);
 }
 
 const signType = [
-  {code: 1, name: "扫码"},
-  {code: 2, name: "移动平板"},
+  { code: 1, name: "扫码" },
+  { code: 2, name: "移动平板" },
 ];
 
 const addCompByInternal = (name: string) => {
+  console.log(1);
   const editor = root.getEditor();
   editor.execute("insertContents", {
     value: [
@@ -246,7 +245,7 @@ const addCompByInternal = (name: string) => {
         type: "smarttext",
         tips: name,
         element: {
-          code: {business: "", internal: name, dataElement: ""},
+          code: { business: "", internal: name, dataElement: "" },
           name: name,
           type: "element",
         },
@@ -290,32 +289,32 @@ defineExpose({
         </ol>
       </div>
       <el-button @click="addAuthorizedSignatureDataElement()"
-      >医生授权签名组件
+        >医生授权签名组件
       </el-button>
       <el-button @click="addCompByInternal('患者CA签名')">签名组件</el-button>
       <el-button @click="addCompByInternal('患者CA意见')">意见组件</el-button>
       <el-form label-position="top">
         <el-form-item label="签名方式">
           <el-select
-              style="width: 40%"
-              :disabled="signTypeValue !== null"
-              :model-value="signTypeValue"
-              @update:modelValue="changeSignType"
+            style="width: 40%"
+            :disabled="signTypeValue !== null"
+            :model-value="signTypeValue"
+            @update:modelValue="changeSignType"
           >
-            <xc-el-option :data="signType"/>
+            <xc-el-option :data="signType" />
           </el-select>
         </el-form-item>
         <el-form-item>
           <el-select
-              v-if="signTypeValue === 2"
-              v-model="moveSendCode"
-              style="width: 50%; margin-right: 6px"
-              value-key="value"
+            v-if="signTypeValue === 2"
+            v-model="moveSendCode"
+            style="width: 50%; margin-right: 6px"
+            value-key="value"
           >
             <el-option
-                v-for="item in sendCodeData"
-                :value="item"
-                :label="item.label"
+              v-for="item in sendCodeData"
+              :value="item"
+              :label="item.label"
             />
           </el-select>
 
@@ -325,10 +324,10 @@ defineExpose({
     </header>
     <div class="layout_main" v-if="signTypeValue != null">
       <el-card
-          shadow="hover"
-          class="ca-sign_info"
-          v-for="(item, index) in selectList"
-          @click="handleClick(item.id)"
+        shadow="hover"
+        class="ca-sign_info"
+        v-for="(item, index) in selectList"
+        @click="handleClick(item.id)"
       >
         <template #header>
           <div style="display: flex; justify-content: space-between">
@@ -338,29 +337,29 @@ defineExpose({
         <el-form label-position="left">
           <el-form-item label="关系">
             <el-select v-model="item.signType" style="width: 30%">
-              <xc-el-option :data="selectData"/>
+              <xc-el-option :data="selectData" />
             </el-select>
             <el-input style="width: 70%" v-model="item.signTypeName">
               <template #prepend>补充</template>
             </el-input>
           </el-form-item>
           <el-form-item label="身份证">
-            <el-input v-model="item.idCard"/>
+            <el-input v-model="item.idCard" />
           </el-form-item>
           <el-form-item label="姓名">
-            <el-input v-model="item.signName"/>
+            <el-input v-model="item.signName" />
           </el-form-item>
           <el-form-item label="签名意见">
             <el-select
-                v-model="item.emrSignOpinion"
-                value-key="id"
-                clearable
-                @change="() => handleClick(item.emrSignOpinion?.id)"
+              v-model="item.emrSignOpinion"
+              value-key="id"
+              clearable
+              @change="() => handleClick(item.emrSignOpinion?.id)"
             >
               <el-option
-                  v-for="sign in signOpinionList"
-                  :value="sign"
-                  :label="sign.content"
+                v-for="sign in signOpinionList"
+                :value="sign"
+                :label="sign.content"
               />
             </el-select>
           </el-form-item>

+ 13 - 2
src/views/single-page/InpatientBoardV2/Index.vue

@@ -6,7 +6,7 @@ import {
   useInpatientBoard,
 } from "@/views/single-page/InpatientBoardV2/index";
 import CallDialog from "@/views/single-page/InpatientBoardV2/CallDialog.vue";
-import XcElOption from "@/components/xiao-chan/xc-el-option/XcElOption.vue";
+import sleep from "@/utils/sleep";
 
 const store = useInpatientBoard();
 
@@ -14,7 +14,15 @@ provide(InpatientBoardKey, store);
 
 const divRef = ref();
 
-const { toggle } = useFullscreen(divRef);
+const { toggle, enter, isFullscreen } = useFullscreen(divRef);
+
+onMounted(async () => {
+  await nextTick();
+  await sleep(1000);
+  if (!isFullscreen.value) {
+    await enter();
+  }
+});
 </script>
 
 <template>
@@ -40,6 +48,9 @@ const { toggle } = useFullscreen(divRef);
             />
           </el-select>
         </el-form-item>
+        <el-form-item label="病房编码:">
+          {{ store.urlQuery.ward }}
+        </el-form-item>
         <el-form-item label="左侧播放速度(秒):">
           <el-input-number
             :step="1"

+ 3 - 0
src/views/single-page/InpatientBoardV2/index.ts

@@ -294,6 +294,9 @@ export function useInpatientBoard() {
     );
     urlQuery.tempId = query.tempId as string;
     urlQuery.refresh = XEUtils.toNumber(XEUtils.get(query, "refresh", 30));
+    urlQuery.tableDisplay = XEUtils.toNumber(
+      XEUtils.get(query, "tableDisplay", 2)
+    );
     allWards.value = (await getAllWards()) as any;
     await sleep(500);
     const ward = XEUtils.get(query, "ward", "") as string;