index.vue 3.4 KB
<template>
  <div>
    <div>
      <el-card shadow="always">
        <el-button type="success" @click="resume" size="small" icon="el-icon-video-play" :disabled="startDeal">开始处理</el-button>
        <el-button type="danger"  @click="pause" size="small" icon="el-icon-video-pause" :disabled="!startDeal">暂停处理</el-button>
        <el-divider direction="vertical"></el-divider>
        <el-tag :type="startDeal?'success':'info'" effect="dark">
        <i v-if="startDeal" class="el-icon-loading"></i>
        <i v-else="startDeal" class="el-icon-warning-outline"></i>
        {{startDeal==true?"运行中":"未运行"}}</el-tag>
        <el-divider direction="vertical"></el-divider>
        <el-switch
          v-model="autoSend"
          active-color="#13ce66"
          inactive-color="#909399"
          active-text="自动下发"
          @change="autoSendStatusChanged"
        >
        </el-switch>
      </el-card>
    </div>
    <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
      <el-tab-pane label="设备监控" name="first">
        <DeviceMonitor />
      </el-tab-pane>
      <el-tab-pane label="设备数据" name="second">
        <DeviceData />
      </el-tab-pane>
      <el-tab-pane label="站台数据" name="third">
        <StationData />
      </el-tab-pane>
      <el-tab-pane label="定时任务补偿" name="fourth">
        <TaskCompensation />
      </el-tab-pane>
    </el-tabs>
  </div>
</template>

<script>
import { getAutoSendStatus, getExecuteStatus, pause, resume } from "@/api/main";
import { mapGetters } from "vuex";
import DeviceData from "./components/DeviceData.vue"; // 设备数据组件
import DeviceMonitor from "./components/DeviceMonitor.vue"; // 设备监控组件
import StationData from "./components/StationData.vue"; // 站台数据组件
import TaskCompensation from "./components/TaskCompensation.vue"; // 定时任务补偿组件

export default {
  name: "mainPage",
  components: {
    DeviceMonitor,
    DeviceData,
    StationData,
    TaskCompensation,
  },
  data() {
    return {
      startDeal: false, // 开始处理中
      autoSend: false, // 是否自动下发
      activeName: "first" //默认显示
    }
  },
  computed: {
    ...mapGetters(["name"]),
  },
  mounted() {
    this.refreshExecuteStatus();
    this.refreshAutoSendStatus();
  },
  methods: {
    //开始处理
    resume() {
      resume().then(response => {
        this.refreshExecuteStatus();
      }).catch(err => {
        console.log(err)
      })
    },

    //暂停处理
    pause() {
      pause().then(response => {
        this.refreshExecuteStatus();
      }).catch(err => {
        console.log(err)
      })
    },
     
    //刷新执行状态
    refreshExecuteStatus(){
      getExecuteStatus().then(response => {
        this.startDeal=response.data.status=="Running";
      }).catch(err => {
        console.log(err)
      })
    },

    //刷新自动下发状态
    refreshAutoSendStatus() {
      //获取自动下发状态
      getAutoSendStatus().then(response => {
        this.autoSend = response.data;
      }).catch(err => {
        console.log(err);
      });
    },

    //自动下发状态改变事件
    autoSendStatusChanged(){

    },

    handleClick(tab, event) {
      console.log(tab, event);
    },
  },
};
</script>

<style lang="scss" scoped>
.main {
  &-container {
    margin: 30px;
  }
  &-text {
    font-size: 30px;
    line-height: 46px;
  }
}
</style>