jazz
2023-12-13 d3f0ff6001c34c9ac37e9e776f090f5a696a1361
src/pages/room/list.vue
@@ -1,12 +1,21 @@
<!--room-list.vue-->
<template>
  <div class="page">
  <div class="page flex flex-col">
    <div class="page_header flex flex-ver">
      <div class="left flex flex-ver" @click="back">
        <img class="page_logo_1" src="../../assets/img/logo_1.png">
        <img class="page_logo_2" src="../../assets/img/logo_2.png">
      <div class="left flex flex-ver" @click="resetPage">
        <div class="page_logo_1">
          <img class="img" src="static/imgs/logo_1.png">
        </div>
        <div class="page_logo_2">
          <img class="img" src="static/imgs/logo_2.png">
        </div>
      </div>
      <div class="right flex-1 flex flex-jcfe flex-ver">
        <div class="page_choose_shop">
          <el-select v-model="shopId" placeholder="请选择" style="width:400px;" clearable @change="getRoomList">
            <el-option v-for="item in shopList" :key="item.id" :label="item.name" :value="item.id" />
          </el-select>
        </div>
        <div class="page_date">
          <div class="page_week">{{ timeObj.week }}</div>
          <div class="page_day">{{ timeObj.date }}</div>
@@ -15,13 +24,17 @@
        <!-- <div class="page_time">{{ timeObj.time }}</div> -->
      </div>
    </div>
    <div class="page_container">
      <div class="list_container flex flex-col">
    <div class="page_container flex-1 h1 flex flex-col">
      <div class="list_container h1 flex-1 flex flex-col">
        <div class="list_container__title">请选择房间</div>
        <div class="list_block flex-1">
          <div class="list flex flex-ver flex-wrap">
        <div class="list_block flex-1 h1">
          <div v-if="list && list.length" class="list flex flex-ver flex-wrap">
            <!-- act -->
            <div v-for="(item, index) in list" :key="index" class="list__item flex flex-center" @click="selectRoom()">VIP诊疗室-1</div>
            <div v-for="(item, index) in list" :key="index" class="list__item flex flex-center" @click="selectRoom(item)">{{ item.roomNo }}</div>
          </div>
          <div v-if="!list || !list.length" class="list flex flex-center">
            <!-- act -->
            <div class="notip flex flex-center">暂无数据</div>
          </div>
        </div>
      </div>
@@ -31,20 +44,24 @@
<script>
// import Login from '../utils/jun_login.js'
import Req from '../../utils/jun_httpInstall' // http 请求
// import xioFn from './utils/xio_fn.js'
export default {
  name: 'RoomList',
  components: {},
  inject: ['noop'],
  data() {
    return {
      list: ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''],
      shopList: [],
      shopId: '',
      list: [],
      timeObj: {}// week:星期,date:年月日,timeMin:时分,time:时分秒,timeStamp:时间戳
    }
  },
  computed: {
  },
  activated() {},
  mounted() {
    console.log('roomList mounted')
    this.init()
@@ -54,7 +71,55 @@
  },
  methods: {
    init() {
      // 计时
      this.countGetTime(this, 'timeObj', 'list')
      this.getShopList()
      this.getRoomList()
    },
    // 刷新浏览器页面
    resetPage() {
      window.location.reload()
      // this.getRoomList()
    },
    // 获取门店列表
    getShopList() {
      var params = {}
      Req.http.post({
        url: 'guide/treat/screen/shop/list',
        data: params,
        header: { 'Content-Type': 'application/json' },
        mockData: {
          code: 100,
          msg: '',
          data: [{
            name: 'xx',
            id: 'xx'
          }]
        }
      }).then((res) => {
        this.shopList = res.data || []
      })
    },
    // 获取列表
    getRoomList() {
      var params = {}
      if (this.shopId) {
        params.shopId = this.shopId
      }
      Req.http.post({
        url: 'guide/treat/screen/room/list',
        data: params,
        header: { 'Content-Type': 'application/json' },
        mockData: {
          code: 100,
          msg: '',
          data: [{
            id: 'xx', roomNo: 'xx'
          }]
        }
      }).then((res) => {
        this.list = res.data || []
      })
    },
    // 返回
    back() {
@@ -62,21 +127,49 @@
      this.stopPollingAjaxFn('list')
      this.$router.go(-1)
    },
    // 跳转详情
    selectRoom(item = {}) {
      // console.log(this.$router.options.routes)
      // this.$router.options.routes
      localStorage.removeItem('curTreatId')
      if (this.$router && this.$router.options && this.$router.options.routes) {
        this.$router.options.routes.forEach((o) => {
          if (o.name === 'roomDetail') {
            o.meta && (o.meta.isPush = true)
          }
        })
      }
      this.$router.push({
        path: `./detail?id=${item.id || ''}`
        path: `./room/detail?id=${item.id || ''}`
      })
    }
  }
}
</script>
<style>
.page_choose_shop .el-input__inner {
  background-color: transparent;
  border: 0;
  line-height: 50px;
  color: rgba(255,255,255,1);
  font-size: 36px;
  text-align: right;
  padding-right: 40px;
}
.page_choose_shop .el-select .el-input .el-select__caret {
  font-size: 30px;
  color: #fff;
}
</style>
<style scoped>
/* .page_container {
  overflow: hidden;
} */
.list_container {
  width: 100%;
  height: 100%;
  background-color: #fff;
  border-radius: 10px;
  /* overflow: hidden; */
}
.list_container__title {
  line-height: 56px;
@@ -88,12 +181,10 @@
  /* font-weight: bold; */
}
.list_block {
  /* padding-right: 66px; */
  margin-bottom: 50px;
  overflow: auto;
}
.list_block .list {
  margin-bottom: 20px;
}
.list_block .list .list__item {
  padding: 40px 30px;
@@ -106,9 +197,18 @@
  line-height: 1;
  margin-left: 48px;
  margin-bottom: 30px;
  box-sizing: border-box;
  min-width: 280px;
  cursor: pointer;
}
.list_block .list .list__item.act {
  background-color: #5980FF;
  color: #fff;
}
.list_block .list .notip {
  color: rgba(0,0,0,.3);
  font-size: 40px;
  text-align: center;
  font-family: Roboto;
}
</style>