瀏覽代碼

登录问题

xiaochan 1 年之前
父節點
當前提交
be0644df3e

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

@@ -34,28 +34,30 @@
           <select-v4
               :data="yaoPinPingLvData"
               ref="pingLvRef"
-              key="frequCode"
               v-model="yiZhuData.frequCode"
               :disabled="queryParam.frequCode === frequCodeEnum.temporary"
               style="width: 120px"/>
         </div>
         <div>
           一次剂量:
-          <el-input-number v-model="yiZhuData.dose"
-                           :step="jiLiangValue"
-                           :controls="false"
-                           :min="0"
-                           ref="doseRef"
-                           id="yz_dose"
-                           :precision="dosePrecision"
-                           style="width: 110px"
-                           @change="jiSuanLingLiang"/>
-          <CyComboGrid v-model="yiZhuData"
-                       :data="yaoPinJiLiangData"
-                       value="doseUnit"
-                       style="width: 80px"
-                       label="doseUnitName"
-                       @rowClick="xuanZheJiLiang"
+          <el-input-number
+              v-model="yiZhuData.dose"
+              :step="jiLiangValue"
+              :controls="false"
+              :min="0"
+              ref="doseRef"
+              id="yz_dose"
+              :precision="dosePrecision"
+              style="width: 110px"
+              @change="jiSuanLingLiang"
+          />
+          <CyComboGrid
+              v-model="yiZhuData"
+              :data="yaoPinJiLiangData"
+              style="width: 80px"
+              value="doseUnit"
+              label="doseUnitName"
+              @rowClick="xuanZheJiLiang"
           />
         </div>
         <div>

+ 1 - 1
src/pinia/user-store.ts

