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