From 1c200b3f9934e5c655b9d69a59b626cac14fd63e Mon Sep 17 00:00:00 2001
From: jazz <jazzxhunter@163.com>
Date: 星期三, 27 十二月 2023 12:18:43 +0800
Subject: [PATCH] update_202312271217_门店选择修改

---
 src/pages/room/detail.vue |  192 +++++++++++++++++++++++++++++++++++++----------
 1 files changed, 151 insertions(+), 41 deletions(-)

diff --git a/src/pages/room/detail.vue b/src/pages/room/detail.vue
index d0218ab..776f69f 100644
--- a/src/pages/room/detail.vue
+++ b/src/pages/room/detail.vue
@@ -11,7 +11,7 @@
         </div>
       </div>
       <div class="right flex-1 flex flex-jcfe flex-ver">
-        <el-button type="primary" icon="el-icon-refresh" class="reset_btn flex flex-center" size="small" style="width: 100px;" @click="getData">鍒锋柊</el-button>
+        <el-button type="primary" icon="el-icon-refresh" class="reset_btn flex flex-center" size="small" style="width: 100px;" @click="resetPage">鍒锋柊</el-button>
         <div class="reset_btn flex flex-center" @click="resetStatus">閲嶇疆鎴块棿鐘舵��</div>
         <div class="page_date">
           <div class="page_week">{{ timeObj.week }}</div>
@@ -69,11 +69,11 @@
       <div class="main flex-1">
         <div v-if="roomInfo && roomInfo.roomNo" class="room_title">{{ roomInfo.roomNo }}</div>
         <div v-if="roomInfo" class="room_main_tip">-{{ statusTx[roomInfo.status] }}-</div>
-        <div v-if="roomInfo && roomInfo.status >= 1" class="room_left_btn_box flex flex-ver">
-          <div v-if="roomInfo.status == 1" class="room_left_btn_box__item flex-1 flex flex-center yellow btn_ani" @click="setStatus('瀹汉浼戞伅', 2)">瀹汉浼戞伅</div>
-          <div v-if="roomInfo.status == 1" class="room_left_btn_box__item flex-1 flex flex-center gray btn_ani" @click="setStatus('鎵撴壂涓�', 3)">閫氱煡鎵撴壂</div>
-          <div v-if="roomInfo.status == 2" class="room_left_btn_box__item flex flex-center green btn_ani" @click="setStatus('鎵撴壂涓�', 3)">閫氱煡鎵撴壂</div>
-          <div v-if="roomInfo.status == 3" class="room_left_btn_box__item flex flex-center green btn_ani" @click="setStatus('绌洪棽', 0)">缁撴潫鎵撴壂</div>
+        <div v-show="roomInfo && roomInfo.status >= 1" class="room_left_btn_box flex flex-ver">
+          <div v-show="roomInfo.status == 1" class="room_left_btn_box__item flex-1 flex flex-center yellow btn_ani" @click="setStatus('瀹汉浼戞伅', 2)">瀹汉浼戞伅</div>
+          <div v-show="roomInfo.status == 1" class="room_left_btn_box__item flex-1 flex flex-center gray btn_ani" @click="setStatus('鎵撴壂涓�', 3)">閫氱煡鎵撴壂</div>
+          <div v-show="roomInfo.status == 2" class="room_left_btn_box__item flex flex-center green btn_ani" @click="setStatus('鎵撴壂涓�', 3)">閫氱煡鎵撴壂</div>
+          <div v-show="roomInfo.status == 3" class="room_left_btn_box__item flex flex-center green btn_ani" @click="setStatus('绌洪棽', 0)">缁撴潫鎵撴壂</div>
         </div>
       </div>
       <div class="right">
@@ -115,28 +115,45 @@
         <div v-if="roomInfo && roomInfo.roomNo" class="room_title">{{ roomInfo.roomNo }}</div>
         <div class="room_content">
           <div class="tip">璇婄枟瀹夋帓</div>