@@ -14,7 +14,7 @@ export declare type UserInfo = {
     deptCode: string;
     deptName: string;
     ybCode: string;
-    roles: string[]; // 角色列表,字符串数组
+    roles: number[]; // 角色列表,字符串数组
     partTimeDept: string[]; // 兼职部门列表,字符串数组
     partTimeDeptCode: string;
     partTimeDeptName: string;

+ 1 - 1
src/router/modules/dashboard.ts

@@ -23,7 +23,7 @@ const route: Array<RouteRecordRaw> = [
     }, {
         path: '/jumpRedirect',
         name: 'jumpRedirect',
-        component: createNameComponent(() => import('@/views/system/JumpRedirect.vue','jumpRedirect')),
+        component: createNameComponent(() => import('@/views/system/JumpRedirect.vue'),'jumpRedirect'),
         hideMenu: true,
         meta: {title: '跳转重定向', hideTabs: true},
     },

+ 5 - 14
src/utils/public.ts

@@ -3,7 +3,7 @@ import {xcMessage} from "./xiaochan-element-plus";
 import XEUtils, {isFunction, isObject} from "xe-utils";
 import {useUserStore} from "@/pinia/user-store";
 
-export function needRule(...val) {
+export function needRule(...val: number[]) {
     const userRoles = useUserStore().userInfo.roles
     if (userRoles.includes(1)) {
         return true;
@@ -16,8 +16,8 @@ export function needRule(...val) {
     return false;
 }
 
-export function noNeedRule(...val) {
-    return !needRule(val)
+export function noNeedRule(...val: number[]) {
+    return !needRule(...val)
 }
 
 // @ts-ignore
@@ -31,15 +31,6 @@ export const nullToEmpty = (val: string): string => {
     }
 }
 
-export const elementAddBody = (val: HTMLElement): void => {
-    const body = document.querySelector("body");
-    if (body.append) {
-        body.append(val);
-    } else {
-        body.appendChild(val);
-    }
-}
-
 /**
  * 对比版本号,需要考虑带有英文字殮的版本号
  */
@@ -109,11 +100,11 @@ export let copyStrFunc = (val: any) => {
 }
 
 // 判断字符串是否包含中文
-export const isChinese = (str) => {
+export const isChinese = (str: string) => {
     return /[\u4e00-\u9fa5]/.test(str);
 }
 // 判断字符串是否为纯英文
-export const isEnglish = (str) => {
+export const isEnglish = (str: string) => {
     return /^[a-zA-Z]+$/.test(str);
 }
 

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

@@ -337,7 +337,7 @@ const editRef = ref(null)
 // 编辑器
 let editor: EditType | null = null
 let runtime: Runtime | null = null
-let editMain: UseEmrInitReturn | {} = {}
+let editMain: UseEmrInitReturn | null = null
 let extractData = {}
 
 const emrStore: PageStore = useEmrStore()
@@ -681,7 +681,7 @@ const emrSaveRulesRef = ref<{
 // 删除指定的数据元
 const maleDeleteDataElement = () => {
   if (patientInfo.value.sex === 1) {
-    editMain.delElementByName('月经史')
+    editMain?.delElementByName('月经史')
   }
 }
 
@@ -868,13 +868,13 @@ const objectValuesCannotBeNull = (object) => {
 // 前端打印
 const frontEndPrinting = async () => {
   waitForLoadingToComplete()
-  editMain.print()
+  editMain?.print()
 }
 
 // 服务打印
 const servicePrint = () => {
   waitForLoadingToComplete()
-  editMain.print('server')
+  editMain?.print('server')
 }
 
 /**
@@ -1554,9 +1554,9 @@ const watchVisibility = () => {
 
 const refreshSaveEmr = (): Promise<boolean> => {
   return new Promise((resolve, reject) => {
-    const document = editor.getDocument();
-    document._id = editor.documentData._id
-    runtime.saveDocument(document,
+    const document = editor!.getDocument();
+    document._id = editor!.documentData._id
+    runtime?.saveDocument(document,
         (_res) => {
           resolve(true)
         },
@@ -1581,9 +1581,9 @@ const fragmentJump = (param: EmrParam) => {
 
 const restoreDefaultSettings = () => {
   try {
-    editor.setRevisionMode('off')
-    editor.setCursor('DOCUMENT_START')
-    editMain.iframe
+    editor!.setRevisionMode('off')
+    editor!.setCursor('DOCUMENT_START')
+    editMain?.iframe
         .contentWindow
         .document
         .getElementById('editorEl')
@@ -1637,7 +1637,7 @@ const emrMittInit = () => {
   emrMitt.on('dataSourcePadding', dataSourcePadding)
 
   emrMitt.on('getIframe', () => {
-    return editMain.iframe
+    return editMain!.iframe
   })
 
   emrMitt.on('fragmentJump', fragmentJump)
@@ -1657,7 +1657,7 @@ const emrMittInit = () => {
     })
   })
   emrMitt.on('jumpDataElementById', (id: string) => {
-    const iframe: HTMLIFrameElement = editMain.iframe
+    const iframe: HTMLIFrameElement = editMain!.iframe
     const componentView: {
       view: {
         focusEnter: () => void
@@ -1669,7 +1669,6 @@ const emrMittInit = () => {
       editor.highlight(componentView.view, 1500)
       editor.scrollToCursor(true)
     }
-
   })
 
   emrMitt.on('loadDocument', loadDocument)
@@ -1700,6 +1699,9 @@ const emrMittInit = () => {
 
 const initEdit = () => {
   const tempData = {
+    editorConfig: {
+      editorMode: 'free',
+    },
     endpoints: {
       app: "http://172.16.32.160:9205/thyy/api/dataEmr/comp",
       his: import.meta.env.VITE_BASE_URL,

+ 5 - 8
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-editor/emr-edit-create-limit.js

@@ -14,7 +14,7 @@ export class EmrEditCreateLimit {
      * @returns {number}
      */
     getDoctorLevelById(userCode) {
-        let pat = this.patInfo
+        const pat = this.patInfo
         if (needRule() && userCode === useUserStore().userInfo.code) {
             return 4;
         }
@@ -36,10 +36,10 @@ export class EmrEditCreateLimit {
      * @returns {boolean}
      */
     isEdit(created) {
-        let userCode = this.userInfo.code
+        const userCode = this.userInfo.code
 
-        let 当前医生等级 = this.getDoctorLevelById(userCode)
-        let 创建人等级 = this.getDoctorLevelById(created)
+        const 当前医生等级 = this.getDoctorLevelById(userCode)
+        const 创建人等级 = this.getDoctorLevelById(created)
 
         // 创建人是空的说明是新建的病历
         if (stringIsBlank(created)) {
@@ -57,10 +57,7 @@ export class EmrEditCreateLimit {
         if (当前医生等级 === 创建人等级) {
             return false
         }
-        if (当前医生等级 > 创建人等级) {
-            return true
-        }
-        return false
+        return 当前医生等级 > 创建人等级;
     }
 
 }

+ 302 - 347
src/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/TemplateMaintenance.vue

@@ -1,308 +1,303 @@
 <template>
-  <div class="prompt" v-if="tiShiBiaoTi?.length > 0">
-    <div style="margin-right: 5px">
-      提示信息:
-    </div>
-    <div v-for="(item, index) in tiShiBiaoTi" :key="index" class="item">
-      <div>
-        {{ item }}
+  <div class="layout_container">
+    <header>
+      <div class="prompt" v-if="tiShiBiaoTi?.length > 0">
+        <div style="margin-right: 5px">
+          提示信息:
+        </div>
+        <div v-for="(item, index) in tiShiBiaoTi" :key="index" class="item">
+          <div>
+            {{ item }}
+          </div>
+        </div>
+      </div>
+      <el-button icon="ArrowLeft" style="font-size: 14px" text type="primary" @click="cloneWindow">返回</el-button>
+      <el-button type="primary" @click="muBanDuiHuaKuang = true"> 获取模板</el-button>
+      <el-button :disabled="yiZhuList.length === 0" type="primary" @click="baoCunMuBanClick">保存模板</el-button>
+      {{ count }}
+      <el-divider direction="vertical"/>
+      <el-button :disabled="yiZhuData.serial === '00' || stringIsBlank(yiZhuData.serial)"
+                 icon="View"
+                 type="success"
+                 @click="synopsis"> 药品用法
+      </el-button>
+      <el-divider direction="vertical"></el-divider>
+      <el-select v-model="groupNo" style="width: 90px">
+        <el-option value="73" label="住院"/>
+        <el-option value="71" label="门诊"/>
+      </el-select>
+    </header>
+    <div class="layout_main layout_container">
+      <header>
+        <el-form ref="yiZhuRef" v-model="yiZhuData" label-width="90px" size="small">
+          <el-row>
+            <el-col :span="span">
+              <el-form-item class="bi_tian" label="医嘱名称:" prop="orderName">
+                <CyComboGrid
+                    style="width: 240px"
+                    v-model="yiZhuData"
+                    value="orderCode"
+                    label="orderName"
+                    :table-header="tableHeaderV2"
+                    :remote-method="searchOrders"
+                    @rowClick="({row}) => xuanZhongFeiYong(row)"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="span" v-if="yiZhuData.orderCode === '06054'">
+              <el-form-item class="bi_tian" label="请输入处置医嘱名称:" prop="orderName">
+                <el-input v-model="yiZhuData.orderName"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="span">
+              <el-form-item label="规格:" prop="orderName">
+                <div style="border-bottom: 1px solid #000; height: 29px">
+                  {{ yiZhuData.drugSpecification }}
+                </div>
+              </el-form-item>
+            </el-col>
+            <el-col :span="span">
+              <el-form-item class="bi_tian" label="频率:" prop="frequCode">
+                <select-v4 :data="yaoPinPingLvData"
+                           ref="pingLv"
+                           key="frequCode"
+                           @change="pingLvRowClick"
+                           v-model="yiZhuData.frequCode"
+                           style="width: 120px"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="span">
+              <el-form-item class="bi_tian" label="一次剂量:" prop="dose">
+                <el-input-number v-model="yiZhuData.dose"
+                                 :step="jiLiangValue"
+                                 ref="doseRef"
+                                 id="yz_dose"
+                                 :precision="yiZhuData.serial === '00' ? 2 : 3"
+                                 style="width: 110px"
+                                 @change="jiSuanLingLiang"/>
+                <XcSelect v-model="yiZhuData"
+                          id="yz_doseUnit"
+                          :data="yaoPinJiLiangData"
+                          :name="['doseUnit', 'doseUnitName']" :width="80"
+                          @change="xuanZheJiLiang">
+                  <XcOption label="value"></XcOption>
+                  <XcOption label="name"></XcOption>
+                </XcSelect>
+              </el-form-item>
+            </el-col>
+            <el-col :span="span">
+              <el-form-item label="领量:">
+                {{ yiZhuData.drugQuan }}
+                &nbsp;&nbsp;&nbsp;
+                {{ yiZhuData.miniUnitName }}
+              </el-form-item>
+            </el-col>
+            <el-col :span="span">
+              <el-form-item class="bi_tian" label="给药方式:" prop="supplyCode">
+                <select-v4
+                    key="supplyCode"
+                    :disabled="yiZhuData.serial === '00'"
+                    style="width: 120px"
+                    v-model="yiZhuData.supplyCode"
+                    :data="geiYaoFangShiData"
+                    @change="supplyCodeChange"
+                    clearable/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="span">
+              <el-form-item label="医嘱时间:" prop="orderName">
+                {{ yiZhuData.orderTime }}
+              </el-form-item>
+            </el-col>
+            <el-col :span="span">
+              <el-form-item class="bi_tian" label="开始时间:" prop="startTime">
+                <el-date-picker
+                    v-model="yiZhuData.startTime"
+                    id="yz_startTime"
+                    format="YYYY-MM-DD HH:mm:ss"
+                    type="datetime"
+                    value-format="YYYY-MM-DD HH:mm:ss"
+                ></el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="span">
+              <el-form-item class="bi_tian" label="停止时间:" prop="endTime">
+                <el-date-picker
+                    v-model="yiZhuData.endTime"
+                    id="yz_endTime"
+                    :disabled="yiZhuData.frequCode === 'ONCE'"
+                    format="YYYY-MM-DD HH:mm:ss"
+                    type="datetime"
+                    value-format="YYYY-MM-DD HH:mm:ss"
+                ></el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="span">
+              <el-form-item label="医生:" prop="orderName">
+                {{ userInfo.name }}
+              </el-form-item>
+            </el-col>
+            <el-col :span="span">
+              <el-form-item class="bi_tian" label="执行科室:" prop="execUnit">
+                <XcSelectV3
+                    style="width: 120px"
+                    v-model="yiZhuData"
+                    :data="zhiXingKeShiData"
+                    id="yz_execUnit"
+                    code="execUnit"
+                    name="execUnitName"
+                    :remote-method="metZhiXingKeShi"/>
+              </el-form-item>
+            </el-col>
+            <el-col :span="span">
+              <el-form-item label="父医嘱:" prop="orderName">
+                <el-select v-model="yiZhuData.parentNo"
+                           :disabled="yiZhuData.serial === '00'"
+                           id="yz_parentNo"
+                           clearable
+                           @clear="yiZhuData.parentNo = null" @focus="fuYiZhuClick">
+                  <el-option v-for="item in fuYiZhuData" :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-form-item>
+            </el-col>
+            <el-col :span="span" :title="yiZhuData.discription">
+              <el-form-item label="医嘱描述:" prop="orderName">
+                <el-input v-model="yiZhuData.discription" disabled type="textarea"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="span">
+              <el-form-item label="医生嘱托:">
+                <el-input v-model="yiZhuData.instruction"
+                          id="yz_instruction"
+                          clearable maxlength="50" show-word-limit type="textarea"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="span">
+              <el-form-item label="服用时间">
+                <el-select v-model="yiZhuData.kfFlag"
+                           id="yz_kfFlag"
+                           clearable style="width: 80px" @clear="yiZhuData.kfFlag = null">
+                  <el-option key="1" label="饭前" value="1"></el-option>
+                  <el-option key="2" label="饭后" value="2"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="span">
+              <el-form-item label="费用标志:">
+                <el-select v-model="yiZhuData.selfBuy"
+                           id="yz_selfBuy"
+                           clearable style="width: 120px"
+                           @clear="yiZhuData.selfBuy = null">
+                  <el-option key="1" label="自备" value="1"></el-option>
+                  <el-option key="2" label="嘱托" value="2"></el-option>
+                  <el-option key="3" label="基数药" value="3"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="span">
+              <el-form-item label="医保自费:">
+                <el-switch v-model="yiZhuData.ybSelfFlag"
+                           id="yz_ybSelfFlag"
+                           active-color="#13ce66" active-text="自费" active-value="1"
+                           inactive-color="#ff4949" inactive-text="记账" inactive-value="0">
+                </el-switch>
+              </el-form-item>
+            </el-col>
+            <el-col :span="span">
+              <el-form-item label="是否紧急:">
+                <el-switch v-model="yiZhuData.emergencyFlag"
+                           id="yz_emergencyFlag"
+                           active-color="#13ce66" active-text="是" active-value="1"
+                           inactive-color="#ff4949" inactive-text="否" inactive-value="0">
+                </el-switch>
+              </el-form-item>
+            </el-col>
+            <el-col v-if="yiZhuData.orderCode === zkCode" :span="span">
+              <el-form-item label="转科:" class="bi_tian">
+                <el-select v-model="yiZhuData.zkObj" filterable id="yz_zkObj">
+                  <el-option v-for="(item, index) in zkList" :key="item.value"
+                             :label="item.wardName + '|' + item.smallName"
+                             :value="item.value">
+                    <span>{{ item.wardName }}</span>
+                    <el-divider direction="vertical"></el-divider>
+                    <span>{{ item.smallName }}</span>
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+        <el-button icon="Plus" type="primary" @click="tianJiaYiZhu">添加</el-button>
+        <el-button @click="dianJiXiuGaiZhiXingKeShi">修改执行科室</el-button>
+      </header>
+      <div class="layout_main layout_el-table">
+        <el-table
+            :data="yiZhuList"
+            ref="elTableRef"
+            @selection-change="dianJiXuanZhongShuJu"
+            :row-class-name="doctorSOrderForm"
+            @row-click="whenClickingOnTheForm"
+            @expand-change="expandChange">
+          <el-table-column type="expand">
+            <template #default="props">
+              <div v-if="feeInformation.get(props.row.id)" style="min-height: 40px;margin: 10px">
+                <el-tag v-for="item in feeInformation.get(props.row.id)">
+                  {{ item }}
+                </el-tag>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column type="selection"></el-table-column>
+          <el-table-column label="排序" type="index"></el-table-column>
+          <el-table-column label="医嘱编码" prop="orderCode"></el-table-column>
+          <el-table-column label="医嘱名称" prop="orderName" show-overflow-tooltip></el-table-column>
+          <el-table-column label="医嘱时间" prop="orderTime" show-overflow-tooltip width="70"></el-table-column>
+          <el-table-column label="开始时间" prop="startTime" show-overflow-tooltip width="70"></el-table-column>
+          <el-table-column label="结束时间" prop="endTime" show-overflow-tooltip width="70"></el-table-column>
+          <el-table-column label="规格" prop="drugSpecification" show-overflow-tooltip></el-table-column>
+          <el-table-column label="频率" prop="frequCode"></el-table-column>
+          <el-table-column label="一次剂量" prop="dose">
+            <template #default="scope"> {{ scope.row.dose }} {{ scope.row.doseUnitName }}</template>
+          </el-table-column>
+          <el-table-column label="领量" prop="drugQuan">
+            <template #default="scope"> {{ scope.row.drugQuan }} {{ scope.row.miniUnitName }}</template>
+          </el-table-column>
+          <el-table-column label="给药方式" prop="supplyCodeName" show-overflow-tooltip></el-table-column>
+          <el-table-column label="执行科室" prop="execUnitName" show-overflow-tooltip></el-table-column>
+          <!--    <el-table-column label="父医嘱" prop="parentNo"></el-table-column>-->
+          <el-table-column label="类型" prop="drugFlag"></el-table-column>
+          <el-table-column label="费用标志" prop="selfBuy">
+            <template #default="scope">
+              {{ getSelfBuy(scope.row.selfBuy) }}
+            </template>
+          </el-table-column>
+          <el-table-column label="医保自费">
+            <template #default="scope">
+              <el-tag v-if="scope.row.ybSelfFlag === '1'">是</el-tag>
+            </template>
+          </el-table-column>
+          <el-table-column label="是否紧急">
+            <template #default="scope">
+              <el-tag v-if="scope.row.emergencyFlag === '1'">是</el-tag>
+            </template>
+          </el-table-column>
+          <el-table-column fixed="right" label="操作" width="220">
+            <template #default="scope">
+              <el-button circle icon="Edit" type="warning" @click="xiuGaiYiZhu(scope.row,scope.$index)"></el-button>
+              <el-button circle icon="Delete" type="danger" @click="shanChuBiaoGeYiZhu(scope.$index)"></el-button>
+              <el-button circle class="iconfont icon-fuzhi" type="info"
+                         @click="dianJiFuZhiYiZhu(scope.row)"></el-button>
+              <el-button circle icon="View" type="warning" @click="synopsis(scope.row)"></el-button>
+            </template>
+          </el-table-column>
+        </el-table>
       </div>
     </div>
   </div>
-  <el-button icon="ArrowLeft" style="font-size: 14px" text type="primary" @click="cloneWindow">返回</el-button>
-  <el-button type="primary" @click="muBanDuiHuaKuang = true"> 获取模板</el-button>
-  <el-button :disabled="yiZhuList.length === 0" type="primary" @click="baoCunMuBanClick">保存模板</el-button>
-  {{ count }}
-  <el-divider direction="vertical"/>
-  <el-button :disabled="yiZhuData.serial === '00' || stringIsBlank(yiZhuData.serial)"
-             icon="View"
-             type="success"
-             @click="synopsis({
-             orderCode: yiZhuData.orderCode,
-             serial: yiZhuData.serial
-             })"> 药品用法
-  </el-button>
-  <el-divider direction="vertical"></el-divider>
-  <el-select v-model="groupNo" style="width: 90px">
-    <el-option value="73" label="住院"/>
-    <el-option value="71" label="门诊"/>
-  </el-select>
-  <yao-ping-xiang-qing v-if="HeLiYongYao.dialog" :code="HeLiYongYao.code"
-                       @close="HeLiYongYao.dialog = false"></yao-ping-xiang-qing>
-  <el-form ref="yiZhuRef" v-model="yiZhuData" label-width="90px" size="small">
-    <el-row>
-      <el-col :span="span">
-        <el-form-item class="bi_tian" label="医嘱名称:" prop="orderName">
-          <CyComboGrid
-              style="width: 240px"
-              v-model="yiZhuData"
-              value="orderCode"
-              label="orderName"
-              :table-header="tableHeaderV2"
-              :remote-method="searchOrders"
-              @rowClick="({row}) => xuanZhongFeiYong(row)"
-          />
-        </el-form-item>
-      </el-col>
-      <el-col :span="span" v-if="yiZhuData.orderCode === '06054'">
-        <el-form-item class="bi_tian" label="请输入处置医嘱名称:" prop="orderName">
-          <el-input v-model="yiZhuData.orderName"/>
-        </el-form-item>
-      </el-col>
-      <el-col :span="span">
-        <el-form-item label="规格:" prop="orderName">
-          <div style="border-bottom: 1px solid #000; height: 29px">
-            {{ yiZhuData.drugSpecification }}
-          </div>
-        </el-form-item>
-      </el-col>
-      <el-col :span="span">
-        <el-form-item class="bi_tian" label="频率:" prop="frequCode">
-          <select-v4 :data="yaoPinPingLvData"
-                     ref="pingLv"
-                     key="frequCode"
-                     @change="pingLvRowClick"
-                     v-model="yiZhuData.frequCode"
-                     style="width: 120px"/>
-        </el-form-item>
-      </el-col>
-      <el-col :span="span">
-        <el-form-item class="bi_tian" label="一次剂量:" prop="dose">
-          <el-input-number v-model="yiZhuData.dose"
-                           :step="jiLiangValue"
-                           ref="doseRef"
-                           id="yz_dose"
-                           :precision="yiZhuData.serial === '00' ? 2 : 3"
-                           style="width: 110px"
-                           @change="jiSuanLingLiang"/>
-          <XcSelect v-model="yiZhuData"
-                    id="yz_doseUnit"
-                    :data="yaoPinJiLiangData"
-                    :name="['doseUnit', 'doseUnitName']" :width="80"
-                    @change="xuanZheJiLiang">
-            <XcOption label="value"></XcOption>
-            <XcOption label="name"></XcOption>
-          </XcSelect>
-        </el-form-item>
-      </el-col>
-      <el-col :span="span">
-        <el-form-item label="领量:">
-          {{ yiZhuData.drugQuan }}
-          &nbsp;&nbsp;&nbsp;
-          {{ yiZhuData.miniUnitName }}
-        </el-form-item>
-      </el-col>
-      <el-col :span="span">
-        <el-form-item class="bi_tian" label="给药方式:" prop="supplyCode">
-          <select-v4
-              key="supplyCode"
-              :disabled="yiZhuData.serial === '00'"
-              style="width: 120px"
-              v-model="yiZhuData.supplyCode"
-              :data="geiYaoFangShiData"
-              @change="supplyCodeChange"
-              clearable/>
-        </el-form-item>
-      </el-col>
-      <el-col :span="span">
-        <el-form-item label="医嘱时间:" prop="orderName">
-          {{ yiZhuData.orderTime }}
-        </el-form-item>
-      </el-col>
-      <el-col :span="span">
-        <el-form-item class="bi_tian" label="开始时间:" prop="startTime">
-          <el-date-picker
-              v-model="yiZhuData.startTime"
-              id="yz_startTime"
-              format="YYYY-MM-DD HH:mm:ss"
-              type="datetime"
-              value-format="YYYY-MM-DD HH:mm:ss"
-          ></el-date-picker>
-        </el-form-item>
-      </el-col>
-      <el-col :span="span">
-        <el-form-item class="bi_tian" label="停止时间:" prop="endTime">
-          <el-date-picker
-              v-model="yiZhuData.endTime"
-              id="yz_endTime"
-              :disabled="yiZhuData.frequCode === 'ONCE'"
-              format="YYYY-MM-DD HH:mm:ss"
-              type="datetime"
-              value-format="YYYY-MM-DD HH:mm:ss"
-          ></el-date-picker>
-        </el-form-item>
-      </el-col>
-      <el-col :span="span">
-        <el-form-item label="医生:" prop="orderName">
-          {{ userInfo.name }}
-        </el-form-item>
-      </el-col>
-      <el-col :span="span">
-        <el-form-item class="bi_tian" label="执行科室:" prop="execUnit">
-          <XcSelectV3
-              style="width: 120px"
-              v-model="yiZhuData"
-              :data="zhiXingKeShiData"
-              id="yz_execUnit"
-              code="execUnit"
-              name="execUnitName"
-              :remote-method="metZhiXingKeShi"/>
-        </el-form-item>
-      </el-col>
-      <el-col :span="span">
-        <el-form-item label="父医嘱:" prop="orderName">
-          <el-select v-model="yiZhuData.parentNo"
-                     :disabled="yiZhuData.serial === '00'"
-                     id="yz_parentNo"
-                     clearable
-                     @clear="yiZhuData.parentNo = null" @focus="fuYiZhuClick">
-            <el-option v-for="item in fuYiZhuData" :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-form-item>
-      </el-col>
-      <el-col :span="span" :title="yiZhuData.discription">
-        <el-form-item label="医嘱描述:" prop="orderName">
-          <el-input v-model="yiZhuData.discription" disabled type="textarea"></el-input>
-        </el-form-item>
-      </el-col>
-      <el-col :span="span">
-        <el-form-item label="医生嘱托:">
-          <el-input v-model="yiZhuData.instruction"
-                    id="yz_instruction"
-                    clearable maxlength="50" show-word-limit type="textarea"></el-input>
-        </el-form-item>
-      </el-col>
-      <el-col :span="span">
-        <el-form-item label="服用时间">
-          <el-select v-model="yiZhuData.kfFlag"
-                     id="yz_kfFlag"
-                     clearable style="width: 80px" @clear="yiZhuData.kfFlag = null">
-            <el-option key="1" label="饭前" value="1"></el-option>
-            <el-option key="2" label="饭后" value="2"></el-option>
-          </el-select>
-        </el-form-item>
-      </el-col>
-      <el-col :span="span">
-        <el-form-item label="费用标志:">
-          <el-select v-model="yiZhuData.selfBuy"
-                     id="yz_selfBuy"
-                     clearable style="width: 120px"
-                     @clear="yiZhuData.selfBuy = null">
-            <el-option key="1" label="自备" value="1"></el-option>
-            <el-option key="2" label="嘱托" value="2"></el-option>
-            <el-option key="3" label="基数药" value="3"></el-option>
-          </el-select>
-        </el-form-item>
-      </el-col>
-      <el-col :span="span">
-        <el-form-item label="医保自费:">
-          <el-switch v-model="yiZhuData.ybSelfFlag"
-                     id="yz_ybSelfFlag"
-                     active-color="#13ce66" active-text="自费" active-value="1"
-                     inactive-color="#ff4949" inactive-text="记账" inactive-value="0">
-          </el-switch>
-        </el-form-item>
-      </el-col>
-      <el-col :span="span">
-        <el-form-item label="是否紧急:">
-          <el-switch v-model="yiZhuData.emergencyFlag"
-                     id="yz_emergencyFlag"
-                     active-color="#13ce66" active-text="是" active-value="1"
-                     inactive-color="#ff4949" inactive-text="否" inactive-value="0">
-          </el-switch>
-        </el-form-item>
-      </el-col>
-      <el-col v-if="yiZhuData.orderCode === zkCode" :span="span">
-        <el-form-item label="转科:" class="bi_tian">
-          <el-select v-model="yiZhuData.zkObj" filterable id="yz_zkObj">
-            <el-option v-for="(item, index) in zkList" :key="item.value"
-                       :label="item.wardName + '|' + item.smallName"
-                       :value="item.value">
-              <span>{{ item.wardName }}</span>
-              <el-divider direction="vertical"></el-divider>
-              <span>{{ item.smallName }}</span>
-            </el-option>
-          </el-select>
-        </el-form-item>
-      </el-col>
-    </el-row>
-  </el-form>
-  <el-button icon="Plus" type="primary" @click="tianJiaYiZhu">添加</el-button>
-  <xc-code code="Ctrl + S" description="键盘添加"/>
-  <xc-code code="Ctrl + F" description="打开搜索框"/>
-  <xc-code code="Ctrl + 1" description="回到第一个输入框(数字1)"/>
-  <xc-code code="Alt + PgUp / PgDn" description="医嘱上下"/>
-  <xc-code code="Alt + ← / →" description="编辑(←) / 复制 (→)"/>
-  <xc-code code="Alt + D " description="删除选中的医嘱"/>
-  <el-button @click="dianJiXiuGaiZhiXingKeShi">修改执行科室</el-button>
-  <el-table
-      :data="yiZhuList"
-      ref="elTableRef"
-      :height="innerHeight / 2.4"
-      @selection-change="dianJiXuanZhongShuJu"
-      :row-class-name="doctorSOrderForm"
-      @row-click="whenClickingOnTheForm"
-      @expand-change="expandChange">
-    <el-table-column type="expand">
-      <template #default="props">
-        <div v-if="feeInformation.get(props.row.id)" style="min-height: 40px;margin: 10px">
-          <el-tag v-for="item in feeInformation.get(props.row.id)">
-            {{ item }}
-          </el-tag>
-        </div>
-      </template>
-    </el-table-column>
-    <el-table-column type="selection"></el-table-column>
-    <el-table-column label="排序" type="index"></el-table-column>
-    <el-table-column label="医嘱编码" prop="orderCode"></el-table-column>
-    <el-table-column label="医嘱名称" prop="orderName" show-overflow-tooltip></el-table-column>
-    <el-table-column label="医嘱时间" prop="orderTime" show-overflow-tooltip width="70"></el-table-column>
-    <el-table-column label="开始时间" prop="startTime" show-overflow-tooltip width="70"></el-table-column>
-    <el-table-column label="结束时间" prop="endTime" show-overflow-tooltip width="70"></el-table-column>
-    <el-table-column label="规格" prop="drugSpecification" show-overflow-tooltip></el-table-column>
-    <el-table-column label="频率" prop="frequCode"></el-table-column>
-    <el-table-column label="一次剂量" prop="dose">
-      <template #default="scope"> {{ scope.row.dose }} {{ scope.row.doseUnitName }}</template>
-    </el-table-column>
-    <el-table-column label="领量" prop="drugQuan">
-      <template #default="scope"> {{ scope.row.drugQuan }} {{ scope.row.miniUnitName }}</template>
-    </el-table-column>
-    <el-table-column label="给药方式" prop="supplyCodeName" show-overflow-tooltip></el-table-column>
-    <el-table-column label="执行科室" prop="execUnitName" show-overflow-tooltip></el-table-column>
-    <!--    <el-table-column label="父医嘱" prop="parentNo"></el-table-column>-->
-    <el-table-column label="类型" prop="drugFlag"></el-table-column>
-    <el-table-column label="费用标志" prop="selfBuy">
-      <template #default="scope">
-        {{ getSelfBuy(scope.row.selfBuy) }}
-      </template>
-    </el-table-column>
-    <el-table-column label="医保自费">
-      <template #default="scope">
-        <el-tag v-if="scope.row.ybSelfFlag === '1'">是</el-tag>
-      </template>
-    </el-table-column>
-    <el-table-column label="是否紧急">
-      <template #default="scope">
-        <el-tag v-if="scope.row.emergencyFlag === '1'">是</el-tag>
-      </template>
-    </el-table-column>
-    <el-table-column fixed="right" label="操作" width="220">
-      <template #default="scope">
-        <el-button circle icon="Edit" type="warning" @click="xiuGaiYiZhu(scope.row,scope.$index)"></el-button>
-        <el-button circle icon="Delete" type="danger" @click="shanChuBiaoGeYiZhu(scope.$index)"></el-button>
-        <el-button circle class="iconfont icon-fuzhi" type="info"
-                   @click="dianJiFuZhiYiZhu(scope.row)"></el-button>
-        <el-button circle icon="View" type="warning" @click="synopsis(scope.row)"></el-button>
-      </template>
-    </el-table-column>
-  </el-table>
-  <yao-ping-xiang-qing v-if="synopsisDialog.dialog"
-                       :code="synopsisDialog.code"
-                       @close="synopsisDialog.dialog = false"/>
   <!-- 这里是获取模板的 -->
   <huo-qu-mu-ban v-if="muBanDuiHuaKuang"
                  :dialog="true"
@@ -311,7 +306,6 @@
                  @muBanShuJu="muBanShuJu"/>
   <!-- 保存模板用 -->
   <bao-cun-mu-ban v-if="baoCunMuBanRef" v-model="baoCunMuBanRef" :list="yiZhuList" @emptyOrder="yiZhuList = []"/>
-
 </template>
 
 <script name="TianJiaYiZhu" setup="props,context">
@@ -324,7 +318,7 @@ import {
 import {
   getSelfBuy,
   zkList,
-  yaoPinPingLvData, geiYaoFangShiData, feeKey, tableHeaderV2
+  yaoPinPingLvData, geiYaoFangShiData, feeKey, tableHeaderV2, openDrugManual
 } from '@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng'
 import {listIsBlank, listNotBlank, stringIsBlank, stringNotBlank} from '@/utils/blank-utils'
 import {ElMessage, ElNotification} from 'element-plus'
@@ -334,7 +328,6 @@ import {uuid} from '@/utils/getUuid'
 import BaoCunMuBan from '../../../../components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/BaoCunMuBan.vue'
 import {getServerDateApi, getTheTransferList} from '@/api/public-api'
 import router from '@/router'
-import YaoPingXiangQing from '@/components/zhu-yuan-yi-sheng/he-li-yong-yao/YaoPingXiangQing.vue'
 import Sleep from '@/utils/sleep'
 import {BizException, ExceptionEnum} from '@/utils/BizException'
 import {setScrollTop} from "@/utils/el-table-scroll";
@@ -342,7 +335,6 @@ import XcSelectV3 from "@/components/xiao-chan/select-v3/XcSelectV3.vue"
 import {xcMessage} from "@/utils/xiaochan-element-plus";
 import XcSelect from "@/components/xiao-chan/select/XcSelect";
 import XcOption from "@/components/xiao-chan/select/XcOption";
-import XcCode from "@/components/xiao-chan/code/XcCode";
 import SelectV4 from "@/components/xiao-chan/select-v4/SelectV4.vue";
 import {shortcutTrigger, xcEvent} from "@/utils/xckeydown";
 import CyComboGrid from "@/components/cy/combo-grid/src/CyComboGrid.vue";
@@ -420,15 +412,6 @@ const yiZhuData = ref({
 const tiShiBiaoTi = ref([])
 
 const span = ref(6)
-const spanSize = (val) => {
-  if (val > 1200) {
-    span.value = 6
-  } else if (930 < val || val > 1200) {
-    span.value = 8
-  } else if (val < 930) {
-    span.value = 12
-  }
-}
 
 // 搜索医嘱
 const xuanZhongFeiYong = async (row, newData = true) => {
@@ -691,34 +674,14 @@ const expandChange = (row, expandedRows) => {
   })
 }
 
-
-let synopsisDialog = reactive({
-  dialog: false,
-  code: ''
-})
-
 // 查看药品的使用信息
-const synopsis = (val) => {
-  synopsisDialog.dialog = true
-  synopsisDialog.code = val.orderCode + '_' + val.serial
+const synopsis = () => {
+  openDrugManual(yiZhuData.value.orderCode, yiZhuData.value.serial)
 }
 
 /* 医嘱错误信息 */
 const errorMessageData = ref({})
 
-const clickError = (value) => {
-  if (yiZhuData.value.orderCode) {
-    ElMessage.warning({
-      message: '请先保存正在编辑的内容',
-      duration: 3000,
-      showClose: true,
-      grouping: true,
-    })
-  } else {
-    xuanZhongFeiYong(value.data, false)
-  }
-}
-
 // 模板数据
 const muBanDuiHuaKuang = ref(false)
 // 这里是返回的模板数据
@@ -829,11 +792,6 @@ const qingKong = () => {
   }
 }
 
-let HeLiYongYao = reactive({
-  dialog: false,
-  code: '',
-})
-
 /// 这里是 ctrl 快捷键
 /**
  * 保存或添加医嘱
@@ -874,10 +832,6 @@ const whenClickingOnTheForm = (row, column, event) => {
   dataIndex.value = row.tableIndex
 }
 
-// 这里是表格事件 结束
-
-// 这里是 alt 快捷键
-
 /**
  * 检查是否存在医嘱数据
  * @param checkJudgment 判断是否检查选中数据
@@ -977,7 +931,6 @@ onActivated(() => {
   keyWatch = watch(() => xcEvent.value, () => {
     shortcutTrigger(xcEvent.value, shortcutKeyRegistration)
   })
-
 })
 
 onDeactivated(() => {
@@ -987,7 +940,9 @@ onDeactivated(() => {
 })
 
 const cloneWindow = () => {
-  router.push('/inpatient/zhuYuanYiSheng/yiZhuLuRu?pattern=all')
+  router.push({
+    name: 'yiZhuLuRu'
+  })
 }
 
 </script>

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

@@ -1,41 +1,37 @@
 <template>
-  <div style="margin: 0;height: 100% ;width: 100%">
-    <CyFlex content-size>
-      <template #header>
-        <yz-query-condition :patient-info="huanZheXinXi"
-                            @batchDeleteOrdersClick="batchDeleteOrdersClick"
-                            :click-on-the-order-template="clickOnTheOrderTemplate"
-                            :confirm-orders-click="confirmOrdersClick"/>
-
-        <yz-editor :patient-info="huanZheXinXi"
-                   ref="yzEditorRef"
-                   :open-group-order-template="openGroupOrderTemplate"/>
-      </template>
-      <template #default="{width,  height}">
-        <div :style="{width: width - 10 + 'px'}" style="height: 100%">
-          <YzTableV3
-              @void-orders="voidOrdersClick"
-              @rowClick="rowClick"/>
-        </div>
-
-      </template>
-    </CyFlex>
-
-    <!--  获取模板的数据  -->
-    <huo-qu-mu-ban
-        ref="mubanRef"
-        :editor="false"
-        @muBanShuJu="muBanShuJu"/>
-
-    <!-- 这个是过敏源的 -->
-    <AllergenEntry v-if="allergen.dialog"
-                   :pat-no="huanZheXinXi.inpatientNo"
-                   @close="allergen.dialog = false"/>
-
-    <!--  合理用药窗口  -->
-    <rational-drug-use-window ref="reasonableRef" @submit="confirmOrder"/>
-    <fee-table/>
+  <div class="layout_container">
+    <header>
+      <yz-query-condition :patient-info="huanZheXinXi"
+                          @batchDeleteOrdersClick="batchDeleteOrdersClick"
+                          :click-on-the-order-template="clickOnTheOrderTemplate"
+                          :confirm-orders-click="confirmOrdersClick"/>
+
+      <yz-editor :patient-info="huanZheXinXi"
+                 ref="yzEditorRef"
+                 :open-group-order-template="openGroupOrderTemplate"/>
+    </header>
+    <div class="layout_main">
+      <div style="height: 100%;width: calc(100% - 10px)">
+        <YzTableV3
+            @void-orders="voidOrdersClick"
+            @rowClick="rowClick"/>
+      </div>
+    </div>
   </div>
+  <!--  获取模板的数据  -->
+  <huo-qu-mu-ban
+      ref="mubanRef"
+      :editor="false"
+      @muBanShuJu="muBanShuJu"/>
+
+  <!-- 这个是过敏源的 -->
+  <AllergenEntry v-if="allergen.dialog"
+                 :pat-no="huanZheXinXi.inpatientNo"
+                 @close="allergen.dialog = false"/>
+
+  <!--  合理用药窗口  -->
+  <rational-drug-use-window ref="reasonableRef" @submit="confirmOrder"/>
+  <fee-table/>
 </template>
 
 <script setup lang="ts">
@@ -71,11 +67,10 @@ import XEUtils from 'xe-utils'
 import {nextTick, onActivated, onMounted, ref} from 'vue'
 import {CyMessageBox} from "@/components/cy/message-box";
 import YzTableV3 from "@/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/components/table/YzTableV3.vue";
-import CyFlex from "@/components/cy/flex/src/CyFlex.vue";
 import doctorStore, {YzSidebarEnum} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/useDoctorStore";
 import {isDev} from "@/utils/public";
 
-let allergen = ref({
+const allergen = ref({
   dialog: false,
   open: () => {
     if (youWuXuanZheHuanZhe()) return
@@ -316,10 +311,8 @@ onActivated(async () => {
     await clickOnThePatient(<string>router.currentRoute.value.params.inpatientNo);
     await yzMitt.emit('queryYz')
   }
-  doctorStore.setYzSidebar(YzSidebarEnum.PATIENT_LIST)
+  doctorStore.setYzSidebar(YzSidebarEnum.PATIENT_LIST);
 })
-
-
 </script>
 
 <style scoped lang="scss">