Newer
Older
gasAlarmH5 / src / views / user / device / index.vue
liyaguang on 14 Sep 2023 3 KB fix(*): 添加isAdmin参数
<!-- 用户-我的设备 -->
<template>
    <NavBar title="我的设备" />
    <div class="container">
        <div class="device" v-for="item,index in deviceList" ::key="item" @click="detail(item)">
          <img class="img" src="../../../assets/images/device.png" width="80" height="100">
          <p class="title">可燃气体探测器{{ index +1 }}</p>
          <p class="title" style="font-size: 14px;">{{ item.devCode }}</p>
          <p class="status" :style="`color:${item.status === '报警' ? 'F5193E': ''}`">{{ item.status }}</p>
          <icon v-if="item.status === '离线'" class="icon" name="link-unlink" />
        </div>
    </div>
    <t-back-top v-show="backTopVisible" text="顶部" theme="round" />
  </template>
  <script lang="ts" name="Home" setup>
  import { useRouter } from "vue-router";
  import NavBar from "../../../components/navBar/navBar.vue";
  import { getUserPhone, getUserDevice } from '../../../api/user'
  import { Icon } from 'tdesign-icons-vue-next';
  const $router = useRouter(); // 路由实例
  const $route = useRoute()
  const backTopVisible = ref(false); // 回到顶部显隐
  // 用户手机号
  const phone = ref('')
  phone.value = sessionStorage.getItem('gas-user-phone') ? sessionStorage.getItem('gas-user-phone') as string : ''
  // 监听页面滚动
  window.onscroll = function () {
    if (window.scrollY > 200) {
      //scrollY距离顶部的距离
      backTopVisible.value = true;
    } else {
      backTopVisible.value = false;
    }
  };
  
  
// 查看设备详情
const detail = (item: any) => {
    $router.push({
        path: item.status === '报警' ? '/monitor-alarm' : '/monitor',
        query:{
          devCode: item.devCode
        }
    })
}
// 获取用户设备列表
const deviceList = ref()
const getDevice = () => {
  getUserDevice({
    phone:phone.value,
    // phone: '13879798637',
    pageNo:1,
    size:1000,
  }).then(res => {
    deviceList.value = res.data.records
  })
}
// 获取用户手机号
const getPhone = () => {
  // 获取code
  const code = $route.query.code
  console.log(code, 'code')
  getUserPhone({code,isAdmin:false}).then(res => {
    phone.value = res.data
    console.log(res.data, '用户手机号')
    sessionStorage.setItem('gas-user-phone', phone.value)
    // 获取设备列表
    getDevice()
  })
}
  onMounted(() => {
    if(phone.value) {
    //  获取设备列表
    getDevice()
    }
    else {
       // 获取用户手机号并且获取设备列表
        getPhone()
    }
  });
  </script>
  <style lang="scss" scoped>
  .container{
    padding: 20px;
    padding-top:58px;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    
    .device{
        margin-top: 10px;
        padding: 20px;
        background-color: #fff;
        border-radius: 10px;
        width: 38%;
        position: relative;
        .title {
            font-size: 18px;
            font-weight: 700;
            margin: 10px 0;
            overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
        }
        .status {
            font-size: 18px;
        }
        .icon{
            position: absolute;
            top:10px;
            right: 20px;
            color: #ccc;
            width: 24px;
            height: 24px;
        }
    }
  }
  </style>