From f6ea728ea50706b1dfa75bc0d266fb6b5f13ef7f Mon Sep 17 00:00:00 2001
From: jazz <jazzxhunter@163.com>
Date: 星期二, 09 一月 2024 19:29:29 +0800
Subject: [PATCH] Merge branch 'xio_dev'

---
 src/components/xio_room_off_narcosis_notice/index.vue |   11 
 static/imgs/cancel.png                                |    0 
 src/components/xio_room_guest_info_box/index.vue      |  308 +++++++++++
 src/config/index.js                                   |    9 
 src/pages/room/list.vue                               |    2 
 src/components/xio_room_guest_box/index.vue           |  142 +++++
 src/components/xio_room_info_block/index.vue          |  143 +++++
 src/components/xio_room_list_shop_chg/index.vue       |    2 
 src/utils/jun_login.js                                |  160 +++---
 src/pages/room/detail.vue                             |  772 ++++++++++++++++-------------
 10 files changed, 1,108 insertions(+), 441 deletions(-)

diff --git a/src/components/xio_room_guest_box/index.vue b/src/components/xio_room_guest_box/index.vue
new file mode 100644
index 0000000..1622d41
--- /dev/null
+++ b/src/components/xio_room_guest_box/index.vue
@@ -0,0 +1,142 @@
+<template>
+  <div class="guest_box">
+    <div class="guest_title flex flex-center">绛夊緟璇婄枟</div>
+    <div class="guest_block flex-1">
+      <div v-if="assignTreatListViewCom && assignTreatListViewCom.length" class="guest_list">
+        <div v-for="(item, index) in assignTreatListViewCom" :key="index" class="guest_list__row flex flex-ver" @click="selectCustomer(item)">
+          <div class="guest_list__td">
+            <div class="tx flex flex-ver">
+              <div class="flex-1 flex-1-w1 ell">{{ item.userName }}</div>
+            </div>
+            <div class="tx" style="font-size: 14px;line-height: 20px;">{{ item.ciq || '' }}</div>
+          </div>
+          <div class="guest_list__td flex flex-center">
+            <span class="tx">{{ item.startTime?item.startTime+'寮�濮�':'' }}</span>
+          </div>
+          <div class="guest_list__td flex flex-center">
+            <span class="tx flex-1 flex-1-w1 ell">{{ item.aDoctorName?item.aDoctorName+'(鍖荤敓)銆�':'' }}{{ item.aNurseName?item.aNurseName+'(鎶ゅ+)':'' }}</span>
+          </div>
+          <div class="guest_list__td flex flex-center">
+            <div v-if="!item.act" class="tx" style="text-decoration: underline;color: #227beb;">鍔犲叆</div>
+            <!-- <div class="icon">
+                    <img class="img" src="static/imgs/choose.png">
+                  </div> -->
+          </div>
+        </div>
+      </div>
+      <div v-if="!assignTreatListViewCom || !assignTreatListViewCom.length" class="guest_list">
+        <div class="guest_list__row flex flex-center rowtip">鏆傛棤鏁版嵁</div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'XioRoomGuestBox',
+  props: {
+    assignTreatListViewCom: {
+      type: Array,
+      default: () => {
+        return []
+      }
+    }
+  },
+  data() {
+    return {
+      isShow: false
+    }
+  },
+  methods: {
+    noop() {
+      return
+    },
+    // 纭
+    selectCustomer(item) {
+      this.$emit('selectCustomer', item)
+    },
+    // 鏄剧ず寮圭獥
+    showDialog() {
+      this.isShow = true
+    },
+    // 鍏抽棴寮圭獥
+    hideDialog() {
+      this.isShow = false
+      this.$emit('confirm', { })
+    }
+  }
+}
+</script>
+
+<style scoped>
+.guest_title {
+  height: 60px;
+  line-height: 28px;
+  border-radius: 10px 10px 0px 0px;
+  background-color: rgba(255,255,255,1);
+  color: rgba(34,123,235,1);
+  font-size: 20px;
+  text-align: center;
+  font-family: Roboto;
+  font-weight: bold;
+}
+.guest_block {
+  background-color: #fff;
+  overflow: auto;
+}
+.guest_list {
+  background-color: #fff;
+  padding-bottom: 23px;
+}
+.guest_list__row {
+  min-height: 75px;
+  background-color: rgba(34,123,235,0.1);
+}
+.guest_list__row:nth-child(2n) {
+  background-color: #fff;
+}
+.guest_list__row.rowtip {
+  background-color: #fff;
+  line-height: 30px;
+  color: rgba(0,0,0,.5);
+  font-size: 22px;
+}
+.guest_list__td {}
+.guest_list__td .tx {
+  line-height: 30px;
+  color: rgba(16,16,16,1);
+  font-size: 22px;
+  text-align: center;
+  font-family: PingFangSC-regular;
+  box-sizing: border-box;
+  padding: 0 5px;
+}
+.guest_list__td .icon {
+  width: 20px;
+  height: 20px;
+  display: block;
+}
+.guest_list__td .icon .img {
+  width: 100%;
+  height: 100%;
+}
+.guest_list__td:nth-child(1) {
+  width: 19.54%;
+}
+.guest_list__td:nth-child(2) {
+  width: 21.86%;
+}
+.guest_list__td:nth-child(3) {
+  width: 46.06%;
+}
+.guest_list__td:nth-child(4) {
+  width: 12.54%;
+}
+.guest_box {
+  margin-top: 65px;
+  width: 100%;
+  height: 345px;
+  background-color: #fff;
+  overflow: hidden;
+}
+</style>
diff --git a/src/components/xio_room_guest_info_box/index.vue b/src/components/xio_room_guest_info_box/index.vue
new file mode 100644
index 0000000..2d9ce6c
--- /dev/null
+++ b/src/components/xio_room_guest_info_box/index.vue
@@ -0,0 +1,308 @@
+<template>
+  <div class="guest_info_box">
+    <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> 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-show="occupyInfoView" class="room_left_btn_box flex flex-ver" style="margin-top: 105px;">
+      <div v-show="occupyInfoView.treatRoomStatus == 0" class="room_left_btn_box__item flex flex-1 flex-center b-green btn_ani" @click="setStatus('鏁烽夯涓�', 4, occupyInfoView)">寮�濮嬫暦楹�</div>
+      <div v-show="occupyInfoView.treatRoomStatus == 0" class="room_left_btn_box__item flex flex-1 flex-center green btn_ani" style="margin-right: 0;" @click="setStatus('浣跨敤涓�', 1, occupyInfoView)">寮�濮嬫不鐤�</div>
+      <div v-show="occupyInfoView.treatRoomStatus == 4" class="room_left_btn_box__item flex flex-center green btn_ani" @click="setStatus('浣跨敤涓�', 1, occupyInfoView)">寮�濮嬫不鐤�</div>
+      <div v-show="occupyInfoView.treatRoomStatus == 1" class="room_left_btn_box__item flex-1 flex flex-center yellow btn_ani" @click="setStatus('瀹汉浼戞伅', 2, occupyInfoView)">瀹汉浼戞伅</div>
+      <div v-show="occupyInfoView.treatRoomStatus == 1" class="room_left_btn_box__item flex-1 flex flex-center gray btn_ani" style="margin-right: 0;" @click="setStatus('鎵撴壂涓�', 3, occupyInfoView)">閫氱煡鎵撴壂</div>
+      <div v-show="occupyInfoView.treatRoomStatus == 2" class="room_left_btn_box__item flex flex-center green btn_ani" @click="setStatus('鎵撴壂涓�', 3, occupyInfoView)">閫氱煡鎵撴壂</div>
+      <div v-show="occupyInfoView.treatRoomStatus == 3" class="room_left_btn_box__item flex flex-center green btn_ani" @click="setStatus('绌洪棽', 0, occupyInfoView)">缁撴潫鎵撴壂</div>
+    </div>
+    <!-- MIC閫氱煡鍗搁夯 -->
+    <XioRoomOffNarcosisNotice ref="XioRoomOffNarcosisNotice" @confirm="offNarcosisNoticeConfirm" />
+  </div>
+</template>
+
+<script>
+// 閫氱煡鍗搁夯
+import XioRoomOffNarcosisNotice from '@/components/xio_room_off_narcosis_notice'
+export default {
+  name: 'XioRoomGuestInfoBox',
+  components: {
+    XioRoomOffNarcosisNotice
+  },
+  props: {
+    roomInfo: {
+      type: Object,
+      default: () => {
+        return {}
+      }
+    },
+    occupyInfoView: {
+      type: [Object, Array],
+      default: () => {
+        return {}
+      }
+    },
+    offNarcosisIds: {
+      type: Array,
+      default: () => {
+        return []
+      }
+    }
+  },
+  data() {
+    return {
+      isShowAppellationName: true
+    }
+  },
+  methods: {
+    noop() {
+      return
+    },
+    // 璁剧疆宸查�氱煡鍗搁夯id鏁扮粍
+    setLocalStorageOffNarcosisIds() {
+      localStorage.setItem('offNarcosisIds', JSON.stringify(this.offNarcosisIds))
+    },
+    // 鍗搁夯閫氱煡纭
+    offNarcosisNoticeConfirm() {
+      if (this.occupyInfoView) {
+        if (this.offNarcosisIds && this.offNarcosisIds.length) {
+          var flag = this.offNarcosisIds.find((o) => { return o === this.occupyInfoView.userId })
+          if (!flag) {
+            this.offNarcosisIds.push(this.occupyInfoView.userId)
+          }
+        } else if (this.offNarcosisIds) {
+          this.offNarcosisIds.push(this.occupyInfoView.userId)
+        }
+        this.setLocalStorageOffNarcosisIds()
+      }
+    },
+    // 鏄剧ず閫氱煡鍗搁夯寮圭獥
+    showOffNarcosisNotice() {
+      // 鎵撳紑寮圭獥
+      this.$refs['XioRoomOffNarcosisNotice'].showDialog()
+      this.$refs['XioRoomOffNarcosisNotice'].dataInit(this.occupyInfoView)
+    },
+    // 鐐瑰嚮鏄剧ず闅愯棌绉拌皳
+    tapAppellationHandle() {
+      this.isShowAppellationName = !this.isShowAppellationName
+    },
+    setStatus(tx, status, item) {
+      this.$emit('setStatus', { tx, status, item })
+    },
+    // 纭
+    confirm() {
+      this.isShow = false
+      this.$emit('confirm', { })
+    },
+    // 鏄剧ず寮圭獥
+    showDialog() {
+      this.isShow = true
+    },
+    // 鍏抽棴寮圭獥
+    hideDialog() {
+      this.isShow = false
+      this.$emit('confirm', { })
+    }
+  }
+}
+</script>
+
+<style scoped>
+.guest_info_box {
+  width: 100%;
+  height: 100%;
+  box-sizing: border-box;
+  padding-top: 39px;
+  position: relative;
+}
+.guest_info_box .room_title {
+  line-height: 50px;
+  color: rgba(255,255,255,1);
+  font-size: 36px;
+  text-align: center;
+  font-family: PingFangSC-medium;
+  padding: 10px 0;
+  background-color: rgba(34,123,235,1);
+  width: 400px;
+  margin: 0 auto 0 auto;
+}
+.guest_info_box .room_main_tip {
+  line-height: 168px;
+  font-size: 120px;
+  color: rgba(46,77,124,1);
+  text-align: center;
+  font-family: PingFangSC-medium;
+  margin-top: 107px;
+  /* font-weight: bold; */
+}
+.guest_info_box .room_main_tip.gray {
+  color: rgba(154,154,154,1);
+}
+.guest_info_box .btn_box {
+  margin-top: 130px;
+}
+.guest_info_box .btn_box__item {
+  width: 250px;
+  height: 120px;
+  border-radius: 10px;
+  box-shadow: 0px 2px 6px 0px rgba(206,206,206,1);
+  margin-right: 70px;
+  cursor: pointer;
+}
+.guest_info_box .btn_box__item:last-child {
+  margin-right: 0;
+}
+.guest_info_box .btn_box__item.white {
+  background-color: rgba(255,255,255,1);
+}
+.guest_info_box .btn_box__item.blue {
+  background-color: rgba(46,77,124,1);
+}
+.guest_info_box .btn_box__item.yellow {
+  background-color: rgba(255,199,115,1);
+}
+.guest_info_box .btn_box__item.gray {
+  background-color: rgba(206,206,206,1);
+}
+.guest_info_box .btn_box__item .icon {
+  width: 60px;
+  height: 60px;
+  display: block;
+  margin-right: 17px;
+}
+.guest_info_box .btn_box__item .icon .img {
+  width: 100%;
+  height: 100%;
+}
+.guest_info_box .btn_box__item .tx {
+  line-height: 37px;
+  color: rgba(51,51,51,1);
+  font-size: 26px;
+  text-align: center;
+  font-family: PingFangSC-medium;
+}
+.guest_info_box .btn_box__item .tx.white {
+  color: rgba(255,255,255,1);
+}
+.guest_info_box .room_left_btn_box {
+  padding: 0 23px;
+  margin-top: 163px;
+}
+.guest_info_box .room_left_btn_box__item {
+  width: 500px;
+  height: 150px;
+  line-height: 73px;
+  border-radius: 10px;
+  font-size: 50px;
+  text-align: center;
+  margin: auto;
+}
+.guest_info_box .room_left_btn_box__item.flex-1 {
+  width: auto;
+  height: 150px;
+  line-height: 58px;
+  border-radius: 10px;
+  font-size: 40px;
+  text-align: center;
+  font-family: Microsoft Yahei;
+  margin-right: 20px;
+  font-weight: bold;
+}
+/* .guest_info_box .room_left_btn_box__item:last-child {
+  margin-right: 0;
+} */
+.guest_info_box .room_left_btn_box__item.yellow {
+  color: rgba(255,255,255,1);
+  background-color: rgba(233,157,66,1);
+}
+.guest_info_box .room_left_btn_box__item.gray {
+  background-color: rgba(206,206,206,1);
+  color: rgba(79,79,79,1);
+}
+.guest_info_box .room_left_btn_box__item.green {
+  background-color: rgba(47,174,206,1);
+  color: rgba(255,255,255,1);
+}
+.guest_info_box .room_left_btn_box__item.b-green {
+  background-color: rgba(79,167,114,1);
+  color: rgba(255,255,255,1);
+}
+.guest_info_box .room_content {
+  margin-top: 30px;
+}
+.guest_info_box .room_content .tip {
+  line-height: 33px;
+  color: rgba(79,79,79,1);
+  font-size: 24px;
+  text-align: center;
+  font-family: PingFangSC-medium;
+}
+.guest_info_box .room_content .name {
+  line-height: 168px;
+  color: rgba(51,51,51,1);
+  font-size: 120px;
+  text-align: center;
+  font-family: PingFangSC-medium;
+  margin-top: 13px;
+}
+.guest_info_box .room_content .name .tx {
+  max-width: 666px;
+  margin: auto;
+  text-align: center;
+}
+.guest_info_box .room_content .name_icon {
+  width: 40px;
+  height: 40px;
+  display: block;
+  margin-top: 13px;
+  padding: 20px;
+}
+.guest_info_box .room_content .name_icon .img {
+  width: 100%;
+  height: 100%;
+}
+.guest_info_box .room_content .ciq {
+  line-height: 42px;
+  color: rgba(51,51,51,1);
+  font-size: 30px;
+  text-align: center;
+  font-family: PingFangSC-regular;
+  margin-top: -5px;
+}
+.guest_info_box .room_content .time {
+  line-height: 42px;
+  color: rgba(0,0,0,1);
+  font-size: 30px;
+  text-align: center;
+  font-family: PingFangSC-medium;
+  font-weight: bold;
+  margin-top: 21px;
+}
+</style>
diff --git a/src/components/xio_room_info_block/index.vue b/src/components/xio_room_info_block/index.vue
new file mode 100644
index 0000000..a4a265d
--- /dev/null
+++ b/src/components/xio_room_info_block/index.vue
@@ -0,0 +1,143 @@
+<template>
+  <div class="room_info">
+    <div class="staff_box flex flex-ver flex-sb">
+      <div v-if="occupyInfoViewArr.length > 1" class="staff_box_item flex-1 flex flex-center">
+        <div>
+          <div class="staff_box_item__title">瀹㈡埛鍚嶇О</div>
+          <div class="staff_box_item__name">{{ occupyInfoView.appellationName || occupyInfoView.userName || '' }}</div>
+        </div>
+      </div>
+      <div class="staff_box_item flex-1 flex flex-center">
+        <div>
+          <div class="staff_box_item__title">鍒嗚瘖椤鹃棶</div>
+          <div class="staff_box_item__name">{{ occupyInfoView.adviserName || '' }}</div>
+        </div>
+      </div>
+      <div class="staff_box_item flex-1 flex flex-center">
+        <div>
+          <div class="staff_box_item__title">鎵ц鍖荤敓</div>
+          <div class="staff_box_item__name">{{ occupyInfoView.aDoctorName || '' }}</div>
+        </div>
+      </div>
+      <div class="staff_box_item flex-1 flex flex-center">
+        <div>
+          <div class="staff_box_item__title">鎵ц鎶ゅ+</div>
+          <div class="staff_box_item__name">{{ occupyInfoView.aNurseName || '' }}</div>
+        </div>
+      </div>
+    </div>
+    <div class="room_info_project">
+      <div class="room_info_project_block">
+        <div class="tx">{{ occupyInfoView.projectName || '' }}</div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'XioRoomInfoBlock',
+  props: {
+    occupyInfoView: {
+      type: [Object, Array],
+      default: () => {
+        return {}
+      }
+    },
+    occupyInfoViewArr: {
+      type: Array,
+      default: () => {
+        return []
+      }
+    }
+  },
+  data() {
+    return {
+
+    }
+  },
+  methods: {
+    noop() {
+      return
+    },
+    // 纭
+    confirm() {
+      this.isShow = false
+      this.$emit('confirm', { })
+    },
+    // 鏄剧ず寮圭獥
+    showDialog() {
+      this.isShow = true
+    },
+    // 鍏抽棴寮圭獥
+    hideDialog() {
+      this.isShow = false
+      this.$emit('confirm', { })
+    }
+  }
+}
+</script>
+
+<style scoped>
+.room_info {
+  width: 100%;
+  height: 100%;
+  border-radius: 10px;
+  background-color: rgba(255,255,255,0.3);
+  box-sizing: border-box;
+  padding-top: 30px;
+}
+.room_info .staff_box {
+}
+.room_info .staff_box_item {
+  height: 180px;
+}
+.room_info .staff_box_item:nth-child(1) {
+  background-color: rgba(255,255,255,0.3);
+}
+.room_info .staff_box_item:nth-child(2) {
+  background-color: rgba(255,255,255,0.1);
+  margin: 0 10px;
+}
+.room_info .staff_box_item:nth-child(3) {
+  background-color: rgba(255,255,255,0.3);
+}
+.room_info .staff_box_item:nth-child(4) {
+  background-color: rgba(255,255,255,0.1);
+  margin-left: 10px;
+}
+.room_info .staff_box_item__title {
+  line-height: 28px;
+  color: rgba(255,255,255,1);
+  font-size: 20px;
+  text-align: center;
+  font-family: PingFangSC-regular;
+}
+.room_info .staff_box_item__name {
+  line-height: 56px;
+  color: rgba(255,255,255,1);
+  font-size: 40px;
+  text-align: center;
+  font-family: PingFangSC-medium;
+  margin-top: 5px;
+}
+.room_info .room_info_project {
+  padding: 36px 20px 20px 20px;
+  height: 138px;
+  box-sizing: border-box;
+  overflow: hidden;
+}
+.room_info .room_info_project_block {
+  box-sizing: border-box;
+  width: 100%;
+  height: 100%;
+  overflow: auto;
+}
+.room_info .room_info_project .tx {
+  line-height: 39px;
+  color: rgba(255,255,255,1);
+  font-size: 28px;
+  text-align: center;
+  font-family: PingFangSC-regular;
+}
+</style>
diff --git a/src/components/xio_room_list_shop_chg/index.vue b/src/components/xio_room_list_shop_chg/index.vue
index d86457e..7b4faec 100644
--- a/src/components/xio_room_list_shop_chg/index.vue
+++ b/src/components/xio_room_list_shop_chg/index.vue
@@ -12,7 +12,7 @@
 <script>
 import Req from '../../utils/jun_httpInstall' // http 璇锋眰
 export default {
-  name: 'XioRoomStatusChg',
+  name: 'XioRoomListShopChg',
   props: {
     isActive: {
       type: Boolean,
diff --git a/src/components/xio_room_off_narcosis_notice/index.vue b/src/components/xio_room_off_narcosis_notice/index.vue
index f233407..3fdce8e 100644
--- a/src/components/xio_room_off_narcosis_notice/index.vue
+++ b/src/components/xio_room_off_narcosis_notice/index.vue
@@ -1,7 +1,7 @@
 <template>
   <div v-if="isShow" class="mask" @click="hideDialog">
     <div class="xio_room_status_chg_dialog" @click.stop="noop">
-      <div class="title">MIC閫氱煡鍗搁夯锛�</div>
+      <div class="title">MIC閫氱煡{{ info.appellationName }}鍗搁夯锛�</div>
       <div class="btn_box flex flex-center">
         <div class="btn_box_item flex flex-center" @click="confirm">
           <div class="flex flex-ver">
@@ -15,7 +15,7 @@
 
 <script>
 export default {
-  name: 'XioRoomStatusChg',
+  name: 'XioRoomOffNarcosisNotice',
   props: {
     isActive: {
       type: Boolean,
@@ -24,7 +24,8 @@
   },
   data() {
     return {
-      isShow: false
+      isShow: false,
+      info: {}
     }
   },
   methods: {
@@ -40,6 +41,10 @@
     showDialog() {
       this.isShow = true
     },
+    // 鏁版嵁澶勭悊
+    dataInit(data) {
+      this.info = { ...data }
+    },
     // 鍏抽棴寮圭獥
     hideDialog() {
       this.isShow = false
diff --git a/src/config/index.js b/src/config/index.js
index fc1fa3c..7127a51 100644
--- a/src/config/index.js
+++ b/src/config/index.js
@@ -25,7 +25,6 @@
   if (is_use_test_server) {
     isTestView = 1
   }
-
 }
 
 const pdomain = '/' // 绾夸笂
@@ -50,8 +49,8 @@
   const search = location.search
   // 鍙傛暟鏁扮粍
   let querys = []
-  if (search && search.indexOf('?')>-1) {
-    querys = search.split('?')[1].split('&').filter((str)=>{
+  if (search && search.indexOf('?') > -1) {
+    querys = search.split('?')[1].split('&').filter((str) => {
       const key = str.split('=')[0]
       const value = str.split('=')[1]
       return (key != 'code' && key != 'state')
@@ -62,7 +61,7 @@
 
   // 琛ュ厖鍙傛暟
   if (querys.length) {
-    indexUrl += '?'+querys.join('&')
+    indexUrl += '?' + querys.join('&')
   }
 
   return long.replace('{{appid}}', appid).replace('{{scope}}', scope).replace('{{url}}', encodeURIComponent(indexUrl))
@@ -73,7 +72,7 @@
   console.log = () => {}
 }
 
-var domain;
+var domain
 
 if (istest == 0) domain = pdomain // 绾夸笂
 if (istest == 1) domain = tdomain // 鏈湴
diff --git a/src/pages/room/detail.vue b/src/pages/room/detail.vue
index 776f69f..f76c17b 100644
--- a/src/pages/room/detail.vue
+++ b/src/pages/room/detail.vue
@@ -21,8 +21,9 @@
         <!-- <div class="page_time">{{ timeObj.time }}</div> -->
       </div>
     </div>
+    <div class="page_header_placeholer" />
     <!-- 鏈湁瀹夋帓 -->
-    <div v-if="!occupyInfoView && (!assignTreatListView || !assignTreatListView.length)" class="page_container flex flex-1">
+    <div v-if="(!occupyInfoViewArr || !occupyInfoViewArr.length) && (!assignTreatListView || !assignTreatListView.length)" class="page_container flex flex-1">
       <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" style="margin-top: 93px;line-height: 186px;font-size: 140px;">-{{ statusTx[roomInfo.status] }}-</div>
@@ -65,7 +66,7 @@
       </div>
     </div>
     <!-- 娌℃湁瀹汉鍜屾湁瀹夋帓 -->
-    <div v-if="!occupyInfoView && (assignTreatListView && assignTreatListView.length)" class="page_container flex flex-1">
+    <div v-if="(!occupyInfoViewArr || !occupyInfoViewArr.length) && (assignTreatListView && assignTreatListView.length)" class="page_container flex flex-1">
       <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>
@@ -77,142 +78,27 @@
         </div>
       </div>
       <div class="right">
-        <div class="right_block flex flex-col">
-          <div class="guest_title flex flex-center">绛夊緟璇婄枟</div>
-          <div class="guest_block flex-1" style="border-radius: 0 0 10px 10px;">
-            <div v-if="assignTreatListView && assignTreatListView.length" class="guest_list">
-              <div v-for="(item, index) in assignTreatListView" :key="index" class="guest_list__row flex flex-ver" @click="selectCustomer(item)">
-                <div class="guest_list__td">
-                  <div class="tx flex flex-ver">
-                    <div class="flex-1 flex-1-w1 ell">{{ item.userName }}</div>
-                  </div>
-                  <div class="tx" style="font-size: 14px;line-height: 20px;">{{ item.ciq || '' }}</div>
-                </div>
-                <div class="guest_list__td flex flex-center">
-                  <span class="tx">{{ item.startTime?item.startTime+'寮�濮�':'' }}</span>
-                </div>
-                <div class="guest_list__td flex flex-center">
-                  <span class="tx flex-1 flex-1-w1 ell">{{ item.aDoctorName?item.aDoctorName+'(鍖荤敓)銆�':'' }}{{ item.aNurseName?item.aNurseName+'(鎶ゅ+)':'' }}</span>
-                </div>
-                <div class="guest_list__td flex flex-center">
-                  <div v-if="!item.act" class="tx" style="text-decoration: underline;color: #227beb;">鍒囨崲</div>
-                  <!-- <div class="icon">
-                    <img class="img" src="static/imgs/choose.png">
-                  </div> -->
-                </div>
-              </div>
-            </div>
-            <div v-if="!assignTreatListView || !assignTreatListView.length" class="guest_list">
-              <div class="guest_list__row flex flex-center rowtip">鏆傛棤鏁版嵁</div>
-            </div>
-          </div>
+        <div class="right_block">
+          <XioRoomGuestBox ref="XioRoomGuestBox" :assign-treat-list-view-com="assignTreatListView" @selectCustomer="selectCustomer" />
         </div>
       </div>
     </div>
-    <!-- 瀹汉鍜屾湁瀹夋帓 -->
-    <div v-if="occupyInfoView" class="page_container flex flex-1">
-      <div class="main flex-1">
-        <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> 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>
+    <!-- 瀹汉鍜屾湁瀹夋帓 over-width -->
+    <div v-if="occupyInfoViewArr && occupyInfoViewArr.length" class="page_container flex flex-1" :class="[occupyInfoViewArr && occupyInfoViewArr.length>1?'over-width':'']">
+      <div class="flex flex-1">
+        <div v-for="(item,index) in occupyInfoViewArr" :key="index" class="main flex-1">
+          <div v-if="occupyInfoViewArr.length>1 && item.treatRoomStatus === 0" class="cancel_icon_block" @click="cancelCustomerItem(item)">
+            <img class="img" src="static/imgs/cancel.png">
           </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-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>
+          <XioRoomGuestInfoBox :ref="`XioRoomGuestInfoBox_${item.id}`" :room-info="roomInfo" :occupy-info-view="item" :off-narcosis-ids="offNarcosisIds" @setStatus="setComStatus" />
         </div>
       </div>
       <div class="right flex flex-col">
-        <div class="room_info flex-1">
-          <div class="staff_box flex flex-ver flex-sb">
-            <div class="staff_box_item flex-1 flex flex-center">
-              <div>
-                <div class="staff_box_item__title">鍒嗚瘖椤鹃棶</div>
-                <div class="staff_box_item__name">{{ occupyInfoView.adviserName || '' }}</div>
-              </div>
-            </div>
-            <div class="staff_box_item flex-1 flex flex-center">
-              <div>
-                <div class="staff_box_item__title">鎵ц鍖荤敓</div>
-                <div class="staff_box_item__name">{{ occupyInfoView.aDoctorName || '' }}</div>
-              </div>
-            </div>
-            <div class="staff_box_item flex-1 flex flex-center">
-              <div>
-                <div class="staff_box_item__title">鎵ц鎶ゅ+</div>
-                <div class="staff_box_item__name">{{ occupyInfoView.aNurseName || '' }}</div>
-              </div>
-            </div>
-          </div>
-          <div class="room_info_project">
-            <div class="room_info_project_block">
-              <div class="tx">{{ occupyInfoView.projectName || '' }}</div>
-            </div>
-          </div>
+        <div v-for="(item,index) in occupyInfoViewArr" :key="index" class="flex-1 right_room_info">
+          <XioRoomInfoBlock ref="XioRoomInfoBlock" :occupy-info-view="item" :occupy-info-view-arr="occupyInfoViewArr" />
         </div>
-        <div class="guest_box flex flex-col" style="border-radius: 10px;">
-          <div class="guest_title flex flex-center">绛夊緟璇婄枟</div>
-          <div class="guest_block flex-1">
-            <div v-if="assignTreatListView && assignTreatListView.length" class="guest_list">
-              <div v-for="(item, index) in assignTreatListView" :key="index" class="guest_list__row flex flex-ver" @click="selectCustomer(item)">
-                <div class="guest_list__td">
-                  <div class="tx flex flex-ver">
-                    <div class="flex-1 flex-1-w1 ell">{{ item.userName }}</div>
-                  </div>
-                  <div class="tx" style="font-size: 14px;line-height: 20px;">{{ item.ciq || '' }}</div>
-                </div>
-                <div class="guest_list__td flex flex-center">
-                  <span class="tx">{{ item.startTime?item.startTime+'寮�濮�':'' }}</span>
-                </div>
-                <div class="guest_list__td flex flex-center">
-                  <span class="tx flex-1 flex-1-w1 ell">{{ item.aDoctorName?item.aDoctorName+'(鍖荤敓)銆�':'' }}{{ item.aNurseName?item.aNurseName+'(鎶ゅ+)':'' }}</span>
-                </div>
-                <div class="guest_list__td flex flex-center">
-                  <div v-if="!item.act" class="tx" style="text-decoration: underline;color: #227beb;">鍒囨崲</div>
-                  <!-- <div class="icon">
-                    <img class="img" src="static/imgs/choose.png">
-                  </div> -->
-                </div>
-              </div>
-            </div>
-            <div v-if="!assignTreatListView || !assignTreatListView.length" class="guest_list">
-              <div class="guest_list__row flex flex-center rowtip">鏆傛棤鏁版嵁</div>
-            </div>
-          </div>
+        <div v-if="occupyInfoViewArr.length<=1" class="flex flex-col" style="border-radius: 10px;">
+          <XioRoomGuestBox ref="XioRoomGuestBox" :assign-treat-list-view-com="assignTreatListView" @selectCustomer="selectCustomer" />
         </div>
       </div>
     </div>
@@ -221,7 +107,7 @@
     <!-- 鏇存敼鎴块棿鐘舵�佺獥 -->
     <XioRoomStatusChg ref="XioRoomStatusChg" @changeStatus="changeStatus" />
     <!-- MIC閫氱煡鍗搁夯 -->
-    <XioRoomOffNarcosisNotice ref="XioRoomOffNarcosisNotice" @confirm="offNarcosisNoticeConfirm" />
+    <!-- <XioRoomOffNarcosisNotice ref="XioRoomOffNarcosisNotice" @confirm="offNarcosisNoticeConfirm" /> -->
   </div>
 </template>
 
@@ -231,24 +117,31 @@
 // 瀹汉浼戞伅 2
 // 寰呮墦鎵�/閫氱煡鎵撴壂 3
 // import Login from '../utils/jun_login.js'
+// 鎴块棿瀹汉淇℃伅
+import XioRoomGuestInfoBox from '@/components/xio_room_guest_info_box'
+// 鎴块棿璐熻矗鍛樺伐淇℃伅
+import XioRoomInfoBlock from '@/components/xio_room_info_block'
+// 鎴块棿瀹㈡埛棰勭害鍒楄〃淇℃伅
+import XioRoomGuestBox from '@/components/xio_room_guest_box'
 // 閫夋嫨瀹汉寮圭獥
 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 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: {
+    XioRoomGuestInfoBox,
+    XioRoomInfoBlock,
+    XioRoomGuestBox,
     XioCustomerSelect,
-    XioRoomStatusChg,
-    XioRoomOffNarcosisNotice
+    XioRoomStatusChg
+    // XioRoomOffNarcosisNotice
   },
   inject: ['noop'],
   data() {
@@ -260,12 +153,33 @@
       statusTx: ['绌洪棽', '浣跨敤涓�', '瀹汉浼戞伅', '鎵撴壂涓�', '鏁烽夯涓�'],
       timeObj: {}, // week锛氭槦鏈燂紝date锛氬勾鏈堟棩锛宼imeMin锛氭椂鍒嗭紝time锛氭椂鍒嗙锛宼imeStamp锛氭椂闂存埑
       curTreatId: '',
-      isShowAppellationName: true // 鏄惁鏄剧ず绉拌皳
+      curTreatIds: '', // 宸查�変腑鐨勬不鐤楄褰昳d鏁扮粍
+      offNarcosisIds: [] // 鏄惁宸查�氱煡鍗搁夯鐨勭敤鎴穒d鏁扮粍
+      // isShowAppellationName: true // 鏄惁鏄剧ず绉拌皳
     }
   },
   computed: {
+    // 褰撳墠宸查�夋嫨鐢ㄦ埛鐨勬暟缁勬暟鎹�
+    occupyInfoViewArr() {
+      if (this.occupyInfo && this.occupyInfo.length) {
+        return this.occupyInfoViewArrIdsHandleArr()
+      } else {
+        if (this.curTreatIds && this.curTreatIds.length) {
+          return this.getCurTreatArr(this.curTreatIds)
+        } else {
+          if ((!isUseDefault || (isUseDefault && isUseDefaultChg === 0)) && this.assignTreatList && this.assignTreatList.length) {
+            isUseDefault = true
+            this.occupyInfoViewArrIdsHandle(this.assignTreatList[0])
+            return [this.assignTreatList[0]]
+          } else {
+            return ''
+          }
+        }
+      }
+    },
+    // 褰撳墠宸查�夋嫨鐢ㄦ埛鐨勬暟鎹紙鍗曚釜锛夛紙鏆傛棤鐢級
     occupyInfoView() {
-      console.log('00000000000000000000000', this.occupyInfo, isUseDefault, isUseDefaultChg)
+      // console.log('00000000000000000000000', this.occupyInfo, isUseDefault, isUseDefaultChg)
       // 鏈夊綋鍓嶉�変腑鐨勶紝鏍规嵁闇�姹備慨鏀瑰鍔犻�変腑涓嶆洿鏀圭姸鎬侊紝鐢辩┖闂插紑濮�
       if (this.curTreatId) {
         return this.gatCurTreatInfo()
@@ -277,7 +191,7 @@
         } else {
           // 杩樻病浣跨敤榛樿瀹汉鍊兼垨鑰呭凡浣跨敤榛樿瀹汉鍊艰繕娌℃敼鍙樼姸鎬侊紙閫傞厤杞锛�
           if ((!isUseDefault || (isUseDefault && isUseDefaultChg === 0)) && this.assignTreatList && this.assignTreatList.length) {
-            isUseDefault = true
+            // isUseDefault = true
             return this.assignTreatList[0]
           // 宸蹭娇鐢ㄨ繃榛樿瀹汉鍊�
           } else {
@@ -286,12 +200,16 @@
         }
       }
     },
+    // 璇ユ不鐤楀鐢ㄦ埛鍒楄〃
     assignTreatListView() {
       if (this.assignTreatList && this.assignTreatList.length) {
         this.assignTreatList.forEach((o) => {
-          o.act = false
-          if (this.occupyInfoView && this.occupyInfoView.id === o.id) {
-            o.act = true
+          if (this.occupyInfoViewArr && this.occupyInfoViewArr.length) {
+            this.occupyInfoViewArr.forEach((_o) => {
+              if (_o.id === o.id) {
+                o.act = true
+              }
+            })
           }
         })
         return this.assignTreatList
@@ -303,20 +221,28 @@
   activated() {
     console.log('roomDetail mounted')
     // 璁板綍褰撳墠鐨勬不鐤桰D
-    var curTreatId = localStorage.getItem('curTreatId')
+    // var curTreatId = localStorage.getItem('curTreatId')
+    // 璁板綍褰撳墠鐨勬不鐤楄褰旾D鏁扮粍
+    var curTreatIds = localStorage.getItem('curTreatIds')
+    // 鍗搁夯鐩稿叧
     var localOffNarcosisIds = localStorage.getItem('offNarcosisIds')
-    var localIsOffNarcosisShow = localStorage.getItem('isOffNarcosisShow')
     // 鑾峰彇鏄惁宸查�氱煡鍗搁夯鏁扮粍
     if (localOffNarcosisIds) {
-      offNarcosisIds = JSON.parse(localOffNarcosisIds)
+      this.offNarcosisIds = JSON.parse(localOffNarcosisIds)
     } else {
-      offNarcosisIds = []
+      this.offNarcosisIds = []
       this.setLocalStorageOffNarcosisIds()
     }
-    if (localIsOffNarcosisShow) {
-      isOffNarcosisShow = localIsOffNarcosisShow
+    // 娌荤枟璁板綍ID鏁扮粍
+    if (curTreatIds) {
+      try {
+        this.curTreatIds = JSON.parse(curTreatIds)
+      } catch (error) {
+        this.curTreatIds = ''
+      }
     }
-    this.curTreatId = curTreatId || ''
+    // this.curTreatId = curTreatId || ''
+    // 娌荤枟瀹d
     this.id = this.$route.query.id || ''
     this.init()
   },
@@ -335,34 +261,96 @@
       this.pollingAjaxFn(this, 'getData', 'detail', 8000)
       // this.getData()
     },
+    // 鍒濆榛樿閫夋嫨鐨刬d鏁扮粍澶勭悊
+    occupyInfoViewArrIdsHandle(item) {
+      if (!this.curTreatIds) {
+        this.curTreatIds = []
+      }
+      this.curTreatIds.push(item.id)
+      this.setLocalCurTreatIds()
+    },
+    // 鍒濆榛樿閫夋嫨鐨刬d鏁扮粍澶勭悊
+    occupyInfoViewArrIdsHandleArr() {
+      if (!this.curTreatIds) {
+        this.curTreatIds = []
+      }
+      if (this.occupyInfo && this.occupyInfo.length === 1) {
+        var res = []
+        res.push(this.occupyInfo[0])
+        if (this.curTreatIds && this.curTreatIds.length) {
+          this.curTreatIds = this.curTreatIds.filter((o) => { return o !== this.occupyInfo[0].id })
+          if (this.assignTreatList && this.assignTreatList.length && this.curTreatIds && this.curTreatIds.length) {
+            var curTreatItem = this.assignTreatList.find((o) => { return o.id === this.curTreatIds[0] })
+            if (curTreatItem) {
+              res.push(curTreatItem)
+            }
+          }
+        }
+        this.setLocalCurTreatIds()
+        return res
+      } else if (this.occupyInfo && this.occupyInfo.length > 1) {
+        this.occupyInfo.forEach((o) => {
+          this.curTreatIds.push(o.id)
+        })
+        return this.occupyInfo
+      }
+    },
     // 璁剧疆宸查�氱煡鍗搁夯id鏁扮粍
     setLocalStorageOffNarcosisIds() {
-      localStorage.setItem('offNarcosisIds', JSON.stringify(offNarcosisIds))
+      localStorage.setItem('offNarcosisIds', JSON.stringify(this.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()
+    // 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()
+    //   }
+    // },
+    // // 鏄剧ず閫氱煡鍗搁夯寮圭獥
+    // showOffNarcosisNotice() {
+    //   // 鎵撳紑寮圭獥
+    //   this.$refs['XioRoomOffNarcosisNotice'].showDialog()
+    // },
+    // 鏄剧ず閫氱煡鍗搁夯寮圭獥锛堝涓級
+    showOffNarcosisNoticeMulti(id) {
+      // 鎵撳紑寮圭獥锛屽姩鎬佺殑ref瀵硅薄鑾峰彇
+      // eslint-disable-next-line no-eval
+      var ref = eval('this.$refs.XioRoomGuestInfoBox_' + id)[0]
+      ref.showOffNarcosisNotice()
     },
     // 鐐瑰嚮鏄剧ず闅愯棌绉拌皳
-    tapAppellationHandle() {
-      this.isShowAppellationName = !this.isShowAppellationName
+    // tapAppellationHandle() {
+    //   this.isShowAppellationName = !this.isShowAppellationName
+    // },
+    // 鑾峰彇褰撳墠娌荤枟淇℃伅(鏁扮粍)
+    getCurTreatArr(ids) {
+      var arr = []
+      if (this.assignTreatList && this.assignTreatList.length) {
+        this.assignTreatList.forEach((o) => {
+          if (ids && ids.length) {
+            ids.forEach((_o) => {
+              if (_o === o.id) {
+                arr.push(o)
+              }
+            })
+          }
+        })
+        // 鍩烘湰涓嶄細鍑虹幇杩欑鎯呭喌锛屼絾鏄互闃蹭竾涓�锛岃嫢鏈湴缂撳瓨id瀛樺湪锛屼絾瀵逛笉涓婂垪琛ㄥ垯缂撳瓨绗竴鏉℃暟鎹甶d
+        if (!arr.length) {
+          arr.push(this.assignTreatList[0])
+          this.curTreatIds = []
+          this.curTreatIds.push(this.assignTreatList[0].id)
+          this.setLocalCurTreatIds()
+        }
+      }
+      return arr
     },
     // 鑾峰彇褰撳墠娌荤枟淇℃伅
     gatCurTreatInfo() {
@@ -394,49 +382,95 @@
               roomNo: 'xx',
               status: 0 // 0绌洪棽 1浣跨敤 2浼戞伅 3鎵撴壂 4 鏁烽夯涓�
             },
-            assignTreatList: [{
-              startTime: '2023-12-08 00:00:00'
-            }],
+            assignTreatList: [
+              {
+                id: 'a111',
+                startTime: '2023-12-08 00:00:00',
+                userName: '榛勫槈鑽�',
+                gender: 1,
+                hempStatus: 2,
+                treatRoomStatus: 0,
+                ciq: '123',
+                adviserName: 'a鍚�',
+                aDoctorName: 'b鍚�',
+                aNurseName: 'c鍚�',
+                projectName: 'xxxxXXxxx',
+                userId: '111'
+              },
+              {
+                id: 'a222',
+                startTime: '2023-12-08 00:15:00',
+                userName: '鏉庡痉鍗�',
+                gender: 1,
+                hempStatus: 2,
+                treatRoomStatus: 0,
+                ciq: '456',
+                adviserName: 'd鍚�',
+                aDoctorName: 'e鍚�',
+                aNurseName: 'f鍚�',
+                projectName: 'xxxxXXxxx',
+                userId: '222'
+              },
+              {
+                id: 'a333',
+                startTime: '2023-12-08 00:20:00',
+                userName: '鐚涘鍙�',
+                gender: 2,
+                hempStatus: 2,
+                treatRoomStatus: 0,
+                ciq: '789',
+                adviserName: 'g鍚�',
+                aDoctorName: 'h鍚�',
+                aNurseName: 'i鍚�',
+                projectName: 'xxxxXXxxx',
+                userId: '333'
+              }
+            ],
             occupyInfo: null
           }
         }
       }).then((res) => {
         if (res && res.data) {
-          // 娌荤枟鏃堕棿澶勭悊
           if (res.data.assignTreatList && res.data.assignTreatList.length) {
             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] : '濂冲+'}`
+          if (res.data.occupyInfo && res.data.occupyInfo.length) {
+            res.data.occupyInfo.forEach((o) => {
+              // 娌荤枟鏃堕棿澶勭悊
+              var st = (o.startTime).split(' ')[1].split(':')
+              o.startTime = `${st[0]}:${st[1]}`
+              // 绉拌皳澶勭悊
+              o.appellationName = o.userName[0] + `${o.gender ? ['濂冲+', '鍏堢敓', '濂冲+'][o.gender] : '濂冲+'}`
+            })
           }
-          // 宸叉湁鍗犵敤鐨勶紝鏇存敼宸蹭娇鐢ㄩ粯璁ゅ浜虹殑鐘舵��
-          res.data.occupyInfo && (isUseDefaultChg = 1)
-          res.data.occupyInfo && (isUseDefault = 1)
-          // 鍗犵敤淇℃伅娌荤枟鏃堕棿澶勭悊
-          if (res.data.occupyInfo && res.data.occupyInfo.startTime) {
-            var ost = (res.data.occupyInfo.startTime).split(' ')[1].split(':')
-            res.data.occupyInfo.startTime = `${ost[0]}:${ost[1]}`
-          }
+          res.data.occupyInfo && res.data.occupyInfo.length && (isUseDefaultChg = 1)
+          res.data.occupyInfo && res.data.occupyInfo.length && (isUseDefault = 1)
           for (const key in res.data) {
             this[key] = res.data[key]
           }
         }
         // 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()
-            }
+          console.log('================================>鍒ゆ柇鍗搁夯寮圭獥', this.occupyInfoViewArr, 'offNarcosisIds:', this.offNarcosisIds)
+          if (this.occupyInfoViewArr && this.occupyInfoViewArr.length && this.offNarcosisIds) {
+            this.occupyInfoViewArr.forEach((o) => {
+              // 鍒ゆ柇鏀圭敤鎴锋槸鍚﹀脊鍑鸿繃鍗搁夯寮圭獥
+              var flag
+              flag = this.offNarcosisIds.find((_o) => { return _o === o.userId })
+              // 鐘舵��2涓旀病鏈夊脊鍑鸿繃寮圭獥
+              if (o.hempStatus === 2 && !flag) {
+                // 寮瑰嚭瀵瑰簲id寮圭獥
+                this.showOffNarcosisNoticeMulti(o.id)
+              }
+            })
           }
           clearTimeout(offNarcosisTimer)
           offNarcosisTimer = null
@@ -465,20 +499,29 @@
     // 鏈湁瀹夋帓鐩存帴鐘舵�佸彉鏇�
     statusChg(e) {
       var { tx, status } = e.currentTarget.dataset
-      var { occupyInfoView, roomInfo } = this
-      console.log(tx, status)
+      // var { occupyInfoView, roomInfo } = this
+      console.log('==========================>娌℃湁瀹夋帓鏃舵病鏈夊浜虹洿鎺ュ彉鏇寸姸鎬�', tx, status)
       // if (roomInfo && status * 1 == roomInfo.status) {
       //   return
       // }
-      this.changeStatusFn(occupyInfoView, status, () => {
+      this.changeStatusFn({}, status, () => {
         this.getData()
       })
     },
-    // 鎸夋祦绋嬭缃埧闂寸姸鎬�
+    // 娌℃湁瀹汉鐨勬寜娴佺▼璁剧疆鎴块棿鐘舵��
     setStatus(tx, status) {
-      var { occupyInfoView, roomInfo } = this
-      console.log(tx, status)
-      this.changeStatusFn(occupyInfoView, status, () => {
+      // var { occupyInfoView, roomInfo } = this
+      console.log('============================>鏈夊畨鎺掓病鏈夊浜鸿缃埧闂寸姸鎬�', tx, status)
+      this.changeStatusFn({}, status, () => {
+        // 鍒锋柊璇︽儏
+        this.getData()
+      })
+    },
+    // 鎸夋祦绋嬭缃埧闂寸姸鎬侊紙缁勪欢锛�
+    setComStatus(opt) {
+      // var { occupyInfoView, roomInfo } = this
+      console.log('============================>瀹汉淇℃伅缁勪欢鐐瑰嚮鏇存敼鐘舵��', opt.tx, opt.status, opt.item)
+      this.changeStatusFn(opt.item, opt.status, () => {
         // 鍒锋柊璇︽儏
         this.getData()
       })
@@ -486,16 +529,62 @@
     // 鏀瑰彉鎴块棿鐘舵�佸紓姝ユ柟娉�
     changeStatusFn(item = {}, status, cb) {
       var params = {}
-      // 鏇存敼鐨勭姸鎬�
-      params.status = status * 1
       // 鎴块棿id
       if (this.id) {
         params.shopRoomId = this.id
       }
-      // 娌荤枟璁板綍id
+      // 娌荤枟璁板綍id this.curTreatIds occupyInfoViewArr
+      // 1.浣跨敤涓�/鏁烽夯涓� 鏁烽夯涓� 2 浜哄崰鐢�
+      // 2.浣跨敤涓�/浣跨敤涓� 浣跨敤涓� 2 浜哄崰鐢�
+      // 3.浣跨敤涓�/浼戞伅涓�  浣跨敤涓� 1 浜哄崰鐢�
+      var arr = JSON.parse(JSON.stringify(this.occupyInfoViewArr))
       if (item && item.id) {
-        params.treatRecordId = item.id
+        if (arr && arr.length) {
+          arr.forEach((o) => {
+            if (o.id === item.id) {
+              o.treatRoomStatus = status * 1
+            }
+          })
+          // 鏄惁鏈変汉浣跨敤涓�
+          var status_1 = arr.find((o) => { return o.treatRoomStatus === 1 })
+          // 鏄惁鏈夊浜轰紤鎭�
+          var status_2 = arr.find((o) => { return o.treatRoomStatus === 2 })
+          // 鏄惁鏈変汉鎵撴壂涓�
+          var status_3 = arr.find((o) => { return o.treatRoomStatus === 3 })
+          // 鏄惁鏈変汉鏁烽夯
+          var status_4 = arr.find((o) => { return o.treatRoomStatus === 4 })
+          // 鏇存敼鐨勭姸鎬� 鏁烽夯涓� > 浣跨敤涓� > 浼戞伅涓� > 寰呮墦鎵�
+          params.status = status * 1
+          if (status_3) {
+            params.status = 3
+          }
+          if (status_2) {
+            params.status = 2
+          }
+          if (status_1) {
+            params.status = 1
+          }
+          if (status_4) {
+            params.status = 4
+          }
+        }
+
+        // 褰撳墠閫夋嫨瀹㈡埛鐨勬暟缁勫垹闄ゅ鎴�
+        this.occupyInfoViewArrDataHandle('cancel', item)
+      } else {
+        // 鏇存敼鐨勭姸鎬�
+        params.status = status * 1
       }
+      params.treatRoomList = []
+      if (arr && arr.length) {
+        arr.forEach((o) => {
+          params.treatRoomList.push({
+            treatRecordId: o.id,
+            status: o.treatRoomStatus
+          })
+        })
+      }
+
       Req.http.post({
         url: 'guide/treat/screen/room/status/update',
         data: params,
@@ -511,19 +600,13 @@
           console.log('鍦ㄥ凡鏈夐粯璁ゅ浜虹殑鎯呭喌涓嬶紝鏀瑰彉鐘舵�佹洿鏀规爣璇�')
           isUseDefaultChg = 1
         }
-        // 褰撳墠閫変腑鐨勭敤鎴锋埧闂存洿鏀逛簡鐘舵�侊紝宸茬粡鎴愪负鍗犵敤鏃讹紝娓呴櫎閫変腑鍖荤枟璁板綍id
-        if (item && item.id && item.id === this.curTreatId) {
-          console.log('褰撳墠閫変腑鐨勭敤鎴锋埧闂存洿鏀逛簡鐘舵�侊紝宸茬粡鎴愪负鍗犵敤鏃讹紝娓呴櫎閫変腑鍖荤枟璁板綍id')
-          localStorage.removeItem('curTreatId')
-          this.curTreatId = ''
-        }
         // 鍙鏇存敼涓虹┖闂插氨閲嶇疆鍙傛暟
-        if (status === 0) {
-          console.log('鏇存敼涓虹┖闂�')
+        if (params.status === 0) {
+          console.log('鎴块棿鏇存敼涓虹┖闂�')
           // 閲嶇疆榛樿宸蹭娇鐢ㄥ浜虹殑鍙傛暟
           isUseDefault = false
           isUseDefaultChg = 0
-          this.isShowAppellationName = true
+          // this.isShowAppellationName = true
         }
         // console.log('8888888888888888888888888888888888', res)
         cb && cb()
@@ -536,14 +619,18 @@
     },
     // 鏇存敼鎴块棿鐘舵�侊紙閲嶇疆鐘舵�佺殑鏇存敼鏂规硶锛�
     changeStatus(opt) {
-      var { occupyInfoView, roomInfo } = this
-      console.log(opt.statusTx, opt.status)
+      // var { occupyInfoView, roomInfo } = this
+      console.log('============================>閲嶇疆鎴块棿鐘舵��', opt.statusTx, opt.status)
       // if (roomInfo && opt.status * 1 == roomInfo.status) {
       //   return
       // }
       // 娓呴櫎閫変腑鍖荤枟璁板綍id
-      localStorage.removeItem('curTreatId')
-      this.curTreatId = ''
+      // localStorage.removeItem('curTreatId')
+      // this.curTreatId = ''
+      // 娓呴櫎閫変腑鍖荤枟璁板綍ids鏁扮粍
+      localStorage.removeItem('curTreatIds')
+      this.curTreatIds = ''
+      // 鍙樻洿鎴块棿鐘舵�佹柟娉�
       this.changeStatusFn({}, opt.status, () => {
         // 鍒锋柊璇︽儏
         this.getData()
@@ -568,19 +655,77 @@
     },
     // 閫夋嫨瀹㈡埛纭畾
     selectCustomerSubmit(opt) {
-      console.log('submit', opt)
+      console.log('=======================>submit', opt)
       // 纭畾閫夋嫨鐨勭敤鎴凤紝璁板綍id
-      localStorage.setItem('curTreatId', opt.id)
-      this.curTreatId = opt.id
+      // localStorage.setItem('curTreatId', opt.id)
+      // this.curTreatId = opt.id
+      // 褰撳墠閫夋嫨瀹㈡埛鐨勬暟缁勫鍔犲鎴�
+      this.occupyInfoViewArrDataHandle('add', opt)
       // 閲嶇疆鎴块棿鐘舵��
-      if (this.roomInfo && this.roomInfo.status) {
-        this.changeStatusFn({}, 0, () => {
-          // 鍒锋柊璇︽儏
-          this.getData()
-        })
-      }
+      // if (this.roomInfo) {
+      //   this.changeStatusFn({}, 0, () => {
+      //     // 鍒锋柊璇︽儏
+      //     this.getData()
+      //   })
+      // }
       // 鍏抽棴寮圭獥
       this.$refs['XioCustomerSelect'].hideDialog()
+    },
+    // 鍒犻櫎宸查�夋嫨鐨勫鎴锋暟鎹�
+    cancelCustomerItem(item) {
+      // 褰撳墠閫夋嫨瀹㈡埛鐨勬暟缁勫垹闄ゅ鎴�
+      this.occupyInfoViewArrDataHandle('cancel', item, true)
+    },
+    // 褰撳墠閫夋嫨瀹㈡埛鐨勬暟缁勫鍒犲鐞嗘柟娉�
+    occupyInfoViewArrDataHandle(key, item, isReset) {
+      // 澧炲姞锛堥�夋嫨锛�
+      if (key === 'add') {
+        // id鏁扮粍澶勭悊
+        if (this.curTreatIds && this.curTreatIds.length) {
+          // 褰撳墠娌荤枟璁板綍id娌℃湁鎵�閫夌敤鎴风殑娌荤枟璁板綍id
+          var flag = this.curTreatIds.find((o) => { return o === item.id })
+          if (!flag) {
+            this.curTreatIds.push(item.id)
+          }
+          // 缂撳瓨
+          this.setLocalCurTreatIds()
+        }
+        if (this.curTreatIds && !this.curTreatIds.length) {
+          this.curTreatIds.push(item.id)
+          // 缂撳瓨
+          this.setLocalCurTreatIds()
+        }
+        // 鏁扮粍鏁版嵁澶勭悊
+        // if (this.occupyInfoViewArr && this.occupyInfoViewArr.length) {
+        //   this.occupyInfoViewArr.push(item)
+        // }
+      }
+      // 鍒犻櫎
+      if (key === 'cancel') {
+        // id鏁扮粍澶勭悊
+        if (this.curTreatIds && this.curTreatIds.length) {
+          // 娣卞鍒�
+          var ids = JSON.parse(JSON.stringify(this.curTreatIds))
+          this.curTreatIds = ids.filter((o) => { return o !== item.id })
+          // 缂撳瓨
+          this.setLocalCurTreatIds()
+          // 鍒锋柊
+          if (isReset) {
+            // 鍒锋柊璇︽儏
+            this.getData()
+          }
+        }
+        // 鏁扮粍鏁版嵁澶勭悊
+        // if (this.occupyInfoViewArr && this.occupyInfoViewArr.length) {
+        //   // 娣卞鍒�
+        //   var arr = JSON.parse(JSON.stringify(this.occupyInfoViewArr))
+        //   this.occupyInfoViewArr = arr.filter((o) => { o.id !== item.id })
+        // }
+      }
+    },
+    // 璁剧疆鏈湴缂撳瓨ids鏁扮粍
+    setLocalCurTreatIds() {
+      localStorage.setItem('curTreatIds', JSON.stringify(this.curTreatIds))
     }
   }
 }
@@ -597,6 +742,16 @@
 .page{
   overflow: auto;
 }
+.page_header_placeholer {
+  height: 100px;
+}
+.page_header {
+  position: fixed;
+  top: 0;
+  left: 23px;
+  right: 23px;
+  z-index: 1;
+}
 .page_header .reset_btn {
   width: 200px;
   height: 60px;
@@ -611,6 +766,9 @@
   border: 0;
   margin-left: 20px;
 }
+.page_container.over-width {
+  width: 150%;
+}
 .page_container .main {
   /* height: 100%; */
   border-radius: 10px;
@@ -619,6 +777,25 @@
   font-size: 14px;
   /* text-align: center; */
   font-family: Roboto;
+  position: relative;
+}
+.page_container.over-width .main {
+  margin-right: 50px;
+}
+.page_container.over-width .main:last-child {
+  margin-right: 0;
+}
+.page_container .main .cancel_icon_block {
+  width: 50px;
+  height: 50px;
+  position: absolute;
+  top: 12px;
+  right: 11px;
+  z-index: 1;
+}
+.page_container .main .cancel_icon_block .img {
+  width: 100%;
+  height: 100%;
 }
 .page_container .main .room_title {
   line-height: 50px;
@@ -788,133 +965,30 @@
   margin-left: 30px;
   /* height: 100%; */
 }
+.page_container.over-width .right_room_info {
+  margin-bottom: 58px;
+}
+.page_container.over-width .right_room_info:last-child {
+  margin-bottom: 0;
+}
 .page_container .right_block {
   width: 100%;
   height: 100%;
 }
-.page_container .right .guest_title {
-  height: 60px;
-  line-height: 28px;
-  border-radius: 10px 10px 0px 0px;
-  background-color: rgba(255,255,255,1);
-  color: rgba(34,123,235,1);
-  font-size: 20px;
-  text-align: center;
-  font-family: Roboto;
-  font-weight: bold;
-}
-.page_container .right .guest_block {
-  background-color: #fff;
-  overflow: auto;
-}
-.page_container .right .guest_list {
-  background-color: #fff;
-  padding-bottom: 23px;
-}
-.page_container .right .guest_list__row {
-  min-height: 75px;
-  background-color: rgba(34,123,235,0.1);
-}
-.page_container .right .guest_list__row:nth-child(2n) {
-  background-color: #fff;
-}
-.page_container .right .guest_list__row.rowtip {
-  background-color: #fff;
-  line-height: 30px;
-  color: rgba(0,0,0,.5);
-  font-size: 22px;
-}
-.page_container .right .guest_list__td {}
-.page_container .right .guest_list__td .tx {
-  line-height: 30px;
-  color: rgba(16,16,16,1);
-  font-size: 22px;
-  text-align: center;
-  font-family: PingFangSC-regular;
-  box-sizing: border-box;
-  padding: 0 5px;
-}
-.page_container .right .guest_list__td .icon {
-  width: 20px;
-  height: 20px;
-  display: block;
-}
-.page_container .right .guest_list__td .icon .img {
+.page_container .right_block .guest_box {
+  margin-top: 0;
   width: 100%;
   height: 100%;
-}
-.page_container .right .guest_list__td:nth-child(1) {
-  width: 19.54%;
-}
-.page_container .right .guest_list__td:nth-child(2) {
-  width: 21.86%;
-}
-.page_container .right .guest_list__td:nth-child(3) {
-  width: 46.06%;
-}
-.page_container .right .guest_list__td:nth-child(4) {
-  width: 12.54%;
-}
-.page_container .right .room_info {
-  width: 100%;
-  border-radius: 10px;
-  background-color: rgba(255,255,255,0.3);
-}
-.page_container .right .room_info .staff_box {
-  margin-top: 30px;
-}
-.page_container .right .room_info .staff_box_item {
-  height: 180px;
-}
-.page_container .right .room_info .staff_box_item:nth-child(1) {
-  background-color: rgba(255,255,255,0.1);
-}
-.page_container .right .room_info .staff_box_item:nth-child(2) {
-  background-color: rgba(255,255,255,0.3);
-  margin: 0 10px;
-}
-.page_container .right .room_info .staff_box_item:nth-child(3) {
-  background-color: rgba(255,255,255,0.1);
-}
-.page_container .right .room_info .staff_box_item__title {
-  line-height: 28px;
-  color: rgba(255,255,255,1);
-  font-size: 20px;
-  text-align: center;
-  font-family: PingFangSC-regular;
-}
-.page_container .right .room_info .staff_box_item__name {
-  line-height: 56px;
-  color: rgba(255,255,255,1);
-  font-size: 40px;
-  text-align: center;
-  font-family: PingFangSC-medium;
-  margin-top: 5px;
-}
-.page_container .right .room_info .room_info_project {
-  padding: 36px 20px 20px 20px;
-  height: 138px;
-  box-sizing: border-box;
-  overflow: hidden;
-}
-.page_container .right .room_info .room_info_project_block {
-  box-sizing: border-box;
-  width: 100%;
-  height: 100%;
-  overflow: auto;
-}
-.page_container .right .room_info .room_info_project .tx {
-  line-height: 39px;
-  color: rgba(255,255,255,1);
-  font-size: 28px;
-  text-align: center;
-  font-family: PingFangSC-regular;
-}
-.page_container .right .guest_box {
-  margin-top: 65px;
-  width: 100%;
-  height: 345px;
-  background-color: #fff;
-  overflow: hidden;
+  -webkit-flex-flow: column;
+  flex-flow: column;
+  display: box;
+  display: -webkit-box;      /* OLD - iOS 6-, Safari 3.1-6 */
+  display: -moz-box;         /* OLD - Firefox 19- (buggy but mostly works) */
+  display: -ms-flexbox;      /* TWEENER - IE 10 */
+  display: -webkit-flex;     /* NEW - Chrome */
+  display: -moz-flex;
+  display: -ms-flex;
+  display: -o-flex;
+  display: flex;
 }
 </style>
diff --git a/src/pages/room/list.vue b/src/pages/room/list.vue
index 04ff80f..77d4c2d 100644
--- a/src/pages/room/list.vue
+++ b/src/pages/room/list.vue
@@ -162,7 +162,7 @@
     selectRoom(item = {}) {
       // console.log(this.$router.options.routes)
       // this.$router.options.routes
-      localStorage.removeItem('curTreatId')
+      localStorage.removeItem('curTreatIds')
       if (this.$router && this.$router.options && this.$router.options.routes) {
         this.$router.options.routes.forEach((o) => {
           if (o.name === 'roomDetail') {
diff --git a/src/utils/jun_login.js b/src/utils/jun_login.js
index 7eef385..eff9513 100644
--- a/src/utils/jun_login.js
+++ b/src/utils/jun_login.js
@@ -9,35 +9,35 @@
 import Config from '../config'
 // import { Message } from 'element-ui'
 
-let config = {
-	// 鐧诲綍璇锋眰鎺ュ彛閾炬帴
-	url: 'weixin!ajaxGetInfoByCode',
-	// 2灏忔椂杩囨湡
-	expire: 7.2e6,
+const config = {
+  // 鐧诲綍璇锋眰鎺ュ彛閾炬帴
+  url: 'weixin!ajaxGetInfoByCode',
+  // 2灏忔椂杩囨湡
+  expire: 7.2e6
 }
 
 /**
  * 妫�鏌ョ櫥褰曠紦瀛樿繃鏈燂紝榛樿涓嶈繃鏈�
  * @param {object} we_session 缂撳瓨瀵硅薄
  */
-function checkExpire(we_session){
-	// if ((we_session && Date.now() >= we_session.expire) || !we_session) {
-	// 	// 鍒犻櫎store缂撳瓨
-	//  Store.commit('unLogined')
-	// 	// wx.removeStorageSync('we_session')
-	// 	localStorage.removeItem('we_session')
-	// 	return true
-	// }
-	return false
+function checkExpire(we_session) {
+  // if ((we_session && Date.now() >= we_session.expire) || !we_session) {
+  // 	// 鍒犻櫎store缂撳瓨
+  //  Store.commit('unLogined')
+  // 	// wx.removeStorageSync('we_session')
+  // 	localStorage.removeItem('we_session')
+  // 	return true
+  // }
+  return false
 }
 
 /**
  * 杩涘叆寰俊闀块摼锛屽彲鑾峰彇code
  */
-function toLongUrl () {
-	// fn.urlReplace(Config.codeUrl)
-	// location.href = Config.codeUrl
-	location.href = Config.createCodeUrl()
+function toLongUrl() {
+  // fn.urlReplace(Config.codeUrl)
+  // location.href = Config.codeUrl
+  location.href = Config.createCodeUrl()
 }
 
 /**
@@ -46,80 +46,76 @@
  * @param {boolean}  option.force 鏄惁寮哄埗閲嶆柊鐧诲綍
  * @param {function} option.callback 鐧诲綍鎴愬姛鍚庡洖璋�
  */
-function checkLogin(option={}){
-	loginReq(option).then(()=>{
-		if (typeof option.callback === 'function') {
-			option.callback()
-		}
-	})
+function checkLogin(option = {}) {
+  loginReq(option).then(() => {
+    if (typeof option.callback === 'function') {
+      option.callback()
+    }
+  })
 }
 
 /**
  * 鐧诲綍璇锋眰
- * @param {object} option 
+ * @param {object} option
  * @param {object} option.data 璇锋眰鍙傛暟
  */
-function loginReq(option){
-	
-	if (Config.ismock || Config.istest) {
-		option.data.code = '011h5c000ySdaK1lbw000ubdtm2h5c00'
-	}
+function loginReq(option) {
+  if (Config.ismock || Config.istest) {
+    option.data.code = '011h5c000ySdaK1lbw000ubdtm2h5c00'
+  }
 
-	return new Promise((resolve, reject)=>{
-		// 鍓嶇疆鍒ゆ柇
-		let userData = Store.getters.getUserData
-		if (userData.key) {
-			resolve(userData)
-			return
-		}
+  return new Promise((resolve, reject) => {
+    // 鍓嶇疆鍒ゆ柇
+    const userData = Store.getters.getUserData
+    if (userData.key) {
+      resolve(userData)
+      return
+    }
 
-		if (!option || !option.data) {
-			reject()
-			console.error('璋冪敤loginReq锛岀己澶� option')
-			return
-		}
-		if (!option.data.code) {
-			console.error('璋冪敤loginReq锛岀己澶� code')
-			reject()
-			return
-		}
-		Req.http3.post({
-			url: config.url,
-			data: option.data
-		}).then((res)=>{
-			// 缂撳瓨key鍊�
-			fn.setLocalStorage('we_session', {
-				we_session: res.inf.key,
-				expire: Date.now() + config.expire
-			})
-			// 缂撳瓨鐢ㄦ埛鏁版嵁
-			Store.commit('setUserData', res.inf)
-			console.log(res.inf)
+    if (!option || !option.data) {
+      reject()
+      console.error('璋冪敤loginReq锛岀己澶� option')
+      return
+    }
+    if (!option.data.code) {
+      console.error('璋冪敤loginReq锛岀己澶� code')
+      reject()
+      return
+    }
+    Req.http3.post({
+      url: config.url,
+      data: option.data
+    }).then((res) => {
+      // 缂撳瓨key鍊�
+      fn.setLocalStorage('we_session', {
+        we_session: res.inf.key,
+        expire: Date.now() + config.expire
+      })
+      // 缂撳瓨鐢ㄦ埛鏁版嵁
+      Store.commit('setUserData', res.inf)
+      console.log(res.inf)
 
-			// if (res.inf.name) {
-			// 	Store.commit('setNickName', res.inf.name)
-			// }
-	
-			// 澶勭悊鐧诲綍瀹屾垚 store
-			// getUserInfo().then(_res=>{
-			// 	// Store.commit('setLogined', _res.inf)
-			// 	resolve(res)
-			// })
-			// Store.commit('setLogined')
+      // if (res.inf.name) {
+      // 	Store.commit('setNickName', res.inf.name)
+      // }
 
-			resolve(res)
-			
-		}).catch((res)=>{
-			console.log(res)
-			reject(res)
-		})
-	})
+      // 澶勭悊鐧诲綍瀹屾垚 store
+      // getUserInfo().then(_res=>{
+      // 	// Store.commit('setLogined', _res.inf)
+      // 	resolve(res)
+      // })
+      // Store.commit('setLogined')
+
+      resolve(res)
+    }).catch((res) => {
+      console.log(res)
+      reject(res)
+    })
+  })
 }
 
-
-
 export default {
-	checkLogin,
-	loginReq,
-	toLongUrl
-}
\ No newline at end of file
+  checkLogin,
+  loginReq,
+  toLongUrl
+}
diff --git a/static/imgs/cancel.png b/static/imgs/cancel.png
new file mode 100644
index 0000000..ee7220e
--- /dev/null
+++ b/static/imgs/cancel.png
Binary files differ

--
Gitblit v1.8.0