Просмотр исходного кода

医嘱变更单和医嘱执行签名

lihong 1 год назад
Родитель
Сommit
fcb21234e7

+ 56 - 0
src/api/medical-advice/excute-item.js

@@ -0,0 +1,56 @@
+import request from "../../utils/request";
+
+/**
+ * 查询医嘱变更单
+ * @param data
+ * @returns {AxiosPromise}
+ */
+export function queryYzChange(data) {
+    return request({
+        url: '/yzChange/queryYzChange',
+        method: 'post',
+        data,
+    })
+}
+
+/**
+ * 确认医嘱变更
+ * @param data
+ * @returns {AxiosPromise}
+ */
+export function saveYzChange(data) {
+    return request({
+        url: '/yzChange/saveYzChange',
+        method: 'post',
+        data,
+    })
+}
+
+/**
+ * 查询医嘱签名数据
+ * @param data
+ * @returns {AxiosPromise}
+ */
+export function queryYzSign(data) {
+    return request({
+        url: '/yzExecuteSign/queryYzSign',
+        method: 'post',
+        data,
+    })
+}
+
+/**
+ * 保存医嘱签名
+ * @param data
+ * @returns {AxiosPromise}
+ */
+export function saveYzSign(data) {
+    return request({
+        url: '/yzExecuteSign/saveYzSign',
+        method: 'post',
+        data,
+    })
+}
+
+
+

+ 8 - 0
src/router/modules/dashboard.js

@@ -1003,6 +1003,14 @@ const route = [
                 path: 'drugManage/DsyInfo',
                 component: createNameComponent(() => import('@/views/medical-advice/drug-manage/DsyInfo.vue')),
                 meta: {title: '大输液统计'},
+            },{
+                path: 'executeItem/yzChange',
+                component: createNameComponent(() => import('@/views/medical-advice/execute-item/YzChange.vue')),
+                meta: {title: '医嘱变更单'},
+            },{
+                path: 'executeItem/yzExecuteSignature',
+                component: createNameComponent(() => import('@/views/medical-advice/execute-item/YzExecuteSignature.vue')),
+                meta: {title: '医嘱执行签名'},
             },
         ],
     },

+ 402 - 0
src/views/medical-advice/execute-item/YzChange.vue

