Files
his/openhis-ui-vue3/src/views/inpatientNurse/inOut/index.vue

82 lines
2.1 KiB
Vue

<!--
* @Author: sjjh
* @Date: 2025-04-09 14:50:04
* @Description:
-->
<template>
<div class="inpatientNurseHome-inOut-container">
<el-tabs v-model="activeTabName" class="inOut-tabs" @tab-click="test">
<el-tab-pane label="入科" name="first">
<BedAllocation v-if="activeTabName === 'first'" ref="firstRef" />
</el-tab-pane>
<el-tab-pane label="转出" name="second">
<TransferOut
v-if="activeTabName === 'second'"
ref="secondRef"
operation-type="transfer"
:visible="activeTabName === 'second'"
/>
</el-tab-pane>
<el-tab-pane label="出院" name="third">
<TransferOut
v-if="activeTabName === 'third'"
ref="thirdRef"
operation-type="discharge"
:visible="activeTabName === 'third'"
/>
</el-tab-pane>
<!-- <el-tab-pane label="出院患者" name="fourth">Config</el-tab-pane> -->
</el-tabs>
</div>
</template>
<script setup lang="ts">
import {nextTick, onBeforeMount, onMounted, reactive, ref} from 'vue';
import BedAllocation from './components/bedAllocation.vue';
import TransferOut from './components/transferOut.vue';
// const { proxy } = getCurrentInstance()
// const emits = defineEmits([])
// const props = defineProps({})
const state = reactive({});
const firstRef = ref();
const secondRef = ref();
const thirdRef = ref();
onBeforeMount(() => {});
onMounted(() => {});
defineExpose({ state });
const test = () => {
nextTick(() => {
if (activeTabName.value == 'first') {
firstRef?.value?.refreshTap();
} else if (activeTabName.value == 'second') {
secondRef?.value?.refreshTap();
} else if (activeTabName.value == 'third') {
thirdRef?.value?.refreshTap();
}
});
};
const activeTabName = ref('first');
</script>
<style lang="scss" scoped>
.inpatientNurseHome-inOut-container {
width: 100%;
height: 100%;
display: flex;
:deep(.inOut-tabs) {
height: 100%;
width: 100%;
.el-tabs__header {
margin: 0;
padding: 0 0 0 8px;
}
.el-tab-pane {
height: 100%;
}
.el-tabs__content {
height: calc(100% - 40px);
}
}
}
</style>