|
@@ -42,28 +42,57 @@
|
|
|
<el-divider direction="vertical" />
|
|
|
<el-checkbox v-model="queryParam.jzFlag">急诊</el-checkbox>
|
|
|
<el-divider direction="vertical" />
|
|
|
- <el-button icon="Search" type="primary" @click="clickQuery"
|
|
|
- >查询</el-button
|
|
|
- >
|
|
|
- <el-button icon="Printer" type="danger" @click="clickPrint"
|
|
|
- >打印</el-button
|
|
|
- >
|
|
|
- <el-button icon="PieChart" type="success" @click="showSurgeryStatistics"
|
|
|
- >统计</el-button
|
|
|
+ <el-button
|
|
|
+ icon="Search"
|
|
|
+ type="primary"
|
|
|
+ @click="clickQuery"
|
|
|
+ >
|
|
|
+ 查询
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ icon="Printer"
|
|
|
+ type="danger"
|
|
|
+ @click="clickPrint"
|
|
|
+ >
|
|
|
+ 打印
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ icon="PieChart"
|
|
|
+ type="success"
|
|
|
+ @click="showSurgeryStatistics"
|
|
|
+ >
|
|
|
+ 统计
|
|
|
+ </el-button>
|
|
|
+ <el-select
|
|
|
+ v-model="displayRoom"
|
|
|
+ style="width: 120px;
|
|
|
+ margin-left: 12px"
|
|
|
+ @change="handleChangeDisplay"
|
|
|
>
|
|
|
+ <el-option value="ALL" label="查看全部" />
|
|
|
+ <el-option value="NORMAL" label="只看普通手术间" />
|
|
|
+ <el-option value="OTHER" label="只看其他手术间" />
|
|
|
+ </el-select>
|
|
|
</header>
|
|
|
<div class="layout_main layout_el-table">
|
|
|
<div>
|
|
|
- <el-tag effect="dark" size="small" type="danger"
|
|
|
- >急诊:{{ emergencyCount }}条</el-tag
|
|
|
- >
|
|
|
- <el-tag effect="dark" size="small"
|
|
|
- >普通:{{ surgeryList.length - emergencyCount }}条</el-tag
|
|
|
- >
|
|
|
+ <el-tag
|
|
|
+ effect="dark"
|
|
|
+ size="small"
|
|
|
+ type="danger"
|
|
|
+ >
|
|
|
+ 急诊:{{ emergencyCount }}条
|
|
|
+ </el-tag>
|
|
|
+ <el-tag
|
|
|
+ effect="dark"
|
|
|
+ size="small"
|
|
|
+ >
|
|
|
+ 普通:{{ cptSrgLst.length - emergencyCount }}条
|
|
|
+ </el-tag>
|
|
|
</div>
|
|
|
<el-table
|
|
|
:data="
|
|
|
- surgeryList.slice(
|
|
|
+ cptSrgLst.slice(
|
|
|
(currentPage - 1) * pageSize,
|
|
|
currentPage * pageSize
|
|
|
)
|
|
@@ -132,6 +161,25 @@
|
|
|
prop="deptName"
|
|
|
width="78"
|
|
|
></el-table-column>
|
|
|
+ <el-table-column label="台次" prop="sstc" width="40">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <div v-if="row.status === 'd'">{{ row.sstc }}</div>
|
|
|
+ <el-select
|
|
|
+ v-else
|
|
|
+ v-model="row.sstc"
|
|
|
+ @focus="handleSelectionFocus(row, 'sstc')"
|
|
|
+ @change="
|
|
|
+ sstc => handleSelectionChange(row.recordId, 'sstc', sstc)
|
|
|
+ "
|
|
|
+ placeholder=" "
|
|
|
+ clearable
|
|
|
+ class="el-select_no-suffix"
|
|
|
+ >
|
|
|
+ <el-option value="" label="清空"></el-option>
|
|
|
+ <el-option v-for="n in 12" :value="n" :label="n"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="床号" prop="bedNo" width="30"></el-table-column>
|
|
|
<el-table-column
|
|
|
label="住院号"
|
|
@@ -370,26 +418,6 @@
|
|
|
</el-select>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="台次" prop="sstc" width="40">
|
|
|
- <template #default="{ row }">
|
|
|
- <div v-if="row.status === 'd'">{{ row.sstc }}</div>
|
|
|
- <el-select
|
|
|
- v-else
|
|
|
- v-model="row.sstc"
|
|
|
- @focus="handleSelectionFocus(row, 'sstc')"
|
|
|
- @change="
|
|
|
- sstc => handleSelectionChange(row.recordId, 'sstc', sstc)
|
|
|
- "
|
|
|
- placeholder=" "
|
|
|
- clearable
|
|
|
- class="el-select_no-suffix"
|
|
|
- >
|
|
|
- <el-option :value="null" label="清空"></el-option>
|
|
|
- <el-option v-for="n in 12" :value="n" :label="n"></el-option>
|
|
|
- </el-select>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
<el-table-column label="术前访视">
|
|
|
<template #default="scope">
|
|
|
<div
|
|
@@ -497,7 +525,7 @@
|
|
|
<el-pagination
|
|
|
:current-page="currentPage"
|
|
|
:page-size="pageSize"
|
|
|
- :total="surgeryList.length"
|
|
|
+ :total="cptSrgLst.length"
|
|
|
layout="total,prev, pager, next"
|
|
|
@current-change="handleCurrentChange"
|
|
|
></el-pagination>
|
|
@@ -606,6 +634,7 @@
|
|
|
>
|
|
|
<el-option label="按科室" value="BY_DEPARTMENT"></el-option>
|
|
|
<el-option label="按手术" value="BY_SURGERY"></el-option>
|
|
|
+ <el-option label="按级别" value="BY_LEVEL"></el-option>
|
|
|
</el-select>
|
|
|
<el-divider direction="vertical"></el-divider>
|
|
|
<el-button icon="Search" @click="executeQueryStatistics">查询</el-button>
|
|
@@ -688,24 +717,19 @@
|
|
|
<script name="SurgeryArrangement" setup>
|
|
|
import {
|
|
|
getDicList,
|
|
|
- selectSurgeryArrangements,
|
|
|
- updateSurgeryStatus,
|
|
|
- updateArrangement,
|
|
|
notifyDoctor,
|
|
|
queryStatistics,
|
|
|
+ selectSurgeryArrangements,
|
|
|
+ updateArrangement,
|
|
|
+ updateSurgeryStatus,
|
|
|
} from "@/api/surgical-management/surgery-arrangement";
|
|
|
-import { shortcuts } from "@/data/shortcuts.js";
|
|
|
-import {
|
|
|
- formatDate,
|
|
|
- formatDatetime,
|
|
|
- getDateRangeFormatDate,
|
|
|
-} from "@/utils/date";
|
|
|
-import { listIsBlank, stringNotBlank } from "@/utils/blank-utils";
|
|
|
-import { ElMessage, ElMessageBox } from "element-plus";
|
|
|
+import {shortcuts} from "@/data/shortcuts.js";
|
|
|
+import {formatDate, formatDatetime, getDateRangeFormatDate,} from "@/utils/date";
|
|
|
+import {listIsBlank, stringNotBlank} from "@/utils/blank-utils";
|
|
|
+import {ElMessage, ElMessageBox} from "element-plus";
|
|
|
import Search from "@/components/search/Index.vue";
|
|
|
import router from "@/router";
|
|
|
-import { initLodop, getLodop } from "@/utils/c-lodop";
|
|
|
-import { CyMessageBox } from "@/utils/cy-message-box";
|
|
|
+import {getLodop, initLodop} from "@/utils/c-lodop";
|
|
|
|
|
|
const currentPage = ref(1);
|
|
|
const pageSize = ref(30);
|
|
@@ -734,6 +758,34 @@ let queryParam = reactive({
|
|
|
});
|
|
|
|
|
|
const surgeryList = ref([]);
|
|
|
+const cptSrgLst = ref([])
|
|
|
+const displayRoom = ref('ALL')
|
|
|
+
|
|
|
+function handleChangeDisplay(val) {
|
|
|
+ if (val === "ALL") {
|
|
|
+ cptSrgLst.value = surgeryList.value;
|
|
|
+ } else if (val === "NORMAL") {
|
|
|
+ cptSrgLst.value = surgeryList.value.filter(item => {
|
|
|
+ return !item.roomCode || (parseInt(item.roomCode) < 15)
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ cptSrgLst.value = surgeryList.value.filter(item => {
|
|
|
+ return item.roomCode && (parseInt(item.roomCode) >= 15)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ calEmergencyCount(cptSrgLst.value)
|
|
|
+}
|
|
|
+
|
|
|
+function calEmergencyCount(list) {
|
|
|
+ emergencyCount.value = 0
|
|
|
+ list.forEach(item => {
|
|
|
+ if (stringNotBlank(item.urgentClinicFlag)) {
|
|
|
+ if (item.urgentClinicFlag === "1") {
|
|
|
+ emergencyCount.value++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
|
|
|
let surgeryListForPrint = computed(() => {
|
|
|
return surgeryList.value.filter(item => {
|
|
@@ -751,14 +803,7 @@ const clickQuery = () => {
|
|
|
queryParam.endTime = dateS.endTime;
|
|
|
selectSurgeryArrangements(queryParam).then(res => {
|
|
|
surgeryList.value = res;
|
|
|
- emergencyCount.value = 0;
|
|
|
- surgeryList.value.forEach(item => {
|
|
|
- if (stringNotBlank(item.urgentClinicFlag)) {
|
|
|
- if (item.urgentClinicFlag === "1") {
|
|
|
- emergencyCount.value++;
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+ handleChangeDisplay(displayRoom.value);
|
|
|
}).catch(() => {
|
|
|
surgeryList.value = []
|
|
|
});
|