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