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