From d553a4be94d4f6ee162cc353a28b220403909cfc Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期六, 03 十月 2026 00:58:19 +0800
Subject: [PATCH] ai优化

---
 src/components/RoomStatus/src/RoomStatus.vue |  179 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 127 insertions(+), 52 deletions(-)

diff --git a/src/components/RoomStatus/src/RoomStatus.vue b/src/components/RoomStatus/src/RoomStatus.vue
index 53c06d4..e15d596 100644
--- a/src/components/RoomStatus/src/RoomStatus.vue
+++ b/src/components/RoomStatus/src/RoomStatus.vue
@@ -1,17 +1,22 @@
 <script lang="ts" setup>
 import { RoomApi, RoomVO } from '@/api/ecg/room'
 import { QueueApi } from '@/api/ecg/queue'
-import {PropType} from "vue";
-import {DICT_TYPE, getIntDictOptions} from "@/utils/dict";
-import {useCheckTypeStore} from "@/store/modules/checkType";
-import {getCheckTypeName} from "../../../utils/checkTypeFormatter";
+import { PropType } from "vue";
+import { DICT_TYPE, getIntDictOptions } from "@/utils/dict";
+import { useCheckTypeStore } from "@/store/modules/checkType";
+import { getCheckTypeName } from "../../../utils/checkTypeFormatter";
+// 鍔ㄦ�� :src 涓嶄細琚� Vite 鑷姩澶勭悊锛岄渶瑕佹樉寮� import锛堜笌 RoomBedSelect 涓�鑷达級
+import closeImg from '@/assets/room/close.jpg'
+import openImg from '@/assets/room/open.jpg'
+import doctorImg from '@/assets/room/desk-doctor.jpg'
+
 const emit = defineEmits(['refresh'])
 
 defineComponent({
   name: 'RoomStatus'
 })
 