-          <!-- <div class="name">{{ occupyInfoView.userName }}</div> -->
-          <div class="name">
-            <el-popover
-              placement="top"
-              width="400"
-              popper-class="top_tx"
-              trigger="click"
-              :popper-options="{ removeOnDestroy: true }"
-            >
-              <div>{{ occupyInfoView.userName }}</div>
-              <div slot="reference" class="tx ell">{{ occupyInfoView.userName }}</div>
-            </el-popover>
+          <!-- <div class="name">{{ occupyInfoView.userName }}</div> appellationName -->
+          <div v-show="isShowAppellationName" class="flex flex-center">
+            <div class="flex flex-ver">
+              <div class="name">{{ occupyInfoView.appellationName }}</div>
+              <div class="name_icon" @click="tapAppellationHandle">
+                <img class="img" src="static/imgs/eye.png">
+              </div>
+            </div>
+          </div>
+          <div v-show="!isShowAppellationName" class="flex flex-center">
+            <div class="flex flex-ver">
+              <div class="name">
+                <el-popover
+                  placement="top"
+                  width="400"
+                  popper-class="top_tx"
+                  trigger="click"
+                  :popper-options="{ removeOnDestroy: true }"
+                >
+                  <div>{{ occupyInfoView.userName }}</div>
+                  <div slot="reference" class="tx ell">{{ occupyInfoView.userName }}</div>
+                </el-popover>
+              </div>
+              <div class="name_icon" @click="tapAppellationHandle">
+                <img class="img" src="static/imgs/eye.png">
+              </div>
+            </div>
           </div>
           <div v-if="occupyInfoView.ciq" class="ciq">({{ occupyInfoView.ciq }})</div>
           <div v-if="occupyInfoView.startTime" class="time">瀹夋帓娌荤枟鏃堕棿锛歿{ occupyInfoView.startTime }} 寮�濮�</div>
         </div>
-        <div v-if="roomInfo" class="room_left_btn_box flex flex-ver" style="margin-top: 105px;">
-          <div v-if="roomInfo.status == 0" class="room_left_btn_box__item flex flex-center green btn_ani" @click="setStatus('浣跨敤涓�', 1)">寮�濮嬫不鐤�</div>
-          <div v-if="roomInfo.status == 1" class="room_left_btn_box__item flex-1 flex flex-center yellow btn_ani" @click="setStatus('瀹汉浼戞伅', 2)">瀹汉浼戞伅</div>
-          <div v-if="roomInfo.status == 1" class="room_left_btn_box__item flex-1 flex flex-center gray btn_ani" @click="setStatus('鎵撴壂涓�', 3)">閫氱煡鎵撴壂</div>
-          <div v-if="roomInfo.status == 2" class="room_left_btn_box__item flex flex-center green btn_ani" @click="setStatus('鎵撴壂涓�', 3)">閫氱煡鎵撴壂</div>
-          <div v-if="roomInfo.status == 3" class="room_left_btn_box__item flex flex-center green btn_ani" @click="setStatus('绌洪棽', 0)">缁撴潫鎵撴壂</div>
+        <div v-show="roomInfo" class="room_left_btn_box flex flex-ver" style="margin-top: 105px;">
+          <div v-show="roomInfo.status == 0" class="room_left_btn_box__item flex flex-1 flex-center b-green btn_ani" @click="setStatus('鏁烽夯涓�', 4)">寮�濮嬫暦楹�</div>
+          <div v-show="roomInfo.status == 0" class="room_left_btn_box__item flex flex-1 flex-center green btn_ani" @click="setStatus('浣跨敤涓�', 1)">寮�濮嬫不鐤�</div>
+          <div v-show="roomInfo.status == 4" class="room_left_btn_box__item flex flex-center green btn_ani" @click="setStatus('浣跨敤涓�', 1)">寮�濮嬫不鐤�</div>
+          <div v-show="roomInfo.status == 1" class="room_left_btn_box__item flex-1 flex flex-center yellow btn_ani" @click="setStatus('瀹汉浼戞伅', 2)">瀹汉浼戞伅</div>
+          <div v-show="roomInfo.status == 1" class="room_left_btn_box__item flex-1 flex flex-center gray btn_ani" @click="setStatus('鎵撴壂涓�', 3)">閫氱煡鎵撴壂</div>
+          <div v-show="roomInfo.status == 2" class="room_left_btn_box__item flex flex-center green btn_ani" @click="setStatus('鎵撴壂涓�', 3)">閫氱煡鎵撴壂</div>
+          <div v-show="roomInfo.status == 3" class="room_left_btn_box__item flex flex-center green btn_ani" @click="setStatus('绌洪棽', 0)">缁撴潫鎵撴壂</div>
         </div>
       </div>
       <div class="right flex flex-col">
