yeguodong 2 months ago
parent
commit
ce279edde2

+ 357 - 0
src/views/medical-advice/advice-management/CqYzPrintDetail.vue

@@ -0,0 +1,357 @@
+<template>
+  <el-container>
+    <el-aside width="210px">
+      <PatientBaseList
+        :yzType="yzType"
+        @selectPatientInfo="selectPatientInfo"
+      ></PatientBaseList>
+    </el-aside>
+    <el-container>
+      <el-header style="height: 150px">
+        <PatientInfo :patientInfo="patientInfo"></PatientInfo>
+      </el-header>
+      <div>
+        <el-row>
+          <el-col :span="8">
+            <el-button icon="Search" type="primary" @click="queryInfo"
+              >查询</el-button
+            >
+            <el-button icon="Printer" type="success" @click="batchUpdateVisible = true;"
+              >批量更新</el-button
+            >
+          </el-col>
+          <el-col :span="8">
+            <el-radio-group
+              @change="initPageNumList"
+              v-model="yzOrderParam.printType"
+            >
+              <el-radio :label="1">打印新增</el-radio>
+              <el-radio :label="2">打印单页</el-radio>
+              <el-radio :label="3">打印某页后</el-radio>
+            </el-radio-group>
+          </el-col>
+          <el-col :span="4">
+            医嘱页号:
+            <el-select
+              v-model="yzOrderParam.pageNum"
+              placeholder="请选择"
+              style="width: 60px"
+            >
+              <el-option
+                v-for="item in pageNumList"
+                :key="item.code"
+                :label="item.name"
+                :value="item.code"
+              ></el-option>
+            </el-select>
+          </el-col>
+          <el-col :span="4">
+            <el-button type="primary" @click="clearPrintPageClick"
+              >清空打印页号</el-button
+            >
+          </el-col>
+        </el-row>
+      </div>
+      <el-main>
+        <el-scrollbar height="100%">
+          <div id="cqYz">
+              <el-table :data="yzPrintVOList" border style="width: 100%" @selection-change="handleSelectionChange">
+                  <el-table-column type="selection" :selectable="isSelectable" width="20"/>
+                  <el-table-column prop="actOrderNo" label="医嘱号" width="50" />
+                  <el-table-column prop="date" label="日期" width="40" />
+                  <el-table-column prop="time" label="时间" width="40" />
+                  <el-table-column prop="newOrderName" label="长期医嘱" width="200"/>
+                  <el-table-column prop="doctorName" label="医师签名"  width="80"/>
+                  <el-table-column prop="nurseName" label="核对护士签名"  width="80"/>
+                  <el-table-column prop="endTime" label="停止时间"  width="160">
+                      <template #default="scope">
+                          <el-input v-if="scope.row.actOrderNo != null"
+                                    v-model="scope.row.endTime" autocomplete="off" placeholder="格式:yyyy-MM-dd HH:mm:ss"/>
+                      </template>
+                  </el-table-column>
+                  <el-table-column prop="modifierName" label="医师签名"  width="80"/>
+                  <el-table-column prop="execId2Name" label="核对护士签名"  width="80"/>
+                  <el-table-column fixed="right" label="操作" min-width="120">
+                      <template #default="scope">
+                          <el-button
+                              v-if="scope.row.actOrderNo != null"
+                              type="primary"
+                              size="small"
+                              @click.prevent="saveItem(scope.row)"
+                          >
+                              保存
+                          </el-button>
+                      </template>
+                  </el-table-column>
+              </el-table>
+          </div>
+        </el-scrollbar>
+      </el-main>
+    </el-container>
+  </el-container>
+    <el-dialog v-model="batchUpdateVisible" title="更新" width="500">
+        <el-form :model="form">
+            <el-form-item label="下医嘱的医师" label-width="140px">
+                <el-select v-model="form.doctorCode" filterable>
+                    <el-option
+                        v-for="item in users"
+                        :key="item.code"
+                        :label="item.name"
+                        :value="item.code"
+                    />
+                </el-select>
+            </el-form-item>
+            <el-form-item label="医嘱的核对护士" label-width="140px">
+                <el-select v-model="form.nurseCode" filterable>
+                    <el-option
+                        v-for="item in users"
+                        :key="item.code"
+                        :label="item.name"
+                        :value="item.code"
+                    />
+                </el-select>
+            </el-form-item>
+            <el-form-item label="停止时间" label-width="140px">
+                <el-input v-model="form.endTime" autocomplete="off" placeholder="格式:yyyy-MM-dd HH:mm:ss"/>
+            </el-form-item>
+            <el-form-item label="停医嘱的医师" label-width="140px">
+                <el-select v-model="form.modifier" filterable>
+                    <el-option
+                        v-for="item in users"
+                        :key="item.code"
+                        :label="item.name"
+                        :value="item.code"
+                    />
+                </el-select>
+            </el-form-item>
+            <el-form-item label="停医嘱的核对护士" label-width="140px">
+                <el-select v-model="form.executer2" filterable>
+                    <el-option
+                        v-for="item in users"
+                        :key="item.code"
+                        :label="item.name"
+                        :value="item.code"
+                    />
+                </el-select>
+            </el-form-item>
+        </el-form>
+        <template #footer>
+            <div class="dialog-footer">
+                <el-button @click="batchUpdateVisible = false">取消</el-button>
+                <el-button type="primary" @click="batchUpdate">
+                    保存
+                </el-button>
+            </div>
+        </template>
+    </el-dialog>
+</template>
+
+<script setup name="cqYzPrint">
+import PatientInfo from "@/components/medical-advice/PatientInfo.vue";
+import PatientBaseList from "@/components/medical-advice/PatientBaseList.vue";
+import {
+  cqYzPrint,
+  getTotalPageNUm,
+  recPrint,
+  clearPrintPageNo,
+    updateActOrder
+} from "@/api/medical-advice/medical-advice-management";
+import { onMounted, ref } from "vue";
+import { stringNotBlank } from "@/utils/blank-utils";
+import { ElMessage, ElMessageBox } from "element-plus";
+import { getEmployeeMiList } from "@/api/lc/sterile.js";
+// 基本信息
+const patientInfo = ref({});
+const yzType = ref("cq");
+const yzPrintVOList = ref([]);
+
+const isSelectable = (row) => {
+    return row.actOrderNo !== null;
+}
+
+const yzOrderParam = ref({
+  patNo: "",
+  times: null,
+  inOutStatusFlag: "",
+  type: 1,
+  printType: 1,
+  pageNum: "",
+});
+
+const form = reactive({
+    doctorCode: "",
+    nurseCode: "",
+    modifier: "",
+    endTime:"",
+    executer2:""
+});
+
+const pageNumList = ref([]);
+
+const multipleSelection = ref([]);
+const handleSelectionChange = (val) => {
+    multipleSelection.value = val;
+}
+
+const batchUpdateVisible = ref(false);
+
+//
+const initPageNumList = () => {
+  yzOrderParam.value.pageNum = "";
+  yzPrintVOList.value = [];
+  if (yzOrderParam.value.printType === 1) {
+    pageNumList.value = [];
+    return;
+  }
+  getTotalPageNUm(yzOrderParam.value).then(res => {
+    if (res.total) {
+      pageNumList.value = [];
+      for (let i = 0; i < res.total; i++) {
+        let param = { code: i + 1 + "", name: i + 1 + "" };
+        pageNumList.value.push(param);
+      }
+    } else {
+      pageNumList.value = [];
+    }
+  });
+};
+
+const users = ref([]);
+
+const getUserList = () => {
+    getEmployeeMiList().then(res => {
+        users.value = res;
+    }).catch(err => {
+
+    });
+}
+
+//清空
+const clearPrintPageClick = () => {
+  clearPrintPageNo(yzOrderParam.value).then(res => {
+    yzPrintVOList.value = [];
+    pageNumList.value = [];
+  });
+};
+
+const selectPatientInfo = val => {
+  if (!stringNotBlank(val.patientInfo.inpatientNo)) {
+    return ElMessage.error("请选中一个病人");
+  }
+  yzOrderParam.value.patNo = val.patientInfo.inpatientNo;
+  yzOrderParam.value.times = val.patientInfo.admissTimes;
+  yzOrderParam.value.inOutStatusFlag = val.inOutStatusFlag;
+  clearInfo();
+};
+
+const clearInfo = () => {
+  yzPrintVOList.value = [];
+  yzOrderParam.value.pageNum = "";
+  yzOrderParam.value.printType = 1;
+  pageNumList.value = [];
+};
+
+const queryInfo = () => {
+  cqYzPrint(yzOrderParam.value).then(res => {
+    patientInfo.value = res.patientInfo;
+    yzPrintVOList.value = res.yzPrintVOList;
+  });
+};
+
+onMounted(() => {
+    getUserList();
+});
+
+// 批量修改
+const batchUpdate = () => {
+    if(multipleSelection.value.length > 0) {
+        multipleSelection.value.forEach(item => {
+            if(form.doctorCode) {
+                item.doctorCode = form.doctorCode;
+            }
+            if(form.nurseCode) {
+                item.nurseCode = form.nurseCode;
+            }
+            if(form.endTime) {
+                item.endTime = form.endTime;
+            }
+            if(form.executer2) {
+                item.executer2 = form.executer2;
+            }
+            if(form.modifier) {
+                item.modifier = form.modifier;
+            }
+            saveItem(item);
+            batchUpdateVisible.value = false;
+        });
+    } else {
+        ElMessage({
+            type: "error",
+            duration: 2000,
+            dangerouslyUseHTMLString: true,
+            message: "未选中要修改的栏目",
+            showClose: true,
+        });
+    }
+}
+
+// 修改单个
+const saveItem = (row) => {
+    console.log('row', row);
+    let param = {
+        physician: row.doctorCode,
+        executer1: row.nurseCode,
+        executer2: row.executer2,
+        endTimeString: row.endTime,
+        modifier: row.modifier,
+        actOrderNoStr: row.actOrderNo
+    }
+    updateActOrder(param).then(res => {
+        ElMessage({
+            type: "success",
+            duration: 1000,
+            dangerouslyUseHTMLString: true,
+            message: "修改成功",
+            showClose: true,
+        });
+    });
+}
+
+</script>
+
+<style scoped>
+.nav {
+  margin: 0 auto;
+  width: 100%;
+}
+ul {
+  list-style: none;
+  width: 100%;
+}
+.nav li {
+  float: left;
+  margin-left: 10px;
+}
+#cqYz {
+    width: 100%;
+    height: 100%;
+    padding: 0 0px;
+    background: #fff;
+}
+
+#pageTable tr td,
+#pageTable tr th {
+  border: 1px solid black;
+  text-align: center;
+  font-size: 12px;
+}
+#pageTable {
+  border-collapse: collapse;
+}
+
+#pageTable tr td {
+  height: 27px;
+}
+
+
+</style>

+ 1 - 2
src/views/medical-advice/advice-management/LsYzPrintDetail.vue

@@ -282,8 +282,7 @@ const users = ref([]);
 
 const getUserList = () => {
     getEmployeeMiList().then(res => {
-        // users.value = res;
-        users.value.push(res[0]);
+        users.value = res;
     }).catch(err => {
 
     });