From 63dce3fa2baed6710d001d9919cfae31c34b147a Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期五, 16 八月 2024 14:27:16 +0800
Subject: [PATCH] update 诊室选择
---
src/views/ecg/room/RoomLoginSelect.vue | 47 +++++++++++++++
src/api/ecg/room/index.ts | 2
src/assets/room/desk-doctor.jpeg | 0
src/assets/room/desk.png | 0
src/components/RoomBedSelect/index.ts | 3 +
src/views/ecg/room/RoomStatusSetting.vue | 2
src/components/RoomBedSelect/src/RoomBedSelect.vue | 81 +++++++++++++++++++++++++++
7 files changed, 134 insertions(+), 1 deletions(-)
diff --git a/src/api/ecg/room/index.ts b/src/api/ecg/room/index.ts
index 8a09d4f..325aadd 100644
--- a/src/api/ecg/room/index.ts
+++ b/src/api/ecg/room/index.ts
@@ -47,7 +47,7 @@
},
// 鑾峰彇璇婂绮剧畝淇℃伅鍒楄〃锛岀敤浜庡尰鐢熼�夋嫨鐧诲綍鐨勮瘖瀹�
- getSimpleRoomList2: async () => {
+ getOnstageBedMap: async () => {
return await request.get({ url: `/clinic/room/list-simple-room` })
},
diff --git a/src/assets/room/desk-doctor.jpeg b/src/assets/room/desk-doctor.jpeg
new file mode 100644
index 0000000..490aa2c
--- /dev/null
+++ b/src/assets/room/desk-doctor.jpeg
Binary files differ
diff --git a/src/assets/room/desk.png b/src/assets/room/desk.png
new file mode 100644
index 0000000..ac4f831
--- /dev/null
+++ b/src/assets/room/desk.png
Binary files differ
diff --git a/src/components/RoomBedSelect/index.ts b/src/components/RoomBedSelect/index.ts
new file mode 100644
index 0000000..75ff3e4
--- /dev/null
+++ b/src/components/RoomBedSelect/index.ts
@@ -0,0 +1,3 @@
+import RoomBedSelect from './src/RoomBedSelect.vue'
+
+export { RoomBedSelect }
diff --git a/src/components/RoomBedSelect/src/RoomBedSelect.vue b/src/components/RoomBedSelect/src/RoomBedSelect.vue
new file mode 100644
index 0000000..dbdbbab
--- /dev/null
+++ b/src/components/RoomBedSelect/src/RoomBedSelect.vue
@@ -0,0 +1,81 @@
+<script lang="ts" setup>
+import { RoomApi, RoomVO } from '@/api/ecg/room'
+import {PropType} from "vue";
+
+defineComponent({
+ name: 'RoomBedSelect'
+})
+
+const props = defineProps({
+ title: {
+ type: String,
+ required: true
+ },
+ bedList: {
+ type: Array as PropType<RoomVO[]>,
+ required: true
+ },
+ modelValue: {
+ type: String,
+ required: true
+ }
+})
+
+const emit = defineEmits<{
+ (e: 'update:modelValue', message: string): void;
+}>();
+
+const onclick = (item) => {
+ emit('update:modelValue', item.bedNo);
+}
+
+</script>
+
+<template>
+ <el-card style="width: 200px" shadow="hover" >
+ <template #header>{{title}}</template>
+ <div v-for="(bedItem, index) in bedList" :key="index">
+ <div class="deskwarp">
+ <img v-if="modelValue !== bedItem.bedNo"
+ src="@/assets/room/desk.png"
+ style="width: 100%"
+ @click = onclick(bedItem)
+ />
+ <img v-else
+ src="@/assets/room/desk-doctor.jpeg"
+ style="width: 100%"
+ @click = onclick(bedItem)
+ />
+ <div>{{bedItem.bedNo}}</div>
+ </div>
+ </div>
+ </el-card>
+</template>
+
+<style scoped lang="scss">
+.card-title {
+ font-size: 14px;
+ font-weight: 600;
+
+ &::before {
+ position: relative;
+ top: 8px;
+ left: -5px;
+ display: inline-block;
+ width: 3px;
+ height: 14px;
+ //background-color: #105cfb;
+ background: var(--el-color-primary);
+ border-radius: 5px;
+ content: '';
+ transform: translateY(-50%);
+ }
+}
+
+.deskwarp {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
+</style>
diff --git a/src/views/ecg/room/RoomLoginSelect.vue b/src/views/ecg/room/RoomLoginSelect.vue
new file mode 100644
index 0000000..e653ad4
--- /dev/null
+++ b/src/views/ecg/room/RoomLoginSelect.vue
@@ -0,0 +1,47 @@
+<template>
+ <div style="display: flex; flex-wrap: wrap; margin-bottom: 20px">
+ <div class=wrap v-for="(value, key) in bedMap" :key="key">
+ <RoomBedSelect :title="key" :bedList="value" v-model="curSel"/>
+ </div>
+ </div>
+ <el-button @click="roomConfirm">KKKK</el-button>
+<!--
+ <el-button type="primary">Primary Button</el-button>
+ <el-button type="success">Success Button</el-button>
+ <el-button type="info">Info Button</el-button>
+ <el-button type="warning">Warning Button</el-button>
+ <el-button type="danger">Danger Button</el-button>
+-->
+</template>
+
+<script setup lang="ts">
+import {RoomBedSelect} from "@/components/RoomBedSelect"
+import { RoomApi, RoomVO } from '@/api/ecg/room'
+
+defineOptions({ name: 'RoomLoginSelect' })
+
+const bedMap = ref<Map<String, RoomVO[]>>() // 鍒楄〃鐨勬暟鎹�
+
+const curSel = ref<String>("B2");
+
+/** 鏌ヨ鍒楄〃 */
+const getList = async () => {
+ const data = await RoomApi.getOnstageBedMap()
+ bedMap.value = data as Map<String, RoomVO[]>
+}
+
+const roomConfirm = () => {
+}
+
+/** 鍒濆鍖� **/
+onMounted(() => {
+ getList()
+})
+
+</script>
+
+<style scoped lang="scss">
+.wrap {
+ margin-right: 20px;
+}
+</style>
diff --git a/src/views/ecg/room/RoomStatusSetting.vue b/src/views/ecg/room/RoomStatusSetting.vue
index a10faeb..a4f9ed3 100644
--- a/src/views/ecg/room/RoomStatusSetting.vue
+++ b/src/views/ecg/room/RoomStatusSetting.vue
@@ -12,6 +12,8 @@
import { RoomApi, RoomVO } from '@/api/ecg/room'
import { queueApi, queueVO } from '@/api/ecg/queue'
+defineOptions({ name: 'RoomStatusSetting' })
+
const bedMap = ref<Map<String, RoomVO[]>>() // 鍒楄〃鐨勬暟鎹�
/** 鏌ヨ鍒楄〃 */
--
Gitblit v1.9.3