-const  props = defineProps({
+const props = defineProps({
   title: {
     type: String,
     required: true
@@ -34,6 +39,19 @@
     emit('refresh')
 }
 
+/**
+ * 宸ヤ綅鐘舵�佸浘銆備笌銆岃瘖瀹ら�夋嫨銆嶉〉 (RoomBedSelect) 鐢ㄥ悓涓�濂楄祫婧愪笌灏哄锛�
+ *   鏈紑鏀�(0)   鈫� close.jpg
+ *   宸插紑鏀�(10)  鈫� open.jpg
+ *   鏈夊尰鐢�(20/30) 鈫� desk-doctor.jpg
+ */
+const bedImg = (item: any) => {
+  const st = Number(item?.status)
+  if (st === 20 || st === 30) return doctorImg
+  if (st === 10) return openImg
+  return closeImg
+}
+
 /** 鍒濆鍖� **/
 onMounted(() => {
 })
@@ -41,66 +59,123 @@
 </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="bedItem.status === 0"
-            src="@/assets/room/close.jpg"
-            style="width: 100%"
-             @click = openBed(bedItem)
-            alt="宸ヤ綅宸插叧闂�"
-        />
-        <img
-            v-else-if="bedItem.status === 10"
-            src="@/assets/room/open.jpg"
-            style="width: 100%"
-             @click = closeBed(bedItem)
-            alt="宸ヤ綅寮�鏀句腑"
-        />
-        <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 v-for="(checkType, subIndex) in bedItem.checkTypes" :key="subIndex">
-          {{getCheckTypeName(checkType)}}
-        </div>
-        <div>
-          {{bedItem.opType === 1?"棰嗙敤":""}}
-          {{bedItem.opType === 2?"瀹夎":""}}
-        </div>
-        <el-divider/>
+  <!--
+    闇�姹傦細鏈〉鍗$墖鏀规垚涓庛�岃瘖瀹ら�夋嫨銆嶉〉涓�鑷寸殑鏍峰紡銆�
+    鍥犳杩欓噷鐨勬帓鐗�/瀛楀彿/鍥剧墖灏哄/闂磋窛**閫愰」瀵归綈** components/RoomBedSelect/src/RoomBedSelect.vue锛�
+      路 鍗$墖澶达細灞呬腑銆乸adding 6px 10px銆佹爣棰� 16px/600
+      路 鍗$墖浣擄細绾靛悜鎺掑垪銆佹按骞冲眳涓�乬ap 4px銆乸adding 10px
+      路 鍥剧墖锛�80脳64銆乷bject-fit contain
+      路 涓绘爣绛撅紙搴婁綅鍙�+鍖荤敓鍚嶏級锛�15px/600銆佸眳涓�
+      路 妫�鏌ラ」鐩瓑娆¤淇℃伅锛�14px銆佹瑕佽壊銆佸眳涓�佸彲鎹㈣
+    鍖哄埆锛氳瘖瀹ら�夋嫨鏄�"涓�涓伐浣嶄竴寮犲崱鐗�"锛屾湰椤垫槸"涓�涓瘖瀹や竴寮犲崱鐗囥�佸崱鍐呭垪鍑鸿璇婂鍚勫伐浣�"锛�
+    鏁呭崱鍐呮瘡涓伐浣嶆槸涓�涓� bed-block锛涜瑙夎鏍间笌鍓嶈�呬繚鎸佷竴鑷淬��
+  -->
+  <el-card class="room-status-card" shadow="hover">
+    <template #header>
+      <div class="bed-card__title">{{ title }}</div>
+    </template>
+
+    <div
+      v-for="(bedItem, index) in bedList"
+      :key="index"
+      class="bed-block"
+    >
+      <img
+        class="bed-card__img"
+        :src="bedImg(bedItem)"
+        :alt="bedItem.status === 0 ? '宸ヤ綅宸插叧闂�' : (bedItem.status === 10 ? '宸ヤ綅寮�鏀句腑' : '鏈夊尰鐢�')"
+        @click="bedItem.status === 0 ? openBed(bedItem) : (bedItem.status === 10 ? closeBed(bedItem) : undefined)"
+      />
+
+      <div class="bed-card__label">
+        {{ bedItem.bedNo }} {{ bedItem.docName }} {{ bedItem.status === 30 ? "-鏆傚仠" : "" }}
+      </div>
+
+      <div class="bed-card__meta">
+        <span v-for="(checkType, subIndex) in bedItem.checkTypes" :key="subIndex">
+          {{ getCheckTypeName(checkType) }}
+        </span>
+        <span v-if="bedItem.opType === 1">棰嗙敤</span>
+        <span v-if="bedItem.opType === 2">瀹夎</span>
       </div>
     </div>
   </el-card>
 </template>
 
 <style scoped lang="scss">
-.card-title {
-  font-size: 14px;
-  font-weight: 600;
+/* 鍗$墖鏈綋锛氫笌 RoomBedSelect 鐨� .bed-card 瀵归綈锛堝彧鏄搴︽寜鏈〉闇�瑕佺暐绐勶級 */
+.room-status-card {
+  display: flex;
+  flex-direction: column;
+  width: 168px;
+  margin: 0 6px 6px 0;
+  overflow: hidden;
 
-  &::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%);
+  // 鍗$墖澶达紙璇婂鍚嶏級
+  :deep(.el-card__header) {
+    flex: none;
+    padding: 6px 10px;
+    text-align: center;
+  }
+
+  // 鍗$墖浣擄細绾靛悜鎺掑垪銆佹按骞冲眳涓�
+  // 娉ㄦ剰锛氳繖閲�**涓嶇敤** flex:1 鈥斺�� RoomBedSelect 鏄湪绛夐珮缃戞牸閲屾墠闇�瑕佸畠鎾戞弧锛�
+  // 鏈〉鍗$墖楂樺害鐢卞伐浣嶆暟鍐冲畾锛岃嫢鎾戞弧浼氭妸鍐呭椤跺埌涓婃柟銆佺暀涓嬪ぇ鐗囩┖鐧姐��
+  :deep(.el-card__body) {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    gap: 4px;
+    padding: 10px;
   }
 }
 
-.deskwarp {
+/* 鍗″唴鍗曚釜宸ヤ綅锛氫笌 RoomBedSelect 鍗$墖浣撶殑鎺掑竷涓�鑷� */
+.bed-block {
   display: flex;
   flex-direction: column;
   align-items: center;
+  gap: 4px;
+  width: 100%;
+  padding-bottom: 6px;
+  border-bottom: 1px dashed var(--el-border-color-lighter);
+
+  &:last-child {
+    padding-bottom: 0;
+    border-bottom: none;
+  }
 }
 
+.bed-card__title {
+  font-size: 16px;
+  font-weight: 600;
+  line-height: 1.2;
+}
+
+/* 鍥剧墖鍥哄畾灏忓昂瀵革紝涓嶉殢鍗$墖瀹藉害鏀惧ぇ锛堜笌 RoomBedSelect 鐩稿悓锛� */
+.bed-card__img {
+  flex: none;
+  width: 80px;
+  height: 64px;
+  object-fit: contain;
+  cursor: pointer;
+}
+
+.bed-card__label {
+  font-size: 15px;
+  font-weight: 600;
+  line-height: 1.3;
+  text-align: center;
+}
+
+.bed-card__meta {
+  display: flex;
+  flex-wrap: wrap;
+  gap: 0 5px;
+  justify-content: center;
+  font-size: 14px;
+  line-height: 1.3;
+  color: var(--el-text-color-secondary);
+  text-align: center;
+}
 </style>

--
Gitblit v1.9.3