minhang.vue 3.95 KB
<template>
  <div id="minhang" style="width: 100%;height: 100%; background-color: #FFFFFF; overflow: auto">
    <div class="page-header">
      <div class="page-title">
        <el-divider direction="vertical"></el-divider>
        设备列表
      </div>
    </div>
    <el-form :inline="true" ref="form">
      <el-form-item label="设备类型">
        <el-select v-model="filterOld" clearable placeholder="请选择" @change="handlerFilterChange">
          <el-option :label="'新设备'" :value="false">
          </el-option>
          <el-option :label="'老设备'" :value="true">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="在线情况">
        <el-select v-model="online" clearable placeholder="请选择" @change="handlerOnlineChange">
          <el-option :label="'在线'" :value="'在线'">
          </el-option>
          <el-option :label="'离线'" :value="'离线'">
          </el-option>
        </el-select>
      </el-form-item>
    </el-form>
    <el-container>
      <el-main style="background-color: #ffffff;">
        <el-table :data="deviceList" style="width: 100%" v-loading="loading">
          <el-table-column prop="vehicle" label="车载">
          </el-table-column>
          <el-table-column prop="deviceId" label="设备id">
          </el-table-column>
          <el-table-column prop="oldDevice" label="设备情况">
            <template slot-scope="scope">
              <el-tag v-if="scope.row.oldDevice" type="danger">老设备</el-tag>
              <el-tag v-else type="success">新设备</el-tag>
            </template>
          </el-table-column>
          <el-table-column prop="status" label="在线状态">
            <template slot-scope="scope">
              <!-- 标签 -->
              <el-tag v-if="scope.row.status == '在线'" type="success">在线</el-tag>
              <el-tag v-if="scope.row.status == '离线'" type="danger">离线</el-tag>
            </template>
          </el-table-column>
          <el-table-column fixed="right" label="操作" width="100">
            <template slot-scope="scope">
              <el-button @click="handleClick(scope.row)" type="text" size="small">通道</el-button>
            </template>
          </el-table-column>
        </el-table>
        <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="pageNo"
          :page-size="pageSize" layout="prev, pager, next, jumper" :total="total">
        </el-pagination>
      </el-main>
    </el-container>
  </div>
</template>

<script>
import MinhangService from "../service/MinhangService.js";
export default {
  name: 'minhang',
  data() {
    return {
      filterOld: null,
      online: null,
      loading: false,
      deviceList: [],
      pageNo: 1,
      pageSize: 10,
      total: 0,
      loading: false,
      minhangService: new MinhangService()
    };
  },
  created() {
    this.loading = true;
    this.handlerQueryList()
  },
  methods: {
    handlerQueryList() {
      this.loading = true;
      let params = {
        pageNo: this.pageNo,
        pageSize: this.pageSize,
        filterOld: this.filterOld,
        online: this.online
      };
      this.minhangService.getMinhangDeviceList(params, (res => {
        try {
          this.deviceList = res.data.list;
          this.total = res.data.total;
        } catch (error) {
          console.log(error);
          this.$message.error("获取设备列表失败");
        }
        this.loading = false;
      }))
    },
    handlerOnlineChange() {
      this.handlerQueryList();
    },
    handlerFilterChange() {
      this.handlerQueryList();
    },
    handleClick(val) {
      console.log(val);
      this.$router.push({
        path: `/minhang/deviceList/channel/${val.deviceId}`,
      })
    },
    handleSizeChange(val) {
      console.log("handleSizeChange", val);
    },
    handleCurrentChange(val) {
      this.pageNo = val;
      this.handlerQueryList();
    }
  },
}
</script>

<style></style>