From 2d093a888b13f7a020b5923da571733edea7affa Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期二, 27 八月 2024 14:20:15 +0800
Subject: [PATCH] update
---
src/router/modules/remaining.ts | 2
src/views/ecg/room/RoomLoginSelect.vue | 51 +++++++++-------
src/api/ecg/room/index.ts | 2
src/views/ecg/room/RoomStatusSetting.vue | 2
src/components/RoomBedSelect/src/RoomBedSelect.vue | 34 ++++++----
src/components/RoomStatus/src/RoomStatus.vue | 40 ++++++++-----
src/permission.ts | 2
7 files changed, 76 insertions(+), 57 deletions(-)
diff --git a/src/api/ecg/room/index.ts b/src/api/ecg/room/index.ts
index 6afabde..897a121 100644
--- a/src/api/ecg/room/index.ts
+++ b/src/api/ecg/room/index.ts
@@ -7,7 +7,7 @@
roomName: string // 璇婂鍚嶇О
bedNo: string // 璇婄枟搴婄紪鍙�
status: number //寮�璇婄姸鎬� 0-鍏抽棴 1-鍏抽棴涓� 10-宸插紑閫� 20-鏈夊尰鐢� 30-鏆傚仠
- docId: number
+ docId: number | null
docName: string
}
diff --git a/src/components/RoomBedSelect/src/RoomBedSelect.vue b/src/components/RoomBedSelect/src/RoomBedSelect.vue
index 040ed22..9fc6b2c 100644
--- a/src/components/RoomBedSelect/src/RoomBedSelect.vue
+++ b/src/components/RoomBedSelect/src/RoomBedSelect.vue
@@ -2,6 +2,7 @@
import { RoomApi, RoomVO } from '@/api/ecg/room'
import {PropType} from "vue";
import {useUserStore} from "@/store/modules/user";
+const emit = defineEmits(['haveSeat'])
defineComponent({
name: 'RoomBedSelect'
@@ -16,7 +17,7 @@
type: Array as PropType<RoomVO[]>,
required: true
},
- modelValue: {
+ curBed: {
type: Object as PropType<RoomVO>,
required: true
}
@@ -25,15 +26,18 @@
const userStore = useUserStore()
const curUser = userStore.getUser
-const emit = defineEmits<{
- (e: 'update:modelValue', message: string): void;
-}>();
+// const emit2 = defineEmits<{
+// (e: 'update:curBed', message: string): void;
+// }>();
-const onclick = (item) => {
- item.docId = curUser.id
- item.docName = curUser.nickname
- emit('update:modelValue', item);
+const onclick = (newItem) => {
+ emit('haveSeat', newItem)
}
+
+/** 鍒濆鍖� **/
+onMounted(() => {
+ console.info(props.bedList)
+})
</script>
@@ -42,16 +46,18 @@
<template #header>{{title}}</template>
<div v-for="(bedItem, index) in bedList" :key="index">
<div class="deskwarp">
- <img v-if="modelValue.roomId !== bedItem.roomId || modelValue.bedNo !== bedItem.bedNo"
+ <img
+ v-if="curBed.roomId !== bedItem.roomId || curBed.bedNo !== bedItem.bedNo"
src="@/assets/room/desk.png"
- style="width: 100%"
+ style="width: 100%"
/>
- <img v-else
+ <img
+ v-else
src="@/assets/room/desk-doctor.jpeg"
- style="width: 100%"
+ style="width: 100%"
/>
- <div>{{bedItem.bedNo}} - {{bedItem.docName}}</div>
- <el-button v-if="modelValue.docId === 0" @click = onclick(bedItem)>
+ <div>{{bedItem.bedNo}} {{bedItem.docName}}</div>
+ <el-button v-if="bedItem.docId === null" @click = onclick(bedItem)>
鍏ュ骇
</el-button>
</div>
diff --git a/src/components/RoomStatus/src/RoomStatus.vue b/src/components/RoomStatus/src/RoomStatus.vue
index c002b6f..2bd0145 100644
--- a/src/components/RoomStatus/src/RoomStatus.vue
+++ b/src/components/RoomStatus/src/RoomStatus.vue
@@ -2,7 +2,6 @@
import { RoomApi, RoomVO } from '@/api/ecg/room'
import { queueApi } from '@/api/ecg/queue'
import {PropType} from "vue";
-import {defineEmits} from 'vue'
const emit = defineEmits(['refresh'])
defineComponent({
@@ -36,21 +35,23 @@
<el-card style="width: 200px" shadow="hover" >
<template #header>{{title}}</template>
<div v-for="(bedItem, index) in bedList" :key="index">
- <img v-if="bedItem.status === 0 || bedItem.status === 1"
- src="@/assets/room/close.jpg"
- style="width: 100%"
- @click = openBed(bedItem)
- />
- <img v-else-if="bedItem.status === 10"
- src="@/assets/room/open.jpg"
- style="width: 100%"
- @click = closeBed(bedItem)
- />
- <img v-else-if="bedItem.status === 20 || bedItem.status === 30"
- src="@/assets/room/doctor.png"
- style="width: 100%"
- />
- {{bedItem.bedNo}} - {{bedItem.docName}} - {{bedItem.status === 30?"鏆傚仠":""}}
+ <div class="deskwarp">
+ <img v-if="bedItem.status === 0 || bedItem.status === 1"
+ src="@/assets/room/close.jpg"
+ style="width: 100%"
+ @click = openBed(bedItem)
+ />
+ <img v-else-if="bedItem.status === 10"
+ src="@/assets/room/open.jpg"
+ style="width: 100%"
+ @click = closeBed(bedItem)
+ />
+ <img v-else-if="bedItem.status === 20 || bedItem.status === 30"
+ src="@/assets/room/doctor.png"
+ style="width: 100%"
+ />
+ {{bedItem.bedNo}} {{bedItem.docName}} {{bedItem.status === 30?"-鏆傚仠":""}}
+ </div>
</div>
</el-card>
</template>
@@ -74,4 +75,11 @@
transform: translateY(-50%);
}
}
+
+.deskwarp {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
</style>
diff --git a/src/permission.ts b/src/permission.ts
index 6db7476..748c7d4 100644
--- a/src/permission.ts
+++ b/src/permission.ts
@@ -83,7 +83,7 @@
// 鏂板銆愯瘖瀹ら�夋嫨銆戦�昏緫
if (userStore.getRoles.includes("doctor") && !userStore.getIsSetRoom ) {
- next({path: `/login-room-select?redirect=${to.fullPath}`})
+ next({path: `/roomselect?redirect=${to.fullPath}`})
}
// <<<銆愯瘖瀹ら�夋嫨銆�<<<
else {
diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts
index f81f347..f5e2d94 100644
--- a/src/router/modules/remaining.ts
+++ b/src/router/modules/remaining.ts
@@ -205,7 +205,7 @@
}
},
{
- path: '/login-room-select',
+ path: '/roomselect',
component: () => import('@/views/ecg/room/RoomLoginSelect.vue'),
name: 'LoginRoomSelect',
meta: {
diff --git a/src/views/ecg/room/RoomLoginSelect.vue b/src/views/ecg/room/RoomLoginSelect.vue
index 93d6817..84960c6 100644
--- a/src/views/ecg/room/RoomLoginSelect.vue
+++ b/src/views/ecg/room/RoomLoginSelect.vue
@@ -2,25 +2,21 @@
<div style="display: flex; flex-direction: column; align-items: center;">
<div style="display: flex; flex-wrap: wrap; justify-content: center; margin-bottom: 20px">
<div class=roomwrap v-for="(value, key) in bedMap" :key="key">
- <RoomBedSelect :title="key" :bedList="value" v-model="curSel"/>
+ <RoomBedSelect :title="key" :bedList="value" :curBed="curSel" @haveSeat="haveSeat"/>
</div>
</div>
<el-button type="primary" @click="roomConfirm">纭</el-button>
- <el-button type="primary" @click="test">TEST</el-button>
</div>
</template>
<script setup lang="ts">
import {RoomBedSelect} from "@/components/RoomBedSelect"
import { RoomApi, RoomVO } from '@/api/ecg/room'
-import { queueApi, queueVO } from '@/api/ecg/queue'
+import { queueApi } from '@/api/ecg/queue'
import {useUserStore} from "@/store/modules/user";
-import {CACHE_KEY, useCache} from "@/hooks/web/useCache";
import {ElMessage} from "element-plus";
import {isStringEmpty} from "@/utils/stringUtil"
-
const { push } = useRouter()
-const { wsCache } = useCache()
defineOptions({ name: 'RoomLoginSelect' })
@@ -31,17 +27,9 @@
const bedMap = ref() // 鍒楄〃鐨勬暟鎹�
-const originalSel = ref<RoomVO>({
- id: 0,
- roomId: 0,
- roomName: "",
- bedNo: "",
- status: 0,
- docId: 0,
- docName: ""
-});
+const originalSel = ref<RoomVO>();
-const curSel = ref<RoomVO>({
+let curSel = ref<RoomVO>({
id: 0,
roomId: 0,
roomName: "",
@@ -81,7 +69,20 @@
}
if (curSel.value !== originalSel.value) {
- const data = await queueApi.bedDoctorOn(curSel.value)
+ console.info(originalSel.value)
+ let data;
+ if (originalSel.value !== undefined) {
+ data = await queueApi.bedDoctorOff(originalSel.value)
+ if (data !== 0) {
+ ElMessage({
+ message: '鍐呴儴閿欒!' + data,
+ type: 'info',
+ duration: 3000 // 鑷姩鍏抽棴鏃堕棿锛岄粯璁や负3000ms
+ });
+ return
+ }
+ }
+ data = await queueApi.bedDoctorOn(curSel.value)
if (data !== 0) {
ElMessage({
message: '鍐呴儴閿欒!' + data,
@@ -90,23 +91,27 @@
});
return
}
+ originalSel.value = curSel.value
}
userStore.setRoomInfoAction(curSel.value)
if (isStringEmpty(route.redirectedFrom?.fullPath))
push({ path: "/"})
- else if(route.redirectedFrom?.fullPath === "/login-room-select" )
+ else if(route.redirectedFrom?.fullPath === "/roomselect" )
push({ path: "/"})
else
push({ path: route.redirectedFrom?.fullPath})
}
-const test = () => {
- userStore.getRoom;
- console.info(userStore.getRoom);
+const haveSeat = (roomVO: RoomVO) => {
+ console.info(roomVO)
- const userInfo = wsCache.get(CACHE_KEY.USER)
- console.info(userInfo);
+ curSel.value.docId = null
+ curSel.value.docName = ''
+
+ roomVO.docId = curUser.id
+ roomVO.docName = curUser.nickname
+ curSel.value = roomVO
}
/** 鍒濆鍖� **/
diff --git a/src/views/ecg/room/RoomStatusSetting.vue b/src/views/ecg/room/RoomStatusSetting.vue
index 48a9a99..d33712a 100644
--- a/src/views/ecg/room/RoomStatusSetting.vue
+++ b/src/views/ecg/room/RoomStatusSetting.vue
@@ -1,5 +1,5 @@
<template>
- <div style="display: flex; flex-wrap: wrap; margin-bottom: 20px">
+ <div style="display: flex; flex-wrap: wrap; justify-content: center; margin-bottom: 20px">
<div class=wrap v-for="(value, key) in bedMap" :key="key">
<RoomStatus :title="key" :bedList="value" @refresh="getList"/>
</div>
--
Gitblit v1.9.3