@@ -203,6 +220,8 @@
     <XioCustomerSelect ref="XioCustomerSelect" @cancel="selectCustomerCancel" @submit="selectCustomerSubmit" />
     <!-- 鏇存敼鎴块棿鐘舵�佺獥 -->
     <XioRoomStatusChg ref="XioRoomStatusChg" @changeStatus="changeStatus" />
+    <!-- MIC閫氱煡鍗搁夯 -->
+    <XioRoomOffNarcosisNotice ref="XioRoomOffNarcosisNotice" @confirm="offNarcosisNoticeConfirm" />
   </div>
 </template>
 
@@ -216,14 +235,20 @@
 import XioCustomerSelect from '@/components/xio_customer_select'
 // 鏇存敼鎴块棿鐘舵�佺獥
 import XioRoomStatusChg from '@/components/xio_room_status_chg'
+// 閫氱煡鍗搁夯
+import XioRoomOffNarcosisNotice from '@/components/xio_room_off_narcosis_notice'
 import Req from '../../utils/jun_httpInstall' // http 璇锋眰
+// import xioFn from './utils/xio_fn.js'
 var isUseDefault = false // 鏄惁宸蹭娇鐢ㄩ粯璁ゅ浜�
 var isUseDefaultChg = 0// 宸蹭娇鐢ㄩ粯璁ゅ浜哄悗鎴块棿鏄惁鏈夋敼鍙樼姸鎬�
+var offNarcosisIds = [] // 鏄惁宸查�氱煡鍗搁夯id鏁扮粍
+var isOffNarcosisShow = false // 鏄惁鏄剧ず宸查�氱煡鍗搁夯寮圭獥
 export default {
   name: 'RoomDetail',
   components: {
     XioCustomerSelect,
-    XioRoomStatusChg
+    XioRoomStatusChg,
+    XioRoomOffNarcosisNotice
   },
   inject: ['noop'],
   data() {
@@ -232,9 +257,10 @@
       roomInfo: {},
       occupyInfo: '', // 褰撳墠鍗犵敤浜虹殑淇℃伅
       assignTreatList: [],
-      statusTx: ['绌洪棽', '浣跨敤涓�', '瀹汉浼戞伅', '鎵撴壂涓�'],
+      statusTx: ['绌洪棽', '浣跨敤涓�', '瀹汉浼戞伅', '鎵撴壂涓�', '鏁烽夯涓�'],
       timeObj: {}, // week锛氭槦鏈燂紝date锛氬勾鏈堟棩锛宼imeMin锛氭椂鍒嗭紝time锛氭椂鍒嗙锛宼imeStamp锛氭椂闂存埑
-      curTreatId: ''
+      curTreatId: '',
+      isShowAppellationName: true // 鏄惁鏄剧ず绉拌皳
     }
   },
   computed: {
@@ -278,6 +304,18 @@
     console.log('roomDetail mounted')
     // 璁板綍褰撳墠鐨勬不鐤桰D
     var curTreatId = localStorage.getItem('curTreatId')
+    var localOffNarcosisIds = localStorage.getItem('offNarcosisIds')
+    var localIsOffNarcosisShow = localStorage.getItem('isOffNarcosisShow')
+    // 鑾峰彇鏄惁宸查�氱煡鍗搁夯鏁扮粍
+    if (localOffNarcosisIds) {
+      offNarcosisIds = JSON.parse(localOffNarcosisIds)
+    } else {
+      offNarcosisIds = []
+      this.setLocalStorageOffNarcosisIds()
+    }
+    if (localIsOffNarcosisShow) {
+      isOffNarcosisShow = localIsOffNarcosisShow
+    }
     this.curTreatId = curTreatId || ''
     this.id = this.$route.query.id || ''
     this.init()
@@ -297,11 +335,44 @@
       this.pollingAjaxFn(this, 'getData', 'detail', 8000)
       // this.getData()
     },