@@ -0,0 +1,402 @@
+<template>
+  <el-container>
+    <el-header>
+      <el-row style="color: red">
+        核对变更医嘱期间医生可能对该窗口的医嘱进行了修改,请及时刷新。如医嘱较多,可先确认已核对的部分再继续核对。窗口已设置自动刷新,时间为15分钟!
+      </el-row>
+    </el-header>
+    <el-main>
+     <div  style="width: 100%">
+       <el-row>
+         <el-col>
+       <el-select  filterable v-model="queryParam.wardCode" @change="initPatintBedNo"  style="width: 130px;" size="small">
+         <el-option v-for="item in ward" :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-date-picker
+         v-model="queryParam.startDate"
+         type="datetime"
+         size="small"
+         :clearable="false"
+         format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
+          style="width: 150px"/>
+       至
+       <el-date-picker
+           v-model="queryParam.endDate"
+           type="datetime"
+           size="small"
+           :clearable="false"
+           format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
+           style="width: 150px;"/>
+       打印选择:<el-select    v-model="queryParam.printFlag"  style="width: 80px;" size="small">
+                 <el-option label="全部" value="0"></el-option>
+                 <el-option label="未打印" value="1"></el-option>
+                 <el-option label="已打印" value="2"></el-option>
+              </el-select>
+       变更单类型:<el-select @change="handleChangeType"   v-model="queryParam.changeClass"  style="width: 100px;" size="small">
+       <el-option label="全部" value="0"></el-option>
+       <el-option label="长期" value="1"></el-option>
+       <el-option label="长期口服" value="2"></el-option>
+       <el-option label="长期输液" value="3"></el-option>
+       <el-option label="长期非口服" value="4"></el-option>
+       <el-option label="临时" value="5"></el-option>
+       <el-option label="临时口服" value="6"></el-option>
+       <el-option label="临时输液" value="7"></el-option>
+       <el-option label="治疗项目" value="8"></el-option>
+     </el-select>
+       床位范围:<el-select v-model="queryParam.startBedNo"
+                           clearable
+                          style="width: 70px">
+       <el-option v-for="item in patintList"
+                  :key="item.bedNo"
+                  :label="item.bedNo"
+                  :value="item.bedNo">
+         <span>{{ item.bedNo }}</span>
+         <el-divider direction="vertical"></el-divider>
+         <span>{{ item.inpatientNo }}</span>
+         <el-divider direction="vertical"></el-divider>
+         <span>{{ item.name }}</span>
+       </el-option>
+     </el-select>
+       至
+       <el-select v-model="queryParam.endBedNo"
+                  style="width: 70px"
+                  clearable>
+         <el-option v-for="item in reverPatintList"
+                    :key="item.bedNo"
+                    :label="item.bedNo"
+                    :value="item.bedNo">
+           <span>{{ item.bedNo }}</span>
+           <el-divider direction="vertical"></el-divider>
+           <span>{{ item.inpatientNo }}</span>
+           <el-divider direction="vertical"></el-divider>
+           <span>{{ item.name }}</span>
+         </el-option>
+       </el-select>
+         </el-col>
+       </el-row>
+       <div style="margin-top: 5px">
+         <el-row gutter="10" style="margin-left: 25%">
+           <el-col span="6">
+             <el-button icon="Search" type="primary" @click="queryInfo">查询</el-button>
+           </el-col>
+           <el-col span="6">
+             <el-button icon="Printer" type="success" @click="printInfo">打印选中</el-button>
+           </el-col>
+           <el-col span="6">
+             <el-checkbox v-model="checkedAll" size="small" border @change="selectAll">全选</el-checkbox>
+           </el-col>
+           <el-col span="6">
+             <el-button  type="danger"  @click="saveData">确认变更</el-button>
+           </el-col>
+         </el-row>
+       </div>
+     </div>
+      <el-tabs v-model="activeName" >
+        <el-tab-pane label="编辑" name="first">
+          <div class="topSize" style="font-size: 25px;font-weight:bold;text-align: center">
+            {{titleData}}
+          </div>
+          <div class="topSize" style="text-align: center;">
+            查询范围:{{queryParam.startDate}} - {{queryParam.endDate}}
+          </div>
+          <div class="topSize">
+            <el-table
+                ref="multipleTableRef"
+                :data="tableData"
+                style="width: 100%"
+                :height="getWindowSize.h/1.2-60"
+                @selection-change="handleSelectionChange"
+            >
+              <el-table-column type="selection" width="55" />
+              <el-table-column property="inpatientNo" label="住院号" />
+              <el-table-column property="bedNo" label="床位号"/>
+              <el-table-column property="name" label="姓名"/>
+              <el-table-column property="actOrderName" label="医嘱名称"/>
+              <el-table-column property="dose" label="剂量/领量"/>
+              <el-table-column property="supplyName" label="给药方式"/>
+              <el-table-column  property="frequCode" label="频率"/>
+              <el-table-column property="startTime" label="开始时间" width="120"/>
+              <el-table-column property="endTime" label="结束时间"  width="120"/>
+              <el-table-column v-if="queryParam.changeClass !== '0' && queryParam.changeClass !== '2'  && queryParam.changeClass !== '7'" property="orderTime" label="医嘱时间"  width="120"/>
+              <el-table-column v-if="queryParam.changeClass === '7'" property="execTime" label="执行时间"  width="120"/>
+              <el-table-column property="physicianName" label="医生"/>
+              <el-table-column  v-if="queryParam.changeClass === '2' || queryParam.changeClass === '4' || queryParam.changeClass === '6' || queryParam.changeClass === '8'" property="printOrderChange" label="执行"/>
+              <el-table-column  v-if="queryParam.changeClass === '2' || queryParam.changeClass === '4' || queryParam.changeClass === '6' || queryParam.changeClass === '8'" property="printOrderChangeEnd" label="执行"/>
+              <el-table-column  v-if="queryParam.changeClass === '3'" property="execId" label="执行人"/>
+            </el-table>
+          </div>
+        </el-tab-pane>
+        <el-tab-pane label="打印预览" name="second">
+          <el-scrollbar  class="scrollbar" :max-height="(getWindowSize.h/1.2-100)+'px'" noresize="true">
+            <div id="yzChangeId">
+              <table class="pageTable">
+                <thead>
+                <tr>
+                  <td colspan="15" style="width: 100%;border: none;text-align: center;font-size: 25px;font-weight:bold">
+                    {{titleData}}
+                  </td>
+                </tr>
+                <tr>
+                  <td colspan="15" style="width: 753px;border: none;text-align: center">
+                      查询范围:{{queryParam.startDate}} - {{queryParam.endDate}}
+                  </td>
+                </tr>
+                <tr>
+                  <th style="width: 10%;height: 27px">住院号</th>
+                  <th >床位号</th>
+                  <th >姓名</th>
+                  <th >医嘱名称</th>
+                  <th >剂量/领量</th>
+                  <th >给药方式</th>
+                  <th >频率</th>
+                  <th >开始时间</th>
+                  <th >结束时间</th>
+                  <th v-if="queryParam.changeClass !== '0' && queryParam.changeClass !== '2'  && queryParam.changeClass !== '7'">医嘱时间</th>
+                  <th v-if="queryParam.changeClass === '7'">执行时间</th>
+                  <th>医生</th>
+                  <th v-if="queryParam.changeClass === '2' || queryParam.changeClass === '4' || queryParam.changeClass === '6' || queryParam.changeClass === '8'">执行</th>
+                  <th v-if="queryParam.changeClass === '2' || queryParam.changeClass === '4' || queryParam.changeClass === '6' || queryParam.changeClass === '8'">执行</th>
+                  <th v-if="queryParam.changeClass === '3'">执行人</th>
+                </tr>
+                </thead>
+                <tbody>
+                <tr v-for="(item,index) in multipleSelection">
+                  <td >{{item.inpatientNo}}</td>
+                  <td >{{item.bedNo}}</td>
+                  <td >{{item.name}}</td>
+                  <td >{{item.actOrderName}}</td>
+                  <td >{{item.dose}}</td>
+                  <td >{{item.supplyName}}</td>
+                  <td >{{item.frequCode}}</td>
+                  <td >{{item.startTime}}</td>
+                  <td >{{item.endTime}}</td>
+                  <td v-if="queryParam.changeClass !== '0' && queryParam.changeClass !== '2'  && queryParam.changeClass !== '7'">{{item.orderTime}}</td>
+                  <td v-if="queryParam.changeClass === '7'">{{item.execTime}}</td>
+                  <td >{{item.physicianName}}</td>
+                  <td v-if="queryParam.changeClass === '2' || queryParam.changeClass === '4' || queryParam.changeClass === '6' || queryParam.changeClass === '8'">{{item.printOrderChange}}</td>
+                  <td v-if="queryParam.changeClass === '2' || queryParam.changeClass === '4' || queryParam.changeClass === '6' || queryParam.changeClass === '8'">{{item.printOrderChangeEnd}}</td>
+                  <td v-if="queryParam.changeClass === '3'">{{item.execId}}</td>
+                </tr>
+                </tbody>
+              </table>
+            </div>
+          </el-scrollbar>
+        </el-tab-pane>
+      </el-tabs>
+
+
+    </el-main>
+  </el-container>
+</template>
+
+<script setup name='YzChange'>
+import { computed, onMounted, ref } from 'vue'
+import { useStore } from 'vuex'
+import { getFormatDatetime,getDateTiffDays } from "@/utils/date"
+import { ElMessage, ElMessageBox } from 'element-plus'
+import {getAllWards} from "@/api/zhu-yuan-yi-sheng/resident-doctor";
+import {stringNotBlank} from "@/utils/blank-utils"
+import PageLayer from "@/layout/PageLayer";
+import {getLodop, initLodop} from '@/utils/c-lodop'
+import {getWindowSize} from "@/utils/window-size";
+import {queryPatientInfo} from "@/api/medical-advice/medical-advice-management";
+import {queryYzChange,saveYzChange} from "@/api/medical-advice/excute-item";
+import sleep from "@/utils/sleep";
+
+const activeName = ref('first')
+const queryParam= ref({
+  wardCode:'',
+  startDate:getFormatDatetime(getDateTiffDays(5),'YYYY-MM-DD') + ' 00:00:00',
+  endDate:getFormatDatetime(getDateTiffDays(-1),'YYYY-MM-DD') + ' 23:59:59',
+  printFlag:'1',
+  changeClass:'0',
+  startBedNo:'',
+  endBedNo:'',
+
+})
+const ward = ref([])
+
+onMounted(()=>{
+  handleChangeType(queryParam.value.changeClass)
+  initLodop()
+  getAllWards().then((res)=>{
+    if(res){
+      ward.value =res
+      queryParam.value.wardCode = res[0].code
+    }
+  })
+
+  setInterval(()=>{
+    queryInfo()
+  },15*1000*60)
+
+})
+
+const checkedAll = ref(false)
+const selectAll = ()=>{
+  if(checkedAll.value){
+    multipleTableRef.value.toggleAllSelection()
+  }else {
+    multipleTableRef.value.clearSelection()
+  }
+}
+
+// 查询
+const queryInfo=()=>{
+  queryYzChange(queryParam.value).then((res)=>{
+    tableData.value = res
+  })
+}
+
+
+
+
+
+const printCss =`
+.pageTable tr td, .pageTable tr th {
+  border: 1px solid black;
+  text-align: center;
+  font-size: 12px;
+  padding: 0 0;
+
+}
+.pageTable tr td{
+  height: 27px;
+}
+
+.pageTable {
+  border-collapse: collapse;
+}
+
+
+`
+
+// 打印
+const printInfo =()=>{
+  saveData(true)
+}
+// 确认变更
+const saveData = (printFlag) =>{
+  let param = {
+    list : multipleSelection.value
+  }
+  saveYzChange(param).then((res)=>{
+    if(printFlag){
+      let LODOP = getLodop()
+      LODOP.PRINT_INIT('医嘱变更单') // 初始化打印机 名字
+      LODOP.SET_PRINT_PAGESIZE(1, '210mm', '297mm', '') // 设置纸张大小  A4
+      LODOP.SET_PRINT_MODE('FULL_WIDTH_FOR_OVERFLOW', true) // 整宽不变形
+      LODOP.ADD_PRINT_TABLE('2mm', '5mm', '205mm', '220mm', '<style>' + printCss + '</style>' + '<body>' + document.getElementById('yzChangeId').innerHTML + '</body>') //要打印的内容
+      LODOP.PREVIEW() // 关闭
+    }
+    sleep(500).then(()=>{queryInfo()})
+  })
+}
+
+
+// 变更单类型选择
+const handleChangeType=(val)=>{
+  for (let i = 0; i < titleList.length; i++) {
+    if(val === titleList[i].code){
+      titleData.value = titleList[i].name
+      break
+    }
+  }
+  clearTableData()
+}
+
+function clearTableData(){
+  tableData.value = []
+}
+
+
+const titleData = ref('')
+const titleList = [
+  {
+    code:'0',
+    name:'医嘱变更单',
+  },{
+    code:'1',
+    name:'长期医嘱变更单',
+  },
+  {
+    code:'2',
+    name:'长期医嘱变更单(口服药)',
+  },{
+    code:'3',
+    name:'长期医嘱变更单(长期输液)',
+  },{
+    code:'4',
+    name:'长期医嘱变更单(非口服药)',
+  },{
+    code:'5',
+    name:'临时医嘱变更单',
+  },{
+    code:'6',
+    name:'临时医嘱变更单(口服药)',
+  },{
+    code:'7',
+    name:'临时医嘱变更单(临时输液)',
+  },{
+    code:'8',
+    name:'治疗类医嘱变更单',
+  }
+]
+
+const patintList = ref([])
+const reverPatintList = computed(() => reverseArray(patintList.value))
+
+const initPatintBedNo=()=>{
+  queryPatientInfo('',queryParam.value.wardCode,'').then((res)=>{
+    patintList.value = res
+  })
+}
+
+const tableData = ref([])
+
+const multipleTableRef =ref({})
+const multipleSelection = ref([])
+const handleSelectionChange = (val) => {
+  multipleSelection.value = val
+}
+
+
+function reverseArray(arr) {
+  let newArr = [];
+  arr.forEach(element => {
+    // unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
+    newArr.unshift(element);
+  });
+  return newArr;
+}
+
+</script>
+
+
+<style scoped>
+.topSize{
+  margin-top: 5px;
+}
+
+.pageTable tr td, .pageTable tr th {
+  border: 1px solid black;
+  text-align: center;
+  font-size: 12px;
+  padding: 0 0;
+
+}
+.pageTable tr td{
+  height: 27px;
+}
+
+.pageTable {
+  border-collapse: collapse;
+}
+
+
+
+</style>

