From 1446994d504819c367e1ff667360eadb314f9ac6 Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期日, 18 十月 2026 16:52:18 +0800
Subject: [PATCH] 修改了诊室工号

---
 src/components/RoomBedSelect/src/RoomBedSelect.vue |   61 +++++++++++++++++++++++++++++-
 1 files changed, 59 insertions(+), 2 deletions(-)

diff --git a/src/components/RoomBedSelect/src/RoomBedSelect.vue b/src/components/RoomBedSelect/src/RoomBedSelect.vue
index 935b00f..b2ade54 100644
--- a/src/components/RoomBedSelect/src/RoomBedSelect.vue
+++ b/src/components/RoomBedSelect/src/RoomBedSelect.vue
@@ -30,7 +30,20 @@
 })
 
 // 璇ュ簥浣嶆槸鍚﹀凡鐢卞綋鍓嶅尰鐢熷叆搴�
-const isMine = computed(() => props.bed.docId != null && props.bed.docId === props.curUser.id)
+// 娉細鐢ㄥ瓧绗︿覆姣旇緝锛岄伩鍏嶅悗绔繑鍥� number / 鍓嶇 userId 涓� string 鏃惰鍒わ紙"1" !== 1锛�
+const isMine = computed(
+  () => props.bed.docId != null && String(props.bed.docId) === String(props.curUser.id)
+)
+// 璇ュ簥浣嶆槸鍚�**琚埆浜�**鍗犵敤锛氭鏃朵笉鍏佽鍏ュ骇锛堜笉鎸ゆ帀姝e湪鎿嶄綔鐨勪汉锛�
+const occupiedByOther = computed(
+  () => props.bed.docId != null && String(props.bed.docId) !== String(props.curUser.id)
+)
+// 鍗犵敤鎯呭喌鏂囨锛氱┖闂� / 鎴戠殑宸ヤ綅 / 宸插叆搴э細寮犱笁锛堟嬁涓嶅埌濮撳悕鏃舵樉绀虹紪鍙凤級
+const seatStateText = computed(() => {
+  if (props.bed.docId == null) return '绌洪棽'
+  if (isMine.value) return '鎴戠殑宸ヤ綅'
+  return props.bed.docName ? `宸插叆搴э細${props.bed.docName}` : `宸插叆搴э紙缂栧彿 ${props.bed.docId}锛塦
+})
 // 璇ュ簥浣嶆槸鍚﹀氨鏄綋鍓嶄細璇濅娇鐢ㄤ腑鐨勫伐浣�
 const isCurSeat = computed(
   () => props.bed.roomId === props.curBed.roomId && props.bed.bedNo === props.curBed.bedNo
@@ -77,6 +90,17 @@
       {{ bed.bedNo }} {{ bed.docName }} {{ bed.status === 30 ? "-鏆傚仠" : "" }}
     </div>
 
+    <!--
+      鍗犵敤鎯呭喌锛堟湰娆¢渶姹傦級锛氫竴鐪肩湅鍑鸿繖涓伐浣嶆槸"绌洪棽 / 鎴戠殑 / 鍒汉鐨�"銆�
+      鍘熸潵鍗$墖鍙湪鍥剧墖涓庡鍚嶄笂浣撶幇锛屽埆浜哄崰浜嗕篃鐪嬩笉鍑烘潵锛屼細鍑虹幇"鐐逛簡鍏ュ骇鍗磋鍚庣鎷掔粷"鐨勫洶鎯戙��
+    -->
+    <div
+      class="bed-card__seat"
+      :class="occupiedByOther ? 'is-occupied' : isMine ? 'is-mine' : 'is-free'"
+    >
+      {{ seatStateText }}
+    </div>
+
     <div class="bed-card__meta">
       <span v-for="(checkType, subIndex) in bed.checkTypes" :key="subIndex">
         {{ getCheckTypeName(checkType) }}
@@ -86,7 +110,20 @@
     </div>
 
     <div class="bed-card__actions">
-      <el-button v-if="!isMine" @click="onHaveSeatclick(bed)"> 鍏ュ骇 </el-button>
+      <!-- 宸茶**鍒汉**鍗犵敤鏃剁鐢ㄣ�屽叆搴с�嶏紙涓嶆尋鎺夋鍦ㄦ搷浣滅殑浜猴級锛屽苟鐢� tooltip 璇存槑鍘熷洜 -->
+      <el-tooltip
+        v-if="!isMine"
+        :content="
+          occupiedByOther
+            ? `璇ュ伐浣嶇敱銆�${bed.docName || '鍏朵粬鍖荤敓'}銆嶆搷浣滀腑锛屼笉鑳藉叆搴э紙涓嶆尋鎺夋鍦ㄦ搷浣滅殑浜猴級`
+            : '鍏ュ骇鍒拌宸ヤ綅'
+        "
+        placement="top"
+      >
+        <span>
+          <el-button :disabled="occupiedByOther" @click="onHaveSeatclick(bed)"> 鍏ュ骇 </el-button>
+        </span>
+      </el-tooltip>
       <template v-else>
         <el-button @click="onLeaveSeatclick(bed)"> 绂诲骇 </el-button>
         <span v-if="isCurSeat" class="bed-card__current">褰撳墠</span>
@@ -192,6 +229,26 @@
     text-align: center;
   }
 
+  /* 鍗犵敤鎯呭喌锛氱┖闂�=缁裤�佹垜鐨�=涓昏壊銆佽鍒汉鍗�=姗欙紙閰嶅悎绂佺敤鍏ュ骇鎸夐挳锛� */
+  &__seat {
+    font-size: 13px;
+    font-weight: 600;
+    line-height: 1.3;
+    text-align: center;
+
+    &.is-free {
+      color: var(--el-color-success);
+    }
+
+    &.is-occupied {
+      color: var(--el-color-warning);
+    }
+
+    &.is-mine {
+      color: var(--el-color-primary);
+    }
+  }
+
   &__actions {
     display: flex;
     flex-wrap: wrap;

--
Gitblit v1.9.3