+    // 璁剧疆宸查�氱煡鍗搁夯id鏁扮粍
+    setLocalStorageOffNarcosisIds() {
+      localStorage.setItem('offNarcosisIds', JSON.stringify(offNarcosisIds))
+    },
+    // 鍗搁夯閫氱煡纭
+    offNarcosisNoticeConfirm() {
+      if (this.occupyInfoView) {
+        if (offNarcosisIds && offNarcosisIds.length) {
+          var flag = offNarcosisIds.find((o) => { return o === this.occupyInfoView.userId })
+          if (!flag) {
+            offNarcosisIds.push(this.occupyInfoView.userId)
+          }
+        } else if (offNarcosisIds) {
+          offNarcosisIds.push(this.occupyInfoView.userId)
+        }
+        this.setLocalStorageOffNarcosisIds()
+      }
+      isOffNarcosisShow = true
+      localStorage.setItem('isOffNarcosisShow', true)
+    },
+    // 鏄剧ず閫氱煡鍗搁夯寮圭獥
+    showOffNarcosisNotice() {
+      // 鎵撳紑寮圭獥
+      this.$refs['XioRoomOffNarcosisNotice'].showDialog()
+    },
+    // 鐐瑰嚮鏄剧ず闅愯棌绉拌皳
+    tapAppellationHandle() {
+      this.isShowAppellationName = !this.isShowAppellationName
+    },
     // 鑾峰彇褰撳墠娌荤枟淇℃伅
     gatCurTreatInfo() {
       if (this.assignTreatList && this.assignTreatList.length) {
-        return this.assignTreatList.find((o) => {return o.id === this.curTreatId})
+        return this.assignTreatList.find((o) => { return o.id === this.curTreatId })
       }
+    },
+    // 鍒锋柊娴忚鍣ㄩ〉闈�
+    resetPage() {
+      window.location.reload()
     },
     // 鑾峰彇鎴块棿璇︽儏
     getData() {
@@ -321,7 +392,7 @@
           data: {
             roomInfo: {
               roomNo: 'xx',
-              status: 0 // 0绌洪棽 1浣跨敤 2浼戞伅 3鎵撴壂
+              status: 0 // 0绌洪棽 1浣跨敤 2浼戞伅 3鎵撴壂 4 鏁烽夯涓�
             },
             assignTreatList: [{
               startTime: '2023-12-08 00:00:00'
@@ -336,7 +407,12 @@
             res.data.assignTreatList.forEach((o) => {
               var st = (o.startTime).split(' ')[1].split(':')
               o.startTime = `${st[0]}:${st[1]}`
+              o.appellationName = o.userName[0] + `${o.gender ? ['濂冲+', '鍏堢敓', '濂冲+'][o.gender] : '濂冲+'}`
             })
+          }
+          // 宸插崰鐢ㄧ敤鎴锋暟鎹鐞�
+          if (res.data.occupyInfo && res.data.occupyInfo.userName) {
+            res.data.occupyInfo.appellationName = res.data.occupyInfo.userName[0] + `${res.data.occupyInfo.gender ? ['濂冲+', '鍏堢敓', '濂冲+'][res.data.occupyInfo.gender] : '濂冲+'}`
           }
           // 宸叉湁鍗犵敤鐨勶紝鏇存敼宸蹭娇鐢ㄩ粯璁ゅ浜虹殑鐘舵��
           res.data.occupyInfo && (isUseDefaultChg = 1)
@@ -351,6 +427,20 @@
           }
         }
         // console.log('999999999999999999999999999', res)
+        var offNarcosisTimer = null
+        offNarcosisTimer = setTimeout(() => {
+          console.log('================================>', this.occupyInfoView, 'offNarcosisIds:', offNarcosisIds, 'isOffNarcosisShow:', isOffNarcosisShow)
+          if (this.occupyInfoView && this.occupyInfoView.hempStatus === 2 && this.occupyInfoView.userId) {
+            var flag
+            offNarcosisIds && offNarcosisIds.length && (flag = offNarcosisIds.find((o) => { return o === this.occupyInfoView.userId }))
+            // flag = isOffNarcosisShow
+            if (!flag) {
+              this.showOffNarcosisNotice()
+            }
+          }
+          clearTimeout(offNarcosisTimer)
+          offNarcosisTimer = null
+        }, 500)
       })
     },
     // 杩斿洖