+ 268 - 0
src/views/medical-advice/execute-item/YzExecuteSignature.vue

@@ -0,0 +1,268 @@
+<template>
+ <page-layer>
+    <template #header>
+          <el-select  filterable v-model="queryParam.wardCode" @change="initPatintBedNo"   style="width: 130px;margin-right: 10px" size="small">
+            <el-option v-for="item in ward" :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-select v-model="queryParam.startBedNo"
+                               clearable
+                               style="width: 70px">
+          <el-option v-for="item in patintList"
+                     :key="item.bedNo"
+                     :label="item.bedNo"
+                     :value="item.bedNo">
+            <span>{{ item.bedNo }}</span>
+            <el-divider direction="vertical"></el-divider>
+            <span>{{ item.inpatientNo }}</span>
+            <el-divider direction="vertical"></el-divider>
+            <span>{{ item.name }}</span>
+          </el-option>
+        </el-select>
+          至
+          <el-select v-model="queryParam.endBedNo"
+                     style="width: 70px;margin-right: 10px"
+                     clearable>
+            <el-option v-for="item in reverPatintList"
+                       :key="item.bedNo"
+                       :label="item.bedNo"
+                       :value="item.bedNo">
+              <span>{{ item.bedNo }}</span>
+              <el-divider direction="vertical"></el-divider>
+              <span>{{ item.inpatientNo }}</span>
+              <el-divider direction="vertical"></el-divider>
+              <span>{{ item.name }}</span>
+            </el-option>
+          </el-select>
+      执行时间:<el-date-picker
+        v-model="executeTime"
+        type="datetime"
+        size="small"
+        :clearable="false"
+        format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
+        style="width: 150px;margin-right: 10px"/>
+          <el-radio-group v-model="queryParam.signFlag" size="small" @change="queryInfo" style="margin-right: 10px">
+            <el-radio label="0" >未签名</el-radio>
+            <el-radio label="1" >已签名</el-radio>
+          </el-radio-group>
+          <el-button icon="Search" type="primary" @click="queryInfo">查询</el-button>
+          <el-button  type="danger" @click="saveData">保存</el-button>
+           <el-button icon="Printer" type="success" @click="printInfo">打印</el-button>
+    </template>
+    <template #main>
+      <div>
+        <el-table
+            :data="tableData"
+            style="width: 100%"
+            :height="getWindowSize.h-60"
+            @row-dblclick = "selectExecuteId"
+        >
+          <el-table-column type="index" label="序号"/>
+          <el-table-column property="bedNoName" label="床位号"/>
+          <el-table-column property="inpatientNo" label="住院号" />
+          <el-table-column property="patientName" label="姓名"/>
+          <el-table-column property="orderName" label="医嘱名称"/>
+          <el-table-column property="startTime" label="医嘱开始时间" width="120"/>
+          <el-table-column property="confirmTime" label="确认医嘱时间"  width="120"/>
+          <el-table-column property="dose" label="剂量"/>
+          <el-table-column property="doseUnit" label="剂量单位"/>
+          <el-table-column  property="supplyCode" label="给药方式"/>
+          <el-table-column property="execTime" label="执行时间" width="120"/>
+          <el-table-column property="execId" label="执行人"/>
+          <el-table-column property="drugSpecification" label="药品规格"/>
+          <el-table-column property="drugQuan" label="药品领量"/>
+          <el-table-column property="instruction" label="医生嘱托"/>
+        </el-table>
+        <el-pagination
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="queryParam.currentPage"
+            :page-sizes="[50, 100, 150, 200]"
+            :page-size="queryParam.pageSize"
+            layout="total, sizes, prev, pager, next"
+            :total="total"
+            style="margin-top: 5px"
+        ></el-pagination>
+      </div>
+      <div id="printId" v-show="false">
+        <table   class="pageTable">
+          <thead>
+          <tr>
+            <th style="width: 10%;height: 27px">床位号</th>
+            <th >住院号</th>
+            <th >姓名</th>
+            <th >医嘱名称</th>
+            <th >医嘱开始时间</th>
+            <th >确认医嘱时间</th>
+            <th >剂量</th>
+            <th >剂量单位</th>
+            <th >给药方式</th>
+            <th >执行时间</th>
+            <th >执行人</th>
+            <th >药品规格</th>
+            <th>药品领量</th>
+            <th>医生嘱托</th>
+          </tr>
+          </thead>
+          <tbody>
+          <tr v-for="(item,index) in tableData">
+            <td >{{item.bedNoName}}</td>
+            <td >{{item.inpatientNo}}</td>
+            <td >{{item.patientName}}</td>
+            <td >{{item.orderName}}</td>
+            <td >{{item.startTime}}</td>
+            <td >{{item.confirmTime}}</td>
+            <td >{{item.dose}}</td>
+            <td >{{item.doseUnit}}</td>
+            <td >{{item.supplyCode}}</td>
+            <td >{{item.execTime}}</td>
+            <td >{{item.execId}}</td>
+            <td >{{item.drugSpecification}}</td>
+            <td >{{item.drugQuan}}</td>
+            <td >{{item.instruction}}</td>
+          </tr>
+          </tbody>
+        </table>
+      </div>
+    </template>
+ </page-layer>
+</template>
+
+<script setup lang="ts" name='YzExecuteSignature'>
+import { computed, onMounted, ref } from 'vue'
+import { useStore } from 'vuex'
+import { getFormatDatetime } from "@/utils/date"
+import { ElMessage, ElMessageBox } from 'element-plus'
+import {getAllWards} from "@/api/zhu-yuan-yi-sheng/resident-doctor";
+import {queryYpZdGroupName,queryYzYpPageNo} from "@/api/medical-advice/medical-common";
+import {queryPatientInfo} from "@/api/medical-advice/medical-advice-management";
+import {stringNotBlank} from "@/utils/blank-utils"
+import {queryYzSign,saveYzSign} from "@/api/medical-advice/excute-item";
+import PageLayer from "@/layout/PageLayer";
+import {getLodop, initLodop} from '@/utils/c-lodop'
+import {getWindowSize} from "@/utils/window-size";
+import {userInfoStore} from "@/utils/store-public";
+
+const queryParam = ref({
+  wardCode:'',
+  startBedNo:'',
+  endBedNo:'',
+  signFlag:'0',
+  pageSize:50,
+  currentPage:1,
+})
+const total = ref<number>()
+
+const ward = ref('')
+
+const executeTime = ref(getFormatDatetime(new Date(),'YYYY-MM-DD HH:mm:ss'))
+
+const tableData = ref([])
+
+const queryInfo = ()=>{
+   queryYzSign(queryParam.value).then((res:any)=>{
+     tableData.value = res.records
+     total.value =res.total
+   })
+}
+
+const saveData = ()=>{
+  ElMessageBox.confirm('请确认是否保存', {
+    cancelButtonText: '取消',
+    confirmButtonText: '确定',
+  })
+      .then(() =>  {
+        let param = {
+          yzActOrders:tableData.value
+        }
+        saveYzSign(param).then((res:any)=>{ queryInfo()})
+      })
+      .catch(() => {
+      })
+}
+
+const selectExecuteId = (row)=>{
+  if(queryParam.value.signFlag === '0'){
+    for (let i = 0; i < tableData.value.length; i++) {
+      if(tableData.value[i].actOrderNo === row.actOrderNo){
+        tableData.value[i].execId  = tableData.value[i].execId ? '':userInfoStore.value.name
+        tableData.value[i].execTime = tableData.value[i].execTime ? '':executeTime.value
+        break
+      }
+    }
+  }
+}
+
+const printCss =`
+.pageTable tr td, .pageTable tr th {
+  border: 1px solid black;
+  text-align: center;
+  font-size: 12px;
+  padding: 0 0;
+
+}
+.pageTable tr td{
+  height: 27px;
+}
+
+.pageTable {
+  border-collapse: collapse;
+}
+
+
+`
+
+
+const printInfo = ()=>{
+  let LODOP = getLodop()
+  LODOP.PRINT_INIT('医嘱执行表') // 初始化打印机 名字
+  LODOP.SET_PRINT_PAGESIZE(1, '210mm', '297mm', '') // 设置纸张大小  A4
+  LODOP.SET_PRINT_MODE('FULL_WIDTH_FOR_OVERFLOW', true) // 整宽不变形
+  LODOP.ADD_PRINT_TABLE('2mm', '5mm', '205mm', '220mm', '<style>' + printCss + '</style>' + '<body>' + document.getElementById('printId').innerHTML + '</body>') //要打印的内容
+  LODOP.PREVIEW() // 关闭
+}
+
+const handleSizeChange = (val) => {
+  queryParam.value.pageSize = val
+  queryInfo()
+}
+const handleCurrentChange = (val) => {
+  queryParam.value.currentPage = val
+  queryInfo()
+}
+
+onMounted(()=>{
+  initLodop()
+  getAllWards().then((res:any)=>{
+    if(res){
+      ward.value =res
+      queryParam.value.wardCode = res[0].code
+      initPatintBedNo()
+    }
+  })
+})
+const patintList = ref([])
+const reverPatintList = computed(() => reverseArray(patintList.value))
+function reverseArray(arr) {
+  let newArr = [];
+  arr.forEach(element => {
+    // unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
+    newArr.unshift(element);
+  });
+  return newArr;
+}
+
+
+const initPatintBedNo=()=>{
+  queryPatientInfo('',queryParam.value.wardCode,'').then((res:any)=>{
+    patintList.value = res
+  })
+}
+</script>
+
+<style scoped lang="scss">
+
+</style>