DeviceMonitor.vue 4.39 KB
<template>
  <el-container>
    <el-aside width="225px">
      <el-card class="box-card">
        <div slot="header" class="clearfix">
          <span>概览</span>
        </div>
        <div class="container">
          <div v-for="(item, index) in overyviewsList" :key="item.code" class="text item">
            <div :style="index==0?'background-color:#1E9FFF':index==1?'background-color:#009688':index==2?'background-color:#FFB800':'background-color:#1E9FFF'">
              {{item.name }}
              <br/>
              <span>{{item.description }}</span>
            </div>
          </div>
        </div>
      </el-card>
      <el-card class="box-card" >
        <div slot="header" class="clearfix">
          <span>设备概览</span>
        </div>
        <el-divider v-if="srmList.length > 0" content-position="center">堆垛机</el-divider>
        <el-tag
          v-for="item in srmList"
          :key="item.name"
          type="warning"
          effect="dark"
          class="tag-item">
          {{ item.name }}
        </el-tag>
        <el-divider v-if="stationList.length > 0" content-position="center">站台</el-divider>
        <el-tag
          v-for="item in stationList"
          :key="item.name"
          type="warning"
          effect="dark"
          class="tag-item">
          {{ item.name }}
        </el-tag>
        <el-divider v-if="rgvList.length > 0" content-position="center">RGV</el-divider>
        <el-tag
          v-for="item in rgvList"
          :key="item.name"
          type="warning"
          effect="dark"
          class="tag-item">
          {{ item.name }}
        </el-tag>
        <el-divider v-if="crgvList.length > 0" content-position="center">CRGV</el-divider>
        <el-tag
          v-for="item in crgvList"
          :key="item.name"
          type="warning"
          effect="dark"
          class="tag-item">
          {{ item.name }}
        </el-tag>
      </el-card>
    </el-aside>
    <el-main >
      <map-module />
    </el-main>
  </el-container>
</template>

<script>
import MapModule from '@/components/MapModule';
export default {
  name: "DeviceMonitor",
  components: {
    MapModule
  },
  data() {
    return {
      //详情列表
      overyviewsList: [],
      //堆垛机列表
      srmList: [],
      //站台列表
      stationList: [],
      //rgv列表
      rgvList: [],
      //crgv列表
      crgvList: [],      
      interval: null,
      isCurrentTab: false,
      isOpenServer: false,
    };
  },
  props: {
    // 定义接收的 startDeal 变量
    startDeal: {
      type: Boolean,
      default: false,
    },
  },
  watch: {
    // 监听 startDeal 变量的变化
    startDeal(newValue, oldValue) {
      // console.log('处理状态发生变化:', newValue);
      this.isOpenServer = newValue;
      if(this.isCurrentTab){
        if(newValue){
          this.start();
        }else{
          this.stop();
        }
      }
    },
  },
  mounted() {
    // console.log(this.$dict);

  },
  methods: {
    //开始刷新数据
    start(){
      this.isCurrentTab = true;
      if(this.isOpenServer) {
        this.srmList = window.srmData;
        this.rgvList = window.rgvData;
        console.log(window.srmData)
        
        // getRGVInfo().then(response => {
        //   this.rgvList = response.data;
        // });
        // getCRGVInfo().then(response => {
        //   this.crgvList = response.data;
        // });
        // this.interval = setInterval(() => {
        //   getOverviews().then(response => {
        //     // console.log(response);
        //     this.overyviewsList = response.data;
        //   });
        //   getSRMInfo().then(response => {
        //     this.srmList = response.data;
        //   });
        //   getStationMonitorInfo().then(response => {
        //     this.stationList = response.data;
        //   });
        // }, 3000)
      };
    },
    //停止刷新数据
    stop(){
      this.isCurrentTab = false;
      clearInterval(this.interval)
    }
  },
};
</script>

<style lang="scss" scoped>
  .container {
      width: 100%;
  }

  .text {
    font-size: 16px;
    color:white;
  }

  .text span {
    font-size: 20px;
    font-weight: bolder;
  }

  .item {
    border: 1px black solid;
    text-align: center;
    width: 100%;
    line-height: 3vh;
    margin: 5px 0px;
  }

  .clearfix {
    height: 14px;
    font-size: 14px;
    color: #409EFF;
  }

  .tag-item {
    margin: 0px 5px 5px 0px;
  }
</style>