@@ -427,12 +517,13 @@
           localStorage.removeItem('curTreatId')
           this.curTreatId = ''
         }
-        // 姝e父娴佺▼缁撴潫鎵撴壂
-        if (item && item.id && status === 0) {
-          console.log('姝e父娴佺▼缁撴潫鎵撴壂')
+        // 鍙鏇存敼涓虹┖闂插氨閲嶇疆鍙傛暟
+        if (status === 0) {
+          console.log('鏇存敼涓虹┖闂�')
           // 閲嶇疆榛樿宸蹭娇鐢ㄥ浜虹殑鍙傛暟
           isUseDefault = false
           isUseDefaultChg = 0
+          this.isShowAppellationName = true
         }
         // console.log('8888888888888888888888888888888888', res)
         cb && cb()
@@ -603,6 +694,16 @@
   margin-top: 163px;
 }
 .page_container .main .room_left_btn_box__item {
+  width: 500px;
+  height: 150px;
+  line-height: 73px;
+  border-radius: 10px;
+  font-size: 50px;
+  text-align: center;
+  margin: auto;
+}
+.page_container .main .room_left_btn_box__item.flex-1 {
+  width: auto;
   height: 150px;
   line-height: 58px;
   border-radius: 10px;
@@ -612,9 +713,9 @@
   margin-right: 20px;
   font-weight: bold;
 }
-.page_container .main .room_left_btn_box__item:last-child {
+/* .page_container .main .room_left_btn_box__item:last-child {
   margin-right: 0;
-}
+} */
 .page_container .main .room_left_btn_box__item.yellow {
   color: rgba(255,255,255,1);
   background-color: rgba(233,157,66,1);
@@ -624,15 +725,12 @@
   color: rgba(79,79,79,1);
 }
 .page_container .main .room_left_btn_box__item.green {
-  width: 500px;
-  height: 150px;
-  line-height: 73px;
-  border-radius: 10px;
   background-color: rgba(47,174,206,1);
   color: rgba(255,255,255,1);
-  font-size: 50px;
-  text-align: center;
-  margin: auto;
+}
+.page_container .main .room_left_btn_box__item.b-green {
+  background-color: rgba(79,167,114,1);
+  color: rgba(255,255,255,1);
 }
 .page_container .main .room_content {
   margin-top: 30px;
@@ -655,6 +753,18 @@
 .page_container .main .room_content .name .tx {
   max-width: 666px;
   margin: auto;
+  text-align: center;
+}
+.page_container .main .room_content .name_icon {
+  width: 40px;
+  height: 40px;
+  display: block;
+  margin-top: 13px;
+  padding: 20px;
+}
+.page_container .main .room_content .name_icon .img {
+  width: 100%;
+  height: 100%;
 }
 .page_container .main .room_content .ciq {
   line-height: 42px;

--
Gitblit v1.8.0